Как исправить ошибку "Не заполнено свойство хранилище вариантов" при добавлении внешнего отчета в 1С?

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

Проанализируем ситуацию и суть проблемы

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

Рассмотрим типичный пример кода, который разработчики помещают в модуль объекта отчета в функцию СведенияОВнешнейОбработке:


Функция СведенияОВнешнейОбработке() Экспорт
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Наименование", Метаданные().Представление());
    РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
    РегистрационныеДанные.Вставить("Версия", "0.11");
    РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет");
    РегистрационныеДанные.Вставить("Информация", "ДополнительныйОтчет");
    
    ///////////// команды /////////////////////////
    тзКоманд = Новый ТаблицаЗначений;
    тзКоманд.Колонки.Добавить("Идентификатор");
    тзКоманд.Колонки.Добавить("Представление");
    тзКоманд.Колонки.Добавить("Модификатор");
    тзКоманд.Колонки.Добавить("ПоказыватьОповещение");
    тзКоманд.Колонки.Добавить("Использование");
    строкаКоманды = тзКоманд.Добавить();
    строкаКоманды.Идентификатор = Метаданные().ПолноеИмя();
    строкаКоманды.Представление = Метаданные().Представление();
    строкаКоманды.ПоказыватьОповещение = Истина;
    строкаКоманды.Использование = "ОткрытиеФормы";
    РегистрационныеДанные.Вставить("Команды", тзКоманд);
    
    Возврат РегистрационныеДанные;    
КонецФункции

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

Почему возникает данная ошибка?

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

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

Решение проблемы: разберем по шагам

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

  1. Откройте ваш внешний отчет в режиме Конфигуратора.
  2. Кликните правой кнопкой мыши по корню отчета в дереве конфигурации (или нажмите сочетание клавиш для открытия палитры свойств).
  3. В открывшейся палитре свойств найдите поле Хранилище вариантов.
  4. В выпадающем списке этого свойства выберите значение ХранилищеВариантовОтчетов.

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

Сопутствующие настройки для полноценной работы

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

Для него следует выбрать значение ХранилищеПользовательскихНастроекОтчетов. Это позволит пользователям корректно сохранять свои индивидуальные быстрые отборы и настройки вывода отчета непосредственно в форме.

Нюансы работы с отчетами без СКД

Возникает закономерный вопрос: что делать, если внешний отчет написан без использования Системы компоновки данных (СКД) или вообще не подразумевает создания вариантов? Например, если отчет имеет свою уникальную управляемую форму с жестко заданной логикой работы.

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

Преимущества использования стандартного хранилища БСП

При указании стандартного БСП-хранилища вариантов (ХранилищеВариантовОтчетов), для вашего внешнего отчета автоматически начнут работать удобные типовые механизмы системы. Посмотрим на них подробнее:

  1. Рассылка отчетов: Появится возможность включать данный отчет в регламентные рассылки по расписанию.
  2. Сохранение вариантов: Пользователи смогут сохранять бесконечное множество своих вариантов отчета и делиться ими с коллегами.
  3. Панели отчетов: Отчет можно будет бесшовно размещать в стандартных панелях отчетов соответствующих подсистем программы, что делает работу пользователя более интуитивной.

Таким образом, простое заполнение двух свойств в Конфигураторе не только избавляет от ошибки при регистрации, но и глубоко интегрирует ваш внешний отчет в экосистему современных конфигураций 1С.

← На главную