- Генерация данных
Возможно создание данных на базе специальных табличных документов-макетов. Использовать можно макеты из внешней обработки-теста или общие макеты или просто табличные документы.
Эти макеты можно генерировать из реальных боевых данных или ввести вручную, в табличный документ.
Пример обычного макета для создания данных
Режим Выгружать ссылку
- для ссылочных данных выгружает реквизит Ссылка
как Guid
- Пример макета в режиме
Выгружать ссылку
Режим Связь по Гуид
- для реквизитов выполняет поиск исходного объекта по Guid
- Пример макета в режиме
Выгружать ссылку
иСвязь по Гуид
Есть возможность создания табличных макетов из реальных боевых данных.
Для вызова формы создания нужно использовать меню Внешние инструменты
и команду Генератор макетов данных
из этого меню. Фактически вызывается внешняя обработка "Plugins\СериализаторMXL.epf"
Поддерживается как обычная форма, так и управляемая.
Пример создания макета, который затем можно использовать для создания данных как в пустой/чистовой базе, так и в любой заполненной (тестовая, разработческая, копия рабочей) базе.
Пример кода тестов генерации данных (из репозитария)
Перем КонтекстЯдра;
Перем СериализаторMXL;
Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
КонтекстЯдра = КонтекстЯдраПараметр;
СериализаторMXL = КонтекстЯдра.Плагин("СериализаторMXL");
КонецПроцедуры
Функция ПолучитьСписокТестов() Экспорт
ВсеТесты = Новый Массив;
ВсеТесты.Добавить("ТестДолжен_СоздатьПростойСправочник");
Возврат ВсеТесты;
КонецФункции
Процедура ТестДолжен_СоздатьПростойСправочник() Экспорт
Макет = ПолучитьМакет("СозданиеПростогоСправочника"); //использую макет из этой же внешней обработки
ТестовыеДанные = СериализаторMXL.СоздатьДанныеПоТабличномуДокументу(Макет);
ПроверитьСозданиеПростогоСправочника(ТестовыеДанные);
КонецПроцедуры
Программная генерация макета данных на базе консоли запросов из "Инструменты Разработчика" или собственных запросов из своего кода
Путь_xUnitFor1C = "C:\Projects\GitHub\xUnitFor1C\";
ПутьГенератораМакета = Путь_xUnitFor1C + "ГенерацияМакетаДанных_На_БазеРеальныхДанных.epf";
СоздательМакета = ВнешниеОбработки.Создать(ПутьГенератораМакета );
Макет = СоздательМакета.СоздатьМакетДанныхНаОснованииЗапроса(РезультатЗапроса);
Макет.Показать();
Открываем консоль запросов ИР (или ирПортативные), создаем запрос, Выполняем его Далее закладка "Обработка результата" (не путать со "Обработка строки результата"), вставляем текст выше и нажимаем кнопку "Выполнить" над кодом (не путать с верхней кнопкой "Выполнить")
На базе ссылочных данных (поле __Метаданные должно быть пустым):
Запрос.Текст =
"ВЫБРАТЬ
| """" КАК __Метаданные,
| ""ПростойСправочник"" КАК __Префикс,
| ПростойСправочник.Ссылка,
| ПростойСправочник.Код,
| ПростойСправочник.Наименование,
| ПростойСправочник.РеквизитБулево,
| ПростойСправочник.РеквизитПеречисление
|ИЗ
| Справочник.ПростойСправочник КАК ПростойСправочник
|Где РеквизитБулево И ПростойСправочник.Наименование = ""Тестовое наименование"" ";
На базе регистров:
Запрос.Текст =
"ВЫБРАТЬ
| ""РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей().Метаданные()"" КАК __Метаданные,
| ""ЗаписьРегистра"" КАК __Префикс,
| РегистрСведений1.ПростойСправочник,
| РегистрСведений1.ПростойСправочник2 КАК ПростойСправочник2,
| РегистрСведений1.РесурсЧисло,
| РегистрСведений1.РесурсБулево
|ИЗ
| РегистрСведений.РегистрСведений1 КАК РегистрСведений1
|
|УПОРЯДОЧИТЬ ПО
| ПростойСправочник2";