Разработка и Конфигурация · 8 мин
Как добавить внешнюю обработку в расширение конфигурации 1С
Пошаговая инструкция, как добавить внешнюю обработку в расширение 1С: импорт EPF-файла, настройка команд, проверка безопасного режима и типичные ошибки.
Внешние обработки (файлы с расширением .epf) удобны для разработки и отладки, но в продуктивной базе их лучше переносить в расширение конфигурации. Расширение хранится внутри базы, обновляется централизованно, не требует раздачи файлов пользователям и не зависит от настроек безопасного режима, который часто блокирует запуск внешних файлов.
Добавить внешнюю обработку в расширение можно двумя путями: импортировать готовый EPF-файл напрямую в расширение через конфигуратор или перенести код и формы вручную. Ниже разобраны оба способа, ограничения платформы и типичные проблемы, с которыми сталкиваются разработчики.
Зачем переносить обработку из файла в расширение
Запуск внешних обработок в типовых конфигурациях часто ограничен: в клиент-серверном режиме платформа запрещает открытие произвольных EPF-файлов, если администратор не разрешил это явно. Кроме того, файлы приходится копировать каждому пользователю или выкладывать в общий каталог, а при обновлении — следить за версиями вручную.
Расширение снимает эти проблемы. Обработка становится частью метаданных, распространяется вместе с базой, видна в подсистемах и может быть подключена к механизму «Дополнительные отчеты и обработки» (БСП) или вызвана из команд интерфейса. При обновлении расширения новая версия доезжает до всех пользователей автоматически.
Способ 1: импорт EPF-файла в расширение через конфигуратор
Это самый быстрый путь, если внешняя обработка уже готова и отлажена. Платформа умеет конвертировать EPF в объект расширения автоматически, включая формы, макеты и модули.
- 1Откройте конфигуратор под пользователем с правами администратора
- 2Создайте новое расширение: Конфигурация → Расширения конфигурации → Создать, задайте имя и синоним
- 3Не закрывая окно расширения, откройте меню Файл → Открыть и выберите EPF-файл
- 4Подтвердите предложение платформы добавить обработку в расширение
- 5Сохраните расширение (F7 или иконка сохранения)
- 6Обновите конфигурацию базы данных (F7 в основном окне) и согласитесь на реструктуризацию
- 7Запустите 1С:Предприятие и проверьте появление обработки в интерфейсе
После импорта обработка появится в ветке «Обработки» дерева расширения. Все формы, макеты и модуль объекта переносятся без изменений. Если в обработке использовались вызовы ЭтотОбъект.ПолучитьМакет() или обращения к метаданным внешней обработки, они продолжат работать, так как объект сохраняет ту же структуру.
Обратите внимание на свойства расширения: префикс имен, безопасный режим и защита от опасных действий. Для продуктивных баз рекомендуется оставлять безопасный режим включенным, если обработка не обращается к файловой системе напрямую.
Способ 2: ручное создание обработки в расширении
Если импорт недоступен (например, обработка написана под старую версию платформы или содержит несовместимые элементы), объект создается вручную. В дереве расширения нажмите правой кнопкой на ветке «Обработки» → «Добавить», задайте имя и синоним.
Далее переносите содержимое по частям: создайте формы с теми же именами, скопируйте код модулей из внешней обработки, добавьте макеты через правую кнопку на ветке «Макеты». Реквизиты формы и элементы придется воссоздать вручную либо скопировать через буфер обмена между двумя окнами конфигуратора — платформа позволяет копировать элементы формы целиком.
Ручной способ дает контроль над кодом: заодно стоит удалить отладочные сообщения, заменить обращения к ИспользуемоеИмяФайла (в расширении это свойство пустое) и проверить все места, где логика зависела от того, что обработка внешняя.
Ограничения и подводные камни
Не все конструкции внешней обработки корректно работают внутри расширения. Самая частая проблема — программное создание объекта через ВнешниеОбработки.Создать(): в расширении обработка становится частью метаданных и вызывается иначе — через менеджер Обработки.ИмяОбработки.Создать().
Вторая типичная ситуация — получение формы. Внешняя обработка открывается через ПолучитьФорму("ВнешняяОбработка.Имя.Форма.ИмяФормы"), а обработка из расширения — через Обработки.ИмяОбработки.ПолучитьФорму("ИмяФормы"). Если код вызывает сам себя, эти строки нужно переписать.
Как проверить результат
После обновления конфигурации базы данных запустите 1С:Предприятие под обычным пользователем, а не только под разработчиком. Убедитесь, что обработка открывается, формы отрисовываются, а основные сценарии выполняются без ошибок прав доступа.
Контрольные точки после переноса
Объект виден в ветке «Обработки», формы и макеты на месте
Объект отсутствует — импорт не выполнен или расширение не сохранено
Обработка открывается и выполняет основные функции
Ошибка «Метод объекта не обнаружен» или «Обработка не найдена» — не обновлена конфигурация БД
Обработки.Имя.Создать() и ПолучитьФорму() работают
Ошибки в местах, где остался вызов ВнешниеОбработки
Обработка доступна нужным ролям
У пользователей нет пункта в меню — проверить роли и подсистемы расширения
Дополнительно проверьте журнал регистрации после первого запуска: ошибки компиляции модулей расширения видны именно там, даже если интерфейс открылся без видимых проблем.
Расширение против подсистемы «Дополнительные отчеты и обработки»
Если конфигурация построена на Библиотеке стандартных подсистем (УТ, ERP, Бухгалтерия), у вас есть альтернатива: хранить обработку через стандартный механизм «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Файл загружается в базу и становится доступен пользователям без конфигуратора.
Расширение или дополнительные обработки БСП
Подходит, когда обработка — часть доработки: нужны команды в интерфейсе, программные вызовы, поставка вместе с другими изменениями. Требует доступа к конфигуратору.
Подходит для автономных сервисных обработок и отчетов. Загружается пользователем-администратором без конфигуратора, обновляется заменой файла прямо в режиме Предприятия.
Только для разработки и отладки. В продуктиве блокируется безопасным режимом и требует ручной раздачи файлов.
Выбор зависит от жизненного цикла обработки. Разовая сервисная утилита удобнее в БСП, а функционал, который станет постоянной частью учетной системы, надежнее оформить расширением.
Часто задаваемые вопросы
Можно ли добавить в расширение внешний отчет (ERF), а не обработку?
Да, механизм идентичен: откройте ERF-файл через «Файл → Открыть» при активном расширении, и платформа предложит добавить отчет в его состав. Отчет появится в ветке «Отчеты» и будет доступен через менеджер Отчеты.ИмяОтчета.
Почему после импорта обработка не видна в режиме Предприятия?
Чаще всего не выполнено обновление конфигурации базы данных (F7 в конфигураторе) после сохранения расширения. Также проверьте, что расширение подключено и активно в списке расширений, а у пользователя есть права на объект.
Нужно ли менять код обработки после переноса в расширение?
Если обработка не вызывает сама себя программно и не использует свойства внешнего файла (ИспользуемоеИмяФайла, ВнешниеОбработки.Создать), код менять не требуется. В противном случае замените вызовы на Обработки.ИмяОбработки.Создать() и соответствующие обращения к формам.
Как обновить обработку в расширении после доработки EPF-файла?
Платформа не умеет автоматически перезаписывать объект расширения новой версией файла. Удалите старую обработку из расширения и импортируйте файл заново, либо переносите изменения вручную. Поэтому после переноса разработку лучше вести сразу в расширении или в EDT.
Будет ли работать расширение с обработкой после обновления основной конфигурации?
Обычно да, если обработка не обращается к объектам, которые были переименованы или удалены при обновлении. После обновления конфигурации проверьте расширение на совместимость: конфигуратор покажет ошибки при попытке обновления базы данных.
Можно ли отладить обработку внутри расширения?
Да, отладка работает штатно: установите точку останова в модуле обработки расширения и запустите отладку конфигуратора. Предмет отладки — клиентское приложение, в котором открывается обработка.
Что важно запомнить
Внешняя обработка добавляется в расширение простым открытием EPF-файла при активном окне расширения. После импорта обязательно сохраните расширение и обновите конфигурацию базы данных, проверьте вызовы ВнешниеОбработки в коде и протестируйте запуск под рядовым пользователем.