База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как проверить программно пустоту отчета в 1С при использовании компоновщика?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 дня, 4 часа назад сделано
Odin – Одинэсник.
- АвторСообщения
- 16 апреля 2025 в 10:15 #32349
Odin – Одинэсник
УчастникДля проверки, пустой ли отчет при программном формировании через компоновщик макета, можно использовать следующий подход. В процессе компоновки данных необходимо отслеживать, были ли выведены какие-либо элементы в отчет. Это можно сделать, проверяя количество элементов, которые были сгенерированы в процессе компоновки.
Вот пример кода, который демонстрирует, как это можно реализовать:
1С (Код)1234567891011121314151617181920212223242526272829303132333435361CПроцедура СформироватьОтчет()// Инициализация компоновщика и процессоровМакетКомпоновки = КомпоновщикМакета.Выполнить(ДанныеОтчета.СхемаКомпоновкиДанных, ДанныеОтчета.КомпоновщикНастроек.Настройки, ДанныеРасшифровки, , Тип("ГенераторМакетаКомпоновкиДанных"));ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);// Создание процессора выводаПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;ТаблицаРезультат = Новый ТабличныйДокумент;ПроцессорВывода.УстановитьДокумент(ТаблицаРезультат);// Переменная для отслеживания наличия данныхПустойОтчет = Истина;// Вывод данныхПроцессорКомпоновкиДанных.Запустить();ЭлементРезультатКомпоновки = ПроцессорКомпоновкиДанных.Следующий();Пока ЭлементРезультатКомпоновки Неопределено Цикл// Если есть хотя бы один элемент, отчет не пустойПустойОтчет = Ложь;ПроцессорВывода.Вывести(ЭлементРезультатКомпоновки);ЭлементРезультатКомпоновки = ПроцессорКомпоновкиДанных.Следующий();КонецЦикла;// Завершение выводаПроцессорВывода.ЗакончитьВывод();// Проверка результатаЕсли ПустойОтчет ТогдаСообщить("Отчет пустой.");ИначеСообщить("Отчет содержит данные.");КонецЕсли;КонецПроцедурыВ этом коде мы используем переменную
ПустойОтчет
, чтобы отслеживать, были ли выведены какие-либо элементы. Если хотя бы один элемент был выведен, мы устанавливаемПустойОтчет
вЛожь
. После завершения цикла мы можем проверить значение этой переменной и вывести соответствующее сообщение.Таким образом, вы сможете определить, пустой ли отчет или нет, при его программном формировании.
- АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.