Внешняя обработка .epf: открыть, подключить, доработать и не пустить в базу вредный код
Содержание
Файл EPF в 1С — это внешняя обработка: отдельный файл с программным кодом и формами, который запускается поверх вашей базы, не меняя её конфигурацию. Чтобы с ним работать, его открывают через Главное меню → Файл → Открыть (или Ctrl+O) либо подключают в типовой конфигурации через Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки.
Создают и правят EPF в Конфигураторе. Внутри может быть что угодно: загрузка из Excel , групповое изменение реквизитов, печатная форма, выгрузка для банка. Поэтому чужой файл — это чужой код с вашими правами в базе. Про это тоже ниже.
Что лежит внутри EPF и зачем он нужен
EPF расшифровывается как External Processing File. По сути это «кусочек конфигурации», упакованный в один файл. У обработки есть:
- 🧩 модуль объекта — серверный код, процедуры и функции;
- 🖼️ одна или несколько форм со своими модулями;
- 📋 реквизиты и табличные части — данные, с которыми работает форма;
- 🖨️ макеты — шаблоны печатных форм или табличных документов.
Главный плюс — независимость от конфигурации. Обработку можно отдать коллеге, запустить в десяти базах, удалить. Типовая конфигурация остаётся на поддержке, и обновления ставятся без объединения.
Типичные задачи для внешней обработки:
- 📥 загрузка справочников и документов из Excel, CSV, XML;
- ✏️ массовое исправление реквизитов (например, проставить счёт учёта в сотне карточек);
- 🖨️ своя печатная форма счёта, акта, этикетки;
- 📤 выгрузка данных в формат банка, маркетплейса, сайта;
- 🔍 разовая проверка данных: поиск дублей, пустых полей, расхождений.
Платформе всё равно, как назван файл. Значение имеет только содержимое. Если у вас obrabotka.epf.zip, сначала распакуйте архив.
Чем EPF отличается от ERF, CF, CFE и других файлов 1С
В 1С десяток расширений файлов, и путают их постоянно. Сводка:
| Расширение | Что это | Меняет конфигурацию | Где открывают |
|---|---|---|---|
.epf | Внешняя обработка | Нет | Предприятие, Конфигуратор |
.erf | Внешний отчёт | Нет | Предприятие, Конфигуратор |
.cfe | Расширение конфигурации | Дополняет, не трогая основную | Предприятие или Конфигуратор |
.cf | Файл конфигурации целиком | Да, заменяет | Только Конфигуратор |
.cfu | Файл поставки обновления | Да | Только Конфигуратор |
.dt | Выгрузка всей базы с данными | Заменяет базу полностью | Только Конфигуратор |
EPF и ERF устроены почти одинаково. Разница в назначении: у отчёта есть схема компоновки данных и вариантов, он показывает данные. Обработка их меняет, загружает, печатает. Если нужна только таблица с итогами — делают ERF.
Когда что выбирать:
- EPF — разовые и вспомогательные задачи, печатные формы, загрузки. Подключается за минуту.
- CFE (расширение) — нужно изменить поведение типового документа, добавить реквизит , поменять форму. Внешняя обработка этого не умеет.
- CF — переносите конфигурацию целиком или ставите новую базу из шаблона.
Загрузка .cf или .dt в рабочую базу не похожа на открытие обработки. Это замена конфигурации или всех данных. Перед этим — резервная копия базы и монопольный режим.
В 1С 7.7 внешние обработки и отчёты были в одном формате .ert. В 8.x они разделены на .epf и .erf, и файл семёрки в 8.3 не откроется.
Как открыть файл EPF: два способа
Способ 1. Разово через меню «Файл»
Подходит, чтобы быстро проверить обработку или выполнить разовую операцию.
- Запустите базу в режиме 1С:Предприятие.
- Нажмите кнопку главного меню (три полоски в левом верхнем углу) и выберите
Файл → Открыть. Или простоCtrl+O. - Укажите EPF-файл на диске.
- Если появится окно «Предупреждение безопасности» — прочитайте его. Нажимайте «Да», только если доверяете источнику файла.
- Откроется основная форма обработки.
Ещё быстрее — перетащить файл мышью в окно программы или дважды щёлкнуть по нему, если .epf связан с 1С в Windows.
Пункт Файл не виден? Значит, у пользователя нет права «Интерактивное открытие внешних обработок». Это настраивает администратор базы.
Способ 2. Подключить через «Дополнительные отчеты и обработки»
Так делают с обработками, которыми пользуются постоянно. Работает в конфигурациях на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА, ERP, УНФ.
- Откройте
Администрирование → Печатные формы, отчеты и обработки. - Включите флажок «Дополнительные отчеты и обработки» и перейдите по ссылке с тем же названием.
- Нажмите «Добавить из файла» и выберите EPF.
- В карточке проверьте вид обработки и раздел размещения. На вкладке команд укажите пользователей, которым она будет доступна.
- Нажмите «Записать и закрыть».
После этого обработка появится в нужном разделе или в меню «Печать» документа. Файл хранится в базе — исходник на диске больше не нужен.
Если при добавлении программа пишет, что обработка несовместима с подсистемой, значит, в файле нет функции регистрации СведенияОВнешнейОбработке(). Такой файл открывают первым способом.
Сравнение способов
Через Файл → Открыть | Через доп. обработки БСП | |
|---|---|---|
| Когда | Разово, на пробу | Постоянная работа |
| Где хранится | Файл на диске | Внутри базы |
| Доступ | У кого есть право открывать внешние обработки | Кому назначили в карточке |
| Безопасный режим | Нет | Можно включить |
| Расписание | Нет | Да, для серверных команд |
Как создать собственную внешнюю обработку
Нужен Конфигуратор любой базы. Даже пустой — обработка к ней не привязывается, но для проверки кода лучше открыть базу с той же конфигурацией, где файл будет работать.
- Откройте Конфигуратор.
Файл → Новый → Внешняя обработка.- Задайте имя, например
ЗагрузкаНоменклатуры. Пробелы недопустимы. - Добавьте реквизиты и форму: в дереве обработки правой кнопкой по «Формы» → «Добавить». Конструктор сразу сделает её основной.
- Напишите код в модуле формы или модуле объекта.
Файл → Сохранитьи выберите путь с расширением.epf.
Минимальный пример: кнопка на форме считает элементы справочника «Номенклатура».
&НаКлиенте
Процедура Посчитать(Команда)
Сообщить("Позиций номенклатуры: " + Формат(ПосчитатьНаСервере(), "ЧГ=0"));
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПосчитатьНаСервере()
Запрос = Новый Запрос("ВЫБРАТЬ КОЛИЧЕСТВО(*) КАК Количество ИЗ Справочник.Номенклатура");
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Возврат Выборка.Количество;
КонецФункции
Регистрация для «Дополнительных отчетов и обработок»
Чтобы файл можно было добавить в БСП, в модуль объекта добавляют экспортную функцию:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
ПараметрыРегистрации.Версия = "1.0";
ПараметрыРегистрации.БезопасныйРежим = Истина;
Команда = ПараметрыРегистрации.Команды.Добавить();
Команда.Представление = "Загрузка номенклатуры";
Команда.Идентификатор = "ЗагрузкаНоменклатуры";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
Возврат ПараметрыРегистрации;
КонецФункции
Для печатной формы вид меняют на ВидОбработкиПечатнаяФорма() и указывают, к каким документам она относится. Для работы по расписанию — тип команды ТипКомандыВызовСерверногоМетода() и процедура ВыполнитьКоманду в модуле объекта.
Хранение исходников в Git
EPF — двоичный файл, Git не покажет разницу между версиями. Обработку раскладывают в XML-файлы командой пакетного режима (платформа 8.3.8 и выше):
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Test" /DumpExternalDataProcessorOrReportToFiles "D:\src\Zagruzka" "D:\epf\Zagruzka.epf"
Обратная сборка — параметр /LoadExternalDataProcessorOrReportFromFiles. Номер платформы в пути замените на свой. Разработчики в 1С:EDT работают с обработками сразу в исходниках.
Как отредактировать чужой EPF
- В Конфигураторе:
Файл → Открытьи выберите.epf. - Внесите правки,
Файл → Сохранить. - Если обработка подключена в БСП — откройте её карточку и загрузите новую версию из файла командой на форме карточки. Иначе база продолжит работать со старой версией.
Если модуль выглядит пустым или код недоступен, автор поставил пароль или удалил исходный текст. Обходить защиту не стоит: это нарушение прав автора, и такую обработку проще заказать заново или попросить исходник.
Правьте копию файла. Оригинал оставьте рядом с пометкой даты — так легко откатиться, если правка что-то сломает.
Почему EPF не открывается и что с этим делать
Ещё одна частая ситуация: в клиент-серверной базе код вызывает ВнешниеОбработки.Создать("C:\...\file.epf") на сервере. Путь читается на компьютере сервера 1С, а не у пользователя. Файл сначала передают на сервер через ПоместитьФайл и подключают методом ВнешниеОбработки.Подключить.
Защита от вредных внешних обработок
EPF без безопасного режима выполняет код с правами пользователя, который его открыл. Обработка может:
- 🗑️ удалить или исказить документы и справочники;
- 📤 выгрузить базу контрагентов и отправить её на чужой сервер;
- 💻 запустить программу на компьютере или сервере;
- 🔑 прочитать файлы, к которым у учётной записи Windows есть доступ.
Антивирус такой код обычно не ловит: для него это просто файл данных 1С.
Что настроить администратору:
- Права. Уберите у рядовых пользователей интерактивное открытие внешних обработок и отчётов. Рабочие обработки подключайте централизованно через БСП.
- Защита от опасных действий. В свойствах пользователя информационной базы оставьте включённой защиту от опасных действий. Тогда платформа предупреждает при открытии внешнего файла.
- Безопасный режим. В карточке дополнительной обработки держите его включённым, если обработке не нужен доступ к файлам и внешним программам.
- Профили безопасности. В клиент-серверном варианте на кластере можно назначить базе профиль безопасности. Он ограничивает, что внешний код может делать на сервере.
Интеграция: запуск EPF из других систем и по расписанию
Внешняя обработка — удобный «мостик» к внешним системам без доработки конфигурации.
Запуск при старте базы. Параметр командной строки /Execute открывает обработку сразу после входа:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\Bases\Buh" /N "Робот" /P "пароль" /Execute "D:\epf\Vygruzka.epf"
Так делают ночные выгрузки через планировщик Windows. Пароль в bat-файле — риск: заведите отдельного пользователя с минимальными правами.
По расписанию внутри базы. Обработка с командой вызова серверного метода, подключенная в БСП, получает настройку расписания в карточке. Это аккуратнее, чем bat-файл: работает на сервере, без открытия клиента.
Обмен с внешними сервисами. Внутри EPF можно читать файлы, обращаться к HTTP-сервисам через HTTPСоединение, работать с JSON и XML. Типичный пример — загрузка заказов с сайта или курсов из своего справочника цен.
COM-соединение. Другая программа подключается к базе через V83.COMConnector, а затем может создать внешнюю обработку и вызвать её экспортные методы. Удобно, когда логика уже написана в EPF.
Для постоянной интеграции со сложной логикой лучше расширение конфигурации или HTTP-сервис в расширении. EPF хорош, пока логика простая и её легко заменить файлом.