К статье
Практический материал

Разработка и Конфигурация · 13 мин

EPF: как создать файл внешней обработки для 1С

Как создать EPF-файл для 1С через конфигуратор: пошаговая инструкция, написание кода обработки, подключение к базе, типичные ошибки и проверка результата.

Файл с расширением EPF — это внешняя обработка 1С: самостоятельный программный модуль, который открывается в режиме «Предприятие» и выполняет полезные действия без изменения конфигурации базы. Такой формат используют для разовых операций с данными, тестирования алгоритмов, пакетной обработки документов и выгрузки информации, когда дорабатывать саму конфигурацию нельзя или нерационально.

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

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

Что нужно подготовить перед созданием EPF-файла

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

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

Также заранее определите, в каком режиме будет работать обработка — обычном или управляемом. Большинство современных конфигураций (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) работают в режиме управляемого приложения, поэтому форму обработки следует создавать управляемой. Если форму не создавать вовсе, обработка сможет выполнять только серверные действия без интерфейса.

Создание новой внешней обработки в конфигураторе

Откройте конфигуратор любой информационной базы. В главном меню выберите «Файл → Новый» (или нажмите Ctrl+N). В появившемся списке типов документов найдите пункт «Внешняя обработка» и подтвердите выбор. Откроется окно новой обработки с пустой структурой: разделы «Формы», «Макеты», «Модуль объекта».

Первым делом задайте имя и синоним обработки в палитре свойств. Имя используется в коде и должно быть без пробелов, синоним — это заголовок, который увидит пользователь. Например, имя «ВыгрузкаОстатков», синоним «Выгрузка остатков склада». Эти же данные позже используются при подключении обработки через механизм дополнительных отчётов и обработок.

На этом этапе обработка уже технически существует, но пока не содержит ни интерфейса, ни логики. Сохраните её сразу, чтобы зафиксировать файл: меню «Файл → Сохранить как», укажите папку и имя файла. Платформа автоматически добавит расширение .epf. Дальнейшая работа ведётся с этим файлом — при сохранении (Ctrl+S) изменения пишутся в него, а не в конфигурацию базы.

Порядок создания EPF-файла
  1. 1
    Откройте конфигуратор и выберите «Файл → Новый → Внешняя обработка»
  2. 2
    Задайте имя и синоним обработки в палитре свойств
  3. 3
    Сохраните файл на диск через «Файл → Сохранить как» — появится файл с расширением .epf
  4. 4
    Добавьте форму и напишите код обработчиков
  5. 5
    Сохраните изменения и откройте файл в режиме «Предприятие» для проверки

Добавление формы и элементов интерфейса

Создание управляемой формы

В дереве обработки нажмите кнопку добавления у раздела «Формы» или вызовите контекстное меню и выберите «Добавить». Конструктор предложит создать основную форму обработки — согласитесь с типом «Форма обработки». Откроется редактор формы: слева дерево элементов, справа список реквизитов, внизу вкладки модуля формы.

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

Когда форма не нужна

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

Написание кода обработки

Код внешней обработки пишется на встроенном языке 1С и распределяется по модулям: модуль формы (реакция на кнопки и действия пользователя), модуль объекта (серверная логика и сведения об обработке), модуль менеджера (используется редко). Для простой обработки достаточно обработчика команды в модуле формы.

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

&НаКлиенте

Процедура ВыполнитьОбработку(Команда)

Сообщить("Обработка запущена. Период: " + Формат(Период, "ДЛФ=D"));

КонецПроцедуры

Если обработка обращается к данным базы — читает документы, изменяет справочники — этот код должен выполняться на сервере. В управляемой форме для этого создают серверную процедуру с директивой &НаСервере и вызывают её из клиентского обработчика кнопки. Прямое обращение к запросам и объектам базы из клиентского контекста в управляемом приложении недоступно.

Для подключения к типовой конфигурации через механизм дополнительных обработок добавьте в модуль объекта функцию описания:

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

ПараметрыРегистрации = Новый Структура;

ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");

ПараметрыРегистрации.Вставить("Наименование", "Выгрузка остатков склада");

ПараметрыРегистрации.Вставить("Версия", "1.0");

ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);

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

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

bsl
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
    ВыполнитьОбработкуНаСервере();
    Сообщить("Обработка завершена");
КонецПроцедуры

&НаСервере
Процедура ВыполнитьОбработкуНаСервере()
    Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 10 Т.Ссылка ИЗ Справочник.Номенклатура КАК Т");
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Сообщить(Строка(Выборка.Ссылка));
    КонецЦикла;
КонецПроцедуры

Сохранение и запуск обработки в базе

После написания кода сохраните обработку (Ctrl+S). Убедитесь, что сохранение прошло именно в EPF-файл: в заголовке окна конфигуратора отображается путь к файлу. Если вы создавали обработку через «Новый», но ни разу не сохраняли, файла на диске ещё нет — используйте «Сохранить как».

Самый простой способ запуска — открыть файл в режиме «Предприятие»: меню «Файл → Открыть» (Ctrl+O), выбрать EPF-файл. Обработка запустится в текущей базе с правами текущего пользователя. Этот способ подходит для разовых операций и тестирования.

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

Способы запуска EPF

Файл → Открыть в режиме «Предприятие»

Быстро и без настройки; подходит для разовых задач и отладки. Ограничение: пользователь должен каждый раз выбирать файл вручную.

Дополнительные отчеты и обработки (БСП)

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

Запуск из командной строки / планировщика

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

Проверка результата и отладка

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

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

Контрольные точки

Как проверить результат

Файл открывается в режиме «Предприятие» без ошибок
Норма

Обработка запускается, форма отображается

Тревожный признак

Ошибка формата файла или «Объект не обнаружен»

Выполнение основного действия
Норма

Код отрабатывает, данные изменяются или выгружаются как задумано

Тревожный признак

Ошибка выполнения, пустой результат, сообщения о недоступных объектах

Подключение через дополнительные обработки
Норма

Файл регистрируется, появляется в списке, команда доступна пользователям

Тревожный признак

Отказ в регистрации — отсутствует или неверна функция СведенияОВнешнейОбработке

Права пользователей
Норма

Обработка работает под учётной записью целевого пользователя

Тревожный признак

Нарушение прав доступа к объектам, которых нет у пользователя

Типичные ошибки при создании EPF-файлов

Одна из самых частых проблем — попытка обратиться к данным базы из клиентского контекста управляемой формы. Платформа выдаёт ошибку о недоступности операции. Решение — перенести работу с данными в серверную процедуру с директивой &НаСервере.

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

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

Типичные ошибки
01
Выполнение запросов в клиентском контексте управляемой формы — ошибка выполнения; перенесите код на сервер
02
Отсутствие функции СведенияОВнешнейОбработке — обработка не регистрируется в механизме дополнительных обработок
03
Сохранение файла на новой платформе для старой базы — файл не открывается у пользователей
04
Отладка на рабочей базе без копии — риск порчи реальных данных при ошибке в коде
05
Изменение данных без транзакции — при сбое в середине обработки данные остаются в несогласованном состоянии

Ограничения формата EPF

Внешняя обработка не может содержать собственных объектов метаданных: справочников, документов, регистров. Она оперирует только теми объектами, которые уже есть в конфигурации базы. Если задача требует новых сущностей, нужна доработка конфигурации или расширение (файл CFE), а не внешняя обработка.

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

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

Итог

Что важно запомнить

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

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

Можно ли создать EPF-файл без конфигуратора?

Нет. Создание и редактирование внешних обработок выполняется только в конфигураторе 1С. Сторонних редакторов формата EPF не существует, так как файл имеет закрытый внутренний формат платформы.

Чем EPF отличается от ERF?

EPF — внешняя обработка, ERF — внешний отчёт. Создаются они одинаково, но в конструкторе выбирается разный тип объекта. Отчёт ориентирован на построение табличных результатов и обычно использует СКД, обработка — на выполнение действий с данными.

Почему обработка не открывается в режиме «Предприятие»?

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

Можно ли защитить код обработки от просмотра?

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

Как запустить обработку автоматически по расписанию?

Через механизм дополнительных обработок БСП можно настроить выполнение по расписанию — для этого в сведениях обработки добавляется команда с вызовом серверной процедуры. Альтернатива — запуск 1С из планировщика задач операционной системы с параметром Execute, указывающим на EPF-файл.

Работает ли EPF в веб-клиенте?

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