К статье
Практический материал

Разработка и Конфигурация · 8 мин

Как добавить внешнюю обработку в расширение конфигурации 1С

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

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

Добавить внешнюю обработку в расширение можно двумя путями: импортировать готовый EPF-файл напрямую в расширение через конфигуратор или перенести код и формы вручную. Ниже разобраны оба способа, ограничения платформы и типичные проблемы, с которыми сталкиваются разработчики.

Зачем переносить обработку из файла в расширение

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

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

Способ 1: импорт EPF-файла в расширение через конфигуратор

Это самый быстрый путь, если внешняя обработка уже готова и отлажена. Платформа умеет конвертировать EPF в объект расширения автоматически, включая формы, макеты и модули.

Порядок импорта обработки в расширение
  1. 1
    Откройте конфигуратор под пользователем с правами администратора
  2. 2
    Создайте новое расширение: Конфигурация → Расширения конфигурации → Создать, задайте имя и синоним
  3. 3
    Не закрывая окно расширения, откройте меню Файл → Открыть и выберите EPF-файл
  4. 4
    Подтвердите предложение платформы добавить обработку в расширение
  5. 5
    Сохраните расширение (F7 или иконка сохранения)
  6. 6
    Обновите конфигурацию базы данных (F7 в основном окне) и согласитесь на реструктуризацию
  7. 7
    Запустите 1С:Предприятие и проверьте появление обработки в интерфейсе

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

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

Способ 2: ручное создание обработки в расширении

Если импорт недоступен (например, обработка написана под старую версию платформы или содержит несовместимые элементы), объект создается вручную. В дереве расширения нажмите правой кнопкой на ветке «Обработки» → «Добавить», задайте имя и синоним.

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

Ручной способ дает контроль над кодом: заодно стоит удалить отладочные сообщения, заменить обращения к ИспользуемоеИмяФайла (в расширении это свойство пустое) и проверить все места, где логика зависела от того, что обработка внешняя.

Ограничения и подводные камни

Не все конструкции внешней обработки корректно работают внутри расширения. Самая частая проблема — программное создание объекта через ВнешниеОбработки.Создать(): в расширении обработка становится частью метаданных и вызывается иначе — через менеджер Обработки.ИмяОбработки.Создать().

Вторая типичная ситуация — получение формы. Внешняя обработка открывается через ПолучитьФорму("ВнешняяОбработка.Имя.Форма.ИмяФормы"), а обработка из расширения — через Обработки.ИмяОбработки.ПолучитьФорму("ИмяФормы"). Если код вызывает сам себя, эти строки нужно переписать.

Типичные ошибки при переносе
01
Вызов ВнешниеОбработки.Создать() вместо Обработки.Имя.Создать() — объект не находится, возникает ошибка
02
Сохранение расширения без обновления конфигурации базы данных — обработка не видна в режиме Предприятия
03
Забытый префикс в имени обработки — конфликт имен с существующими объектами конфигурации
04
Отключенный безопасный режим расширения в продуктивной базе — риск выполнения небезопасного кода
05
Использование ЭтотОбъект.ИспользуемоеИмяФайла — в расширении свойство пустое, логика ломается

Как проверить результат

После обновления конфигурации базы данных запустите 1С:Предприятие под обычным пользователем, а не только под разработчиком. Убедитесь, что обработка открывается, формы отрисовываются, а основные сценарии выполняются без ошибок прав доступа.

Контрольные точки

Контрольные точки после переноса

Обработка в дереве расширения
Норма

Объект виден в ветке «Обработки», формы и макеты на месте

Тревожный признак

Объект отсутствует — импорт не выполнен или расширение не сохранено

Запуск в режиме Предприятия
Норма

Обработка открывается и выполняет основные функции

Тревожный признак

Ошибка «Метод объекта не обнаружен» или «Обработка не найдена» — не обновлена конфигурация БД

Программные вызовы
Норма

Обработки.Имя.Создать() и ПолучитьФорму() работают

Тревожный признак

Ошибки в местах, где остался вызов ВнешниеОбработки

Права пользователей
Норма

Обработка доступна нужным ролям

Тревожный признак

У пользователей нет пункта в меню — проверить роли и подсистемы расширения

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

Расширение против подсистемы «Дополнительные отчеты и обработки»

Если конфигурация построена на Библиотеке стандартных подсистем (УТ, ERP, Бухгалтерия), у вас есть альтернатива: хранить обработку через стандартный механизм «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Файл загружается в базу и становится доступен пользователям без конфигуратора.

Расширение или дополнительные обработки БСП

Расширение конфигурации

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

Дополнительные отчеты и обработки (БСП)

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

Внешний EPF-файл

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

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

Часто задаваемые вопросы

Можно ли добавить в расширение внешний отчет (ERF), а не обработку?

Да, механизм идентичен: откройте ERF-файл через «Файл → Открыть» при активном расширении, и платформа предложит добавить отчет в его состав. Отчет появится в ветке «Отчеты» и будет доступен через менеджер Отчеты.ИмяОтчета.

Почему после импорта обработка не видна в режиме Предприятия?

Чаще всего не выполнено обновление конфигурации базы данных (F7 в конфигураторе) после сохранения расширения. Также проверьте, что расширение подключено и активно в списке расширений, а у пользователя есть права на объект.

Нужно ли менять код обработки после переноса в расширение?

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

Как обновить обработку в расширении после доработки EPF-файла?

Платформа не умеет автоматически перезаписывать объект расширения новой версией файла. Удалите старую обработку из расширения и импортируйте файл заново, либо переносите изменения вручную. Поэтому после переноса разработку лучше вести сразу в расширении или в EDT.

Будет ли работать расширение с обработкой после обновления основной конфигурации?

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

Можно ли отладить обработку внутри расширения?

Да, отладка работает штатно: установите точку останова в модуле обработки расширения и запустите отладку конфигуратора. Предмет отладки — клиентское приложение, в котором открывается обработка.

Итог

Что важно запомнить

Внешняя обработка добавляется в расширение простым открытием EPF-файла при активном окне расширения. После импорта обязательно сохраните расширение и обновите конфигурацию базы данных, проверьте вызовы ВнешниеОбработки в коде и протестируйте запуск под рядовым пользователем.