19 июн. 2019 г.

Таблица значений в табличный документ через СКД

Ниже представлен код вывода таблицы значений в табличный документ используя схему компоновки данных.


ТД = Новый ТабличныйДокумент();
СКД = Новый СхемаКомпоновкиДанных();
Источник1 = СКД.ИсточникиДанных.Добавить();
Источник1.Имя = "Основной";
Источник1.ТипИсточникаДанных = "Local";
Набор1 = СКД.НаборыДанных.Добавить(Тип("НаборДанныхОбъектСхемыКомпоновкиДанных"));
Набор1.Имя = "ИмяНабора";
Набор1.ИмяОбъекта = "НаборТЗ";
Набор1.ИсточникДанных = "Основной";
Для Каждого К ИЗ ТЗ.Колонки Цикл
Поле1 = Набор1.Поля.Добавить(Тип("ПолеНабораДанныхСхемыКомпоновкиДанных"));
Поле1.Поле = К.Имя;
Поле1.ПутьКДанным = К.Имя;
Поле1.Заголовок = К.Заголовок;
ПолеВыбора = СКД.НастройкиПоУмолчанию.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ПолеВыбора.Поле = Новый ПолеКомпоновкиДанных(К.Имя);
ПолеВыбора.Использование = Истина;
КонецЦикла;
ГруппировкаКомпоновкиДанных = СКД.НастройкиПоУмолчанию.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ГруппировкаКомпоновкиДанных.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
ГруппировкаКомпоновкиДанных.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
ГруппировкаКомпоновкиДанных.Использование = Истина;
//Объект для создания макета компоновки данных
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Попытка
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, СКД.НастройкиПоУмолчанию);
Исключение
Сообщить(ОписаниеОшибки());
Возврат ТД;
КонецПопытки;
//Объект, выполняющий компоновку данных.
ПроцессорКД = Новый ПроцессорКомпоновкиДанных;
ВнешнийНаборДанных = Новый Структура("НаборТЗ", ТЗ);
ПроцессорКД.Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, , Истина);
//Вывожу Результат компоновки данных в табличный документ.
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТД);
ПроцессорВывода.Вывести(ПроцессорКД);
Возврат ТД;


Комментариев нет:

Отправить комментарий