При разработке и сопровождении конфигураций на платформе 1С:Предприятие 8.3, особенно таких сложных, как ЗУП 3.1, ERP 2 или КА 2, программисты часто сталкиваются с проблемами при использовании расширений. Одна из наиболее коварных ошибок возникает после очередного обновления типовой конфигурации: отчет, добавленный через расширение, внезапно перестает открываться. Пользователь видит пугающее сообщение: «Не существующий вариант отчета... Необходимо выполнить обновление информационной базы или очистить настройки отчета». При этом попытки переименовать отчет или изменить его заголовок в Конфигураторе часто не приносят результата. В этой статье мы подробно разберем, почему это происходит и как раз и навсегда устранить проблему «неустановленного хранилища вариантов».
Для начала проанализируем ситуацию и выясним причину такого поведения системы. В современных версиях Библиотеки стандартных подсистем (БСП) механизмы работы с отчетами значительно усложнились. Теперь отчет — это не просто объект метаданных, это часть целой экосистемы подсистемы «Варианты отчетов». Система ожидает, что каждый отчет будет жестко интегрирован в её внутреннюю структуру управления настройками.
Когда мы добавляем собственный отчет в расширение, платформа позволяет оставить свойство Хранилище вариантов пустым. В старых версиях платформы и БСП это допускалось: система просто использовала стандартное системное хранилище. Однако в новых релизах (начиная с платформы 8.3.20 и выше) механизмы БСП стали требовать явного указания хранилища, которое умеет взаимодействовать со справочниками вариантов отчетов. Если свойство не заполнено, возникает конфликт между ожиданиями БСП и поведением платформы, что и приводит к ошибке «не существующий вариант».
Первым делом рассмотрим самое важное исправление, которое помогает в 99% случаев. Нам необходимо явно указать системе, где именно хранятся настройки нашего отчета.
Отчеты.Хранилище вариантов.ХранилищеВариантовОтчетов (это стандартный объект БСП, который должен быть заимствован в ваше расширение или существовать в основной конфигурации).Важный момент: если вы просто переименовали отчет в поле Имя, но не проверили настройки внутри СКД (Схемы компоновки данных), ошибка может сохраниться. Перейдем на закладку Настройки в СКД и убедимся, что Имя варианта и его Представление соответствуют действительности. Как показывает практика, старое имя может «застрять» в настройках СКД, и БСП продолжит искать старый идентификатор.
Даже после внесения изменений в Конфигураторе система может продолжать выдавать ошибку. Это происходит потому, что в информационной базе уже создана «битая» запись в справочнике Варианты отчетов. Нам нужно заставить БСП синхронизировать метаданные расширения с данными в базе.
Рассмотрим способ программного обновления. Мы можем воспользоваться консолью кода или внешней обработкой, чтобы вызвать метод обновления метаданных отчетов:
Справочники.ВариантыОтчетов.Обновить();
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
Если вы не хотите писать код, можно запустить сеанс «1С:Предприятия» с параметром командной строки /С ЗапуститьОбновлениеИнформационнойБазы. Это инициирует выполнение всех регламентных процедур обновления, включая регистрацию новых отчетов из расширений.
Если форма отчета не открывается вовсе, мы не можем сбросить настройки стандартными средствами из интерфейса самого отчета. В этом случае проанализируем ситуацию «снаружи» через системные справочники.
Функции для технического специалиста (если они не отображаются, их нужно включить в настройках параметров системы).Варианты отчетов.Иногда корень проблемы кроется в справочнике Идентификаторы объектов расширений. При обновлении конфигурации связь между внутренним GUID отчета в расширении и записью в этом справочнике может нарушиться. Если предыдущие шаги не помогли, выполним следующие действия:
Функции для технического специалиста найдем справочник Идентификаторы объектов расширений.Имя и Хэш суммы.Разберем еще один нюанс, который часто упускают из виду. У самого корневого объекта Расширение в Конфигураторе есть важное свойство — Обновлять настройки вариантов отчетов. Проанализируем его состояние:
Также проверим, включен ли ваш отчет хотя бы в одну подсистему. В современных версиях БСП отчеты, не привязанные к структуре интерфейса (не входящие в подсистему Командный интерфейс или не имеющие команды открытия), могут игнорироваться механизмами регистрации вариантов.
Подводя итог, составим краткий чек-лист для исправления ошибки:
Хранилище вариантов значением ХранилищеВариантовОтчетов.Настройки (соответствие имен и представлений).Варианты отчетов в режиме 1С:Предприятие.Следуя этим шагам, мы обеспечиваем корректную работу расширения в связке с БСП и избавляем пользователей от неприятных системных сообщений при запуске отчетов.