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