Правка внешней обработки .epf: три рабочих способа

· 9 мин

Содержание

Чтобы изменить EPF-файл, откройте его в Конфигураторе 1С: Файл → Открыть, выберите .epf — обработка раскроется деревом с формами, макетами и модулем. Правите код или форму, жмёте Ctrl+S — и файл сохранён. Это основной путь для 95% задач.

Два других способа нужны реже: распаковка обработки в текстовые файлы (чтобы хранить код в Git и смотреть изменения построчно) и запуск обработки из встроенного языка. Ниже — все три, от самого безопасного к техническому, с подводными камнями и восстановлением после неудачной правки.

Что внутри EPF и чем его открывать

.epf — это внешняя обработка 1С: самостоятельный файл с формами, макетами, реквизитами и программным модулем. Она добавляет функциональность, не трогая конфигурацию базы. Рядом живёт .erf — внешний отчёт, устроен так же, правится теми же инструментами.

Внутри — не текст, а бинарный контейнер со служебной структурой платформы. Поэтому Блокнот, Word или онлайн-просмотрщик покажут «кашу» из символов. Любая попытка «подправить руками» в текстовом редакторе ломает контейнер — файл перестанет открываться.

Открыть .epf двойным кликом из проводника нельзя: Windows не знает, чем его запускать. Запуск идёт либо из Конфигуратора (для правки), либо из режима 1С:Предприятие через Файл → Открыть (чтобы выполнить обработку).

Три способа редактирования решают разные задачи. Если не уверены, какой ваш, — вот короткая развилка.

Что вы хотите сделать с EPF-файлом?

Способ 1. Правка в Конфигураторе — безопасный и основной

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

Порядок действий:

  1. Запустите 1С в режиме Конфигуратор (в окне запуска — кнопка Конфигуратор, не 1С:Предприятие). Подойдёт любая база на той же версии платформы.
  2. Меню Файл → Открыть, выберите ваш .epf.
  3. Обработка откроется окном с деревом: Реквизиты, Табличные части, Формы, Макеты, Модуль объекта.
  4. Чтобы поправить логику — откройте Модуль объекта или модуль нужной формы двойным кликом и редактируйте код.
  5. Чтобы поправить внешний вид — откройте форму, перетаскивайте и настраивайте элементы в редакторе управляемых форм.
  6. Сохраните: Файл → Сохранить или 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С, просто чтобы посмотреть содержимое?
Посмотреть код — да, если распаковать файл утилитой-вьюером во внешние текстовые файлы. Но редактировать и запускать обработку без установленной платформы 1С нельзя: это не самостоятельная программа, а модуль для 1С.
EPF от 1С 8.2 откроется в 8.3?
Как правило да: платформа 8.3 открывает обработки, сделанные в 8.2. Обратно — не всегда: обработку, сохранённую в 8.3, версия 8.2 может не принять. Правьте в версии не ниже той, где обработку будут запускать.
Нужен ли Конфигуратор, или хватит режима Предприятия?
Чтобы изменить обработку — нужен Конфигуратор: только в нём есть редактор форм, макетов и модулей. В режиме 1С:Предприятие обработку можно лишь запустить и выполнить, но не отредактировать.
Почему после правки формы ничего не поменялось у пользователей?
Если обработка подключена через БСП, пользователи работают с версией, загруженной в базу, а не с вашим файлом на диске. Загрузите изменённый .epf заново в Дополнительные отчёты и обработки — тогда правка дойдёт до всех.
Можно ли защитить свою обработку от правки?
Да: при сохранении в Конфигураторе можно установить пароль на модуль или поставить обработку на поставку с запретом изменения. Это скрывает код, но не мешает запускать обработку.