Отчеты и Аналитика · 12 мин
Как использовать группировки в структуре отчета 1С
Практическое руководство по группировкам в структуре отчета 1С: как добавлять уровни, настраивать итоги, отборы и оформление, типичные ошибки и проверка результата.
Группировка в структуре отчета 1С определяет, по каким полям данные будут сгруппированы и в какой последовательности выведены в итоговом отчете. Именно группировки превращают плоскую выборку данных в иерархический отчет: например, продажи по контрагентам, внутри каждого контрагента — по номенклатуре, а внутри номенклатуры — по документам. Без правильно настроенных группировок отчет либо выводит одну общую итоговую строку, либо гигантскую детальную таблицу без агрегации.
Группировки настраиваются в двух местах: в конструкторе схемы компоновки данных (СКД) при разработке отчета и в пользовательских настройках в режиме предприятия. Механика одинаковая: вы добавляете группировку, выбираете поле, по которому строится группировка, и при необходимости вкладываете в нее следующий уровень. Отличие лишь в том, что разработчик задает структуру по умолчанию, а пользователь может менять ее под свою задачу, не трогая конфигурацию.
В статье разберем, как добавить и вложить группировки, как управлять итогами и ресурсами, как применять отборы и оформление на уровне группировки, какие ошибки встречаются чаще всего и как проверить, что структура отчета собрана правильно. Материал применим к отчетам на СКД в типовых конфигурациях («Управление торговлей», «ERP», «Бухгалтерия» и др.) и к самостоятельно разработанным отчетам.
Что такое группировка и как она влияет на результат
Группировка — это элемент структуры отчета, который объединяет строки данных по значению одного или нескольких полей. Для каждой уникальной комбинации значений поля группировки в отчете создается отдельный блок строк, а по этому блоку рассчитываются итоги (суммы, количество, среднее и другие агрегаты по ресурсам). Вложенные группировки образуют иерархию: каждый следующий уровень детализирует предыдущий.
Важно понимать разницу между группировкой и детальными записями. Детальные записи выводят строки без агрегации — как они вернулись из запроса. Группировка всегда агрегирует: если вы сгруппировали по контрагенту и указали ресурс «Сумма», то в строке контрагента вы увидите сумму по всем его документам, а сами документы появятся только на следующем уровне вложенности или в детальных записях.
Отдельный частный случай — иерархическая группировка. Она строится по полю, у которого в запросе или наборе данных есть иерархия (например, справочник «Номенклатура» с папками). Тип группировки «Иерархия» выводит и сами элементы, и их родителей, «Только иерархия» — только родительские уровни. Это удобно для отчетов по папкам номенклатуры или подразделениям.
Как добавить группировку в настройках отчета
В пользовательском режиме откройте отчет и перейдите в расширенные настройки (обычно кнопка «Настройки» → «Расширенные» или «Изменить вариант отчета»). На вкладке «Структура» или «Группировка» выберите узел «Отчет» и нажмите «Добавить группировку» (в некоторых конфигурациях — «Новая группировка»). В появившемся окне укажите поле, по которому будут группироваться данные.
Чтобы создать следующий уровень, выделите уже добавленную группировку и снова нажмите «Добавить группировку» — новая строка вложится внутрь выделенной. Порядок уровней можно менять перетаскиванием или кнопками перемещения. Верхний уровень всегда агрегирует нижние: если первой стоит группировка по организации, а внутри — по контрагентам, итоги по контрагентам будут считаться в разрезе каждой организации.
- 1Откройте отчет и перейдите в настройки (вариант отчета → структура)
- 2Выделите узел «Отчет» и нажмите «Добавить группировку»
- 3В поле группировки выберите нужное измерение, например «Контрагент»
- 4Выделите созданную группировку и добавьте вложенный уровень, например «Номенклатура»
- 5Убедитесь, что на вкладке «Выбранные поля» добавлены ресурсы (суммы, количество)
- 6Сформируйте отчет и проверьте итоги по каждому уровню
Если поле группировки оставить пустым (значение «<...>» не заполнено), группировка станет «детальными записями» либо будет работать как группировка без измерения — фактически одна общая группа. Это частая причина «сломанного» отчета: пользователь добавил уровень, но забыл указать поле, и структура ведет себя непредсказуемо.
Настройка полей и итогов внутри группировки
Каждая группировка имеет собственный набор выбранных полей, отбора, сортировки и оформления — они задаются, когда группировка выделена в дереве структуры. Поля, добавленные на уровне конкретной группировки, выводятся только в строках этой группировки. Поля на уровне «Отчет» выводятся во всех строках. Поэтому колонку «Номенклатура» нет смысла добавлять в группировку по контрагентам — на этом уровне у нее нет значения.
Итоги по группировкам рассчитываются по ресурсам — числовым полям, для которых на вкладке «Ресурсы» (в конструкторе СКД) задано выражение агрегирования: Сумма, Количество, Максимум и т.д. Если поле не добавлено в ресурсы, в строках группировки оно будет пустым, а значение появится только в детальных записях. Это вторая по частоте причина вопроса «почему в итогах пусто».
Для управления тем, где выводятся итоги, используется настройка расположения итогов (в расширенных настройках — «Расположение итогов»): начало, конец, начало и конец, нет. Для длинных отчетов удобен вариант «Начало» — итог по группе виден сразу при сворачивании уровня. Также на уровне группировки можно задать заголовок и тип макета, если используется собственный макет СКД.
Отбор, сортировка и оформление на уровне группировки
Отбор, заданный на уровне всего отчета, применяется к данным до группировки. Отбор на уровне конкретной группировки фильтрует уже сформированные группы: например, можно вывести только контрагентов с суммой продаж больше заданной. Для этого в отборе группировки добавьте условие на ресурс. Учтите, что такой отбор работает по итоговым значениям группы, а не по строкам данных.
Сортировка внутри группировки определяет порядок строк внутри каждой группы. Типовой сценарий: сортировка контрагентов по убыванию суммы продаж. Добавьте на вкладке «Сортировка» выделенной группировки поле ресурса с направлением «По убыванию». Если сортировка не срабатывает, проверьте, что поле доступно на этом уровне и что в настройках нет конфликтующей сортировки на уровне отчета.
Условное оформление тоже можно назначить на уровне группировки — например, подсветить строки с отрицательной прибылью. Оформление, заданное на уровне группировки, применяется только к ее строкам; оформление уровня отчета — ко всем строкам. Это позволяет, например, выделить жирным только строки итогов по контрагентам, оставив детальные записи обычными.
Если нужно показать топ-10 контрагентов по продажам, не обязательно дорабатывать запрос: задайте сортировку группировки по ресурсу по убыванию, а на вкладке «Другие настройки» ограничьте вывод первыми N записями (параметр вывода «Ограничение первых записей»), если он доступен в вашей конфигурации.
Группировки колонок и таблицы
Кроме вложенных строк, в СКД можно строить таблицы: группировки строк и группировки колонок. Классический пример — продажи по менеджерам (строки) в разрезе месяцев (колонки). В настройках структуры добавьте элемент «Таблица», в его ветку «Строки» — группировку по менеджеру, в ветку «Колонки» — группировку по периоду. На пересечении строки и колонки выводится значение ресурса.
Таблица требует дисциплины в ресурсах: если ресурсов несколько, в каждой ячейке появится несколько показателей, и отчет станет трудночитаемым. Для таблиц обычно оставляют один-два ресурса. Также следите за количеством значений в группировке колонок: период «День» за год даст сотни колонок, и отчет станет непригодным для просмотра — используйте месяц или квартал.
Строки, колонки или детальные записи
Подходят для иерархической детализации: контрагент → документ. Ограничение: при большом числе уровней отчет становится глубоким и медленным.
Подходят для кросс-отчетов: менеджеры × месяцы. Ограничение: мало ресурсов на ячейку и ограниченное число колонок.
Подходят для выгрузки сырых данных без агрегации. Ограничение: нет промежуточных итогов, большой объем строк.
Подходят для визуализации одного показателя по одному измерению. Ограничение: не предназначена для детального анализа.
Типичные ошибки при работе с группировками
Большинство проблем с группировками сводится к нескольким повторяющимся сценариям. Первая группа ошибок — структурные: поле группировки не выбрано, уровни перепутаны местами, группировка добавлена не в тот узел (например, внутрь таблицы вместо корня отчета). Вторая группа — ошибки ресурсов: поле не добавлено в ресурсы, выражение без агрегатной функции, ресурс рассчитывается не по тем измерениям.
Третья группа — ошибки восприятия: пользователь ждет строки документов, а видит только итоги, потому что детальных записей в структуре нет. Или наоборот: ждет сводку, а получает тысячи строк, потому что группировка заменена детальными записями. Прежде чем искать ошибку в данных, проверьте саму структуру — в большинстве случаев причина именно в ней.
Как проверить, что структура собрана правильно
После настройки сформируйте отчет на небольшом периоде с заведомо известными данными. Сверьте итог по верхней группировке с контрольной цифрой из исходного учета: например, общая сумма продаж в отчете должна совпасть с оборотом по счету реализации за тот же период. Затем разверните один узел и проверьте, что сумма дочерних строк равна итогу родителя — это базовый тест корректности агрегации.
Проверьте поведение при пустых данных: если по группе нет записей, она не должна появляться в отчете (если не включен специальный вывод пустых групп). Проверьте сортировку и отбор на граничных значениях — равенство порогу, нулевые суммы. Наконец, сохраните настройки как вариант отчета, чтобы не повторять настройку: «Еще» → «Сохранить вариант отчета» или аналогичная команда в вашей конфигурации.
Как проверить результат
Совпадает с контрольной цифрой из учета за тот же период
Расхождение — проверяйте отбор, период и связи наборов данных
Равна итогу родительской группировки
Не сходится — проверяйте выражения ресурсов и тип соединения наборов
Заполнены значениями ресурсов
Пусто — поле не добавлено в ресурсы или нет агрегатной функции
Соответствует заданной сортировке
Сортировка не применяется — поле недоступно на этом уровне или конфликт настроек
FAQ: частые вопросы о группировках
Почему в строках группировки пустые суммы?
Почти всегда причина в ресурсах: числовое поле не добавлено на вкладку «Ресурсы» в схеме компоновки данных или его выражение не содержит агрегатной функции (Сумма, Количество и т.п.). Откройте схему отчета, добавьте поле в ресурсы с выражением вида Сумма(ИмяПоля) и сформируйте отчет заново.
Как вывести документы внутри группировки по контрагентам?
Добавьте внутрь группировки по контрагентам еще один уровень — либо группировку по полю «Документ» («Регистратор»), либо элемент «Детальные записи», если нужны все поля строк без дополнительной агрегации. Убедитесь, что поле документа доступно в наборе данных отчета.
Чем отличается группировка «Иерархия» от обычной?
Обычная группировка выводит только сами элементы с их итогами. Группировка с типом «Иерархия» дополнительно выводит родительские уровни (например, папки номенклатуры) и рассчитывает итоги с учетом вложенных элементов. Она работает только для полей, по которым в данных существует иерархия.
Можно ли скрыть итоги по какой-то группировке?
Да. Выделите группировку в структуре, откройте ее расширенные настройки и для параметра «Расположение итогов» установите значение «Нет». Итоги перестанут выводиться для этого уровня, остальные уровни не пострадают.
Почему отбор по сумме не фильтрует группы?
Отбор по ресурсу работает только если он задан на уровне самой группировки, а не на уровне всего отчета. Отбор уровня отчета применяется к строкам данных до группировки. Выделите группировку в структуре и добавьте условие на ресурс именно в ее отбор.
Как сохранить настроенную структуру, чтобы не настраивать заново?
Сохраните текущие настройки как отдельный вариант отчета: в типовых конфигурациях это команда «Сохранить вариант отчета» или «Сохранить настройки». Вариант можно сделать доступным другим пользователям, если у вас есть соответствующие права.
Что важно запомнить
Группировки задают иерархию строк и колонок отчета, а итоги считаются по ресурсам с агрегатными функциями. Добавляйте уровни последовательно, проверяйте итоги сверкой с учетом, используйте отбор и оформление на уровне группировки и сохраняйте результат как вариант отчета.