Профессия — 1С

Рукопашный бой Карташ

Категории

Вывод отчета СКД программно

рубрики: СКД | Дата: 8 Ноябрь, 2016

При формировании отчетов с помощью системы компоновки данных (СКД)
в системе 1С:Предприятие 8 иногда требуется сделать это программно.




Рассмотрим на простейшем примере как это делается.

Итак, у нас есть внешний отчет с макетом ОсновнаяСхемаКомпоновкиДанных.

В реквизитах формы есть реквизит Отчет, а выводится отчет в
табличное поле Результат, расположенное на форме.

В схеме компоновки данных присутствует параметр Период, который
будем заполнять программно.

Как показано на схеме ниже при выводе отчета сначала на основании схемы компоновки
данных и настроек компоновки данных формируется макет компоновки данных.




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

А теперь реализуем все пункты схемы в программном коде.



&НаСервере
Процедура СформироватьНаСервере()

    Результат.Очистить();

    //1. Получаем схему компоновки данных
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    СхемаКД	= ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

    //2. Получаем настройки компоновки данных
    НастройкиКД = Отчет.КомпоновщикНастроек.Настройки;
    НастройкиКД.ПараметрыДанных.УстановитьЗначениеПараметра("Период", ТекущаяДата());

    //3. Получаем макет компоновки данных
    КомпоновщикМакетаКД	= Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКД		= КомпоновщикМакетаКД.Выполнить(СхемаКД, НастройкиКД);

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

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

&НаКлиенте
Процедура Сформировать(Команда)
    СформироватьНаСервере();
КонецПроцедуры

3 комментария на «“Вывод отчета СКД программно”»

  1. Александр:

    Здравствуйте! У вас есть какие-нибудь полезные сведения по поводу работы с расшифровкой в СКД? Хотелось бы из отчета открывать элемент справочника который в нем представлен. Пробовал через параметр расшифровки (вкладка «макеты» в окне СКД отчета) , команда «открыть» потом не активна. В параметр этот «запихивал» ссылку на данный справочник, который получал из запроса

    • Owner:

      Здравствуйте!
      На диске ИТС видел что-то по этому поводу. Тоже программно можно ее прикручивать. Столкнулся когда пытался программно формировать отчет на СКД — расшифровка пропала. В итоге плюнул — смог без программного формирования обойтись.

      • Александр:

        Ясно. А я решение все-таки нашел. Довольно удобно открывать форму объекта из отчета который этот объект описывает (ну или по кр мере имеет какое-либо к нему отношение) кликая два раза на его (например) название

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

   

2018г. Профессия — 1С. Обмен опытом по программированию в 1С