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

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

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

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

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

Чаще всего пользователю достаточно настроить группировку в типовом отчёте без программирования — это занимает пару минут. Разработчику при работе с запросами нужно понимать, чем группировка через «СГРУППИРОВАТЬ ПО» отличается от «ИТОГИ ПО»: первый вариант сворачивает строки результата, второй добавляет итоговые строки поверх детальных записей.

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

Где в 1С применяется группировка и какой способ выбрать

Прежде чем что-то настраивать, определите, где именно нужна группировка. От этого зависит инструмент:

  • Отчёт на СКД (продажи, остатки, ведомости) — группировка настраивается в пользовательском режиме через кнопку «Настройки», программировать ничего не нужно.
  • Запрос в конфигураторе или консоли запросов — группировка задаётся секциями «СГРУППИРОВАТЬ ПО» и «ИТОГИ ПО».
  • Список документов или справочника — группировка доступна через настройку списка, если форма это поддерживает.
  • Табличный документ при печати — группировка строк делается программно в модуле менеджера печати.
Маршрут решения

Как выбрать способ группировки

Нужно свернуть данные в типовом отчёте (продажи, остатки, обороты)Используйте настройки отчёта: вкладка «Группировка» или расширенный режим настройки
Нужны итоги с иерархией, например номенклатура с разворотом по группамВ запросе используйте «ИТОГИ ПО» с указанием поля группировки
Нужно посчитать суммы без детальных строк в выборкеПрименяйте «СГРУППИРОВАТЬ ПО» с агрегатными функциями СУММА, КОЛИЧЕСТВО, МАКСИМУМ
Нужно сгруппировать строки в списке документовОткройте «Ещё» → «Настроить список» и добавьте группировку, если команда доступна

Как сделать группировку в типовом отчёте без программирования

Большинство отчётов в конфигурациях 1С (УТ, ERP, Бухгалтерия, ЗУП) построены на системе компоновки данных, поэтому порядок действий одинаковый. Рассмотрим на примере отчёта по продажам.

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

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

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

Группировка в запросе: СГРУППИРОВАТЬ ПО

Когда данные выбираются запросом — в модуле, консоли запросов или при построении собственного отчёта — свёртка строк выполняется секцией «СГРУППИРОВАТЬ ПО». Все неагрегатные поля из списка выборки обязаны попасть в эту секцию, иначе запрос вернёт ошибку.

bsl
ВЫБРАТЬ
	Продажи.Контрагент КАК Контрагент,
	СУММА(Продажи.СуммаОборот) КАК СуммаПродаж,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Продажи.Регистратор) КАК ЧислоДокументов
ИЗ
	РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
СГРУППИРОВАТЬ ПО
	Продажи.Контрагент

В этом примере детальные обороты сворачиваются до уровня контрагента: одна строка результата — один контрагент с суммой продаж за период. Функция КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ...) считает уникальные документы, что полезно, когда один регистратор встречается в нескольких строках оборотов.

Доступные агрегатные функции: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ. Помните, что СРЕДНЕЕ считается по строкам выборки до группировки — если нужна средняя цена по документам, а не по строкам табличных частей, сначала сверните данные во временной таблице или вложенном запросе.

Иерархические итоги: секция ИТОГИ ПО

«ИТОГИ ПО» работает иначе, чем «СГРУППИРОВАТЬ ПО»: детальные строки остаются в результате, а сверху добавляются итоговые записи по указанным полям. Это удобно, когда нужно и видеть каждую строку, и получать промежуточные суммы — например, обороты по каждому документу с итогом по контрагенту.

bsl
ВЫБРАТЬ
	Обороты.Контрагент КАК Контрагент,
	Обороты.Регистратор КАК Документ,
	Обороты.СуммаОборот КАК Сумма
ИЗ
	РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК Обороты
ИТОГИ
	СУММА(Сумма)
ПО
	Контрагент

При обходе такого результата в коде используйте метод Выбрать с обходом «ПоГруппировкам», а затем внутри — детальные записи. Если указать ИТОГИ ПО ОБЩИЕ, в результат добавится строка с общим итогом по всей выборке.

Для иерархических справочников (номенклатура с папками, контрагенты с группами) добавьте ключевое слово ИЕРАРХИЯ: «ИТОГИ ПО Номенклатура ИЕРАРХИЯ». Тогда итоги будут рассчитаны по каждому уровню дерева, а не только по конкретным элементам.

Группировка в списках документов и справочников

В управляемых формах списков группировка доступна не всегда — она зависит от того, как разработчик настроил динамический список. Если команда доступна, порядок такой:

  1. Откройте список документов или справочника.
  2. Нажмите «Ещё» → «Настроить список» (в некоторых конфигурациях — «Настройка списка»).
  3. На закладке группировки добавьте поле, например «Организация» или «Ответственный».
  4. Примените настройку — строки списка свернутся в группы с возможностью развернуть каждую.

Если команды группировки в списке нет, это ограничение формы, а не ошибка. Обходной путь — сформировать отчёт по тем же данным (например, универсальный отчёт в «1С:Бухгалтерии» или отчёт по документам) и настроить группировку уже там.

Частые ошибки и как их исправить

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

Вторая ошибка — неверные итоги после группировки в запросе. Обычно это следствие дублирования строк при соединении таблиц: если к оборотам присоединить таблицу, где ключу соответствует несколько строк, суммы задвоятся. Проверяйте результат на одном контрагенте, сверяя сумму с типовым отчётом.

Третья проблема — ошибка «Поле не найдено» или «Поле должно входить в группировку». Она означает, что в списке выборки есть поле без агрегатной функции, не перечисленное в «СГРУППИРОВАТЬ ПО». Либо добавьте поле в группировку, либо оберните его в агрегатную функцию (например, МАКСИМУМ, если значение одинаково в группе).

Типичные ошибки при группировке
01
Оставлена группировка «Детальные записи» под добавленной группировкой — отчёт не сворачивается до нужного уровня
02
Соединение таблиц перед группировкой задваивает строки — суммы в итогах завышены
03
Поле без агрегатной функции не добавлено в СГРУППИРОВАТЬ ПО — запрос не выполняется с ошибкой
04
Фильтр по сумме помещён в ГДЕ вместо ИМЕЮЩИЕ — запрос отсекает строки до агрегации и даёт неверный результат
05
Использование ИТОГИ ПО вместо СГРУППИРОВАТЬ ПО, когда нужны только сводные строки — лишний объём данных и медленная работа

Как проверить, что группировка работает правильно

После настройки всегда сверяйте результат с независимым источником. Для отчёта по продажам — с типовым отчётом без изменённых настроек, для остатков — с оборотно-сальдовой ведомостью или отчётом по складу. Совпадение общего итога — минимальное условие корректности.

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

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

Общий итог отчёта после группировки
Норма

Совпадает с итогом отчёта до изменения настроек

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

Итог изменился — вероятно, случайно добавлен отбор или потеряны строки

Число строк на верхнем уровне группировки
Норма

Равно числу уникальных значений поля группировки (например, количеству контрагентов с оборотами)

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

Строк больше — значит, в группировку попало лишнее поле или остались детальные записи

Суммы по группам
Норма

Сумма по группам сходится с общим итогом

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

Не сходится — проверяйте соединения таблиц и отборы в запросе

Иерархические итоги
Норма

Итог по папке равен сумме вложенных элементов

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

Итог по папке пустой или нулевой — не указано ключевое слово ИЕРАРХИЯ или неверно выбрано поле

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

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

FAQ: частые вопросы о группировке в 1С

Чем отличается СГРУППИРОВАТЬ ПО от ИТОГИ ПО?

СГРУППИРОВАТЬ ПО сворачивает результат: в выборке остаются только сгруппированные строки с агрегатными значениями. ИТОГИ ПО сохраняет детальные записи и добавляет к ним итоговые строки по указанным полям. Первый вариант быстрее и подходит для сводных данных, второй — когда нужны и детали, и промежуточные итоги.

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

Группировка списка зависит от настроек динамического списка в конфигурации: разработчик может её отключить. Это ограничение формы, а не ошибка. Альтернатива — сформировать отчёт по тем же данным и настроить группировку в нём.

Как сгруппировать отчёт по периодам — по месяцам или неделям?

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

Можно ли отфильтровать группы по сумме, например показать контрагентов с продажами свыше миллиона?

Да. В запросе для этого служит секция ИМЕЮЩИЕ с условием на агрегатную функцию. В настройках СКД добавьте отбор по полю ресурса (например, «Сумма») с видом сравнения «Больше» — он применится к сгруппированным строкам, если отбор задан на уровне группировки.

Почему после группировки итоги отчёта изменились?

Сама по себе группировка итог не меняет. Если цифры «поплыли», проверьте, не добавился ли вместе с настройкой отбор, не изменился ли период отчёта и не удалили ли группировку, внутри которой был свой отбор. Сверьте результат с сохранённым типовым вариантом отчёта.

Итог

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

В типовых отчётах группировка настраивается через «Настройки» → «Группировка» без программирования. В запросах СГРУППИРОВАТЬ ПО сворачивает строки, а ИТОГИ ПО добавляет итоги поверх детальных записей. Всегда сверяйте итоги после настройки с исходным отчётом и проверяйте изменения запросов на копии базы.