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