Почему изменения в схеме компоновки данных не отображаются в отчете 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Архитектура компоновщика настроек и механизм наложения

Проанализируем, как платформа 1С формирует итоговый макет отчета. Структура отчета СКД разделена на два уровня:

  1. Базовые настройки схемы: хранятся в свойстве СхемаКомпоновкиДанных.НастройкиПоУмолчанию и определяются разработчиком в конфигураторе.
  2. Пользовательские настройки: хранятся в объекте КомпоновщикНастроек.ПользовательскиеНастройки и в системных хранилищах настроек базы данных.

Когда пользователь открывает отчет в режиме 1С:Предприятие и хотя бы один раз меняет отбор, порядок группировок или состав колонок, платформа автоматически сохраняет эти параметры в системном хранилище (ХранилищеПользовательскихНастроекОтчетов или ХранилищеВариантовОтчетов). При последующих открытиях отчета сохраненные пользовательские настройки накладываются поверх схемы из конфигуратора. В результате любые изменения базового варианта игнорируются, так как сохраненный пользовательский вариант имеет наивысший приоритет.

Способ 1. Восстановление стандартных настроек в интерфейсе

Рассмотрим самый простой способ вернуть отчет к схеме, заданной в конфигураторе:

  1. Откроем форму отчета в режиме 1С:Предприятие.
  2. Нажмем кнопку Еще в командной панели формы.
  3. Выберем команду Стандартные настройки (в некоторых конфигурациях: Еще → Прочее → Изменить вариант... → Еще → Установить стандартные настройки).
  4. Сформируем отчет заново.

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

Способ 2. Очистка настроек через администрирование

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

  1. Перейдем в меню Функции для технического специалиста (или Все функции).
  2. Откроем обработку Настройки пользователей и прав или Очистка настроек.
  3. Выберем нужного пользователя и найдем в списке проблемный отчет.
  4. Удалим сохраненные настройки варианта отчета.

Способ 3. Программный сброс настроек при разработке

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

Посмотрим на пример инициализации и перезагрузки настроек по умолчанию:


КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(Новый ПользовательскиеНастройкиКомпоновкиДанных);

Данный код полностью переводит КомпоновщикНастроек в исходное состояние, соответствующее настройкам из схемы конфигуратора.

Другие возможные причины неизменности отчета

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

  1. Использование собственных макетов СКД: если на вкладке Макеты схемы компоновки вручную заданы макеты областей, полей или группировок, добавление новых полей в запрос или группировки не отобразится автоматически. СКД продолжит выводить жестко заданный макет ячеек, пока новые поля не будут прописаны в нем.
  2. Особенности отчетов на базе БСП: в конфигурациях с Библиотекой стандартных подсистем варианты отчетов регистрируются в справочнике Варианты отчетов. Для применения изменений схемы может потребоваться выполнить обновление предопределенных вариантов через раздел Администрирование → Печатные формы, отчеты и обработки → Отчеты.
  3. Переопределение в модуле объекта: проверим событие ПриКомпоновкеРезультата. Если в модуле объекта формирование отчета переопределено программно с использованием внешней схемы или жестко заданного макета, изменения структуры СКД в интерфейсе конфигуратора не окажут влияния.
  4. Динамическое обновление конфигурации: при использовании динамического обновления сервер 1С может кэшировать старую версию схемы. В этом случае поможет перезапуск сеанса клиента или службы сервера 1С:Предприятия.
← На главную