Как убрать повторение шапки (заголовка) таблицы в СКД при использовании нескольких группировок?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке отчетов на Системе Компоновки Данных (СКД) разработчики часто сталкиваются с ситуацией, когда при добавлении нескольких группировок в таблицу система автоматически выводит заголовки для каждой из них. Если группировки идут друг за другом, это приводит к визуальному дублированию шапки, что делает отчет перегруженным и менее читабельным. Давайте разберем, как справиться с этой задачей и какие подходы существуют в 1С.

Оптимизация логики группировок

Прежде чем прибегать к методам «скрытия» элементов, проанализируем структуру отчета. Как показывает практика, если вы создаете несколько группировок только ради того, чтобы применить к ним разные Отборы, стоит задуматься об объединении этих данных.

Вместо создания двух отдельных группировок, попробуйте реализовать логику фильтрации непосредственно в настройках одной группировки или используйте логическое ИЛИ в условиях отбора. Такой подход позволяет:

  1. Сократить количество запросов к базе данных.
  2. Избежать появления дублирующей шапки естественным путем, так как в отчете останется только один уровень группировки.
  3. Повысить общую производительность отчета.

Использование «Условного оформления»

Если архитектурное объединение группировок невозможно или нецелесообразно в текущей задаче, можно применить метод принудительного скрытия заголовка через Условное оформление. Рассмотрим этот способ подробнее:

Для того чтобы скрыть заголовок конкретной группировки, выполните следующие шаги:

  1. Перейдите в настройки группировки, заголовок которой необходимо убрать.
  2. Откройте вкладку Условное оформление.
  3. Добавьте новое правило. В качестве элемента оформления выберите Текст и оставьте его пустым.
  4. Для параметров высоты строки установите минимальную и максимальную высоту равной -1.

Этот метод позволяет фактически «схлопнуть» область заголовка, делая её невидимой для пользователя.

Настройка параметра «Расположение заголовков»

Существует более «чистый» и стандартный способ управления выводом заголовков, предусмотренный самой платформой. В настройках отчета или в настройках конкретной группировки найдите параметр Расположение заголовков.

Установка этого параметра в значение Нет позволяет полностью отключить вывод заголовка для выбранной ветки данных. Это предпочтительный метод, так как он не требует манипуляций с размерами строк и гарантирует корректное поведение отчета при различных вариантах вывода (например, при экспорте в Excel).

Работа с макетами оформления

Если вам требуется специфическое отображение, которое невозможно достичь стандартными настройками, используйте Макеты оформления. Вы можете создать пользовательский макет для группировки, в котором вручную определите области вывода.

В макете вы можете оставить область заголовка пустой или вовсе не назначать ей оформление. В этом случае система СКД при компоновке результата просто пропустит отрисовку данной области, что даст вам полный контроль над внешним видом отчета.

Программное скрытие в «ПриКомпоновкеРезультата»

В исключительных случаях, когда задача требует динамического управления видимостью в зависимости от сложной логики, можно использовать программную обработку результата. В модуле отчета, в процедуре ПриКомпоновкеРезультата, можно обратиться к объекту ТабличныйДокумент.

Примерная логика действий будет выглядеть так:


// Пример логики в модуле отчета
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    // После формирования отчета проходим по областям табличного документа
    Для каждого Область из ДокументРезультат.Области Цикл
        // Проверяем имя области или иные свойства
        Если Область.Имя = "ЗаголовокГруппировки" Тогда
            Область.Видимость = Ложь;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Помните, что этот способ является самым трудоемким и требует поддержки кода при изменении структуры настроек отчета.

Итоги и рекомендации

Подводя итог, можно сказать, что лучшим решением всегда будет оптимизация структуры данных в СКД. Если вы видите дублирование шапки, попробуйте сначала пересмотреть настройки отбора. Если же это невозможно — используйте параметр Расположение заголовков, как наиболее правильный с точки зрения архитектуры платформы 1С метод.

← На главную