Почему в отчете БСП не видны варианты в меню Еще – Варианты отчета и как это исправить?

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

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

Проанализируем механику работы подсистемы и разберем по шагам, почему так происходит и как вернуть варианты отчета на свое законное место.

Причина разного поведения командных меню

Разберем логику работы интерфейса БСП. Меню «Еще» – «Прочее» – «Выбрать вариант отчета...» формируется базовым механизмом платформы «1С:Предприятие». Платформа напрямую считывает схему компоновки данных (СКД) и выводит список всех заложенных в ней вариантов без участия прикладных справочников.

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

Решение 1. Обновление вспомогательных данных БСП

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

Разберем основные варианты выполнения этой процедуры:

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

Решение 2. Проверка регистрации отчета и модуля менеджера

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

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

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

Решение 3. Устранение коллизий при разработке внешних отчетов

Рассмотрим специфическую проблему, возникающую при отладке отчетов. Если отчет сначала подключался как внешний отчет через справочник ДополнительныеОтчетыИОбработки, а затем открывается напрямую через меню «Файл» – «Открыть», БСП может кэшировать настройки и конфликтовать со старыми привязками идентификаторов.

Для исправления подобного конфликта используем следующий алгоритм:

  1. Откроем отчет в конфигураторе.
  2. Выберем меню «Файл» – «Сохранить как...» (или «Сохранить копию»).
  3. Зададим отчету новое уникальное имя объекта и изменим его синоним.
  4. Откроем полученный файл в режиме «1С:Предприятие» — платформа и БСП инициализируют структуру настроек заново.

Решение 4. Ручная фиксация варианта пользователем

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

  1. Откроем отчет и перейдем в меню «Еще» – «Прочее» – «Выбрать вариант отчета...».
  2. Выберем нужный вариант из стандартного списка схемы компоновки.
  3. Нажмем «Еще» – «Сохранить вариант отчета...».
  4. В окне сохранения укажем доступность «Для всех пользователей» и запишем вариант.

После этой операции вариант запишется в Справочник.ВариантыОтчетов и будет отображаться в основном меню «Еще» – «Варианты отчета» у всех пользователей системы.

← На главную