Группировки в отчётах 1С 8.3: от кнопки «Настройки» до структуры СКД и иерархии
Содержание
Чтобы сделать группировку в 1С 8.3, откройте отчёт, нажмите Настройки, переключите вид на «Расширенный» и на закладке структуры добавьте новую группировку по нужному полю: контрагенту, номенклатуре, складу, периоду. Для полной настройки служит команда Еще → Изменить вариант отчета: там открывается редактор структуры системы компоновки данных (СКД), где группировки вкладываются друг в друга, а у каждой задаются свои поля, отбор, сортировка и оформление.
Всё ниже относится к платформе 8.3 и интерфейсу «Такси». Механизм общий: отчёты БП 3.0, ЗУП 3.1, УТ 11 и ERP построены на СКД, поэтому порядок действий совпадает. Различаются только регламентированные бухгалтерские отчёты вроде ОСВ — у них своя панель настроек, о ней отдельно.
Как устроена группировка в отчёте 1С
Группировка — это уровень отчёта, на котором строки с одинаковым значением поля сворачиваются в одну строку с итогом. Внутрь можно вложить следующую группировку, и так до детальных записей.
Пример структуры отчёта о продажах:
Отчет
└── Контрагент ← первый уровень, итог по покупателю
└── Номенклатура ← второй уровень, итог по товару у покупателя
└── Детальные записи ← отдельные документы
Что нужно знать до настройки:
- 📌 Поле группировки определяет, что сворачивается. Сгруппировать можно только по полю, которое есть в наборе данных отчёта.
- 📌 Ресурсы — числовые поля (сумма, количество), которые суммируются на каждом уровне. Если поле не объявлено ресурсом, в строке группировки оно будет пустым.
- 📌 Детальные записи — группировка без поля. Она выводит каждую строку исходных данных. Уберите её, и отчёт покажет только итоги.
- 📌 Порядок вложенности важен: «Контрагент → Номенклатура» и «Номенклатура → Контрагент» дают разные отчёты на одних данных.
Группировка в типовых отчётах без конфигуратора
Большинство отчётов в разделах «Продажи», «Склад», «Зарплата», «Кадры» построены на библиотеке стандартных подсистем. Группировки в них меняются в пользовательском режиме, права администратора не нужны.
Быстрый способ: панель настроек
- Откройте отчёт и нажмите
Настройки. - В окне настроек выберите вид «Расширенный» (переключатель вверху формы).
- Перейдите на закладку со структурой отчёта.
- Нажмите
Добавитьи выберите вариант — новая группировка на текущем уровне или вложенная. - Укажите поле. Если нужного поля нет в первом списке, раскройте ссылочное поле плюсиком: у «Контрагента» внутри есть «ИНН», «Основной менеджер», «Группа» и другие реквизиты.
- Нажмите
Закрыть и сформировать.
Полный редактор: «Изменить вариант отчета»
Через Еще → Изменить вариант отчета открывается тот же редактор, что видит разработчик в СКД. Тут доступно больше: таблицы с колонками, диаграммы, отдельный отбор и условное оформление для каждой группировки.
Измененный вариант сохраните под новым именем: Еще → Сохранить вариант отчета. Так типовой вариант останется нетронутым, а свой можно будет открыть из списка вариантов.
Если отчёт после ваших правок сломался, выберите Еще → Стандартные настройки. Вариант вернётся к поставочному виду, сохранённые копии не пострадают.
Регламентированные отчёты БП 3.0
Оборотно-сальдовая ведомость, анализ счёта, карточка счёта настраиваются через кнопку Показать настройки. Группировка задаётся на отдельной закладке: например, в ОСВ по счёту 41 можно сгруппировать по складам, затем по номенклатуре, а в ОСВ по счёту 60 — по контрагентам и договорам. Для разреза, которого нет на счёте в виде субконто, используется закладка детализации.
| Где задать группировку | Что меняется | Права |
|---|---|---|
Настройки → расширенный вид | уровни, поля, порядок | пользователь |
Еще → Изменить вариант отчета | структура, таблицы, оформление по уровням | пользователь с правом сохранять варианты |
Показать настройки (ОСВ, анализ счёта) | разрезы по субконто и детализация | пользователь |
| Схема СКД в конфигураторе | набор полей, ресурсы, вычисляемые поля | разработчик |
Структура СКД: группировки, таблицы и сводные отчёты
Когда отчёт делается в конфигураторе или во внешней обработке, группировки задаются на закладке Настройки конструктора схемы компоновки данных. Ниже — порядок для нового отчёта.
Шаг 1. Подготовьте набор данных
В запросе выберите измерения и числовые поля. Числа объявите на закладке Ресурсы: для суммы — функция Сумма, для цены — чаще Среднее или Максимум. Без этого итоги по группировкам не посчитаются.
Шаг 2. Постройте структуру
- На закладке
Настройкищёлкните правой кнопкой по корнюОтчети выберитеНовая группировка. - В окне выбора укажите поле и тип группировки (о типах — в следующем разделе). Пустое поле означает детальные записи.
- Чтобы вложить уровень, выделите созданную группировку и снова добавьте
Новая группировка. - На закладке
Выбранные поляотметьте колонки, которые нужны в отчёте.
Шаг 3. Сводная таблица вместо списка
Для сводного отчёта с колонками выберите не группировку, а Новая таблица. У таблицы две ветки:
- ➡️ Строки — например, номенклатура;
- ⬇️ Колонки — например, месяц или склад.
На пересечении выводятся ресурсы. Получается аналог сводной таблицы Excel: товары по строкам, месяцы по колонкам, сумма продаж в ячейках.
Группировка в программном коде
Если структуру нужно собрать на лету (например, по выбору пользователя на форме), группировка добавляется в настройки компоновщика:
Настройки = КомпоновщикНастроек.Настройки;
Группировка = Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ПолеГр = Группировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГр.Поле = Новый ПолеКомпоновкиДанных("Номенклатура");
ПолеГр.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Иерархия;
ПолеГр.Использование = Истина;
// без этих двух строк группировка выведется без колонок и без сортировки
Группировка.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
Группировка.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));
Частая ошибка — забыть автовыбранные поля. Отчёт сформируется, но строки группировки будут пустыми.
Группировка по иерархии справочника
Номенклатура, контрагенты, статьи затрат обычно разложены по папкам. Чтобы отчёт показал итог по каждой папке, в поле группировки меняют тип.
| Тип группировки | Что выводит | Когда нужен |
|---|---|---|
| Элементы | только элементы, без папок | плоский список товаров |
| Иерархия | папки с итогами и элементы внутри | обычный анализ по группам |
| Только иерархия | только папки, без элементов | сводка по группам товаров для руководителя |
В пользовательских настройках тип меняется так: в расширенном виде дважды щёлкните по полю группировки и выберите тип в колонке «Тип группировки». В конфигураторе — то же поле в окне группировки.
Иерархия работает только для иерархических справочников. Для «Склада» или «Организации» тип «Иерархия» ничего не изменит, если в справочнике нет групп.
Иерархия в языке запросов
Когда отчёт строится не на СКД, а на запросе с выводом в табличный документ, иерархию дают итоги запроса:
ВЫБРАТЬ
Продажи.Номенклатура КАК Номенклатура,
СУММА(Продажи.СуммаОборот) КАК Сумма
ИЗ
РегистрНакопления.Продажи.Обороты(&Начало, &Конец) КАК Продажи
СГРУППИРОВАТЬ ПО
Продажи.Номенклатура
ИТОГИ
СУММА(Сумма)
ПО
ОБЩИЕ,
Номенклатура ИЕРАРХИЯ
СГРУППИРОВАТЬ ПО сворачивает строки в одну на товар, а ИТОГИ ... ИЕРАРХИЯ добавляет строки-итоги по папкам. Обход результата делают методом Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией).
Имя регистра в примере условное: в БП 3.0 такого регистра продаж может не быть. Подставьте регистр своей конфигурации.
Группировка по периодам: день, месяц, квартал
Для динамики продаж, остатков или начислений группировка идёт по времени. Здесь два приёма, без которых отчёт по месяцам не собрать.
Приём 1. Периодичность виртуальной таблицы
Виртуальные таблицы Обороты и ОстаткиИОбороты регистров накопления принимают периодичность. Если в СКД выбрать её значение «Авто», схема сама добавит поля ПериодДень, ПериодНеделя, ПериодМесяц, ПериодКвартал, ПериодГод. Пользователь выбирает нужное поле в группировке, и отчёт пересчитывается без правки запроса.
Для периодических регистров сведений (цены, курсы, плановые показатели) группируют по полю Период. Если нужен срез «на конец месяца», используют таблицу СрезПоследних с параметром даты, а не всю историю записей.
Приём 2. Дополнение периодов
Месяцы без движений по умолчанию выпадают: в отчёте за год останется 9 строк вместо 12. Чтобы вывести и пустые месяцы:
- Откройте свойства поля группировки по периоду.
- В колонке «Тип дополнения» выберите
Месяц. - В колонках «Начало периода» и «Конец периода» укажите параметры отчёта —
&НачалоПериодаи&КонецПериода.
Теперь в отчёте за январь–декабрь будет ровно 12 строк, пустые месяцы выйдут с нулями или пустыми ячейками.
Итоги и условное оформление по уровням
Сгруппированный отчёт плохо читается, если все уровни выглядят одинаково. Здесь помогают итоги и оформление.
Где выводить итоги
В параметрах вывода группировки есть «Расположение итогов»: в начале, в конце, в начале и в конце или не выводить. Для общего итога отчёта — отдельный параметр «Расположение общих итогов». Типовая настройка — итог в начале, над вложенными строками; бухгалтеры часто предпочитают итог в конце, как в ведомости.
Выделение строк группировок
Условное оформление задаётся на закладке Условное оформление для всего отчёта или для конкретной группировки. Практичные варианты:
- 🎨 Жирный шрифт и заливка для строк папок. Оформление ставится на уровне группировки с типом «Иерархия», в его настройках область использования ограничивают иерархической группировкой.
- 🔴 Красный цвет для отрицательного остатка. Условие:
Ресурс меньше 0, оформление — цвет текста. - 🎯 Свой вид для каждого уровня. В условии используют системное поле
СистемныеПоля.УровеньВГруппировке: уровень 1 — заливка, уровень 2 — только жирный шрифт.
Если оформление действует везде, а нужно только в итогах, откройте свойства элемента оформления и снимите флажки «Использовать в» для детальных записей и заголовков.
Ошибки группировки и медленные отчёты
Что ускоряет отчёт с группировками
- ⚡ Фильтр в параметрах виртуальной таблицы, а не в отборе группировки. Отбор по периоду и организации, заданный параметром, отсекает данные ещё в запросе к регистру.
- ⚡ Меньше уровней с детальными записями. Каждый уровень с детализацией до документа резко увеличивает объём вывода. Для сводки детальные записи уберите.
- ⚡ Осторожно с вычисляемыми полями в группировках. Выражение считается для каждой строки, а ссылка на реквизит через точку («Номенклатура.Производитель.Страна») добавляет соединения с таблицами.
- ⚡ Крупный период в группировке. Если нужна динамика за три года, группируйте по месяцу или кварталу, а не по дню: 36 строк вместо 1 095.
- ⚡ Разные отчёты для разных задач. Вариант «на все случаи» с пятью уровнями и тремя таблицами медленнее и хуже читается, чем два простых.