Текущую редакцию довольно легко можно превратить в простую среду по созданию, отладке и тестированию юнит-тестов в 1С.
Принимаем следующие предположения:
1. если код/текст/юнит-тест не работает, он выбрасывает исключение
2. несколько юнит-тестов могут быть объединены в группы
при этих предположениях легко сделать исправления в модуле основной формы браузера блоков кода
и по кнопке Выполнить будут выполняться целые группы тестов.
.
Код ниже вставляем вместо процедуры КоманднаяПанельФормыВыполнить(Кнопка) в модуле основной формы
.
// Артур
Функция ВыполнитьОдинБлокКода(текстМодуля, ДанныеДляКода)
//Процедура КоманднаяПанельФормыВыполнить(Кнопка)
// Поместим параметры, алгоритмы и запросы в структуры,
// чтобы к ним можно было обратиться, например Алгоритмы.ОбработкаСправочника
Параметры = Новый Структура;
Для каждого ПараметрСтрока Из ДанныеДляКода.ТаблицаПараметров Цикл
Параметры.Вставить(ПараметрСтрока.Параметр, ПараметрСтрока.ЗначениеПараметра);
КонецЦикла;
Алгоритмы = Новый Структура;
Для каждого АлгоритмСтрока Из ДанныеДляКода.ТаблицаАлгоритмов Цикл
Алгоритмы.Вставить(АлгоритмСтрока.АлгоритмИмя, АлгоритмСтрока.Алгоритм);
КонецЦикла;
Запросы = Новый Структура;
Для каждого ЗапросСтрока Из ДанныеДляКода.ТаблицаЗапросов Цикл
Запросы.Вставить(ЗапросСтрока.ЗапросИмя, Новый Запрос(ЗапросСтрока.Запрос));
КонецЦикла;
// Выполнение текста
ТаблицаРезультат.Очистить();
Если НЕ ДанныеДляКода.ЭтоГруппа Тогда
Выполнить(текстМодуля); //Выполнить(ЭлементыФормы.ТекстМодуля.ПолучитьТекст());
Возврат Истина;
Иначе
Попытка
Выполнить(текстМодуля);
Возврат Истина;
Исключение
Сообщить("Код "+ДанныеДляКода.ТекущаяСтрока.ИмяТекста + " неверно отработал - <"+ОписаниеОшибки()+">");
Возврат Ложь;
КонецПопытки;
КонецЕсли;
КонецФункции
// Артур
Процедура КоманднаяПанельФормыВыполнить(Кнопка)
ДанныеДляКода = Новый Структура;
текущаяСтрока = ЭлементыФормы.ДеревоТекстов.ТекущаяСтрока;
подчиненныеСтроки = текущаяСтрока.Строки;
количествоПодчиненныхСтрок = подчиненныеСтроки.Количество();
этоГруппаБлоковКода = количествоПодчиненныхСтрок <> 0;
Если НЕ этоГруппаБлоковКода Тогда
код = ЭлементыФормы.ТекстМодуля.ПолучитьТекст();
ДанныеДляКода.Вставить("ЭтоГруппа", Ложь);
ДанныеДляКода.Вставить("ТаблицаПараметров", ТаблицаПараметров);
ДанныеДляКода.Вставить("ТаблицаАлгоритмов", ТаблицаАлгоритмов);
ДанныеДляКода.Вставить("ТаблицаЗапросов", ТаблицаЗапросов);
ДанныеДляКода.Вставить("ТекущаяСтрока", текущаяСтрока);
ВыполнитьОдинБлокКода(код, ДанныеДляКода);
Иначе
количествоПлохихТестов = 0;
Для каждого строка Из подчиненныеСтроки Цикл
код = строка.ТекстМодуля;
ДанныеДляКода.Вставить("ЭтоГруппа", Истина);
ДанныеДляКода.Вставить("ТаблицаПараметров", строка.Параметры);
ДанныеДляКода.Вставить("ТаблицаАлгоритмов", строка.ТаблицаАлгоритмов);
ДанныеДляКода.Вставить("ТаблицаЗапросов", строка.ТаблицаЗапросов);
ДанныеДляКода.Вставить("ТекущаяСтрока", строка);
успешно = ВыполнитьОдинБлокКода(код, ДанныеДляКода);
Если НЕ успешно Тогда
количествоПлохихТестов = количествоПлохихТестов + 1;
КонецЕсли;
КонецЦикла;
Если количествоПлохихТестов = 0 Тогда
Сообщить("ОК");
Иначе
Сообщить("Не выполнено <"+количествоПлохихТестов+"> тестов/блоков кода из <"+количествоПодчиненныхСтрок+">");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// завершение
Показать
ИМХО очень удобно использовать для тестирования.
ЗЫ в данной редакции кода возможна редакция только на 2-х уровнях иерархии - код и группа кодов. но доработать на любую иерархию несложно.