Как вывести внешнюю обработку напрямую в интерфейс раздела в 1С:ERP?

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

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

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

Анализ стандартного механизма регистрации

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


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

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

Решение №1: Использование расширения конфигурации

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

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

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

Решение №2: Регистрация в виде «Дополнительного отчета»

Существует интересный «трюк», позволяющий обойти ограничения без написания расширений. В 1С:ERP отчеты имеют больше привилегий в плане отображения в интерфейсе, чем обработки. Мы можем заставить систему думать, что наша обработка — это отчет.

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


// Вместо ВидОбработкиДополнительнаяОбработка() пишем:
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();

После такой регистрации в справочнике «Дополнительные отчеты и обработки» наша обработка попадет в категорию отчетов. Теперь выполним следующие шаги в интерфейсе программы:

  1. Зайдем в раздел Производство -> Отчеты по производству.
  2. Найдем там наш «отчет» (возможно, придется нажать «Все отчеты»).
  3. Используя стандартные настройки панели отчетов, мы можем «приколоть» этот отчет так, чтобы он отображался сразу в списке доступных отчетов раздела.

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

Решение №3: Пользовательский метод «Избранное»

Если задача стоит максимально просто — обеспечить быстрый доступ конкретному пользователю без изменения кода, разберем самый быстрый путь. Платформа 1С:Предприятие 8.3 обладает мощным механизмом «Избранного».

Пошаговый процесс для пользователя:

  1. Один раз переходим в Производство -> Дополнительные обработки.
  2. Открываем нужную обработку.
  3. В заголовке окна (рядом с кнопкой закрытия или в меню «Сервис и настройки») нажимаем на символ звездочки.
  4. Теперь ссылка на обработку закреплена в панели избранного (звездочка на верхней панели программы).

Этот метод часто недооценивают, но для конечного пользователя он является наиболее удобным, так как доступ к обработке теперь возможен из любого раздела программы, а не только из «Производства».

Сравнительный анализ методов

Выясним причины, по которым следует выбирать тот или иной метод:

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

← На главную