Имя: Пароль:
1C
1С v8
СКД. Как проверить что отчет пустой?
0 Абирамбул
 
19.09.12
13:42
СКД возвращает ТабличныйДокумент. Как проверить что отчет пустой, т.е. не выведено ни одной группировки. ТабличныйДокумент может содержать параметры, отборы и шапку.
1 Maxus43
 
19.09.12
13:43
>>СКД возвращает ТабличныйДокумент
неправда, скд заполняет табличный документ
2 Абирамбул
 
19.09.12
13:44
(1) Ну наврал малость

Платформа 8.1
3 Maxus43
 
19.09.12
13:45
на ум приходит только выгрузить в  ТЗ результат, и поглядеть кол-во строк... непомню есть ли проверка конкретная на результат СКД
4 Абирамбул
 
19.09.12
13:50
(3) Очень печальный вариант
5 vmv
 
19.09.12
13:59
Высота
6 ChAlex
 
19.09.12
14:00
(0) - а нафиг такое? Если СКД выводит результат в табличный документ - то его предназначение интерактивное представление отчета пользователю! Соответственно пользователь может открыть глаза и посмотреть на монитор и определить быстрее компьютера в каком он состянии: пустой , не совсем пустой и прочее. Или вы хотите вообще отучать человека думать. Ну так до этого еще ой как далеко :)
7 France
 
19.09.12
14:04
(6) боюсь, количество пользователей, стремящихся думать стремится к нулю...
8 Абирамбул
 
19.09.12
14:07
(6) Формирует не пользователь, а задание на сервере. Рассылка отчетов.

(5) Высота изменится, если только название вывести. Не подходит.

Подсмотрел в БСП. Рассылка отчетов.

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