Как убрать вывод ресурсов в лишних группировках СКД

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

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

Способ 1. Управление ресурсами через вкладку «Ресурсы»

Это самый правильный и гибкий метод с точки зрения архитектуры СКД. Мало кто знает, что одно и то же поле можно добавить в список ресурсов несколько раз, задав для каждой группировки свое выражение. Разберем этот алгоритм по шагам:

  1. Перейдем на вкладку Ресурсы в схеме компоновки данных.
  2. Найдем наш ресурс, например БазаРаспределения.
  3. В колонке Рассчитывать по... укажем ту группировку, где этот ресурс должен выводиться (например, Продукция). В поле Выражение оставим стандартное Сумма(БазаРаспределения).
  4. Добавим это же поле БазаРаспределения в список ресурсов еще раз.
  5. В колонке Рассчитывать по... выберем ту группировку, где ресурс не нужен (например, СтатьяЗатрат).
  6. В поле Выражение для этой строки просто напишем 0 или NULL.

Проанализируем ситуацию: теперь СКД при расчете итогов по статье затрат будет принудительно подставлять ноль, а при расчете по продукции — выполнять суммирование. Если мы укажем NULL, то ячейка в отчете останется визуально пустой, что часто является предпочтительным результатом.

Способ 2. Использование функции ВычислитьВыражение

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


ВЫБОР 
    КОГДА ВычислитьВыражение("Сумма(БазаРаспределения)", "СтатьяЗатрат") = 0 
    ТОГДА 0 
ИНАЧЕ 
    Сумма(БазаРаспределения) 
КОНЕЦ

Также можно использовать системную функцию УровеньГруппировки(), чтобы жестко ограничить вывод данных только определенным уровнем иерархии:


ВЫБОР 
    КОГДА УровеньГруппировки() = 1 
    ТОГДА Сумма(БазаРаспределения) 
    ИНАЧЕ NULL 
КОНЕЦ

Этот метод позволяет динамически управлять отображением данных без создания множества записей на вкладке ресурсов.

Способ 3. Индивидуальная настройка выбранных полей для группировки

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

  1. Откроем вкладку Настройки и выберем в иерархии настроек конкретную группировку (например, СтатьяЗатрат).
  2. Перейдем на закладку Выбранные поля для этой группировки.
  3. Снимем флажок Использовать настройки родителя.
  4. Удалим из списка ресурсов поле БазаРаспределения.

Важный нюанс: этот метод физически убирает значение из ячейки для данной группировки. Однако стоит учитывать, что если отчет выводится в виде таблицы, структура колонок может измениться, поэтому данный способ лучше всего подходит для линейных отчетов (списков).

Способ 4. Визуальное скрытие через Условное оформление

Если мы не хотим менять логику расчета ресурсов, но нам нужно скрыть цифры от пользователя, можно применить Условное оформление. Это «косметический» метод, который часто выручает в сложных отчетах.

Рассмотрим порядок действий:

  1. В настройках отчета перейдем на закладку Условное оформление.
  2. Добавим новое правило. В оформлении установим параметр Текст и оставим его пустым (или укажем Видимость = Ложь).
  3. В условии укажем, что оформление применяется только для определенной группировки. Это можно сделать через системное поле СистемныеПоля.Уровень или проверяя заполненность полей группировки.
  4. В области использования выберем только то поле ресурса, которое нужно скрыть.

Этот способ удобен тем, что он не влияет на итоговые суммы в вышестоящих группировках, а лишь управляет визуальным представлением конкретных ячеек.

Резюме

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

← На главную