При разработке отчетов на базе системы компоновки данных (СКД) программисты 1С часто сталкиваются с ситуацией: в конфигураторе на вкладке «Настройки» схема сформирована корректно, добавлены все необходимые группировки, однако при запуске отчета в режиме 1С:Предприятие одна или несколько группировок исчезают. Проанализируем основные причины такого поведения и разберем способы решения этой проблемы.
Одной из наиболее частых причин является использование платформой кэшированных настроек пользователя. Если отчет ранее уже запускался или формировался в режиме 1С:Предприятие, платформа сохраняет текущий вариант настроек в хранилище пользовательских настроек базы данных. При последующих изменениях структуры отчета в конфигураторе старые настройки продолжают применяться, перекрывая внесенные изменения.
Рассмотрим по шагам, как это исправить:
КлючВарианта схемы компоновки данных или создать новый вариант отчета, чтобы сбросить сохраненные настройки у всех пользователей.Выясним причину, связанную с правами и настройками системы. Если у текущего пользователя нет прав на просмотр полей, входящих в группировку (например, настроен RLS или ограничены права на реквизит), платформа 1С автоматически исключает такую группировку из итогового отчета.
Также видимость группировок может регулироваться функциональными опциями системы. Если реквизиты, по которым строится группировка, отключены функциональными опциями, группировка перестает выводиться в режиме 1С:Предприятие.
Проверим следующие моменты:
Разберем настройки самой схемы СКД непосредственно в конфигураторе:
Ограничение группировки. Если флаг стоит, поле нельзя использовать в качестве группировочного.Проанализируем программный код в модуле объекта отчета или в модуле формы отчета. Часто разработчики переопределяют настройки компоновщика перед выводом результата.
Проверьте модуль объекта отчета на наличие обработчика события ПриКомпоновкеРезультата. Если в коде очищается или переформируется структура компоновщика настроек, изменения из конфигуратора будут перезаписываться программно.
Рассмотрим пример кода в модуле объекта отчета:
Процедура ПриКомпоновкеРезультата(ИзменительМакета, СхемаКомпоновки, Настройки, ИсполнительМакета)
// Если в коде выполняется сброс или ручная сборка структуры:
// Настройки.Структура.Очистить();
// Это приведет к тому, что группировки из СКД не отобразятся в режиме предприятия.
КонецПроцедуры
Если в схеме компоновки данных используются пользовательские макеты на вкладке «Макеты», новая или измененная группировка может не отображаться, если для нее не задан соответствующий макет группировки или макет полей.
Посмотрим на вкладку «Макеты» в СКД и убедимся, что для всех созданных группировок корректно назначены правила оформления.