Skip to content

Latest commit

 

History

History
140 lines (100 loc) · 8.97 KB

Генерация-данных.MD

File metadata and controls

140 lines (100 loc) · 8.97 KB

Генерация данных

Возможно создание данных на базе специальных табличных документов-макетов. Использовать можно макеты из внешней обработки-теста или общие макеты или просто табличные документы.

Эти макеты можно генерировать из реальных боевых данных или ввести вручную, в табличный документ.

Режимы генерации данных при создании объектов и поиске реквизитов объектов

Режимы создания

Пример обычного макета для создания данных image

Режимы поиска

Режим Выгружать ссылку - для ссылочных данных выгружает реквизит Ссылка как Guid

  • Пример макета в режиме Выгружать ссылку

image

Режим Связь по Гуид - для реквизитов выполняет поиск исходного объекта по Guid

  • Пример макета в режиме Выгружать ссылку и Связь по Гуид

image

Генерация макета на базе реальных данных

Есть возможность создания табличных макетов из реальных боевых данных.

Для вызова формы создания нужно использовать меню Внешние инструменты и команду Генератор макетов данных из этого меню. Фактически вызывается внешняя обработка "Plugins\СериализаторMXL.epf"

Поддерживается как обычная форма, так и управляемая.

Обычная форма: image

Управляемая форма: image

Пример создания макета, который затем можно использовать для создания данных как в пустой/чистовой базе, так и в любой заполненной (тестовая, разработческая, копия рабочей) базе. image

Пример кода тестов генерации данных (из репозитария)

Пример кода создания данных из макета

Перем КонтекстЯдра;
Перем СериализаторMXL;

Процедура Инициализация(КонтекстЯдраПараметр) Экспорт
	КонтекстЯдра = КонтекстЯдраПараметр;
	СериализаторMXL = КонтекстЯдра.Плагин("СериализаторMXL");
КонецПроцедуры

Функция ПолучитьСписокТестов() Экспорт
	ВсеТесты = Новый Массив;
	ВсеТесты.Добавить("ТестДолжен_СоздатьПростойСправочник");
	Возврат ВсеТесты;
КонецФункции

Процедура ТестДолжен_СоздатьПростойСправочник() Экспорт
	Макет = ПолучитьМакет("СозданиеПростогоСправочника"); //использую макет из этой же внешней обработки
	ТестовыеДанные = СериализаторMXL.СоздатьДанныеПоТабличномуДокументу(Макет);
	
	ПроверитьСозданиеПростогоСправочника(ТестовыеДанные);
КонецПроцедуры

Создание макета данных на основании результатов запросов (например, через ирПортативные)

Программная генерация макета данных на базе консоли запросов из "Инструменты Разработчика" или собственных запросов из своего кода

Пример вызова

Путь_xUnitFor1C = "C:\Projects\GitHub\xUnitFor1C\";
ПутьГенератораМакета = Путь_xUnitFor1C + "ГенерацияМакетаДанных_На_БазеРеальныхДанных.epf";

СоздательМакета = ВнешниеОбработки.Создать(ПутьГенератораМакета );
Макет = СоздательМакета.СоздатьМакетДанныхНаОснованииЗапроса(РезультатЗапроса);
Макет.Показать();

Открываем консоль запросов ИР (или ирПортативные), создаем запрос, Выполняем его Далее закладка "Обработка результата" (не путать со "Обработка строки результата"), вставляем текст выше и нажимаем кнопку "Выполнить" над кодом (не путать с верхней кнопкой "Выполнить")

Пример запросов для создания макета

На базе ссылочных данных (поле __Метаданные должно быть пустым):

	Запрос.Текст = 
		"ВЫБРАТЬ
		|	"""" КАК __Метаданные,
		|	""ПростойСправочник"" КАК __Префикс,
		|	ПростойСправочник.Ссылка,
		|	ПростойСправочник.Код,
		|	ПростойСправочник.Наименование,
		|	ПростойСправочник.РеквизитБулево,
		|	ПростойСправочник.РеквизитПеречисление
		|ИЗ
		|	Справочник.ПростойСправочник КАК ПростойСправочник
		|Где РеквизитБулево И ПростойСправочник.Наименование = ""Тестовое наименование"" ";

На базе регистров:

	Запрос.Текст = 
		"ВЫБРАТЬ
		|	""РегистрыСведений.РегистрСведений1.СоздатьНаборЗаписей().Метаданные()"" КАК __Метаданные,
		|	""ЗаписьРегистра"" КАК __Префикс,
		|	РегистрСведений1.ПростойСправочник,
		|	РегистрСведений1.ПростойСправочник2 КАК ПростойСправочник2,
		|	РегистрСведений1.РесурсЧисло,
		|	РегистрСведений1.РесурсБулево
		|ИЗ
		|	РегистрСведений.РегистрСведений1 КАК РегистрСведений1
		|
		|УПОРЯДОЧИТЬ ПО
		|	ПростойСправочник2";