Как настроить группировку колонок в отчете 1С: сочетание фиксированных и периодических показателей

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

При разработке и доработке отчетов в 1С часто возникает задача, когда часть показателей должна выводиться в целом за выбранный период (например, общие общие остатки или нормативные показатели А, Б, В), а другая часть — детально распределяться по периодам (например, динамика продаж или расхода X, Y, Z за каждый месяц/день).

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

Решение задачи в Системе компоновки данных (СКД)

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

Вариант 1. Использование параллельных группировок колонок

  1. На вкладке Ресурсы объявляем требуемые показатели (А, Б, В, X, Y, Z). При необходимости для показателя ПоказателиАБВ можно задать выражением необходимое агрегатное значение.
  2. На вкладке Настройки в структуре отчета создаем элемент Таблица.
  3. В строках таблицы задаем необходимые группировки строк (например, ГруппаСтрок1 и подчиненную ГруппаСтрок2).
  4. В колонках таблицы добавляем **две параллельные группировки** (находящиеся на одном уровне и не подчиненные друг другу):
    • Первая группировка колонок: создает общую секцию для общих показателей. В настройках выбранных полей этой группировки указываем только фиксированные показатели (А, Б, В), исключая динамические поля.
    • Вторая группировка колонок: группировка по полю Период. В выбранных полях для этой группировки оставляем только периодические показатели (X, Y, Z).
  5. В дополнительных настройках для первой группировки колонок отключаем вывод итогов по строке, чтобы избежать дублирования сумм.

Вариант 2. Ограничение расчета ресурсов по группировкам

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

Вариант 3. Использование условного оформления

Если структура таблицы зафиксирована, можно настроить условное оформление для группировки Период. В параметрах оформления выберем поля А, Б, В и установим свойство Текст равным пустой строке. Это позволит полностью "загасить" вывод ненужных данных в периодической части отчета.

Особенности реализации в Универсальном отчете (Построитель отчета)

Если отчет (например, "Анализ точки заказа") построен на базе Универсального отчета и использует классический Построитель отчета, штатными настройками получить параллельные колонки нельзя.

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

1. Программное формирование и сборка Табличного документа

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


// Схема формирования шапки и колонок вручную
ТабДок = Новый ТабличныйДокумент;

// Выводим фиксированные колонки показателей
СекцияШапкаФикс = Макет.ПолучитьОбласть("Шапка|ПоказателиОбщие");
ТабДок.Вывести(СекцияШапкаФикс);

// В цикле по периодам горизонтально присоединяем секции периода
Пока ВыборкаПериодов.Следующий() Цикл
    СекцияШапкаПериод = Макет.ПолучитьОбласть("Шапка|Период");
    СекцияШапкаПериод.Параметры.Заполнить(ВыборкаПериодов);
    ТабДок.Присоединить(СекцияШапкаПериод);
КонецЦикла;

2. Постобработка сформированного документа

Второй вариант заключается в том, чтобы позволить Универсальному отчету сформировать стандартный `ТабличныйДокумент`, после чего программно обойти область шапки, скрыть или удалить ненужные колонки показателей А, Б, В из секций периодов и объединить заголовки табличной части.

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

← На главную