Как добавить описание отчета из расширения в конфигурациях на БСП

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

При разработке расширений для современных конфигураций 1С, таких как Розница 2.0, Управление торговлей 11 или ERP, программисты часто сталкиваются с тем, что привычные механизмы платформы работают не так, как ожидается. Одной из таких задач является вывод описания отчета в панели отчетов. Вы можете заполнить поле Описание в свойствах метаданных объекта в расширении, привязать его к подсистеме, но в пользовательском интерфейсе поле описания все равно останется пустым.

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

Выясняем причину: почему не работает поле Описание в метаданных

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

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

Способ 1. Настройка описания в модуле менеджера отчета

Рассмотрим основной программный способ решения проблемы. Чтобы БСП корректно «подхватила» метаданные вашего отчета из расширения, необходимо использовать экспортную процедуру ПриОпределенииНастроекРегистрацииОтчета. Эта процедура вызывается системой при регистрации отчета в справочниках БСП.

Разберем по шагам, как реализовать этот метод в расширении:

  1. Перейдем в модуль менеджера вашего отчета в расширении.
  2. Создадим процедуру с ключевым словом Экспорт.
  3. Внутри процедуры обратимся к структуре настроек и заполним поле описания.

Пример программного кода:


// Процедура определяет настройки регистрации отчета в подсистеме "Варианты отчетов" БСП.
//
// Параметры:
//   НастройкиРегистрации - Структура - содержит параметры регистрации.
//
Процедура ПриОпределенииНастроекРегистрацииОтчета(НастройкиРегистрации) Экспорт

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

КонецПроцедуры

Важно помнить, что если вы используете мультиязычные интерфейсы, текст описания лучше оборачивать в функцию НСтр(), чтобы обеспечить корректную локализацию.

Способ 2. Описание для конкретных вариантов отчета

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

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


// Настраивает параметры отображения вариантов отчета.
//
// Параметры:
//  Настройки - Структура - настройки вариантов отчета.
//
Процедура НастроитьВариантыОтчета(Настройки) Экспорт
    
    // Получаем настройки конкретного варианта по его имени (имя из СКД)
    ОписаниеВарианта = Настройки.Варианты.Основной; // "Основной" - это имя варианта в СКД
    
    Если ОписаниеВарианта <> Неопределено Тогда
        ОписаниеВарианта.Описание = НСтр("ru = 'Детальный анализ движений денежных средств по кассам предприятия.'");
        ОписаниеВарианта.ВидимостьПоУмолчанию = Истина;
    КонецЕсли;

КонецПроцедуры

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

Критический этап: Обновление кэша вариантов отчетов

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

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

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

Особенности работы с подсистемами в расширениях

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

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

Резюме и практические советы

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

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

← На главную