Почему новый вариант отчета не отображается в 1С и как его зарегистрировать?

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

При разработке и доработке типовых конфигураций на базе Библиотеки стандартных подсистем (БСП), таких как «1С:Управление нашей фирмой», «1С:ERP», «1С:Комплексная автоматизация» или «1С:Управление торговлей», разработчики часто сталкиваются с ситуацией: в схему компоновки данных (СКД) добавлен новый вариант отчета, создана команда, но в пользовательском режиме при открытии списка вариантов новый вариант отсутствует. Также его не удается выбрать для вывода на рабочие панели (например, в «Монитор руководителя»).

Разберем причины такого поведения платформы и подсистемы «Варианты отчетов», а также рассмотрим пошаговый алгоритм правильной регистрации и обновления вариантов отчетов в информационной базе.

Архитектурные особенности подсистемы вариантов отчетов БСП

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

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

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

Шаг 1. Проверка свойств объекта метаданных

Перед написанием программного кода убедимся, что отчет правильно интегрирован в подсистему вариантов отчетов:

  1. В дереве метаданных конфигуратора откроем свойства нашего отчета.
  2. На вкладке Прочее проверим реквизит Хранилище вариантов отчетов — в нем должно быть указано системное хранилище ХранилищеВариантовОтчетов.
  3. Проверим наличие отчета в общем модуле ВариантыОтчетовПереопределяемый в процедуре НастроитьВариантыОтчетов. Для подключения отчета там должна присутствовать строка:
    ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИмяОтчета);

Шаг 2. Описание варианта в модуле менеджера отчета

Откроем модуль менеджера отчета и опишем новый вариант в экспортной процедуре НастроитьВариантыОтчета. Посмотрим на пример реализации:


#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область СлужебныйПрограммныйИнтерфейс

Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
	
	// Описание первого варианта
	НастройкиВарианта = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "Основной");
	НастройкиВарианта.Описание = НСтр("ru = 'Основной вариант отчета'");
	
	// Описание нового варианта для монитора руководителя
	НастройкиВарианта = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "ДляРуководителя");
	НастройкиВарианта.Описание = НСтр("ru = 'Отчет содержит данные о доходах и расходах (для руководителя)'");
	НастройкиВарианта.Включен = Истина;
	
КонецПроцедуры

#КонецОбласти

#КонецЕсли

Обратите внимание: имя варианта в коде (в примере — "ДляРуководителя") должно строго совпадать с именем варианта, заданным на вкладке «Настройки» в схеме компоновки данных (СКД).

Если отчет добавляется через расширение конфигурации, вместо изменения типового модуля используется процедура ПриОпределенииНастроек(Настройки) в модуле менеджера отчета расширения с установкой флага:


Процедура ПриОпределенииНастроек(Настройки) Экспорт
	Настройки.НастроитьВариантыОтчета = Истина;
КонецПроцедуры

Шаг 3. Обновление вспомогательных данных в информационной базе

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

Способ 1. Запуск с параметром обновления информационной базы

Этот способ отлично подходит для разового применения при развертывании обновлений:

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

Способ 2. Программный вызов метода обновления БСП

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


// Принудительное обновление состава вариантов отчетов
ВариантыОтчетов.Обновить();

Если конфигурация работает в режиме разделения данных (SaaS), для явного обновления общих и разделенных данных используем вызов с параметрами:


ПараметрыОбновления = Новый Структура("ОбщиеДанные, РазделенныеДанные", Истина, Истина);
ВариантыОтчетов.Обновить(ПараметрыОбновления);

Способ 3. Использование специализированной внешней обработки

В составе дистрибутива Библиотеки стандартных подсистем поставляется внешняя обработка ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf. Запустив ее в режиме «1С:Предприятие», можно выборочно или полностью обновить вспомогательные данные конфигурации, включая подсистему вариантов отчетов, без ручного написания служебного кода.

Возможные причины, если вариант все еще не виден

Если обновление выполнено, но вариант не появился в интерфейсе, проанализируем следующие моменты:

  1. Свойство видимости: проверим, не установлено ли свойство НастройкиВарианта.Включен = Ложь; в модуле менеджера. Если оно отключено, вариант регистрируется, но не выводится в списках для пользователей.
  2. Функциональные опции: если отчет или подсистема привязаны к функциональным опциям, которые отключены в настройках программы, вариант не будет отображаться.
  3. Права доступа и роли: убедимся, что у текущего пользователя есть права на просмотр отчета и чтение справочников подсистемы вариантов отчетов.

После выполнения перерегистрации данных новый вариант появится в общем списке отчетов и станет доступен для выбора на «Мониторе руководителя» и других аналитических панелях.

← На главную