Процессор Вывода результата Компоновки Данных

Печать (Ctrl+P)

Вывод результата компоновки в
в таблицу или дерево значений

Для вывода результата компоновки в таблицу или дерево значений используется объект:

 Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;  

Свойства:

  • ОтображатьПроцентВывода – Содержит признак отображения индикатора с процентом вывода отчета.

Методы:

  • Вывести – Выводит весь результат в объект. При этом автоматически исполняется метод НачатьВывод, перебираются все элементы процессора компоновки и выводятся в результат. После чего исполняется метод ЗакончитьВывод, результат которого возвращается данным методом.
  • ВывестиЭлемент – Выводит элемент результата компоновки отчета в документ.
  • ЗакончитьВывод – Указание объекту о том, что вывод результата завершен и возвращает объект ( табличный документ или дерево значений ), в который был осуществлен вывод.
  • НачатьВывод – Указывает объекту о необходимости подготовиться к выводу.
  • УстановитьОбъект – Устанавливает таблицу или дерево значений, в которые нужно выводить.


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

Важно! В параметрах метода выполнть компоновщика макета при выводе результата в колекцию значений нужно указать тип генератора макета компоновки данных ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений
иначе: используется значение по умолчанию ГенераторМакетаКомпоновкиДанных , предназначенное для вывода резуьтата в табличный документ


Вывод результата компоновки в табличный документ

Для вывода результата компоновки в табличный документ используется объект:

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

Объект имеет аналогичные свойства и методы как у объекта для вывода результата в таблицу значений. Только в этом случае, для установки документа, который нужно выводить называется используется метод УстановитьДокумент

Пример вывода отчета из встроенного языка

Методические рекомендации

Используя схему и настройки, при помощи компоновщика макета компоновки данных создается макет компоновки данных:

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

Полученный макет компоновки можно предать процессору компоновки данных, для того, чтобы тот выполнил компоновку в соответствии с макетом:

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

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

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

Аналогичный результат получается с помощью цикла :

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

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.