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

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

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

Как свернуть группировки в СКД 1С: настройка начального состояния, вывод заголовков, поле «Группировка» в пользовательских настройках и свертывание программно.

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

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

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

Что значит «свернуть группировку» в СКД

Под свертыванием группировок обычно понимают одну из четырех задач. Первая — вывести отчет так, чтобы пользователь видел только верхний уровень (например, контрагентов), а вложенные строки (документы, товары) были скрыты до ручного раскрытия. Вторая — полностью убрать из результата детальные записи и оставить только строки группировок с итогами. Третья — сократить количество уровней вложенности в структуре отчета. Четвертая — дать пользователю возможность самому включать и отключать группировки через настройки.

Важно понимать, что СКД формирует результат в виде табличного документа, где уровни группировок соответствуют уровням группировки строк табличного документа. Это значит, что после формирования отчета стандартные команды табличного документа (управление уровнями группировок) работают и для результата СКД — пользователь может сворачивать и разворачивать строки кнопками уровней в панели табличного документа, если она отображается.

Скрытие детальных записей: оставить только итоги

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

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

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

Как убрать детальные записи
  1. 1
    Откройте отчет и перейдите в настройки (кнопка «Настройки» или «Еще — Изменить вариант»).
  2. 2
    На вкладке структуры найдите элемент «Детальные записи» внутри нужной группировки.
  3. 3
    Снимите флажок использования или удалите элемент из структуры.
  4. 4
    Сформируйте отчет и проверьте, что остались только строки группировок с итогами.
  5. 5
    Сохраните вариант отчета, чтобы настройка применялась постоянно.

Вывод группировок в свернутом состоянии при формировании

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

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

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

1c
// После формирования отчета в табличный документ
Результат.ПоказатьУровеньГруппировокСтрок(0); // только верхний уровень, остальное свернуто

Сокращение уровней вложенности в структуре отчета

Иногда «свернуть группировки» означает упростить саму структуру: в отчете три-четыре уровня вложенности (регион → менеджер → контрагент → документ), и отчет становится нечитаемым. В этом случае работа ведется в конструкторе настроек СКД на закладке «Настройки» в разделе структуры.

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

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

Способы компактного вывода

Удаление детальных записей

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

Объединение полей в одной группировке

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

Элемент «Таблица» вместо вложенности

Компактный перекрестный вид. Ограничение: требует, чтобы данные хорошо раскладывались по строкам и колонкам.

Сворачивание уровней табличного документа

Пользователь сам раскрывает нужное. Ограничение: требует программной доработки формы для начального состояния.

Управление группировками в пользовательском режиме

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

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

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

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

Проверьте, что в структуре нет элемента «Детальные записи»

Отчет слишком глубокий3 и более уровней вложенности

Объедините поля в одну группировку или используйте таблицу

Пользователь хочет сам управлятьФлажки в шапке отчета

Включите группировки в пользовательские настройки

Нужно свернутое состояние при открытииНачальный уровень табличного документа

Потребуется доработка формы отчета

Программное свертывание и типичные ошибки

При программной работе с СКД (через компоновщик макета и процессор компоновки) свертывание выполняется уже после вывода результата в табличный документ. Последовательность: сформировать отчет в табличный документ, затем вызвать метод установки отображаемого уровня группировок. Если отчет выводится в реквизит формы типа «Табличный документ», тот же метод вызывается для этого реквизита после формирования.

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

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

Типичные ошибки
01
Удаление детальных записей в единственном варианте отчета — пользователи теряют детализацию; создавайте отдельный краткий вариант.
02
Попытка найти штатный флажок «свернуть при формировании» — его нет, начальное состояние задается только программно для табличного документа.
03
Тип группировки «Только иерархия» для неиерархического поля — строки пропадают или дублируются.
04
Забытые ресурсы в выбранных полях — после удаления деталей итоги отображаются пустыми.
Контрольные точки

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

Состав строк отчета
Норма

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

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

Детальные строки всё еще выводятся — элемент не отключен

Работа уровней табличного документа
Норма

Кнопки уровней сворачивают и разворачивают строки

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

Кнопки неактивны — группировки строк не созданы

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

Суммы соответствуют ранее развернутому варианту

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

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

Сохраненный вариант
Норма

После переоткрытия отчет формируется в свернутом виде

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

Настройки сбрасываются — вариант не сохранен

Частые вопросы

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

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

Как пользователю свернуть строки в уже сформированном отчете?

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

Почему после удаления детальных записей пропали суммы?

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

Чем отличается «Только иерархия» от удаления детальных записей?

«Только иерархия» применяется к иерархическому справочнику и оставляет строки папок (узлов), убирая элементы. Удаление детальных записей убирает самый нижний уровень данных независимо от иерархии. Для неиерархических полей работает только второй способ.

Как сделать два режима — краткий и подробный?

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

Работает ли свертывание в отчетах на обычных формах?

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

Итог

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

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