Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программный вывод отчета
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > База знаний > Система компоновки данных
Vofka
В ходе обсуждения необходимо зарегистрироваться для просмотра ссылки темы добавлю сюда ещё пример получения результата компоновки в таблицу значений.

СхемаКомпоновки = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
НастройкиКомпоновкиДанных = КомпоновщикНастроек.Настройки;
    
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновкиДанных,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
    
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТЗ = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


Скачать: Нажмите для просмотра прикрепленного файла

Пример будет работать на любой конфе, где есть справочник Номенклатура.
Vofka
Хотя примеры подобные у нас уже присутствуют на форуме, я посчитал, что ещё один лишним не будет.

Несмотря на то, изучающие СКД встречаются с этим на первый или второй день, это должно быть в разделе FAQ. Простой пример программного вывода отчета на компоновке, использующий настройки по умолчанию.

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

//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

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

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

//Очищаем поле табличного документа
Результат = ЭлементыФормы.Результат;
Результат.Очистить();

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

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);


необходимо зарегистрироваться для просмотра ссылки
Vofka
Добавлю ещё необходимо зарегистрироваться для просмотра ссылки вариант:

Процедура СформироватьОтчет()
    КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки=КомпоновщикМакета.Выполнить(ОтчетОбъект.СхемаКомпоновкиДанных, ОтчетОбъект.КомпоновщикНастроек.Настройки);
    //в этот момент подставляем нужный параметр
    МакетКомпоновки.ЗначенияПараметров.Контрагент.Значение=НужныйКонтрагент;
    ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,,Истина);
    ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.ОтображатьПроцентВывода=Истина;
    ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.ТабДок);
    ПроцессорВывода.НачатьВывод();
    Пока Истина Цикл
        СледЭлемент=ПроцессорКомпоновки.Следующий();
        Если СледЭлемент=Неопределено Тогда
            Прервать;
        Иначе
            ПроцессорВывода.ВывестиЭлемент(СледЭлемент);
        КонецЕсли;
    КонецЦикла;
    ПроцессорВывода.ЗакончитьВывод();
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.