diff --git a/src/content/docs/knowledge-base/СКД/ПриКомпоновкеРезультата.md b/src/content/docs/knowledge-base/СКД/ПриКомпоновкеРезультата.md new file mode 100644 index 0000000..fe7abc4 --- /dev/null +++ b/src/content/docs/knowledge-base/СКД/ПриКомпоновкеРезультата.md @@ -0,0 +1,40 @@ +--- +title: Программное формирование отчета на СКД +--- + +В модуле объекта в общем виде прописывается: + +```bsl +Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) + // 0. Отказ от стандартной обработки + СтандартнаяОбработка = Ложь; + + //1. Получение схемы компоновки данных + СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); + + //2. Получение настроек компоновки данных + Настройки = КомпоновщикНастроек.ПолучитьНастройки(); + + //3. Формирование макета компоновки данных на основании схемы и настроек + КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; + МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); + + //4. Выполнение компоновки данных + ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; + + //4.1. Добавление внешнего набора данных. Условно, есть ТЗ "ТЗДанные" с данными, которую необходимо использовать в СКД + ТЗДанные = Новый ТаблицаЗначений(); + + ВнешниеНаборыДанных = Новый Структура; + //Первым аргуменом передается имя объекта, содержащего данные в СКД. Поля и типы полей должны совпадать в источнике "ТЗДанные" и приемнике "ВнешнийНаборДанных1" + ВнешниеНаборыДанных.Вставить("ВнешнийНаборДанных1", ТЗДанные); + + ПроцессорКомпоновкиДанных.инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); + + //5. Вывод результата компоновки данных в табличный документ + ДокументРезультат.Очистить(); + ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; + ПроцессорВывода.УстановитьДокумент(ДокументРезультат); + ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); +КонецПроцедуры +``` \ No newline at end of file