Внешняя обработка .epf: запуск, подключение и разбор кода в 1С 8.3

· 9 мин

Содержание

Открыть EPF файл в 1С быстрее всего так: запустите базу в режиме 1С:Предприятие, нажмите Ctrl+O (или Главное меню → Файл → Открыть), выберите файл .epf и подтвердите предупреждение безопасности. Обработка откроется в отдельном окне, в базе её регистрировать не нужно.

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

Способ 1. Разовый запуск внешней обработки в режиме 1С:Предприятие

Это вариант «запустил, поработал, закрыл». Подходит, когда обработку прислал программист или сопровождение и она нужна один-два раза.

  1. Запустите нужную информационную базу в режиме 1С:Предприятие (тонкий клиент подходит).
  2. Откройте главное меню: кнопка с тремя полосками в левом верхнем углу окна.
  3. Выберите Файл → Открыть или нажмите Ctrl+O.
  4. Укажите файл .epf на диске и нажмите «Открыть».
  5. Платформа покажет предупреждение о том, что файл может содержать опасный код. Если источник надёжный — нажмите «Да».
  6. Откроется основная форма обработки. Дальше работайте по её инструкции.

Так же открываются внешние отчёты — файлы .erf. Принцип и права те же.

Что нужно, чтобы пункт сработал

  • 🔑 Право на интерактивное открытие. В конфигурации у роли пользователя должно быть право «Интерактивное открытие внешних обработок». У администратора с полными правами оно есть. Обычному бухгалтеру его часто не дают, и тогда платформа сообщит о нарушении прав доступа.
  • 🛡 Защита от опасных действий. С платформы 8.3.9 при каждом открытии внешнего файла появляется предупреждение. Его отключают в свойствах пользователя: Конфигуратор → Администрирование → Пользователи, карточка пользователя, флаг «Защита от опасных действий». Снимайте флаг только тем, кто понимает, что запускает.
  • 🌐 Веб-клиент. В браузере файл тоже открывается через Файл → Открыть, но браузер сначала загрузит его на сервер. Иногда для этого нужно расширение работы с файлами.

Как выдать бухгалтеру право открывать обработки

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

  1. Откройте Администрирование → Настройки пользователей и прав → Группы доступа.
  2. Найдите группу с профилем, в состав которого входит роль «Интерактивное открытие внешних отчетов и обработок». Если такой нет — создайте профиль на основе существующего и добавьте роль.
  3. Включите в группу нужного пользователя и запишите.
  4. Пользователь должен перезайти в программу, чтобы права применились.

Если выдавать такое право не хочется, есть путь безопаснее: зарегистрировать конкретную обработку (способ 3) и открыть доступ только к ней.

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

Способ 2. Открыть файл в Конфигураторе: правка, просмотр кода и отладка

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

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

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

Типичная задача: обработка падает с ошибкой, а где именно — непонятно.

  1. Откройте файл .epf в Конфигураторе.
  2. Поставьте точку останова (F9) в нужной строке модуля.
  3. Запустите отладку: Отладка → Начать отладку → Тонкий клиент или F5.
  4. В открывшемся 1С:Предприятии откройте тот же самый файл через Файл → Открыть.
  5. Выполнение остановится на точке, можно смотреть значения переменных (Shift+F9 — вычислить выражение).

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

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

Способ 3. Подключить EPF через «Дополнительные отчёты и обработки»

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

Механизм есть в типовых конфигурациях на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА 2, ERP.

Шаг 1. Включите механизм

КонфигурацияГде включается
Бухгалтерия предприятия 3.0Администрирование → Печатные формы, отчеты и обработки
ЗУП 3.1Администрирование → Печатные формы, отчеты и обработки
УТ 11, КА 2, ERPНСИ и администрирование → Печатные формы, отчеты и обработки

Установите флажок «Дополнительные отчеты и обработки». Рядом станет активной ссылка с тем же названием.

Шаг 2. Добавьте файл

  1. Перейдите по ссылке «Дополнительные отчеты и обработки».
  2. Нажмите «Добавить из файла» (в некоторых релизах — «Создать», затем выбор файла).
  3. Подтвердите предупреждение безопасности и выберите .epf.
  4. Программа прочитает сведения из файла: наименование, вид, версию, список команд.

Шаг 3. Настройте размещение и доступ

  • 📂 Размещение — в каких разделах появится команда (например, «Банк и касса» или «Зарплата»). Для печатных форм и обработок заполнения вместо разделов указываются документы и справочники.
  • 👥 Быстрый доступ — каким пользователям показывать команду.
  • 🔄 Публикация — «Используется», «Режим отладки» или «Отключена». Режим отладки показывает обработку только администраторам: удобно для проверки.

Нажмите «Записать и закрыть». Команда появится в выбранном разделе, в группе дополнительных обработок.

Виды дополнительных обработок

ВидГде вызывается
Дополнительная обработкаИз раздела, как отдельная команда
Дополнительный отчётИз раздела, как отчёт
Печатная формаКнопка «Печать» в документе или справочнике
Заполнение объектаКнопка «Заполнить» в форме объекта
Создание связанных объектовКоманда «Создать на основании»

Не каждый EPF можно зарегистрировать. В модуле объекта должна быть экспортная функция СведенияОВнешнейОбработке(), которая описывает вид и команды. Если её нет, программа откажется добавлять файл. Такую обработку можно только открыть через Файл → Открыть или доработать в Конфигураторе.

Способ 4. Открыть внешнюю обработку кодом и из командной строки

Программное открытие нужно, когда обработка запускается из другой обработки, по расписанию или прямо при старте базы.

Ключ /Execute при запуске 1С

Платформа умеет запустить внешнюю обработку сразу после входа в базу. Пример ярлыка:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"" /Execute"D:\Tools\ZagruzkaCen.epf"
  • /F — путь к файловой базе (для серверной — /S"Сервер\ИмяБазы");
  • /N и /P — пользователь и пароль;
  • /Execute — какой файл .epf открыть после запуска.

Так делают ярлык «для склада», который сразу открывает обработку загрузки, или ночное задание через планировщик Windows.

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

Подключение из управляемой формы

В тонком клиенте файл сначала передают на сервер во временное хранилище, затем подключают и открывают форму:

&НаКлиенте
Процедура ОткрытьВнешнююОбработку(Команда)
	Оповещение = Новый ОписаниеОповещения("ПослеПомещенияФайла", ЭтотОбъект);
	НачатьПомещениеФайла(Оповещение, , , Истина, УникальныйИдентификатор);
КонецПроцедуры

&НаКлиенте
Процедура ПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
	Если Не Результат Тогда
		Возврат;
	КонецЕсли;
	ИмяОбработки = ПодключитьНаСервере(Адрес);
	ОткрытьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПодключитьНаСервере(Адрес)
	Возврат ВнешниеОбработки.Подключить(Адрес, , Ложь);
КонецФункции

Третий параметр Подключить — безопасный режим. По умолчанию он включён (Истина), и обработка не сможет работать с файлами, COM-объектами и внешними программами. Значение Ложь снимает ограничения, но требует соответствующих прав.

Если обработка нужна только как объект (без формы), на сервере её создают так: ВнешниеОбработки.Создать(ПолноеИмяФайла). Файл при этом должен лежать по пути, доступному именно серверу 1С, а не компьютеру пользователя.

Почему EPF не открывается: версии платформы и режимы

Большинство отказов связаны с тем, где и в какой версии файл создан.

Что видитеПричинаЧто сделать
Ошибка формата потока или сообщение о неверном формате файлаФайл сохранён в более новой платформе, чем та, в которой его открывают, или он повреждёнОбновите платформу на рабочем месте до номера не ниже того, в котором создан файл, или пересохраните обработку в нужной версии
Форма не открывается в тонком клиентеОбработка сделана на обычных формах (времена 8.2)Запустите толстый клиент в режиме обычного приложения или переделайте форму на управляемую
Поле объекта не обнаружено при выполненииОбработку писали под другую конфигурацию или релиз, нужного реквизита нетПопросите автора версию под вашу конфигурацию и релиз
Нарушение прав доступаНет права на открытие внешних обработокВыдать право или зарегистрировать обработку через дополнительные обработки
В веб-клиенте ничего не происходитБлокировка загрузки файла в браузереРазрешите расширение работы с файлами или запустите тонкий клиент

Двойной щелчок по файлу

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

Как запустить обработку на обычных формах

Старые обработки с обычными формами открываются в толстом клиенте. Для этого в ярлык или в настройки базы в окне запуска добавляют ключ /RunModeOrdinaryApplication:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /RunModeOrdinaryApplication

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

Обработки под 8.2 в базе 8.3

Файл из 8.2 платформа 8.3 обычно открывает. Проблемы начинаются в коде: модальные окна (Вопрос(), Предупреждение()) в конфигурациях с режимом без модальности вызывают ошибку. Это лечится только правкой кода в Конфигураторе.

Безопасность: как проверить содержимое EPF до запуска

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

Порядок проверки

  1. Откройте файл в Конфигураторе, а не в Предприятии: в Конфигураторе код не выполняется.
  2. Просмотрите модуль объекта и модули всех форм.
  3. Найдите поиском (Ctrl+F, область «Во всех модулях») опасные конструкции.
  4. Если модуль закрыт паролем и текст не виден — считайте это поводом не запускать обработку в рабочей базе.
  5. Первый запуск делайте на копии базы.

Что искать в коде

  • 💣 УдалитьОбъекты, .Удалить(), УстановитьПометкуУдаления — массовое удаление данных ;
  • 🖥 КомандаСистемы, ЗапуститьПриложение — запуск внешних программ;
  • 🔌 Новый COMОбъект — управление Windows и другими программами;
  • 🌐 HTTPСоединение, FTPСоединение, ИнтернетПочта — передача данных наружу;
  • 📁 УдалитьФайлы, КопироватьФайл — работа с файлами на диске;
  • ⚙️ Выполнить(, Вычислить( — выполнение произвольного кода из строки.

Наличие этих слов ещё не значит, что файл вредоносный: загрузка из Excel законно использует COM, а обмен — HTTP. Вопрос в том, совпадает ли поведение с описанием обработки.

Для сравнения версий и хранения в Git внешнюю обработку можно выгрузить в XML-файлы: в пакетном режиме Конфигуратора есть ключ /DumpExternalDataProcessorOrReportToFiles. Так видно, какие строки кода изменились между версиями.

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

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

Чем EPF отличается от ERF?
EPF — внешняя обработка, ERF — внешний отчёт. Открываются одинаково. Отчёт обычно только показывает данные, обработка может их менять.
Можно ли открыть EPF без установленной 1С?
Нет. Для запуска нужна платформа 1С:Предприятие и информационная база. Посмотреть код без базы можно сторонними утилитами распаковки, но выполнить обработку они не позволят.
Сохраняется ли открытая через «Файл → Открыть» обработка в базе?
Нет. После закрытия окна в базе от неё ничего не остаётся, кроме изменений данных, которые она сделала. Чтобы обработка хранилась в базе, её регистрируют в дополнительных обработках.
Работает ли внешняя обработка в 1С:Фреш и других облаках?
Открыть произвольный файл в облачном сервисе обычно нельзя. Обработку загружают через дополнительные обработки, и сервис проверяет её перед допуском.
Как обновить уже зарегистрированную обработку?
Откройте её карточку в списке дополнительных обработок и загрузите новую версию файла из карточки. Настройки размещения и доступа сохранятся.