Как убрать итоги по конкретной колонке в отчете СКД

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

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

Способ 1. Настройка области расчета ресурсов

Самый правильный и «чистый» с точки зрения архитектуры СКД способ — это управление полем Рассчитывать по... на вкладке Ресурсы. По умолчанию, когда мы добавляем поле в ресурсы, система рассчитывает его по всем доступным группировкам и общим итогам.

Разберем по шагам, как ограничить этот расчет:

  1. Перейдем на вкладку Ресурсы в схеме компоновки данных.
  2. Найдем нужное поле (например, ЕщеЧтоТо).
  3. В колонке Рассчитывать по... нажмем на кнопку выбора. По умолчанию там пусто, что означает расчет по всем уровням.
  4. Нам необходимо явно проставить галочки только для тех группировок, где итог нужен.
  5. Если нам нужно оставить значение только в детальных записях, но убрать из итогов по контрагентам и общих итогов, мы указываем в списке только конкретные низкоуровневые группировки или оставляем список пустым, если расчет на верхних уровнях не требуется.

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

Способ 2. Использование выражений с проверкой уровня

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

Рассмотрим пример выражения, которое обнуляет итог на верхних уровнях:


Выбор 
    Когда Уровень() > 1 
    Тогда Сумма(ЕщеЧтоТо) 
    Иначе 0 
Конец

В данном случае функция Уровень() позволяет определить глубину текущей группировки. Уровень() = 0 соответствует общим итогам. Используя NULL вместо 0, мы добьемся того, что ячейка будет выглядеть абсолютно пустой, что часто и требуется заказчику.

Способ 3. Условное оформление для скрытия текста

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

Посмотрим на алгоритм настройки:

  1. Перейдем в настройки отчета на вкладку Условное оформление.
  2. Добавим новый элемент оформления.
  3. В параметре Текст установим пустую строку или один пробел.
  4. В Оформляемых полях выберем наше поле ЕщеЧтоТо.
  5. В Условии укажем системное поле СистемныеПоля.Уровень. Например: СистемныеПоля.Уровень Меньше или равно 1.

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

Способ 4. Исключение поля из выбранных полей группировки

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

  1. В дереве настроек выберем конкретную группировку (например, Контрагенты).
  2. Перейдем на вкладку Выбранные поля этой группировки.
  3. Снимем флаг Использовать настройки вышестоящего элемента.
  4. Удалим поле ЕщеЧтоТо из списка или снимем у него галочку использования.

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

Способ 5. Создание вычисляемых полей для итогов

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

  1. Создадим вычисляемое поле ЕщеЧтоТоДляИтогов.
  2. В выражении ресурса для этого поля напишем 0.
  3. В основном поле ЕщеЧтоТо оставим обычную сумму.
  4. В настройках отчета для общего итога заменим отображаемое поле ЕщеЧтоТо на наше новое поле с нулевым значением.

Дополнительно: Реализация 12 колонок по месяцам (План/Факт)

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

Проанализируем структуру такой таблицы:

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


// Вычисляемое поле "ПродажиЯнварь"
Выбор Когда Месяц(Период) = 1 Тогда Продажи Иначе 0 Конец

Однако использование Кросс-таблицы является более гибким и предпочтительным методом в 1С 8.3. Для детальной настройки структуры колонок можно использовать пример формирования шапки отчета по неделям и месяцам в СКД.

Подводя итог, выбор метода зависит от конкретной задачи: если нужно полностью исключить расчет — правим Ресурсы; если нужно визуально скрыть значение в шапке — используем Условное оформление или переопределяем Выбранные поля группировки.

← На главную