Почему не изменяется схема СКД во внешнем отчете 1С и как это исправить

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

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

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

Выясним причину проблемы

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

Проанализируем порядок действий платформы при первом открытии или сохранении отчета:

  1. При первом сохранении отчета в справочник Дополнительные отчеты и обработки или при его запуске через меню «Файл» -> «Открыть», конфигурация фиксирует структуру вариантов отчета в специальном системном хранилище ХранилищеВариантовОтчетов.
  2. Пользовательские настройки (выбранные поля, отборы, группировки) связываются с идентификатором отчета.
  3. Если пользователь хотя бы один раз изменил или сохранил настройки в режиме 1С:Предприятие, подсистема считает зафиксированную структуру приоритетной.
  4. При последующих редактированиях схемы СКД в Конфигураторе платформа продолжает подтягивать ранее сохраненный вариант настроек из базы данных, полностью игнорируя новые поля и параметры из внешнего файла.

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

Способ 1. Сброс настроек к стандартным в режиме 1С:Предприятие

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

Рассмотрим порядок действий по шагам:

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

Способ 2. Изменение имени внешнего отчета

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

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

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

Способ 3. Очистка пользовательских настроек через администрирование

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

  1. Перейдем в раздел Администрирование -> Настройки пользователей и прав -> Очистка настроек.
  2. Выберем пользователей, у которых необходимо обновить вариант отчета (или укажем вариант «Все пользователи»).
  3. Найдем в списке нужный отчет и выполним очистку его настроек.
  4. Дополнительно в разделе Администрирование -> Печатные формы, отчеты и обработки -> Варианты отчетов найдем соответствующий отчет и удалим устаревшие варианты.

Способ 4. Программный сброс настроек при отладке

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

В модуле объекта внешнего отчета в процедуру ПриКомпоновкеРезультата добавим сброс пользовательских настроек к настройкам по умолчанию:


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

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

← На главную