Внешняя обработка .epf: устройство, запуск, проверка и создание своей

· 10 мин

Содержание

Файл с расширением EPF в 1С — это внешняя обработка (External Processing File): отдельная программа на встроенном языке, которая работает внутри вашей базы, но не входит в её конфигурацию. Открыть её можно двумя путями: разово через Файл → Открыть в режиме 1С:Предприятие или постоянно — через справочник «Дополнительные отчеты и обработки», если конфигурация типовая.

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

Что такое файл EPF и зачем он нужен

Внешняя обработка — это объект метаданных «Обработка», вынесенный в отдельный файл. Внутри у него всё то же, что у обработки в конфигураторе:

  • 🧩 реквизиты и табличные части — поля, в которые пользователь вводит параметры;
  • 🖼 формы — управляемые и, у старых обработок, обычные;
  • 📜 модуль объекта и модули форм — сам программный код;
  • 📄 макеты — шаблоны печатных форм, файлы загрузки, картинки.

Формат двоичный. Блокнотом или архиватором его не прочитать, зато Конфигуратор открывает файл целиком, вместе с исходным кодом.

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

  • 🖨 для дополнительных печатных форм — свой бланк счёта, акта, накладной;
  • 📥 для загрузки данных из Excel, XML, файлов банков и маркетплейсов;
  • 🛠 для групповых исправлений — заменить реквизит в тысяче документов, перезаполнить статьи затрат;
  • 🔄 для разовых переносов между базами;
  • 📊 для сервисных операций администратора — проверить ссылочную целостность, выгрузить список пользователей.

Обработка запускается в контексте той базы, где её открыли. Одна и та же EPF работает в разных базах только при условии, что в них есть объекты, к которым обращается её код. Обработка для БП 3.0, скорее всего, упадёт с ошибкой в ЗУП 3.1.

EPF, ERF, CF и CFE: чем различаются форматы 1С

Путаница между этими файлами — частая причина «не открывается». Коротко: EPF и ERF живут рядом с базой, CF и CFE меняют саму программу.

РасширениеЧто этоЧем открываютМеняет конфигурацию?
.epfвнешняя обработка1С:Предприятие, Конфигураторнет
.erfвнешний отчёт1С:Предприятие, Конфигураторнет
.cfфайл конфигурации целикомтолько Конфигураторда, заменяет или объединяет
.cfuфайл обновления конфигурациитолько Конфигураторда, обновляет
.cfeрасширение конфигурации1С:Предприятие (раздел расширений), Конфигуратордополняет, не трогая основную
.dtвыгрузка всей информационной базытолько Конфигураторзаменяет базу целиком

Разница между EPF и ERF — в назначении. Внешний отчёт строится на системе компоновки данных и выводит таблицу с настройками, отборами, вариантами. Внешняя обработка ничего такого не предполагает: она выполняет действия. Технически отчёт тоже может что-то записывать, а обработка — выводить таблицу, но в справочнике дополнительных отчетов и обработок у них разные виды, и подключаются они в разные места меню.

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

Как открыть внешнюю обработку в 1С 8.3

Разовый запуск через меню «Файл»

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

Обработка откроется в новой вкладке. После закрытия базы она нигде не сохраняется — в следующий раз придётся открывать файл снова.

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

Подключение через «Дополнительные отчеты и обработки»

В типовых конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11, КА, ERP) обработку лучше зарегистрировать в базе:

  1. Откройте Администрирование → Печатные формы, отчеты и обработки.
  2. Включите флажок «Дополнительные отчеты и обработки», если он снят.
  3. Перейдите по одноимённой ссылке и нажмите «Добавить из файла».
  4. Выберите .epf. Программа прочитает из файла название, версию, вид и список команд.
  5. На вкладке размещения укажите разделы, в которых появится команда, и пользователей, которым она доступна.
  6. Нажмите «Записать и закрыть».

После этого команда появится в разделе в пункте «Дополнительные обработки» (или в меню «Печать» документа — для печатных форм). Файл хранится внутри базы, и при обновлении обработки достаточно повторно выбрать «Загрузить из файла» в её карточке.

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

Какой способ выбрать

Как вы будете пользоваться обработкой?

Открытие в Конфигураторе

Чтобы посмотреть устройство обработки или поправить код, запустите базу в режиме Конфигуратор и выберите Файл → Открыть. Откроется дерево объекта: реквизиты, формы, макеты. Отсюда же можно запустить обработку в отладке: в меню Отладка есть команда начала отладки, после чего нужная форма открывается в запущенном сеансе через Файл → Открыть.

Безопасность внешних обработок: что проверить до запуска

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

Поэтому EPF из непроверенного источника не открывайте в рабочей базе под полными правами. Сначала — копия базы и просмотр кода.

Защита на уровне платформы

  • 🛡 Защита от опасных действий. В карточке пользователя есть одноимённый флажок. Когда он включён, платформа показывает предупреждение перед открытием внешнего файла. Выключать его ради удобства не стоит.
  • 🔒 Безопасный режим. Обработка, подключённая программно через ВнешниеОбработки.Подключить(), по умолчанию выполняется в безопасном режиме: без доступа к файлам, COM-объектам и внешним программам. Справочник БСП тоже ставит обработки в безопасный режим, если разработчик не запросил дополнительных разрешений.
  • 🏢 Профили безопасности кластера. На клиент-серверной базе администратор может ограничить, что разрешено внешним модулям на сервере.

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

Откройте файл в Конфигураторе и пройдитесь поиском (Ctrl+F, область — вся обработка) по таким словам:

УдалитьФайлы
ЗапуститьПриложение
КомандаСистемы
COMОбъект
HTTPСоединение
FTPСоединение
УстановитьПривилегированныйРежим
УстановитьБезопасныйРежим
ПользователиИнформационнойБазы
Удалить(

Сами по себе эти слова не значат вредоносность. Загрузка курсов по HTTP — нормальное дело. Подозрительно другое: соединение с неизвестным адресом, отключение безопасного режима, работа со списком пользователей в обработке «печати счёта», запутанный код со строками вроде Выполнить(ПолученнаяСтрока).

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

Как создать свою обработку в формате EPF

Пустая обработка за пять минут

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

Обработка готова. Её можно открыть в любой базе с подходящими объектами.

Регистрация для справочника БСП

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

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Функция СведенияОВнешнейОбработке() Экспорт

	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "1.0";

	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = "Загрузка прайса поставщика";
	Команда.Идентификатор = "ОткрытьФорму";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	Команда.ПоказыватьОповещение = Ложь;

	Возврат ПараметрыРегистрации;

КонецФункции

#КонецЕсли

Для печатной формы вид меняют на ВидОбработкиПечатнаяФорма(), в поле Назначение перечисляют документы, а тип команды ставят на вызов серверного метода с процедурой Печать() в модуле объекта. Точные требования к процедуре печати есть в документации БСП вашей версии.

Правила, по которым обработку удобно поддерживать

  • 🧭 Управляемые формы. Тонкий клиент и веб-клиент не показывают обычные формы. Новую обработку делайте только на управляемых.
  • 🧮 Тяжёлые вычисления — на сервере. Обращения к базе выносите в серверные процедуры формы или модуля объекта, а не гоняйте данные на клиент.
  • 🔢 Версия в имени или в регистрации. Через полгода в папке окажется пять ЗагрузкаПрайса.epf. Поле Версия и дата в имени файла снимают вопрос, какая из них рабочая.
  • 🧪 Транзакции и отказ. Групповое изменение данных оборачивайте в транзакцию или пишите с возможностью повторного запуска без задвоения.

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

Ошибки при работе с файлами EPF и что с ними делать

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

Отдельно про обновления конфигурации. После перехода на новый релиз БП или ЗУП зарегистрированная обработка может перестать работать: изменился реквизит документа или имя общего модуля. Типовая конфигурация в этом не виновата — обработку нужно поправить под новый релиз. Поэтому список подключённых дополнительных обработок полезно держать под рукой и проверять после каждого крупного обновления.

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

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