Правка внешней обработки .epf: три рабочих способа
Содержание
Чтобы изменить EPF-файл, откройте его в Конфигураторе 1С: Файл → Открыть, выберите .epf — обработка раскроется деревом с формами, макетами и модулем. Правите код или форму, жмёте Ctrl+S — и файл сохранён. Это основной путь для 95% задач.
Два других способа нужны реже: распаковка обработки в текстовые файлы (чтобы хранить код в Git и смотреть изменения построчно) и запуск обработки из встроенного языка. Ниже — все три, от самого безопасного к техническому, с подводными камнями и восстановлением после неудачной правки.
Что внутри EPF и чем его открывать
.epf — это внешняя обработка 1С: самостоятельный файл с формами, макетами, реквизитами и программным модулем. Она добавляет функциональность, не трогая конфигурацию базы. Рядом живёт .erf — внешний отчёт, устроен так же, правится теми же инструментами.
Внутри — не текст, а бинарный контейнер со служебной структурой платформы. Поэтому Блокнот, Word или онлайн-просмотрщик покажут «кашу» из символов. Любая попытка «подправить руками» в текстовом редакторе ломает контейнер — файл перестанет открываться.
Открыть .epf двойным кликом из проводника нельзя: Windows не знает, чем его запускать. Запуск идёт либо из Конфигуратора (для правки), либо из режима 1С:Предприятие через Файл → Открыть (чтобы выполнить обработку).
Три способа редактирования решают разные задачи. Если не уверены, какой ваш, — вот короткая развилка.
ВнешниеОбработки или подключите обработку через БСП.Способ 1. Правка в Конфигураторе — безопасный и основной
Подходит всем: и бухгалтеру, которому прислали готовую обработку, и разработчику. Визуальный редактор платформы — единственный штатный способ менять формы и макеты.
Порядок действий:
- Запустите 1С в режиме
Конфигуратор(в окне запуска — кнопкаКонфигуратор, не1С:Предприятие). Подойдёт любая база на той же версии платформы. - Меню
Файл → Открыть, выберите ваш.epf. - Обработка откроется окном с деревом:
Реквизиты,Табличные части,Формы,Макеты,Модуль объекта. - Чтобы поправить логику — откройте
Модуль объектаили модуль нужной формы двойным кликом и редактируйте код. - Чтобы поправить внешний вид — откройте форму, перетаскивайте и настраивайте элементы в редакторе управляемых форм.
- Сохраните:
Файл → СохранитьилиCtrl+S. Файл перезапишется на месте.
Перед первой правкой сделайте копию файла — у .epf нет истории версий, отменить сохранение после закрытия окна нельзя.
Пара важных моментов. Версия платформы, в которой вы правите, должна быть не ниже той, где обработку будут запускать: открыли в старой — часть новых свойств формы просто не увидите. И если обработка рассчитана на конкретную конфигурацию (обращается к её документам и справочникам), редактировать её удобнее в Конфигураторе этой же базы — тогда синтакс-контроль подсветит обращения к несуществующим объектам.
Формы внутри обработки бывают двух видов: управляемые (интерфейс «Такси», современные конфигурации) и обычные (наследие 8.2). Управляемая форма делится на модуль формы и серверные процедуры — правьте код в нужном контексте (&НаКлиенте, &НаСервере), иначе платформа не даст сохранить. Перед записью прогоните синтаксический контроль модуля клавишей F7 — он ловит опечатки и обращения к несуществующим реквизитам до запуска.
Проверить правку просто: закройте окно обработки, перейдите в режим 1С:Предприятие, откройте .epf через Файл → Открыть и прогоните сценарий. Если обработка требует прав, которых у текущего пользователя нет, запускайте её под ролью с нужными правами — иначе часть действий молча не сработает.
Способ 2. Распаковка в файлы — для Git и командной работы
Когда обработку ведёт несколько разработчиков или нужно видеть, что именно изменилось между версиями, бинарный .epf неудобен: система контроля версий хранит его целиком и не показывает различия построчно. Решение — разобрать обработку на текстовые файлы.
Что даёт распаковка:
- 📂 модуль объекта и модули форм превращаются в отдельные файлы
.bsl— их видно вgit diff; - 🔀 ветки, слияния и код-ревью работают как в обычном программном проекте;
- 🧩 формы и макеты выгружаются в XML — тоже сравнимы построчно.
Рабочий инструмент — 1C:Enterprise Development Tools (EDT). Среда на базе Eclipse умеет импортировать внешнюю обработку
как проект, редактировать модули с подсказками и собирать обратно в .epf. Для чистого версионирования без среды берут утилиты сообщества — gitsync/precommit1c и подобные обёртки над механизмом выгрузки.
Технически распаковку и обратную сборку выполняет сам Конфигуратор в пакетном режиме: у него есть команды выгрузки внешней обработки в каталог файлов и загрузки её обратно. Точный синтаксис ключей запуска смотрите в справке — запустите 1cv8 с ключом /?, либо сверьтесь с документацией по пакетному режиму: названия ключей длинные, и подставлять их по памяти не стоит.
Текстовые файлы из распаковки правьте в редакторе кода (EDT, VS Code), но собирайте обратно только штатными средствами — EDT или пакетной командой Конфигуратора. Руками переименованный или перекодированный файл сломает сборку.
Этот способ не отменяет первый: визуально двигать элементы формы всё равно удобнее в редакторе форм. Распаковка — про хранение и сравнение кода, а не про замену визуального редактора.
Типичный командный цикл выглядит так: обработку один раз распаковывают в каталог и кладут в репозиторий, дальше каждый разработчик правит текстовые модули в своём редакторе, перед коммитом собирает .epf и проверяет его в базе, а код-ревью идёт по обычному git diff. Главный выигрыш — видно не «файл изменился на 40 КБ», а конкретные строки модуля, которые кто-то поправил.
Если распакованные файлы открываются «кракозябрами», проверьте кодировку: модули 1С хранятся в UTF-8, и редактор должен открывать их именно так, иначе кириллица в комментариях побьётся при обратной сборке.
Способ 3. Запуск и обновление обработки из кода
Полноценно «редактировать» структуру .epf из встроенного языка нельзя — формы и макеты меняются только в визуальном редакторе. Но из кода можно загрузить обработку, выполнить её и встроить в базу. Для автоматизации этого обычно достаточно.
Загрузить файл и получить объект обработки:
Обработка = ВнешниеОбработки.Создать("C:\Обработки\Расчёт.epf");
// вызвать экспортную процедуру из модуля объекта
Обработка.ПересчитатьОстатки();
Открыть форму внешней обработки программно:
Обработка = ВнешниеОбработки.Создать("C:\Обработки\Печать.epf");
Форма = Обработка.ПолучитьФорму("Форма");
Форма.Открыть();
Если обработку нужно подключить к базе насовсем, а не запускать по файлу, используйте механизм дополнительных отчётов и обработок Библиотеки стандартных подсистем (БСП). Путь в типовых конфигурациях на БСП: раздел Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Там обработка загружается в базу, ей назначаются команды и права, а обновление сводится к загрузке новой версии .epf поверх старой — внешний файл больше не нужен.
Для подключаемой через БСП обработки в модуле объекта должна быть экспортная функция СведенияОВнешнейОбработке() с описанием: вид, команды, безопасный режим. Без неё база не примет файл. Структуру функции берут из любой типовой обработки-примера.
Запускать чужие обработки из кода без разбора опасно: в модуле может быть любой код, вплоть до удаления данных. Загружайте только проверенные файлы и, если платформа предлагает, оставляйте безопасный режим включённым — он запрещает обработке опасные операции вроде работы с файловой системой и внешними компонентами.
Так «правка через код» выглядит на практике: саму логику вы меняете способом 1 или 2, а код лишь загружает и обновляет готовый .epf.
Частые ошибки при сохранении и запуске
Разберём то, что ломает работу чаще всего, — без повтора шагов из инструкции.
Файл → Открыть — обработка не перечитывается сама.СведенияОВнешнейОбработке() либо указан неподходящий вид обработки. Добавьте функцию, сверьте вид с тем, куда подключаете.Ещё одна частая ситуация — перепутали форматы. Если платформа отказывается открывать файл как обработку, проверьте расширение: .erf — это внешний отчёт, его открывают так же, но платформа ждёт именно отчёт, а не обработку.
Как восстановить обработку после неудачной правки
У .epf нет корзины, автосохранения и журнала версий. Если перезаписали файл с ошибкой и закрыли Конфигуратор — штатной кнопки «отменить» уже нет. Варианты восстановления:
- 💾 Копия файла. Если перед правкой сделали копию (способ 1, предупреждение выше) — просто верните её на место.
- 🔀 Git. Обработка хранилась распакованной в репозитории — откатите изменения через
git checkoutи соберите.epfзаново. - 🗂 Версия из БСП. Обработка подключалась через «Дополнительные отчёты и обработки» — там могла остаться загруженная ранее версия; выгрузите её обратно в файл.
- 📨 Исходник. Если обработку прислал поставщик или коллега — запросите у него исходный
.epf.
Если ничего из этого нет, восстановить именно прежнюю версию неоткуда — контейнер перезаписан. Отсюда главное правило: копия перед правкой или хранение в Git решают проблему заранее.
EPF, ERF, CF или DT — что когда использовать
Эти расширения часто путают, хотя задачи у них разные. Короткая шпаргалка:
| Формат | Что это | Когда применяют |
|---|---|---|
.epf | Внешняя обработка | Добавить функцию, не меняя конфигурацию: печать, загрузка, сервис |
.erf | Внешний отчёт | То же, но для отчёта с выводом данных |
.cf | Файл конфигурации | Перенести или обновить структуру конфигурации целиком |
.dt | Выгрузка информационной базы | Полная копия базы: и структура, и все данные |
Правило выбора простое. Нужно разово или регулярно выполнять действие (пересчитать, выгрузить, напечатать) — это .epf. Нужно показать данные отчётом — .erf. Меняете саму конфигурацию или переносите её в другую базу — .cf. Переносите или архивируете базу вместе с данными — .dt.
.cf и .dt редактируют совсем иначе: .cf загружают через Конфигурация → Загрузить конфигурацию из файла, .dt — через Администрирование → Загрузить информационную базу. Обе операции перезаписывают базу и требуют монопольного доступа, поэтому к правке обработки отношения не имеют.
Загрузка .cf и .dt затирает текущую конфигурацию или всю базу. Делайте их только на тестовой копии или с полным бэкапом и после того, как все пользователи вышли из базы.
Частые вопросы
Можно ли открыть EPF-файл без 1С, просто чтобы посмотреть содержимое?
EPF от 1С 8.2 откроется в 8.3?
Нужен ли Конфигуратор, или хватит режима Предприятия?
1С:Предприятие обработку можно лишь запустить и выполнить, но не отредактировать.Почему после правки формы ничего не поменялось у пользователей?
.epf заново в Дополнительные отчёты и обработки — тогда правка дойдёт до всех.