Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как узнать пустой ли результат запроса в программно создаваемом СКД с выводом в Табличный документ

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

 
        Если Результат.Пустой Тогда
            Для Каждого ЗначениеПараметраМакетаКД Из ЭлементРезультатаКД.ЗначенияПараметров Цикл
                Если ЗначениеЗаполнено(ЗначениеПараметраМакетаКД.Значение) Тогда
                    ПроцессорВыводаРезультатаКД.ЗакончитьВывод();
                    Результат.Пустой = Ложь;
                    Возврат Результат;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
            
  // Получает следующий элемент результата компоновки.

 
    ЭлементРезультатаКД = ПроцессорКД.Следующий();
   luter-89
 
4 - 05.10.16 - 16:55
Вопрос закрыт

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует