Удаление пустых группировок в СКД
Отчет имеет структуру группировок:
Показатель
— Группа статей
—- Статья
Иногда показатель идет без статьи и получаются пустые строки. Нужно их удалять.
Отчет в СКД формируется из таблицы значений. Поэтому я просто заменяю в таблице значений пустые статьи и группы статей неким уникальным GUID:
ПометитьПустыеСтрокиТаблицыОтчета(ТЗРез); Процедура ПометитьПустыеСтрокиТаблицыОтчета(ТЗРез) ПустаяГруппировка = ПустаяГруппировка(); Для Каждого Строка ИЗ ТЗРез Цикл Если НЕ ЗначениеЗаполнено(Строка.Статья) Тогда Строка.Статья = ПустаяГруппировка; Конецесли; Если НЕ ЗначениеЗаполнено(Строка.РодительСтатьи) Тогда Строка.РодительСтатьи = ПустаяГруппировка; Конецесли; КонецЦикла; КонецПроцедуры Функция ПустаяГруппировка() Возврат "2dd35862-c6a9-471d-b31e-1db461e21a23"; КонецФункции
Отчет после этого выглядит так:

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

Отчет получается компактным и не мозолит глаза ненужными строками. Рекомендую способ!
