Как в СКД сделать вложенную группировку колонок для вывода остатков и продаж по периодам?

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

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

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

1. Настройка структуры колонок в кросс-таблице

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

  1. Строки: создаем группировку по полю Номенклатура (при необходимости можно включить тип иерархии).
  2. Колонки: создаем корневую группировку по полю Склад.
  3. Внутри группировки Склад добавляем две независимые дочерние ветки:
    1. Дочерняя ветка 1 (Остатки и резервы): создаем группировку без указания поля (пустая группировка / детальные записи). Переходим на вкладку «Выбранные поля» этой группировки, снимаем флаг Автополе и вручную добавляем ресурсы Остаток и Резерв.
    2. Дочерняя ветка 2 (Продажи по периодам): создаем вложенную группировку по полю Период. На ее вкладке «Выбранные поля» также отключаем Автополе и выбираем только ресурс Продажи.

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

2. Настройка расчета ресурсов («Рассчитывать по...»)

Проанализируем расчет числовых показателей. Чтобы исключить задвоение остатков и резервов в итогах по периодам, необходимо корректно настроить схему на вкладке «Ресурсы»:

  1. Для полей Остаток и Резерв в колонке «Рассчитывать по...» явно указываем только те группировки, в которых эти показатели имеют смысл: Номенклатура, Склад и Общий итог. Группировку Период указывать нельзя.
  2. Для ресурса Продажи оставляем стандартное выражение и рассчитываем его по всем группировкам без ограничений.

3. Отключение автоматического позиционирования ресурсов

По умолчанию платформа 1С может объединять ресурсы в единый блок или переносить их в конец таблицы. Чтобы ресурсы отображались строго внутри соответствующих подгруппировок колонок, выполним следующую настройку:

  1. Выделяем корневой элемент настроек отчета или саму Таблицу.
  2. Переходим на вкладку «Другие настройки».
  3. Находим параметр «Авто позиция ресурсов» и устанавливаем для него значение «Не использовать».

4. Оформление шапки отчета

При использовании параллельных группировок шапка над динамическими колонками периодов может требовать дополнительного объединения. Рассмотрим варианты визуального оформления:

  1. Использование групп полей: на вкладке «Выбранные поля» группировки периода можно нажать кнопку «Сгруппировать поля», задать заголовок группы (например, «Продажи») и указать расположение «В отдельной колонке». В этом случае над периодами появится общий заголовок.
  2. Вкладка «Макеты»: для создания сложной иерархической шапки с объединенными ячейками можно добавить Макет заголовка группировки или Макет группировки в схеме компоновки данных, где жестко задать структуру шапки без необходимости писать программный код.
  3. Постобработка в коде: если требуется индивидуальное объединение ячеек в сформированном табличном документе, это реализуется программно в модуле отчета после вызова процессора компоновки через методы Область() и Объединить().

5. Управление горизонтальными итогами

При объединении разнородных показателей в одной строке стандартные горизонтальные итоги могут суммировать несопоставимые данные (например, остаток и количество продаж). Для предотвращения ошибок в свойствах таблицы или конкретных колонок параметру «Расположение общих итогов по горизонтали» рекомендуется задать значение «Нет».

← На главную