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

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

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

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

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

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

Как СКД управляет состоянием группировок

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

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

Настройка свернутого вывода в схеме компоновки

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

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

Программное сворачивание группировок

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

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

Для Каждого Группировка Из Настройки.Структура Цикл

Если ТипЗнч(Группировка) = Тип("ГруппировкаКомпоновкиДанных") Тогда

Группировка.Состояние = СостояниеЭлементаНастройкиКомпоновкиДанных.Отключен;

КонецЕсли;

КонецЦикла;

Точное имя свойства и перечисления зависит от версии платформы и способа формирования отчета — сверяйтесь с синтакс-помощником по объекту «ГруппировкаКомпоновкиДанных» в вашей версии. После изменения настроек отчет нужно сформировать заново, иначе изменения не отобразятся.

Порядок действий при программной настройке
  1. 1
    Откройте модуль формы отчета или процедуру формирования во внешней обработке
  2. 2
    Найдите место после загрузки настроек компоновщика, но до вывода результата
  3. 3
    Обойдите коллекцию структуры настроек и установите состояние группировок
  4. 4
    Вызовите формирование отчета заново
  5. 5
    Проверьте отчет: заголовки группировок видны, детализация скрыта, итоги корректны

Сворачивание уже сформированного отчета

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

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

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

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

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

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

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

Вид отчета при открытии
Норма

Видны заголовки группировок с итогами, детализация скрыта

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

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

Ручной разворот группировки
Норма

Строки раскрываются мгновенно без пересчета

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

При развороте отчет формируется заново или появляется ошибка

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

Совпадают с итогами развернутого варианта

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

Суммы отличаются — проверяйте ресурсы и отборы

Типичные ошибки и ограничения

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

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

Типичные ошибки
01
Установка состояния до загрузки настроек — изменения перезаписываются компоновщиком
02
Сворачивание вместо исключения детализации в отчетах для рассылки — получатель не сможет развернуть статичный файл
03
Включение отладочной информации по группировкам во всех отчетах подряд — лишняя нагрузка на больших данных
04
Проверка только на тестовых данных — на реальном объеме поведение и скорость могут отличаться

FAQ

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

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

Почему настройка сворачивания не работает у части пользователей?

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

Как свернуть группировки в отчете, сформированном программно без формы?

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

Влияет ли сворачивание на скорость формирования отчета?

Само по себе — нет: СКД все равно рассчитывает все строки. Ускорение дает только исключение детальных данных из структуры настроек. Если цель — производительность, убирайте детализацию из структуры, а не сворачивайте ее визуально.

Как дать пользователю кнопку «Свернуть все» в форме отчета?

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

Итог

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

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