При разработке отчетов на Системе Компоновки Данных (СКД) разработчики часто сталкиваются с ситуацией, когда при добавлении нескольких группировок в таблицу система автоматически выводит заголовки для каждой из них. Если группировки идут друг за другом, это приводит к визуальному дублированию шапки, что делает отчет перегруженным и менее читабельным. Давайте разберем, как справиться с этой задачей и какие подходы существуют в 1С.
Прежде чем прибегать к методам «скрытия» элементов, проанализируем структуру отчета. Как показывает практика, если вы создаете несколько группировок только ради того, чтобы применить к ним разные Отборы, стоит задуматься об объединении этих данных.
Вместо создания двух отдельных группировок, попробуйте реализовать логику фильтрации непосредственно в настройках одной группировки или используйте логическое ИЛИ в условиях отбора. Такой подход позволяет:
Если архитектурное объединение группировок невозможно или нецелесообразно в текущей задаче, можно применить метод принудительного скрытия заголовка через Условное оформление. Рассмотрим этот способ подробнее:
Для того чтобы скрыть заголовок конкретной группировки, выполните следующие шаги:
Условное оформление.Текст и оставьте его пустым.-1.Этот метод позволяет фактически «схлопнуть» область заголовка, делая её невидимой для пользователя.
Существует более «чистый» и стандартный способ управления выводом заголовков, предусмотренный самой платформой. В настройках отчета или в настройках конкретной группировки найдите параметр Расположение заголовков.
Установка этого параметра в значение Нет позволяет полностью отключить вывод заголовка для выбранной ветки данных. Это предпочтительный метод, так как он не требует манипуляций с размерами строк и гарантирует корректное поведение отчета при различных вариантах вывода (например, при экспорте в Excel).
Если вам требуется специфическое отображение, которое невозможно достичь стандартными настройками, используйте Макеты оформления. Вы можете создать пользовательский макет для группировки, в котором вручную определите области вывода.
В макете вы можете оставить область заголовка пустой или вовсе не назначать ей оформление. В этом случае система СКД при компоновке результата просто пропустит отрисовку данной области, что даст вам полный контроль над внешним видом отчета.
В исключительных случаях, когда задача требует динамического управления видимостью в зависимости от сложной логики, можно использовать программную обработку результата. В модуле отчета, в процедуре ПриКомпоновкеРезультата, можно обратиться к объекту ТабличныйДокумент.
Примерная логика действий будет выглядеть так:
// Пример логики в модуле отчета
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// После формирования отчета проходим по областям табличного документа
Для каждого Область из ДокументРезультат.Области Цикл
// Проверяем имя области или иные свойства
Если Область.Имя = "ЗаголовокГруппировки" Тогда
Область.Видимость = Ложь;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Помните, что этот способ является самым трудоемким и требует поддержки кода при изменении структуры настроек отчета.
Подводя итог, можно сказать, что лучшим решением всегда будет оптимизация структуры данных в СКД. Если вы видите дублирование шапки, попробуйте сначала пересмотреть настройки отбора. Если же это невозможно — используйте параметр Расположение заголовков, как наиболее правильный с точки зрения архитектуры платформы 1С метод.