При работе с крупными конфигурациями на базе 1С:Предприятие 8.3, такими как 1С:ERP Управление предприятием 2.5, разработчики часто сталкиваются с жесткой структурой интерфейса, продиктованной Библиотекой стандартных подсистем (БСП). Одной из таких особенностей является механизм «Дополнительных отчетов и обработок». По умолчанию, даже если мы укажем в настройках размещения конкретный раздел (например, «Производство»), ссылка на нашу обработку не появится в главном окне раздела. Она будет «спрятана» внутри стандартной ссылки «Дополнительные обработки».
Это создает дополнительные клики для пользователя, что снижает эргономику системы. Рассмотрим подробнее, почему так происходит и какие существуют способы вывести внешнюю обработку непосредственно в панель навигации или действий раздела.
Для начала проанализируем стандартный программный интерфейс, который используется для регистрации обработки в системе. В модуле объекта внешней обработки должна присутствовать экспортная функция СведенияОВнешнейОбработке(). Разберем типичный пример кода такой функции:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Наименование = НСтр("ru='(Ш) Пользователи к переносу'");
ПараметрыРегистрации.БезопасныйРежим = Ложь;
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.Информация = НСтр("ru='Внешняя обработка для переноса данных'");
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Идентификатор = "Ш_ПользователиКПереносу";
Команда.Представление = "(Ш) Пользователи к переносу";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Возврат ПараметрыРегистрации;
КонецФункции
В данном коде мы определяем базовые параметры. Использование ВидОбработкиДополнительнаяОбработка() жестко привязывает объект к стандартному списку БСП. Даже если в пользовательском режиме вы укажете в справочнике раздел «Производство», система всего лишь добавит запись в таблицу разрешений. Ссылка на саму форму в командном интерфейсе раздела не создается динамически — это архитектурное ограничение платформы и БСП для внешних объектов.
Это наиболее «правильный» с точки зрения разработки метод. Если нам нужно, чтобы внешняя обработка выглядела как полноценная часть системы, мы воспользуемся механизмом расширений. Выясним алгоритм действий:
Производство) и добавим ее в расширение. Далее в свойствах нашей обработки укажем принадлежность к этой подсистеме.Важный нюанс: Если мы хотим оставить обработку именно внешней (чтобы обновлять ее без расширения), в расширении мы создаем команду или обработку, которая программно вызывает запуск внешней обработки из справочника по ее наименованию или идентификатору. Но чаще всего проще просто внедрить код обработки непосредственно в расширение.
Существует интересный «трюк», позволяющий обойти ограничения без написания расширений. В 1С:ERP отчеты имеют больше привилегий в плане отображения в интерфейсе, чем обработки. Мы можем заставить систему думать, что наша обработка — это отчет.
Проанализируем ситуацию: для отчетов в БСП реализован механизм «Вариантов отчетов». Варианты отчетов можно выводить напрямую в панель отчетов раздела. Если мы изменим тип в функции регистрации, мы получим новые возможности:
// Вместо ВидОбработкиДополнительнаяОбработка() пишем:
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет();
После такой регистрации в справочнике «Дополнительные отчеты и обработки» наша обработка попадет в категорию отчетов. Теперь выполним следующие шаги в интерфейсе программы:
Это решение не требует программирования расширений и позволяет пользователю видеть ссылку на инструмент практически в один клик. Однако помните, что форма объекта при этом должна соответствовать логике вызова (иногда требуется наличие основной схемы компоновки данных, даже если она пустая).
Если задача стоит максимально просто — обеспечить быстрый доступ конкретному пользователю без изменения кода, разберем самый быстрый путь. Платформа 1С:Предприятие 8.3 обладает мощным механизмом «Избранного».
Пошаговый процесс для пользователя:
Этот метод часто недооценивают, но для конечного пользователя он является наиболее удобным, так как доступ к обработке теперь возможен из любого раздела программы, а не только из «Производства».
Выясним причины, по которым следует выбирать тот или иной метод:
Таким образом, выбор метода зависит от того, насколько критично для бизнеса «бесшовное» внедрение инструмента в интерфейс. Для ERP 2.5 наиболее профессиональным подходом считается использование расширения конфигурации с добавлением объекта в соответствующую подсистему.