Как в СКД вывести ресурс только в итогах, скрыв его в основной таблице?

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

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

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

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

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

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

Способ 2. Управление выбранными полями для разных уровней

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

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

Теперь перейдем к настройке конкретной группировки (например, Детальные записи), где ресурс выводиться не должен. Выполним следующие шаги:

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

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

Способ 3. Использование системного поля Уровень

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


ВЫБОР 
    КОГДА Уровень() = 0 
    ТОГДА Сумма(Количество) 
    ИНАЧЕ 0 
КОНЕЦ

В данном случае Уровень() = 0 обычно соответствует общим итогам отчета. Если вам необходимо реализовать подобную логику при динамическом формировании отчетов из кода, рекомендуем использовать СКДБилдер для упрощения программного создания СКД, который значительно сокращает объем написанного текста.

Способ 4. Условное оформление (скрытие текста)

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

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

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

Способ 5. Использование макетов оформления

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

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

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

← На главную