Отчеты и Аналитика · 11 мин
Как сделать группировку в 1С: практическое руководство
Как сделать группировку в 1С: настройка группировок в отчётах СКД, итоги в запросах, группировка списков и динамических списков. Пошаговые инструкции и ошибки.
Группировка в 1С — это способ свернуть детальные данные до нужного уровня: показать продажи по контрагентам вместо каждой накладной, остатки по складам вместо каждой партии, зарплату по подразделениям вместо каждого начисления. В зависимости от задачи группировка делается в трёх местах: в настройках отчёта на СКД, в тексте запроса через конструкцию «ИТОГИ ПО» и в пользовательских списках.
Чаще всего пользователю достаточно настроить группировку в типовом отчёте без программирования — это занимает пару минут. Разработчику при работе с запросами нужно понимать, чем группировка через «СГРУППИРОВАТЬ ПО» отличается от «ИТОГИ ПО»: первый вариант сворачивает строки результата, второй добавляет итоговые строки поверх детальных записей.
Ниже разобраны все основные сценарии: от простой настройки отчёта до программной группировки и типичных ошибок, из-за которых отчёт «не сворачивается» или показывает неверные итоги.
Где в 1С применяется группировка и какой способ выбрать
Прежде чем что-то настраивать, определите, где именно нужна группировка. От этого зависит инструмент:
- Отчёт на СКД (продажи, остатки, ведомости) — группировка настраивается в пользовательском режиме через кнопку «Настройки», программировать ничего не нужно.
- Запрос в конфигураторе или консоли запросов — группировка задаётся секциями «СГРУППИРОВАТЬ ПО» и «ИТОГИ ПО».
- Список документов или справочника — группировка доступна через настройку списка, если форма это поддерживает.
- Табличный документ при печати — группировка строк делается программно в модуле менеджера печати.
Как выбрать способ группировки
Как сделать группировку в типовом отчёте без программирования
Большинство отчётов в конфигурациях 1С (УТ, ERP, Бухгалтерия, ЗУП) построены на системе компоновки данных, поэтому порядок действий одинаковый. Рассмотрим на примере отчёта по продажам.
- 1Откройте отчёт и нажмите кнопку «Настройки» (или «Показать настройки»)
- 2Если открылся простой режим, переключитесь на расширенный: команда «Ещё» → «Расширенный» или аналогичная ссылка
- 3Перейдите на вкладку «Группировка» и нажмите «Добавить»
- 4Выберите поле, по которому нужно свернуть данные, например «Контрагент» или «Склад»
- 5При необходимости добавьте вложенную группировку: выделите созданную строку и снова нажмите «Добавить» — появится вложенный уровень, например «Номенклатура» внутри «Контрагента»
- 6Удалите лишние уровни, если отчёт показывает слишком детально: выделите строку группировки и нажмите «Удалить»
- 7Нажмите «Закрыть и сформировать» — отчёт перестроится с новой структурой
Обратите внимание на порядок группировок: он задаёт иерархию отчёта. Если сначала идёт «Склад», а внутри него «Номенклатура», вы увидите остатки по каждому складу с разворотом по товарам. Поменяйте строки местами кнопками перемещения — и получите товары с разворотом по складам. Это принципиально разные представления одних и тех же данных.
Если нужно оставить только итоги без детальных строк, удалите самую нижнюю группировку (обычно она называется «Детальные записи» или содержит регистратор). Итоговые суммы при этом не изменятся — СКД корректно пересчитает их на уровень оставшейся группировки.
Группировка в запросе: СГРУППИРОВАТЬ ПО
Когда данные выбираются запросом — в модуле, консоли запросов или при построении собственного отчёта — свёртка строк выполняется секцией «СГРУППИРОВАТЬ ПО». Все неагрегатные поля из списка выборки обязаны попасть в эту секцию, иначе запрос вернёт ошибку.
ВЫБРАТЬ
Продажи.Контрагент КАК Контрагент,
СУММА(Продажи.СуммаОборот) КАК СуммаПродаж,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Регистратор) КАК ЧислоДокументов
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
СГРУППИРОВАТЬ ПО
Продажи.КонтрагентВ этом примере детальные обороты сворачиваются до уровня контрагента: одна строка результата — один контрагент с суммой продаж за период. Функция КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ...) считает уникальные документы, что полезно, когда один регистратор встречается в нескольких строках оборотов.
Доступные агрегатные функции: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ. Помните, что СРЕДНЕЕ считается по строкам выборки до группировки — если нужна средняя цена по документам, а не по строкам табличных частей, сначала сверните данные во временной таблице или вложенном запросе.
Иерархические итоги: секция ИТОГИ ПО
«ИТОГИ ПО» работает иначе, чем «СГРУППИРОВАТЬ ПО»: детальные строки остаются в результате, а сверху добавляются итоговые записи по указанным полям. Это удобно, когда нужно и видеть каждую строку, и получать промежуточные суммы — например, обороты по каждому документу с итогом по контрагенту.
ВЫБРАТЬ
Обороты.Контрагент КАК Контрагент,
Обороты.Регистратор КАК Документ,
Обороты.СуммаОборот КАК Сумма
ИЗ
РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК Обороты
ИТОГИ
СУММА(Сумма)
ПО
КонтрагентПри обходе такого результата в коде используйте метод Выбрать с обходом «ПоГруппировкам», а затем внутри — детальные записи. Если указать ИТОГИ ПО ОБЩИЕ, в результат добавится строка с общим итогом по всей выборке.
Для иерархических справочников (номенклатура с папками, контрагенты с группами) добавьте ключевое слово ИЕРАРХИЯ: «ИТОГИ ПО Номенклатура ИЕРАРХИЯ». Тогда итоги будут рассчитаны по каждому уровню дерева, а не только по конкретным элементам.
Группировка в списках документов и справочников
В управляемых формах списков группировка доступна не всегда — она зависит от того, как разработчик настроил динамический список. Если команда доступна, порядок такой:
- Откройте список документов или справочника.
- Нажмите «Ещё» → «Настроить список» (в некоторых конфигурациях — «Настройка списка»).
- На закладке группировки добавьте поле, например «Организация» или «Ответственный».
- Примените настройку — строки списка свернутся в группы с возможностью развернуть каждую.
Если команды группировки в списке нет, это ограничение формы, а не ошибка. Обходной путь — сформировать отчёт по тем же данным (например, универсальный отчёт в «1С:Бухгалтерии» или отчёт по документам) и настроить группировку уже там.
Частые ошибки и как их исправить
Первая типичная ситуация — отчёт «не сворачивается»: вы добавили группировку, но строки остались детальными. Причина почти всегда в том, что в структуре осталась нижележащая группировка с детальными записями или регистратором. Удалите её либо отключите, сняв флаг использования.
Вторая ошибка — неверные итоги после группировки в запросе. Обычно это следствие дублирования строк при соединении таблиц: если к оборотам присоединить таблицу, где ключу соответствует несколько строк, суммы задвоятся. Проверяйте результат на одном контрагенте, сверяя сумму с типовым отчётом.
Третья проблема — ошибка «Поле не найдено» или «Поле должно входить в группировку». Она означает, что в списке выборки есть поле без агрегатной функции, не перечисленное в «СГРУППИРОВАТЬ ПО». Либо добавьте поле в группировку, либо оберните его в агрегатную функцию (например, МАКСИМУМ, если значение одинаково в группе).
Как проверить, что группировка работает правильно
После настройки всегда сверяйте результат с независимым источником. Для отчёта по продажам — с типовым отчётом без изменённых настроек, для остатков — с оборотно-сальдовой ведомостью или отчётом по складу. Совпадение общего итога — минимальное условие корректности.
Как проверить результат группировки
Совпадает с итогом отчёта до изменения настроек
Итог изменился — вероятно, случайно добавлен отбор или потеряны строки
Равно числу уникальных значений поля группировки (например, количеству контрагентов с оборотами)
Строк больше — значит, в группировку попало лишнее поле или остались детальные записи
Сумма по группам сходится с общим итогом
Не сходится — проверяйте соединения таблиц и отборы в запросе
Итог по папке равен сумме вложенных элементов
Итог по папке пустой или нулевой — не указано ключевое слово ИЕРАРХИЯ или неверно выбрано поле
Для запросов удобно проверять себя в консоли запросов: выполните запрос без группировки, отфильтруйте одно значение (одного контрагента) и сложите суммы вручную или через итог таблицы. Затем сравните с результатом сгруппированного запроса по этому же значению.
Если группировкой пользуются несколько сотрудников, сохраните настройку отчёта как вариант: кнопка «Ещё» → «Сохранить вариант отчёта» и сделайте его доступным другим пользователям. Это избавит от повторной настройки и расхождений в цифрах между коллегами.
FAQ: частые вопросы о группировке в 1С
Чем отличается СГРУППИРОВАТЬ ПО от ИТОГИ ПО?
СГРУППИРОВАТЬ ПО сворачивает результат: в выборке остаются только сгруппированные строки с агрегатными значениями. ИТОГИ ПО сохраняет детальные записи и добавляет к ним итоговые строки по указанным полям. Первый вариант быстрее и подходит для сводных данных, второй — когда нужны и детали, и промежуточные итоги.
Почему в списке документов нет команды группировки?
Группировка списка зависит от настроек динамического списка в конфигурации: разработчик может её отключить. Это ограничение формы, а не ошибка. Альтернатива — сформировать отчёт по тем же данным и настроить группировку в нём.
Как сгруппировать отчёт по периодам — по месяцам или неделям?
В настройках СКД добавьте в группировку поле периода с нужной периодичностью: обычно рядом с полем «Период» доступны «Период месяц», «Период неделя», «Период день». В запросе для этого используются функции НАЧАЛОПЕРИОДА(Период, МЕСЯЦ) или специальные поля периодичности виртуальных таблиц.
Можно ли отфильтровать группы по сумме, например показать контрагентов с продажами свыше миллиона?
Да. В запросе для этого служит секция ИМЕЮЩИЕ с условием на агрегатную функцию. В настройках СКД добавьте отбор по полю ресурса (например, «Сумма») с видом сравнения «Больше» — он применится к сгруппированным строкам, если отбор задан на уровне группировки.
Почему после группировки итоги отчёта изменились?
Сама по себе группировка итог не меняет. Если цифры «поплыли», проверьте, не добавился ли вместе с настройкой отбор, не изменился ли период отчёта и не удалили ли группировку, внутри которой был свой отбор. Сверьте результат с сохранённым типовым вариантом отчёта.
Что важно запомнить
В типовых отчётах группировка настраивается через «Настройки» → «Группировка» без программирования. В запросах СГРУППИРОВАТЬ ПО сворачивает строки, а ИТОГИ ПО добавляет итоги поверх детальных записей. Всегда сверяйте итоги после настройки с исходным отчётом и проверяйте изменения запросов на копии базы.