Как встроить внешний отчет в разделы командного интерфейса 1С?

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

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

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

Выясним причину: особенности работы БСП и платформы 1С

Разберем, как устроен командный интерфейс подсистем в 1С. Состав команд, выводящихся на прямую панель навигации и панель действий раздела, формируется на этапе конфигуратора. Внешний файл отчета (.erf) по соображениям архитектуры платформы не может динамически внедрять собственные независимые команды непосредственно в состав командного интерфейса подсистемы конфигуратора.

Механизм БСП "Дополнительные отчеты и обработки" работает следующим образом:

  1. При подключении внешний отчет привязывается к выбранным разделам (подсистемам).
  2. Отчет отображается внутри панели отчетов соответствующего раздела либо в списке, который выводится по стандартной команде Дополнительные отчеты.
  3. Если встроенные в модуль отчета процедуры написаны по устаревшим стандартам или выключена видимость элемента в панели отчетов, пользователь не увидит команду запуска.

Обновляем код регистрации внешней обработки по стандартам БСП

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

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


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

Использование методов общего модуля ДополнительныеОтчетыИОбработкиКлиентСервер гарантирует правильное заполнение всех обязательных полей структуры регистрационных данных.

Решение проблемы через Расширение конфигурации

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

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

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

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

Настройка видимости отчета в панели отчетов подсистемы

Если отчет зарегистрирован штатно как дополнительный отчет в справочнике ДополнительныеОтчетыИОбработки, но пользователи не видят его в разделе, проверьте настройки панели отчетов:

  1. Откроем нужный раздел в режиме 1С:Предприятие.
  2. Перейдем в отчеты раздела и нажмите кнопку Настройка (или значок шестеренки в правом верхнем углу).
  3. В списке доступных отчетов найдем подключенный дополнительный отчет и установим для него галочку видимости.
  4. Сохраним настройки панели.

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

← На главную