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