From d697d117b0e8142182dca09713dafc5f102146e8 Mon Sep 17 00:00:00 2001 From: wakadakawaka Date: Tue, 15 Apr 2025 01:29:48 +0500 Subject: [PATCH] add page --- .../СКД/ПриКомпоновкеРезультата.md | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/content/docs/knowledge-base/СКД/ПриКомпоновкеРезультата.md 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