Как обновить форму выбора вариантов в старых отчетах до современного интерфейса БСП?

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

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

Анализ причины различий в поведении форм

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

Критически важный момент: даже если вы измените свойство отчета ХранилищеВариантов, список вариантов может оказаться пустым. Это происходит потому, что БСП ведет собственный реестр вариантов в справочнике ВариантыОтчетов. Если записи об отчете в этом справочнике нет, форма выбора не сможет отобразить данные.

Шаг 1. Настройка хранилища вариантов в конфигураторе

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

  1. Откроем свойства нужного отчета.
  2. Найдем свойство ХранилищеВариантов.
  3. Выберем из списка ХранилищеВариантовОтчетов (это объект БСП).

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

Шаг 2. Регистрация предопределенных вариантов

Чтобы предопределенные варианты, созданные в схеме компоновки данных (СКД), появились в новом интерфейсе, их нужно зарегистрировать в системе. Рассмотрим программный способ настройки через общий модуль ВариантыОтчетовПереопределяемый.

В процедуре НастроитьВариантыОтчетов(Настройки) необходимо указать параметры вашего отчета. Это позволит системе «увидеть» отчет и включить его в общие списки. Пример добавления настроек:


Процедура НастроитьВариантыОтчетов(Настройки) Экспорт
    НастройкиОтчета = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.ИмяВашегоОтчета);
    НастройкиОтчета.Размещение.Вставить(Метаданные.Подсистемы.ИмяНужнойПодсистемы);
КонецПроцедуры

Также рекомендуется в модуле менеджера самого отчета определить процедуру НастроитьВариантыОтчета. Это позволит более гибко управлять описанием вариантов, указывать их важность или скрывать ненужные.

Шаг 3. Принудительное обновление вспомогательных данных

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

  1. Запустите информационную базу с параметром командной строки /С ЗапуститьОбновлениеИнформационнойБазы.
  2. Или временно увеличьте номер версии вашей конфигурации.

После выполнения этих действий система просканирует метаданные и заполнит реестр вариантов отчетов новыми данными из СКД.

Особенности работы с внешними отчетами

Если вы работаете с внешним отчетом, то механизмы интеграции немного отличаются. Рассмотрим необходимые условия для работы расширенной формы:

Проблема «потерянных» пользовательских настроек

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

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


// Пример логики переноса (схематично)
Настройки = ХранилищеОбщихНастроек.Загрузить("Объект/ИмяОтчета", "ИмяНастройки");
// Далее необходимо программно создать элемент в справочнике "Варианты отчетов"
// и поместить настройки в реквизит "Настройки", используя методы БСП.

Работа со схемой компоновки данных (СКД)

Иногда помогает полное пересоздание макета, но это трудоемкий процесс. Посмотрим, как можно упростить задачу через экспорт схемы. Если вы решили создать новый отчет-обертку, вы можете выгрузить СКД из старого отчета в XML-файл и загрузить её в новый.

  1. Откройте схему компоновки данных.
  2. Нажмите кнопку Сохранить схему в файл (расположена в левом нижнем углу окна СКД).
  3. В новом отчете создайте новый макет СКД и используйте кнопку Загрузить схему из файла.

Обратите внимание: само по себе содержимое XML-схемы не содержит информации о хранилище вариантов. Это свойство настраивается исключительно в корневом объекте метаданных «Отчет» в конфигураторе.

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

← На главную