helpf.pro
Регистрация

v8: СКД: Не выводить пустой отчёт

Smartie
06.11.2012 14:11Прочитано: 8753
Делаю отчёт, состоящий из кучи разных мелких подотчётов на СКД; у каждого подотчёта - своя схема компоновки.

Общая идея в том, что все подотчёты сливают свои результаты в один табличный документ.

Подотчёт может выдавать пустой результат (т.е. набор данных будет пуст). При этом хочется, чтобы вообще ничего не выводилось (ни заголовок подотчёта, ни "шапка" таблицы). Сейчас решаю вопрос путём создания ТЗ и запуска компоновки только в том случае, если ТЗ не пустая. Достаточно нудно и неудобно для отладки и модификации (с "Набор данных - запрос" работать куда удобнее, чем с "Набор данных - объект").

Есть ли какие-нибудь идеи, как можно было бы не выводить отчёт (или удалять уже выведенный из табдока) в случае, если запрос внутри СКД вернул пустой результат?
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
06.11.2012 21:42Ответ № 1
(0) Smartie, как выводишь? покажи код
Smartie
08.11.2012 13:08Ответ № 2
Код 1C v 8.х
 Procedure OutputResult(Object, ObjectName, TemplateName, SpreadSheetDoc)

Cnt = Object.Count();

if Cnt > 0 then

Schema = GetTemplate(TemplateName);
Settings = Schema.DefaultSettings;

DataSet = New Structure(ObjectName, Object);

Composer = New DataCompositionTemplateComposer;
Template = Composer.Execute(Schema, Settings);

CompProcessor = New DataCompositionProcessor;
CompProcessor.Initialize(Template, DataSet);

OutpProcessor = New DataCompositionResultSpreadsheetDocumentOutputProcessor;
OutpProcessor.SetDocument(SpreadSheetDoc);
OutpProcessor.Output(CompProcessor);

endif;

EndProcedure


Object - ТЗ, в которую выгружаю результат запроса. TemplateName - имя макета СКД. Всё это дело вызывается из обработчика ПриКомпоновке...

Но мне кажется, к делу это не относится. Вопрос ведь не в том, как обойти вывод пустого отчёта при такой схеме (Запрос -> выгрузка в ТЗ -> формирование отчёта если ТЗ не пустая). Вопрос в том, как обойтись без выгрузки в ТЗ. Т.е. выполнить схему компоновки, в которой набор данных - запрос (а не объект!), и по ходу пьесы узнать, что запрос ничего не нашёл.
Crush
19.02.2014 16:24Ответ № 3
И как оно получилось?
Jonsony
19.02.2014 16:45Ответ № 4
(0) Smartie, а я бы заголовки пустых всё же выводил, для лучшего понимания и во избежании лишних вопросов
Подсказка: Для редактирования своего ответа щелкните по значку (справа)
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.