Как узнать пустой ли результат запроса в программно создаваемом СКД с выводом в Табличный документ
☑
0
luter-89
05.10.16
✎
16:31
Как узнать пустой ли результат запроса в программно создаваемом СКД с выводом в Табличный документ?
1
luter-89
05.10.16
✎
16:37
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТаблицаЗначений = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Если ТаблицаЗначений.Количество() > 0 Тогда
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД,Настройки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ТабличныйДокумент = Новый ТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
2
luter-89
05.10.16
✎
16:37
Как то избыточно, может есть еще варианты?
3
luter-89
05.10.16
✎
16:55
ПроцессорВыводаРезультатаКД.ВывестиЭлемент(ЭлементРезультатаКД);
// Определить не пустой результат
Если Результат.Пустой Тогда
Для Каждого ЗначениеПараметраМакетаКД Из ЭлементРезультатаКД.ЗначенияПараметров Цикл
Если ЗначениеЗаполнено(ЗначениеПараметраМакетаКД.Значение) Тогда
ПроцессорВыводаРезультатаКД.ЗакончитьВывод();
Результат.Пустой = Ложь;
Возврат Результат;
КонецЕсли;
КонецЦикла;
КонецЕсли;
// Получает следующий элемент результата компоновки.
ЭлементРезультатаКД = ПроцессорКД.Следующий();
4
luter-89
05.10.16
✎
16:55
Вопрос закрыт
Независимо от того, куда вы едете — это в гору и против ветра!