|
Пустой результат запроса СКД | ☑ | ||
---|---|---|---|---|
0
Valadis
27.05.16
✎
16:20
|
Здравствуйте!
Подскажите, пож-та, как проверить результат запроса СКД на пустоту. Есть код: СтандартнаяОбработка = ЛОЖЬ; Настройки = КомпоновщикНастроек.Настройки; КомпановщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпановки = КомпановщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки,, ); Есть ли возможность в макете компановки проверять, вернул ли запрос какие-либо записи? |
|||
1
Valadis
27.05.16
✎
16:25
|
Результат отчета высылается по почте сотруднику, указанному в отборе отчета (отбор также формируется программно). Если отчет пустой, то высылать его не надо.
|
|||
2
ДенисЧ
27.05.16
✎
16:29
|
проверь результирующий ТД на высоту. Если больше заголовка (который ты определил раньше), то не пустой
|
|||
3
тарам пам пам
27.05.16
✎
17:29
|
В типовых так проверяют:
ОтчетПустой = Истина; Пока Истина Цикл #Если ТолстыйКлиентОбычноеПриложение тогда ОбработкаПрерыванияПользователя(); #КонецЕсли //Получим следующий элемент результата компоновки ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата = Неопределено Тогда //Следующий элемент не получен - заканчиваем цикл вывода Прервать; Иначе // Зафиксируем шапку Если Не ОтчетОбъект.РасширеннаяНастройка И Не ТаблицаЗафиксирована И ЭлементРезультата.ЗначенияПараметров.Количество() > 0 И ТипЗнч(ОтчетОбъект.КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда ТаблицаЗафиксирована = Истина; Результат.ФиксацияСверху = Результат.ВысотаТаблицы; Если ВыводитьШапкуОтчетаНаВсехСтраницах тогда ОбластьШапки = Результат.Область(3, ,Результат.ВысотаТаблицы, ); Результат.ПовторятьПриПечатиСтроки = ОбластьШапки; КонецЕсли; КонецЕсли; //Элемент получен - выведем его при помощи процессора вывода ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); // Определить не пустой результат. Если ОтчетПустой Тогда Для Каждого ЗначениеПараметраМакетаКД Из ЭлементРезультата.ЗначенияПараметров Цикл Попытка ЗначениеЗаполнено = ЗначениеЗаполнено(ЗначениеПараметраМакетаКД.Значение); Исключение ЗначениеЗаполнено = Ложь; // Линия, Рамка, Цвет и другие объекты КД, которые могут фигурировать при выводе. КонецПопытки; Если ЗначениеЗаполнено Тогда ОтчетПустой = Ложь; КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; КонецЦикла; //Обозначем завершение вывода ПроцессорВывода.ЗакончитьВывод(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |