К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как сделать группировку в СКД 1С

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

Группировка в системе компоновки данных (СКД) — это основной способ структурировать данные отчёта: строки объединяются по значению выбранного поля, а для каждой группы автоматически считаются итоги. Без группировок СКД выводит плоскую таблицу, что подходит далеко не для всех задач анализа.

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

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

Где находится настройка группировок

В конфигураторе откройте схему компоновки данных отчёта (основная схема в свойствах объекта) и перейдите на закладку «Настройки». В левой части окна расположено дерево структуры: узел «Отчет», а внутри него — группировки, таблицы и диаграммы.

В режиме предприятия откройте отчёт и нажмите кнопку «Настройки» (или «Ещё — Изменить вариант» в управляемых формах). Если отчёт построен на СКД, вы увидите то же дерево структуры. В расширенном режиме настроек доступны все закладки: поля, отборы, сортировка, ресурсы.

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

Создание простой группировки по шагам

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

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

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

После добавления группировки проверьте выбранные поля на уровне самой группировки и на уровне отчёта. Частая ситуация: поле добавлено на уровне отчёта, но не выводится, потому что у группировки свой список выбранных полей. Проще всего добавлять поля на уровне отчёта и установить у группировки автополе — тогда состав наследуется.

Вложенные группировки и иерархия

Чтобы построить отчёт вида «Контрагент → Договор → Документ», добавьте вторую группировку не в узел «Отчет», а внутрь первой: выделите группировку «Контрагент» и нажмите «Новая группировка». Уровней вложенности может быть сколько угодно, но каждый уровень увеличивает время формирования и объём выборки.

Для полей с иерархией (папки номенклатуры, подразделения) доступен тип группировки: «Элементы», «Иерархия» или «Только иерархия». Он задаётся в свойствах поля группировки. «Иерархия» выводит и папки, и элементы внутри них; «Только иерархия» — только папки с итогами; «Элементы» — плоский список без учёта вложенности папок.

Группировка по периодам

Для анализа по времени добавьте группировку по полю периода, например «ПериодМесяц». Чтобы такие поля появились в запросе, используйте виртуальные таблицы оборотов регистров — они содержат поля периодичности. Либо добавьте вычисляемое поле с функцией языка выражений СКД, например форматированием даты.

При группировке по периоду полезно включить дополнение периодов: в свойствах поля группировки на закладке «Группировки» есть настройка «Тип дополнения». Она добавляет в отчёт периоды, в которых не было движений, — иначе месяцы без продаж просто пропадут из результата.

Настройка итогов и ресурсов

Итоги в СКД считаются только по полям, объявленным ресурсами. Откройте закладку «Ресурсы» и добавьте числовые поля: для суммы продаж выражение будет Сумма(СуммаПродажи), для количества документов — Количество(Различные Ссылка).

У ресурса можно указать, по каким группировкам его рассчитывать (колонка «Рассчитывать по»). Если оставить список пустым, итог считается по всем группировкам, где ресурс выведен. Это удобно, когда нужно, чтобы среднее или количество различных считалось только на определённых уровнях.

Общий итог по отчёту выводится отдельно: в дереве структуры у узла «Отчет» есть настройка вывода общих итогов (вертикальных и горизонтальных). Если итоги съедают производительность на больших данных, общий итог можно отключить, оставив только итоги по группам.

Группировка внутри элемента «Таблица»

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

На пересечении строки и колонки выводятся ресурсы. Учтите ограничение: таблица тяжелее обычной группировки и при большом числе колонок формируется заметно дольше, а результат становится нечитаемым. Если колонок больше пары десятков, лучше пересмотреть структуру отчёта.

Сравнение вариантов структуры

Простая группировка

Подходит для линейных отчётов с итогами по одному измерению. Быстро формируется, легко читается.

Вложенные группировки

Для многоуровневого анализа: клиент → документ → товар. Растёт время формирования с каждым уровнем.

Таблица (кросс-отчёт)

Для сравнения двух измерений, например менеджеры по месяцам. Ограничение — число колонок и производительность.

Детальные записи

Группировка без поля — просто список строк. Используется как нижний уровень для расшифровки.

Типичные ошибки и их устранение

Типичные ошибки
01
Поле группировки не добавлено в выбранные поля — группа выводится, но значение поля не видно; добавьте поле в выбранные поля или включите автополе
02
Числовое поле не объявлено ресурсом — итоги пустые; добавьте поле на закладку «Ресурсы» с агрегатной функцией
03
Вторая группировка добавлена в узел «Отчет» вместо вложения в первую — получаются две независимые секции вместо иерархии
04
Левая связь наборов данных обрывает строки без детальных данных — проверьте тип соединения наборов на закладке «Связи наборов данных»
05
Использование Количество(Ссылка) вместо Количество(Различные Ссылка) — счётчик документов завышен из-за дублирования строк

Ещё одна распространённая проблема — отчёт формируется, но группировка «съедает» часть строк. Обычно причина в отборе, установленном на уровне группировки: отборы в СКД можно задавать и на уровне отчёта, и на уровне конкретной группировки, и они действуют на разных этапах компоновки.

Контрольные точки

Как проверить результат

Структура отчёта
Норма

Каждая группировка вложена в родительскую, поля группировки заполнены

Тревожный признак

Группировки лежат параллельно в узле «Отчет» вместо иерархии

Итоги по группам
Норма

У каждой группы выводится итог по ресурсам, суммы сходятся с детальными строками

Тревожный признак

Итоги пустые, нулевые или не равны сумме детальных записей

Полнота данных
Норма

Все ожидаемые контрагенты/периоды присутствуют в результате

Тревожный признак

Часть строк пропала — проверьте отборы и тип связи наборов

Ограничения и производительность

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

Для отборов, которые пользователь должен менять, выносите их в быстрые настройки и по возможности в параметры виртуальных таблиц запроса — это сокращает выборку на уровне СУБД. Отбор на уровне группировки применяется уже после получения данных и нагрузку не снижает.

Удобный приём: настройте эталонную структуру с группировками в конфигураторе, а пользователям оставьте возможность менять только отборы и период через быстрые настройки. Так отчёт не «развалится» от случайного изменения структуры, а варианты с другими группировками сохраняйте отдельными пользовательскими вариантами.
ПЗ
Практическое замечание

FAQ

Как сгруппировать данные без поля, просто вывести все строки?

Добавьте группировку и оставьте поле группировки пустым — СКД создаст группировку «Детальные записи». Она выводит все строки набора данных без объединения и обычно используется как самый нижний уровень структуры.

Почему в группировке не считаются итоги?

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

Как вывести группировку по месяцам, включая месяцы без данных?

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

Можно ли пользователю менять группировки без конфигуратора?

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

Чем группировка отличается от элемента «Таблица»?

Группировка строит линейную иерархию строк с итогами. Таблица — это перекрёстный отчёт: в ней две ветки группировок (строки и колонки), а ресурсы выводятся на их пересечении. Для анализа двух измерений одновременно нужна именно таблица.

Как скрыть итог по конкретной группировке, оставив остальные?

Выделите нужную группировку в структуре, перейдите на закладку «Макеты» или в настройки вывода и отключите вывод итогов для этого уровня. Альтернатива — на закладке «Ресурсы» ограничить список группировок, по которым рассчитывается ресурс.

Итог

Что важно запомнить

Группировка добавляется в дереве структуры на закладке «Настройки»: выделите родительский узел и создайте «Новую группировку» с нужным полем. Итоги считаются только по полям-ресурсам, вложенность задаётся местом добавления группировки, а перекрёстные отчёты строятся элементом «Таблица».