ОтчетПустой (БСП)

Автор: 1С
ОбщийМодуль.ОтчетыСервер
БСП

Отчет пустой. Определяет что отчет пустой.

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

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ПустоеЗначениеОтчета (БСП)

ПустоеПодтверждение (БСП)

ПустаяСсылка (БСП)

ПустойУникальныйИдентификатор (БСП)

УстановитьПустуюФормуНаПустойРабочийСтол (БСП)

РазрешенныйПустойНаборГруппДоступа (БСП)

ПустыеЗначенияОпорныхПолей (БСП)

ЗаменитьВСтруктуреНеопределеноНаПустуюСтроку (БСП)

TurboConf ИР адаптер 2.47