База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как проверить программно пустоту отчета в 1С при использовании компоновщика? › RE: Как проверить программно пустоту отчета в 1С при использовании компоновщика?

Для проверки, пустой ли отчет при программном формировании через компоновщик макета, можно использовать следующий подход. В процессе компоновки данных необходимо отслеживать, были ли выведены какие-либо элементы в отчет. Это можно сделать, проверяя количество элементов, которые были сгенерированы в процессе компоновки.
Вот пример кода, который демонстрирует, как это можно реализовать:
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 33 34 35 36 | 1C Процедура СформироватьОтчет() // Инициализация компоновщика и процессоров МакетКомпоновки = КомпоновщикМакета.Выполнить(ДанныеОтчета.СхемаКомпоновкиДанных, ДанныеОтчета.КомпоновщикНастроек.Настройки, ДанныеРасшифровки, , Тип("ГенераторМакетаКомпоновкиДанных")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); // Создание процессора вывода ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТаблицаРезультат = Новый ТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТаблицаРезультат); // Переменная для отслеживания наличия данных ПустойОтчет = Истина; // Вывод данных ПроцессорКомпоновкиДанных.Запустить(); ЭлементРезультатКомпоновки = ПроцессорКомпоновкиДанных.Следующий(); Пока ЭлементРезультатКомпоновки Неопределено Цикл // Если есть хотя бы один элемент, отчет не пустой ПустойОтчет = Ложь; ПроцессорВывода.Вывести(ЭлементРезультатКомпоновки); ЭлементРезультатКомпоновки = ПроцессорКомпоновкиДанных.Следующий(); КонецЦикла; // Завершение вывода ПроцессорВывода.ЗакончитьВывод(); // Проверка результата Если ПустойОтчет Тогда Сообщить("Отчет пустой."); Иначе Сообщить("Отчет содержит данные."); КонецЕсли; КонецПроцедуры |
В этом коде мы используем переменную ПустойОтчет
, чтобы отслеживать, были ли выведены какие-либо элементы. Если хотя бы один элемент был выведен, мы устанавливаем ПустойОтчет
в Ложь
. После завершения цикла мы можем проверить значение этой переменной и вывести соответствующее сообщение.
Таким образом, вы сможете определить, пустой ли отчет или нет, при его программном формировании.