При разработке аналитических отчетов в системе компоновки данных (СКД) часто возникает задача построения кросс-таблицы с неоднородной структурой колонок. Типичный пример: в строках необходимо вывести номенклатуру, а в колонках сгруппировать данные по складам, при этом внутри каждого склада требуется отобразить как статические показатели (текущий остаток, резерв), так и динамические данные с детализацией по периодам (например, помесячные продажи).
Если настроить простую последовательную цепочку вложений группировок, платформа начнет выводить остатки и резервы в каждой колонке периода, что приведет к дублированию данных и перегрузке отчета. Разберем по шагам, как правильно настроить схему компоновки данных для решения этой задачи.
Ключевой подход заключается в создании соседних (параллельных) дочерних веток внутри одной родительской группировки по складам. Рассмотрим правильную иерархию структуры таблицы в настройках СКД:
Номенклатура (при необходимости можно включить тип иерархии).Склад.Склад добавляем две независимые дочерние ветки:
Автополе и вручную добавляем ресурсы Остаток и Резерв.Период. На ее вкладке «Выбранные поля» также отключаем Автополе и выбираем только ресурс Продажи.Такая структура позволяет вывести рядом со складом фиксированные колонки остатка и резерва, а следом за ними — динамически разворачивающийся блок колонок по периодам.
Проанализируем расчет числовых показателей. Чтобы исключить задвоение остатков и резервов в итогах по периодам, необходимо корректно настроить схему на вкладке «Ресурсы»:
Остаток и Резерв в колонке «Рассчитывать по...» явно указываем только те группировки, в которых эти показатели имеют смысл: Номенклатура, Склад и Общий итог. Группировку Период указывать нельзя.Продажи оставляем стандартное выражение и рассчитываем его по всем группировкам без ограничений.По умолчанию платформа 1С может объединять ресурсы в единый блок или переносить их в конец таблицы. Чтобы ресурсы отображались строго внутри соответствующих подгруппировок колонок, выполним следующую настройку:
Таблицу.При использовании параллельных группировок шапка над динамическими колонками периодов может требовать дополнительного объединения. Рассмотрим варианты визуального оформления:
Макет заголовка группировки или Макет группировки в схеме компоновки данных, где жестко задать структуру шапки без необходимости писать программный код.Область() и Объединить().При объединении разнородных показателей в одной строке стандартные горизонтальные итоги могут суммировать несопоставимые данные (например, остаток и количество продаж). Для предотвращения ошибок в свойствах таблицы или конкретных колонок параметру «Расположение общих итогов по горизонтали» рекомендуется задать значение «Нет».