Как исправить ошибку «Несуществующий вариант отчета Основной» в 1С:УНФ и других конфигурациях на БСП

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

При обновлении типовых конфигураций, таких как 1С:Управление нашей фирмой (УНФ), Зарплата и управление персоналом (ЗУП) или Розница, разработчики часто сталкиваются с неприятной ситуацией: добавленные ранее пользовательские отчеты перестают открываться. Вместо привычного интерфейса система выдает критическую ошибку: «Несуществующий вариант отчета Основной... Необходимо выполнить обновление информационной базы или очистить настройки отчета». Проблема локализуется в общем модуле при попытке системы найти настройки варианта в справочнике ВариантыОтчетов.

В этой статье мы подробно разберем, почему возникает эта ошибка в современных версиях Библиотеки стандартных подсистем (БСП), и рассмотрим несколько способов её решения — от простых настроек в конфигураторе до программного управления регистрацией метаданных.

Причина возникновения проблемы

Рассмотрим механизм работы подсистемы «Варианты отчетов». В свежих редакциях БСП (начиная с версий, используемых в УНФ 1.6.27 и выше) значительно ужесточились требования к регистрации объектов метаданных. Если раньше отчет мог открываться «на лету» через общую форму, то теперь система требует, чтобы каждый вариант отчета был физически зарегистрирован в справочнике ВариантыОтчетов. Если записи в справочнике нет, общая форма отчета (ФормаОтчета) не может инициализировать настройки и выбрасывает исключение.

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

  1. Отсутствие хранилища вариантов: В метаданных отчета не указано стандартное хранилище БСП.
  2. Сбой обновления вспомогательных данных: После добавления отчета или обновления конфигурации не была запущена процедура регистрации новых объектов.
  3. Особенности расширений: Отчеты, добавленные через расширения, требуют заимствования определенных системных объектов для корректной работы.
  4. Кэш идентификаторов: Несоответствие между справочником ИдентификаторыОбъектовМетаданных и реальным составом конфигурации.

Решение 1: Настройка свойств метаданных (Хранилище вариантов)

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

Выполним следующие шаги:

  1. Откроем конфигуратор и найдем ваш отчет (в основной конфигурации или в расширении).
  2. Перейдем в палитру свойств отчета.
  3. Найдем поле «Хранилище вариантов».
  4. Выберем в нем значение ХранилищеВариантовОтчетов. Это стандартный объект БСП, который отвечает за связь метаданных со справочником вариантов.
  5. Аналогично проверим поле «Хранилище настроек» — там также должно быть указано соответствующее системное хранилище (обычно ХранилищеОбщихНастроек или специализированное хранилище БСП).

Важное замечание для отчетов в расширениях: Если ваш отчет находится в расширении, вам необходимо сначала заимствовать объект ХранилищеВариантовОтчетов из основной конфигурации в это расширение, и только после этого выбирать его в свойствах отчета.

Решение 2: Принудительное обновление вспомогательных данных

Если свойства заполнены верно, но ошибка сохраняется, значит, система «не видит» ваш отчет в реестре вариантов. Выясним, как заставить БСП пересканировать метаданные.

Рассмотрим вариант с использованием параметров запуска. Закроем сеанс «1С:Предприятие» и запустим его снова, добавив в строку запуска (или в поле «Дополнительные параметры запуска» в окне выбора баз) следующий ключ:

/C ЗапуститьОбновлениеИнформационнойБазы

После запуска системы начнется процесс выполнения процедур обновления. БСП должна обнаружить новые отчеты и создать для них записи в справочнике ВариантыОтчетов. Если это не помогло, воспользуемся специализированной обработкой из состава БСП — «ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf». В ней нужно выбрать пункт, связанный с обновлением вариантов отчетов, и запустить выполнение.

Решение 3: Программная регистрация отчета

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

Добавим в модуль объекта вашего отчета экспортную процедуру, которую вызывает БСП при обновлении:


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

Также полезно использовать точечное обновление конкретного отчета через консоль кода (обработку «Групповая обработка справочников и документов» или аналоги), выполнив следующий фрагмент:


// Принудительное обновление конкретного отчета
МетаданныеОтчета = Метаданные.Отчеты.ИмяВашегоОтчета;
ВариантыОтчетов.ОбновитьОтчет(МетаданныеОтчета);

Решение 4: Регистрация в подсистемах (для отчетов в расширениях)

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

Для этого в общем модуле ВариантыОтчетовПереопределяемый (который также нужно заимствовать в расширение) найдем процедуру ОпределитьРазделыСВариантамиОтчетов и добавим в неё вашу подсистему:


&После("ОпределитьРазделыСВариантамиОтчетов")
Процедура Расш_ОпределитьРазделыСВариантамиОтчетов(Разделы)
    // Добавляем вашу подсистему из расширения в список разделов с отчетами
    Разделы.Добавить(Метаданные.Подсистемы.НашаСобственнаяПодсистема);
КонецПроцедуры

Дополнительные нюансы и проверка СКД

Иногда корень проблемы кроется в самой Схеме компоновки данных (СКД). Проанализируем настройки схемы:

  1. Откроем СКД вашего отчета.
  2. Перейдем на закладку «Настройки».
  3. Убедимся, что в списке вариантов (слева внизу) действительно есть вариант с именем «Основной». Если вы переименовали его, например, в «Сводный», а система ищет «Основной» (так как это прописано в коде вызова), возникнет ошибка.
  4. Проверьте, чтобы в конфигураторе на основной вкладке свойств отчета в поле «Основная схема компоновки данных» была выбрана именно эта схема.

Если вы используете платформу версии 8.3.18 и выше, обратите внимание на режим совместимости. В новых версиях платформы работа с расширениями стала более строгой, и отсутствие заполненного свойства Хранилище вариантов почти всегда приводит к невозможности использовать стандартную форму отчета БСП.

Подведем итог: Для исправления ошибки чаще всего достаточно установить ХранилищеВариантовОтчетов в свойствах и запустить базу с ключом /C ЗапуститьОбновлениеИнформационнойБазы. Если же отчет находится в расширении, не забудьте заимствовать хранилище и проверить привязку к подсистемам в переопределяемом модуле.

← На главную