При разработке отчета, иногда возникает необходимость, вывести результат в не стандартном виде, который с трудом можно повторить с помощью СКД, при этом сохранить знакомый интерфейс с привычными отборами, настройками, вариантами отчета и др. что дает нам отчет на СКД.
Решить такую задачу можно с помощью вывода результата компоновки в коллекцию значений, а уже ее вывести в необходимый макет.
![Шаблон отчета СКД с выводом данных в свой макет](https://www.myblog-1c.ru/wp-content/uploads/2023/04/Шаблон-отчета-СКД-с-выводом-данных-в-свой-макет.jpg)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; //ДокументРезультат.Очистить(); // ВЫВОДОМ РЕЗУЛЬТАТА КОМПАНОВКИ В КОЛЛКЕКЦИЮ ЗНАЧЕНИЙ (таблицу значений или дерево значений) НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,НастройкиОтчета, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТаблицаЗначений = Новый ТаблицаЗначений; //Или ДеревоЗначений ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); // ВЫВОД РЕЗУЛЬТАТА В ТАБЛИЧНЫЙ ДОКУМЕНТ Макет = ПолучитьМакет("МойМакет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ДокументРезультат.Вывести(ОбластьШапка); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ДокументРезультат.Вывести(ОбластьШапкаТаблицы); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); Для Каждого ТекущаяСтрока Из ТаблицаЗначений Цикл ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ТекущаяСтрока); ДокументРезультат.Вывести(ОбластьСтрока); КонецЦикла; КонецПроцедуры |
Спасибо большое, очень помогло!
Мне еще нужно было вывести в заголовок отчета начало и окончание периода, долго не получалось, хотелось бы узнать, как бы вы это сделали?