Открытие, подключение и запуск внешних обработок .epf из меню и кода

· 9 мин

Содержание

Чтобы воспользоваться внешней обработкой в 1С 8.3, её файл с расширением .epf открывают через Файл → Открыть либо подключают один раз как дополнительную обработку — тогда она появляется в интерфейсе как обычная команда. Оба способа работают в режиме «1С:Предприятие», заходить в Конфигуратор не нужно.

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

Ниже — оба способа по шагам, запуск из кода для разработчика, настройка прав и безопасного режима, а также разбор ошибок, из-за которых обработка не открывается.

Что такое внешняя обработка и когда она нужна

Внешняя обработка — это отдельный файл .epf, который содержит форму, код и макеты, но не входит в состав конфигурации. Платформа исполняет его «на лету», не внося изменений в саму базу. Внешний отчёт устроен так же, но имеет расширение .erf и предназначен для вывода данных.

Встроенная обработка, наоборот, хранится в дереве конфигурации. Чтобы её изменить, нужно снять базу с поддержки или использовать расширение, а потом обновить конфигурацию базы данных. Внешнюю достаточно положить в любую папку и открыть.

Отсюда и область применения:

  • 🔧 разовые операции: массовая корректировка реквизитов, перепроведение документов , загрузка данных из файла;
  • 📊 сервисные инструменты от сопровождающего программиста, которые не хочется «зашивать» в типовую конфигурацию ;
  • 🧪 проверка решения перед тем, как встроить его в конфигурацию насовсем;
  • 🖨️ дополнительные печатные формы и отчёты, подключаемые к документам.

Если обработка меняет данные в рабочей базе — сначала сделайте резервную копию. Внешний код выполняет те же операции, что и штатные документы, и так же способен испортить учёт при ошибке.

Как открыть внешнюю обработку через меню

Самый быстрый способ — открыть файл напрямую.

  1. Запустите базу в режиме «1С:Предприятие».
  2. В главном меню (кнопка со стрелкой в левом верхнем углу интерфейса «Такси») выберите Файл → Открыть.
  3. В диалоге укажите путь к файлу .epf и нажмите «Открыть».
  4. Откроется форма обработки — дальше работайте по её кнопкам.

Этот путь удобен, когда файл нужен один раз или от случая к случаю. Минус — обработку приходится каждый раз искать на диске, а сам .epf легко потерять или перепутать версию.

Через Файл → Открыть открываются и обработки, и отчёты: платформа сама определит тип файла по расширению. В веб-клиенте выбор файла идёт через стандартный диалог загрузки, и работать это будет только при включённом расширении для работы с файлами.

Каким способом подключать обработку?

Подключение как дополнительной обработки

В типовых конфигурациях на «Библиотеке стандартных подсистем» (БП 3.0, ЗУП 3.1, УТ 11 и других) есть механизм дополнительных отчётов и обработок. Он хранит .epf прямо внутри базы и показывает его команды в интерфейсе.

Сначала включите сам механизм:

  1. Откройте Администрирование → Печатные формы, отчёты и обработки.
  2. Поставьте флажок Дополнительные отчёты и обработки.
  3. Перейдите по ссылке Дополнительные отчёты и обработки, которая станет активной.

Теперь добавьте файл:

  1. Нажмите Добавить из файла и выберите нужный .epf.
  2. Платформа предупредит, что обработка из непроверенного источника может быть небезопасна. Подтверждайте, только если доверяете автору файла.
  3. В карточке укажите, в каких разделах и у каких документов будет доступна команда (поле Размещение).
  4. Запишите и закройте карточку.

После этого команда обработки появится там, где вы её разместили: в списке дополнительных обработок раздела или в меню конкретного документа. Файл при обновлении не потеряется — он лежит в базе, а не на диске у пользователя.

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

Права доступа: кому разрешено открывать обработки

Открыть внешнюю обработку через Файл → Открыть может не каждый. За это отвечает отдельное право роли — «Интерактивное открытие внешних отчётов» и «Интерактивное открытие внешних обработок». Если его нет, при попытке открыть файл пользователь получит сообщение о нарушении прав доступа.

Выдаётся право через роли:

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

Логика ограничения простая: внешний файл несёт произвольный код. Пользователь с правом открывать обработки фактически может выполнить в базе любое действие в пределах своих прав. Поэтому право держат у узкого круга.

Не выдавайте право на открытие внешних обработок всем подряд «чтобы не мешало». Через такой файл можно обойти ограничения интерфейса и изменить данные напрямую, минуя документы.

Безопасный режим и профили безопасности сервера

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

В клиент-серверном варианте за это отвечают профили безопасности кластера. Профиль описывает, что разрешено внешнему коду: к каким каталогам он может обращаться, какие COM-классы и внешние компоненты использовать. Без разрешающего профиля сервер не выполнит действия, которые безопасный режим блокирует, и вернёт ошибку вида «нарушение прав доступа в безопасном режиме».

Как это устроено на практике:

  • для дополнительных обработок флаг безопасного режима задаётся в их карточке — по умолчанию он включён;
  • чтобы обработка, которой нужен доступ к диску или внешней программе, заработала, администратор создаёт профиль безопасности и связывает его с этой обработкой;
  • профили настраиваются в консоли администрирования серверов 1С или в самой базе через механизм БСП.

Снимать безопасный режим «на всякий случай» не нужно. Сначала выясните, какое именно действие блокируется, и разрешите в профиле только его.

Как вызвать внешнюю обработку из кода

Разработчику обработку часто нужно не открыть руками, а выполнить программно — например, из регламентного задания или другой обработки.

Для этого в глобальном контексте есть объект ВнешниеОбработки. Загрузить файл и получить объект обработки можно так:

Обработка = ВнешниеОбработки.Создать("C:\Обработки\ЗагрузкаЦен.epf");
Обработка.ВыполнитьЗагрузку();

Здесь ВыполнитьЗагрузку — это экспортная процедура, объявленная в модуле самой обработки. Через полученный объект доступны все её экспортные методы и реквизиты.

Если нужна именно форма обработки, её возвращает метод ПолучитьФорму:

Форма = ВнешниеОбработки.ПолучитьФорму("C:\Обработки\ЗагрузкаЦен.epf");
Форма.Открыть();

Несколько правил, чтобы код не падал:

  • путь к файлу на сервере и на клиенте — разные вещи; при серверном вызове файл должен лежать там, где его видит сервер 1С;
  • для работы в безопасном режиме используйте УстановитьБезопасныйРежим(Истина) перед обращением к внешнему коду, если политика это требует;
  • точные сигнатуры методов смотрите в синтакс-помощнике Конфигуратора по ветке Внешние обработки — там указаны все параметры для вашей версии платформы.

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

Обработку можно запустить и при старте базы, не открывая её руками. Для этого платформу вызывают с параметром /Execute и путём к файлу:

1cv8 ENTERPRISE /F"C:\Базы\Бухгалтерия" /Execute"C:\Обработки\Сервис.epf"

Так удобно включать сервисную обработку в ярлык или bat-файл для планировщика. Обработка при этом выполнит свой код запуска и, если так задумано автором, закроется сама.

Типичные ошибки при работе с обработками

Чаще всего обработка не открывается не из-за «битого файла», а из-за прав или версии платформы. Разберём по симптомам.

Диагностика: выберите симптом

Отдельная причина, которую легко пропустить: обработка написана под другую конфигурацию. Файл, рассчитанный на реквизиты УТ, в «Бухгалтерии» либо выдаст ошибку обращения к несуществующему объекту, либо отработает не так, как ждёте.

Где хранить обработки и как вести версии

Главная слабость внешних обработок — они легко расползаются по дискам и почте. Через полгода у пяти человек оказывается три разные версии одного файла, и никто не знает, какая правильная.

Что с этим делать:

  • 📁 Единое хранилище. Держите актуальные .epf в одной сетевой папке или в самой базе (через механизм дополнительных обработок). У пользователей на руках — только ярлык или команда, а не копия файла.
  • 🏷️ Версия в имени. Пока обработка не в базе, помогает дата или номер версии прямо в имени файла: ЗагрузкаЦен_v3_2026-10.epf. Это грубо, но лучше, чем десяток одинаковых имён.
  • 🗂️ Контроль версий для исходников. Сам .epf — бинарный файл, в Git он ложится как есть и по нему не видно, что именно изменилось. Для нормальной истории правок обработку ведут в 1С:EDT или выгружают её модули и формы в текстовые файлы — тогда каждое изменение видно построчно.

Подключённые через БСП дополнительные обработки хранятся внутри базы, и при их замене старый вариант остаётся в истории изменений объекта — это дополнительная страховка от «а что там было в прошлой версии».

Перед запуском незнакомой обработки
Выполнено: 0 / 5

Частые вопросы

Чем внешняя обработка отличается от внешнего отчёта?
Расширением и назначением. Обработка (.epf) выполняет действия и может менять данные, отчёт (.erf) только выводит информацию и данные не правит. Открываются оба одинаково.
Можно ли открыть обработку в базовой версии 1С?
Как правило, нет: в базовых версиях конфигураций подключение внешних обработок ограничено. Это зависит от конкретной конфигурации, а не от платформы, — проверяйте в разделе администрирования своей базы.
Почему обработку просят именно подключить, а не открывать файлом?
Чтобы все работали с одной версией и файл нельзя было потерять или подменить. Подключённая обработка лежит в базе, доступ к ней настраивается ролями, а добавить её может только администратор.
Обработка работала, а после обновления платформы перестала. Почему?
Чаще всего она обращается к объектам конфигурации, которые в новом релизе переименовали или убрали. Нужна версия обработки под текущую конфигурацию — обновите её у автора.
Опасно ли запускать чужие обработки?
Да, если источник неизвестен. Внешний код выполняется с вашими правами и может изменить данные или обратиться к диску. Запускайте только файлы от тех, кому доверяете, и сначала на копии базы.