Разработка и Конфигурация · 13 мин
EPF: как создать файл внешней обработки для 1С
Как создать EPF-файл для 1С через конфигуратор: пошаговая инструкция, написание кода обработки, подключение к базе, типичные ошибки и проверка результата.
Файл с расширением EPF — это внешняя обработка 1С: самостоятельный программный модуль, который открывается в режиме «Предприятие» и выполняет полезные действия без изменения конфигурации базы. Такой формат используют для разовых операций с данными, тестирования алгоритмов, пакетной обработки документов и выгрузки информации, когда дорабатывать саму конфигурацию нельзя или нерационально.
Создать EPF-файл можно только в конфигураторе 1С — отдельного редактора или конвертера не требуется. Понадобится установленная платформа 1С:Предприятие, доступ к конфигуратору любой информационной базы (подойдёт даже пустая файловая база) и базовое понимание встроенного языка 1С, если обработка должна что-то делать, а не просто открываться.
Ниже разобран полный цикл: создание файла, добавление формы и кода, сохранение, запуск в рабочей базе, проверка результата и типичные ошибки. Инструкция подходит для платформ 8.3, включая работу с управляемыми формами, которые используются в большинстве современных конфигураций.
Что нужно подготовить перед созданием EPF-файла
Минимальный набор — установленная платформа 1С:Предприятие той же версии или близкой к той, где обработка будет запускаться. Обработка, созданная на старой платформе, обычно открывается на новой, но обратная совместимость не гарантирована: файл, сохранённый на новой версии, может не открыться на старой.
Второе условие — информационная база для разработки. Для создания самого файла подойдёт пустая база без конфигурации, но для отладки кода, который обращается к документам и справочникам, нужна копия рабочей базы или демонстрационная конфигурация. Разрабатывать и отлаживать обработку непосредственно в рабочей базе рискованно: ошибка в коде может изменить или удалить реальные данные.
Также заранее определите, в каком режиме будет работать обработка — обычном или управляемом. Большинство современных конфигураций (Бухгалтерия, Управление торговлей, Зарплата и управление персоналом) работают в режиме управляемого приложения, поэтому форму обработки следует создавать управляемой. Если форму не создавать вовсе, обработка сможет выполнять только серверные действия без интерфейса.
Создание новой внешней обработки в конфигураторе
Откройте конфигуратор любой информационной базы. В главном меню выберите «Файл → Новый» (или нажмите Ctrl+N). В появившемся списке типов документов найдите пункт «Внешняя обработка» и подтвердите выбор. Откроется окно новой обработки с пустой структурой: разделы «Формы», «Макеты», «Модуль объекта».
Первым делом задайте имя и синоним обработки в палитре свойств. Имя используется в коде и должно быть без пробелов, синоним — это заголовок, который увидит пользователь. Например, имя «ВыгрузкаОстатков», синоним «Выгрузка остатков склада». Эти же данные позже используются при подключении обработки через механизм дополнительных отчётов и обработок.
На этом этапе обработка уже технически существует, но пока не содержит ни интерфейса, ни логики. Сохраните её сразу, чтобы зафиксировать файл: меню «Файл → Сохранить как», укажите папку и имя файла. Платформа автоматически добавит расширение .epf. Дальнейшая работа ведётся с этим файлом — при сохранении (Ctrl+S) изменения пишутся в него, а не в конфигурацию базы.
- 1Откройте конфигуратор и выберите «Файл → Новый → Внешняя обработка»
- 2Задайте имя и синоним обработки в палитре свойств
- 3Сохраните файл на диск через «Файл → Сохранить как» — появится файл с расширением .epf
- 4Добавьте форму и напишите код обработчиков
- 5Сохраните изменения и откройте файл в режиме «Предприятие» для проверки
Добавление формы и элементов интерфейса
Создание управляемой формы
В дереве обработки нажмите кнопку добавления у раздела «Формы» или вызовите контекстное меню и выберите «Добавить». Конструктор предложит создать основную форму обработки — согласитесь с типом «Форма обработки». Откроется редактор формы: слева дерево элементов, справа список реквизитов, внизу вкладки модуля формы.
Для рабочего инструмента обычно достаточно нескольких реквизитов и одной кнопки. Добавьте реквизиты формы (например, «Период» типа Дата или «Организация» типа СправочникСсылка), перетащите их в дерево элементов, чтобы они появились на форме, затем создайте команду формы, например «Выполнить», и перетащите её в командную панель — получится кнопка.
Когда форма не нужна
Если обработка выполняется по расписанию, вызывается из другого кода или должна просто выполнить действие без диалога, форму можно не создавать. Вся логика размещается в модуле объекта обработки. Такой файл открывается в «Предприятии», сразу выполняет код и может завершаться автоматически. Это типичный вариант для служебных операций: перенумерации, очистки данных, пакетной выгрузки.
Написание кода обработки
Код внешней обработки пишется на встроенном языке 1С и распределяется по модулям: модуль формы (реакция на кнопки и действия пользователя), модуль объекта (серверная логика и сведения об обработке), модуль менеджера (используется редко). Для простой обработки достаточно обработчика команды в модуле формы.
Пример минимального обработчика кнопки в модуле управляемой формы, который выводит сообщение пользователю:
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
Сообщить("Обработка запущена. Период: " + Формат(Период, "ДЛФ=D"));
КонецПроцедуры
Если обработка обращается к данным базы — читает документы, изменяет справочники — этот код должен выполняться на сервере. В управляемой форме для этого создают серверную процедуру с директивой &НаСервере и вызывают её из клиентского обработчика кнопки. Прямое обращение к запросам и объектам базы из клиентского контекста в управляемом приложении недоступно.
Для подключения к типовой конфигурации через механизм дополнительных обработок добавьте в модуль объекта функцию описания:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Наименование", "Выгрузка остатков склада");
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
Возврат ПараметрыРегистрации;
КонецФункции
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
ВыполнитьОбработкуНаСервере();
Сообщить("Обработка завершена");
КонецПроцедуры
&НаСервере
Процедура ВыполнитьОбработкуНаСервере()
Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 10 Т.Ссылка ИЗ Справочник.Номенклатура КАК Т");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Строка(Выборка.Ссылка));
КонецЦикла;
КонецПроцедурыСохранение и запуск обработки в базе
После написания кода сохраните обработку (Ctrl+S). Убедитесь, что сохранение прошло именно в EPF-файл: в заголовке окна конфигуратора отображается путь к файлу. Если вы создавали обработку через «Новый», но ни разу не сохраняли, файла на диске ещё нет — используйте «Сохранить как».
Самый простой способ запуска — открыть файл в режиме «Предприятие»: меню «Файл → Открыть» (Ctrl+O), выбрать EPF-файл. Обработка запустится в текущей базе с правами текущего пользователя. Этот способ подходит для разовых операций и тестирования.
Для постоянного использования в типовых конфигурациях обработку подключают через раздел «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». После добавления файла обработка появляется в списке и доступна пользователям по настройке прав. Учтите, что в конфигурации должен быть включён сам механизм дополнительных обработок, а у пользователя — соответствующие права.
Способы запуска EPF
Быстро и без настройки; подходит для разовых задач и отладки. Ограничение: пользователь должен каждый раз выбирать файл вручную.
Обработка встраивается в интерфейс типовой конфигурации, доступна по правам, хранится в базе. Ограничение: требуется функция СведенияОВнешнейОбработке и включённый механизм БСП.
Подходит для регламентных операций без участия пользователя. Ограничение: нужна настройка запуска и обычно обработка без формы.
Проверка результата и отладка
Перед передачей обработки пользователям проверьте её на копии рабочей базы. Откройте файл в режиме «Предприятие», заполните параметры, запустите выполнение и убедитесь, что результат соответствует ожиданиям: созданные документы проведены корректно, выгруженные данные полные, сообщения об ошибках понятны.
Для пошаговой отладки откройте EPF-файл в конфигураторе, расставьте точки останова в коде и запустите отладку (F5) с подключением к сеансу «Предприятия», в котором открыта обработка. Если обработка открыта из файла, конфигуратор подхватывает её модуль автоматически. Проверяйте значения переменных в табло и следите, в каком контексте — клиентском или серверном — выполняется код.
Как проверить результат
Обработка запускается, форма отображается
Ошибка формата файла или «Объект не обнаружен»
Код отрабатывает, данные изменяются или выгружаются как задумано
Ошибка выполнения, пустой результат, сообщения о недоступных объектах
Файл регистрируется, появляется в списке, команда доступна пользователям
Отказ в регистрации — отсутствует или неверна функция СведенияОВнешнейОбработке
Обработка работает под учётной записью целевого пользователя
Нарушение прав доступа к объектам, которых нет у пользователя
Типичные ошибки при создании EPF-файлов
Одна из самых частых проблем — попытка обратиться к данным базы из клиентского контекста управляемой формы. Платформа выдаёт ошибку о недоступности операции. Решение — перенести работу с данными в серверную процедуру с директивой &НаСервере.
Вторая распространённая ситуация — обработка не подключается через механизм дополнительных отчётов и обработок. Причина почти всегда в отсутствии или неправильном заполнении функции СведенияОВнешнейОбработке(): не указан вид обработки, наименование или версия. Проверьте структуру возвращаемых параметров по документации к библиотеке стандартных подсистем вашей конфигурации.
Третья группа ошибок связана с версиями платформы: файл, сохранённый в новой версии платформы, не открывается в старой. Если обработка должна работать на нескольких базах с разными версиями, создавайте и сохраняйте её на самой старой из целевых версий.
Ограничения формата EPF
Внешняя обработка не может содержать собственных объектов метаданных: справочников, документов, регистров. Она оперирует только теми объектами, которые уже есть в конфигурации базы. Если задача требует новых сущностей, нужна доработка конфигурации или расширение (файл CFE), а не внешняя обработка.
EPF-файл жёстко привязан к структуре конкретной конфигурации, если код обращается к её объектам по именам. Обработка, написанная под «Бухгалтерию предприятия», не заработает в «Управлении торговлей», если использует отсутствующие там документы или реквизиты. Универсальные обработки строят на обращении к метаданным и работают только с типовыми механизмами платформы.
Также учитывайте права: обработка выполняется с правами пользователя, который её запустил. Если у пользователя нет доступа к документу, обработка не сможет его прочитать или изменить — это нормальное поведение, а не ошибка файла.
Что важно запомнить
EPF создаётся в конфигураторе через «Файл → Новый → Внешняя обработка»: задаются имя и синоним, добавляется форма и код, файл сохраняется с расширением .epf. Запуск — через «Файл → Открыть» в режиме «Предприятие» или через механизм дополнительных обработок с функцией СведенияОВнешнейОбработке. Работу с данными размещайте на сервере, отлаживайте на копии базы и сохраняйте файл на самой старой из целевых версий платформы.
Частые вопросы
Можно ли создать EPF-файл без конфигуратора?
Нет. Создание и редактирование внешних обработок выполняется только в конфигураторе 1С. Сторонних редакторов формата EPF не существует, так как файл имеет закрытый внутренний формат платформы.
Чем EPF отличается от ERF?
EPF — внешняя обработка, ERF — внешний отчёт. Создаются они одинаково, но в конструкторе выбирается разный тип объекта. Отчёт ориентирован на построение табличных результатов и обычно использует СКД, обработка — на выполнение действий с данными.
Почему обработка не открывается в режиме «Предприятие»?
Чаще всего файл сохранён в более новой версии платформы, чем установлена у пользователя, либо файл повреждён при передаче. Проверьте версию платформы и пересохраните обработку на совместимой версии. Также убедитесь, что открываете именно EPF, а не файл конфигурации или выгрузки.
Можно ли защитить код обработки от просмотра?
Платформа позволяет поставить пароль на модуль обработки при сохранении — в диалоге сохранения есть соответствующая опция. Однако такая защита ограниченна: для действительно конфиденциальной логики надёжнее выносить критичные алгоритмы на сторону сервера или в конфигурацию.
Как запустить обработку автоматически по расписанию?
Через механизм дополнительных обработок БСП можно настроить выполнение по расписанию — для этого в сведениях обработки добавляется команда с вызовом серверной процедуры. Альтернатива — запуск 1С из планировщика задач операционной системы с параметром Execute, указывающим на EPF-файл.
Работает ли EPF в веб-клиенте?
Да, внешние обработки с управляемыми формами работают в веб-клиенте, но с ограничениями: недоступны операции с локальной файловой системой без расширения работы с файлами, а модальные вызовы требуют асинхронного стиля кода. Проверяйте обработку именно в том клиенте, где её будут использовать.