1с блог в кирове - 1С: Франчайзи - сервис

Программный вывод отчета СКД и использование внешних данных

Программный вывод отчета СКД и использование внешних данных

Описание для обычных форм (не управляемых)
Создаем форму отчета
Вместо стандартной кнопки  "Сформировать" делаем свою
В модуле формы добавляем процедуру

Процедура ДействияФормыСформироватьОтчет(Кнопка)

СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных";);// твой макет СКД

     Настройки = Этаформа.КомпоновщикНастроек.Настройки;

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,  Настройки, ДанныеРасшифровки);

ДатаОкончания=МакетКомпоновки.ЗначенияПараметров.ПериодОтчета.Значение.ДатаОкончания;//МакетКомпоновки.ЗначенияПараметров.КонецПериода.Значение;

     ТабЗн1=ПолучитьТабЗнДляОтчета();
ВнешниеНаборыДанных = Новый Структура;
     ВнешниеНаборыДанных.Вставить("ТабЗн",ТабЗн1); // Вот здесь и заполняется таблица значений

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); // а вот здесь передается в скд

Результат = ЭлементыФормы.Результат;
   Результат.Очистить();

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры



Для внешней таблицы ТабЗн1
В схеме компоновки данных добавляем набор данных объект и описываем его поля,
указываем имя объекта ТабЗн1

Программно заполняем ТабЗн1 с помощью процедуры ПолучитьТабЗнДляОтчета()