Внешняя обработка .epf: открываем в Конфигураторе, правим код, храним в Git

· 9 мин

Содержание

Редактировать EPF-файл надёжнее всего в Конфигураторе 1С:Предприятия: открываете файл через Файл → Открыть, и перед вами форма, модули и макеты внешней обработки. Блокнот и текстовые редакторы не подойдут: EPF — не текст, а двоичный контейнер. Для командной работы и Git файл выгружают в набор XML и BSL-модулей, их уже можно править любым редактором.

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

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

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

В нём лежат:

  • 📄 реквизиты и табличные части обработки;
  • 🪟 управляемые и обычные формы;
  • 🧩 модуль объекта и модули форм на встроенном языке 1С (BSL);
  • 📊 макеты: табличные документы, двоичные данные, схемы компоновки;
  • 🌐 общие подсистемы и справка, если вы их добавили.

Всё это упаковано в двоичную структуру со сжатием. Если открыть EPF в текстовом редакторе, увидите мешанину символов. Сохраните такой файл из блокнота, и обработка перестанет открываться: двоичная структура будет повреждена.

Не переименовывайте .epf в .zip или .txt с расчётом «распаковать вручную». Контейнер 1С — не обычный архив, стандартные программы его не прочтут.

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

Какими программами редактируют EPF

Выбор небольшой. Сравним основные варианты.

ИнструментЧто умеетКогда выбиратьОграничения
Конфигуратор 1СОткрыть, править формы и модули, сохранить, отладитьРазовая правка, небольшая обработкаНет нормального сравнения версий; удобство редактора кода скромное
1C:Enterprise Development Tools (EDT)Проект на основе файлов, современный редактор кода, подсказки, интеграция с GitСерьёзная разработка, командаНужна установка, Java-среда, привычка к другой структуре
Выгрузка в XML + внешний редакторПравка BSL в VS Code или другом редакторе, сравнение в GitХранение в репозитории, ревьюСборка обратно в EPF отдельным шагом
Сторонние распаковщики контейнераРазобрать файл без запуска платформыАвтоматизация, сборочные скриптыНе от фирмы 1С; проверяйте на копии

Для первого знакомства достаточно Конфигуратора. Про остальные способы — в отдельных разделах ниже.

💡 Если вы только читаете чужую обработку и ничего не меняете, откройте её в Конфигураторе и сразу закрывайте без сохранения. Так вы гарантированно ничего не испортите.

Открываем EPF в Конфигураторе: пошагово

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

Что проверить перед стартом

  • Сделайте копию файла. Правите .epf — положите рядом .epf.bak или сохраните копию в другую папку.
  • Узнайте, какой платформой её сохраняли. Если автор работал на более новом релизе, старая платформа может отказаться открывать файл.
  • Убедитесь, что у вас есть право входа в Конфигуратор (роль с административными правами или запуск от пользователя с доступом к конфигурированию).

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

  1. Запустите 1С, в списке баз выберите нужную и нажмите кнопку Конфигуратор.
  2. В меню Файл выберите Открыть. В диалоге в типе файлов оставьте внешние обработки и отчёты или выберите «Все файлы».
  3. Укажите путь к .epf и нажмите Открыть. Обработка появится в отдельном окне со структурой: реквизиты, табличные части, формы, макеты.
  4. Раскройте нужную форму двойным щелчком. Код модуля открывается вкладкой Модуль внизу окна формы.
  5. Внесите правку. Для проверки синтаксиса нажмите Действия → Синтаксический контроль модуля (или сочетание клавиш, указанное рядом с пунктом в вашей версии).
  6. Сохраните файл через Файл → Сохранить. Для новой копии используйте Файл → Сохранить как.

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

Не выходя из Конфигуратора, запустите отладку: Отладка → Начать отладку (или F5). Платформа откроет пользовательский режим и запустит обработку из памяти. Если форма не открылась, ошибка будет видна сразу, с номером строки.

После проверки сохраните файл. Затем уже в рабочей базе подключите обновлённую обработку тем же способом, что и раньше, либо замените файл в справочнике «Дополнительные отчёты и обработки».

Не правьте рабочую обработку, которую прямо сейчас кто-то использует. Скопируйте, отредактируйте копию, проверьте и только потом подмените оригинал.

Как править код, формы и макеты

В окне обработки у каждого элемента свои инструменты.

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

Модуль формы. Хранит обработчики событий формы и команд. В управляемой форме код делится на клиентский и серверный, и директивы компиляции (&НаКлиенте, &НаСервере) нужно ставить осознанно.

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

Реквизиты и команды формы. Редактируются в окне формы. Если вы что-то удаляете, проверьте, что на это не ссылается код, иначе получите ошибку при открытии.

Пример небольшой правки. Допустим, обработка выводит сообщение пользователю, а вам нужна дата выполнения:

&НаКлиенте
Процедура Выполнить(Команда)
    ВыполнитьНаСервере();
    ПоказатьОповещениеПользователя("Готово", , "Завершено " + Формат(ТекущаяДата(), "ДЛФ=DT"));
КонецПроцедуры

Пара практических привычек:

  • 📝 Комментируйте то, что поменяли: дата, причина, ваши инициалы.
  • 🔍 После правки запускайте синтаксический контроль, а не только отладку. Ошибки в редко вызываемом коде отладка не покажет.
  • 💾 Сохраняйтесь чаще. Крах Конфигуратора на большом модуле случается.

Для обработок, которые вы получили от разработчика в закрытом виде (модуль с паролем), код недоступен. Пароль на модуль — защита автора, обход не обсуждается. Просите исходник у разработчика.

Текстовый формат: выгрузка EPF в файлы и обратная сборка

Когда обработку хранят в Git или над ней работают несколько человек, двоичный файл неудобен: нельзя увидеть, что поменялось между двумя версиями. Решение — выгрузить обработку в иерархию XML и BSL-файлов.

В такой выгрузке:

  • 🗂 каждая форма, макет и модуль лежат отдельным файлом;
  • 📜 модули читаются как обычный текст и сравниваются построчно;
  • 🔀 слияние правок двух разработчиков становится возможным.

Выгрузить можно из командной строки Конфигуратора. Общая схема запуска такая (замените пути на свои):

"C:\Program Files\1cv8\<номер версии>\bin\1cv8.exe" DESIGNER /F "C:\Bases\Test" ^
  /DumpExternalDataProcessorOrReportToFiles "C:\src\MyProc" "C:\work\MyProc.epf" ^
  /Out "C:\src\dump.log"

Обратная сборка делается парной командой /LoadExternalDataProcessorOrReportFromFiles: ей указывают корневой XML-файл выгрузки и итоговый .epf.

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

Второй путь — EDT. Вы создаёте проект внешней обработки, импортируете в него готовый EPF, редактируете в среде и собираете обратно. Редактор удобнее встроенного: подсказки, поиск по проекту, подсветка проблем.

💡 В репозиторий кладите именно выгрузку, а собранный .epf — как артефакт сборки или релиз. Тогда в истории Git видны осмысленные изменения кода.

Альтернативные способы и утилиты

Бывает, что платформы под рукой нет: нужно просто вытащить из файла модуль или макет. Тогда помогают сторонние программы.

Распаковщики контейнера. Есть утилиты с открытым кодом, которые умеют разбирать и собирать контейнеры 1С (типа v8unpack и его аналогов). Они работают с файлами .epf, .erf, .cf на уровне структуры.

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

Просмотр кода без правок. Достаточно выгрузить модули и открыть в любом редакторе с подсветкой BSL: например, в VS Code с плагином для языка 1С.

Что учесть:

  1. Сторонние утилиты — не продукт фирмы 1С. Проверяйте результат на копии, а итоговый файл всегда открывайте в Конфигураторе.
  2. Для обработок с формами на новой платформе разборка вручную иногда даёт неполный результат. Надёжнее штатная выгрузка.
  3. Скачивайте программы с официальных репозиториев проектов. Файлы с «ускорителями» и «взломщиками паролей» с форумов часто несут вирусы.

Идея «открыть EPF прямо из пользовательского режима и подправить» тоже встречается, но редактирования там нет: в пользовательском режиме обработку только запускают. Редактор кода работает в Конфигураторе или EDT.

Ошибки при открытии и сохранении EPF

Разберём то, что реально ломается.

СимптомВероятная причинаЧто делать
Файл не открывается, сообщение о неверном форматеФайл сохранён более новой платформой, либо повреждёнОткройте платформой не ниже той, что использовал автор; проверьте размер файла, возьмите другую копию
Обработка открывается, но формы пустыеНарушена структура, часть данных потеряна при копированииВосстановите из резервной копии
При сохранении сообщение о запрете доступаФайл занят другим процессом или лежит в защищённой папкеЗакройте программы, использующие файл; сохраните в папку пользователя
«Ошибка компиляции модуля» при запускеПосле правки остался синтаксис, неверный для режима запускаЗапустите синтаксический контроль, проверьте директивы &НаКлиенте и &НаСервере
Обработка в базе не обновиласьВ справочнике дополнительных обработок осталась старая версияЗагрузите новый файл в элемент справочника заново
Антивирус удаляет файлСрабатывание на внешний кодДобавьте исключение для рабочей папки, но откуда пришёл файл — проверьте

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

Диагностика: выберите симптом

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

Можно ли редактировать EPF без установленной 1С?
Править форму и модули без платформы или EDT нельзя. Прочитать код можно утилитой-распаковщиком, но собирать результат безопаснее штатными средствами.
Чем отличается EPF от ERF?
EPF — внешняя обработка, ERF — внешний отчёт. Формат контейнера один, различается тип объекта и то, как платформа показывает его пользователю.
Что делать, если на модуле стоит пароль?
Пароль выставляет автор, чтобы закрыть исходный код. Единственный правильный путь — попросить у автора версию без защиты или исходники. Обход не рассматриваем.
Можно ли хранить EPF в Git?
Можно, но смысла мало: Git не покажет, что в нём поменялось. Храните выгрузку в XML и BSL, а EPF собирайте из неё.
Нужно ли менять конфигурацию, чтобы подключить новую обработку?
Нет, в этом смысл внешних обработок. Подключайте файл через меню открытия в пользовательском режиме или через справочник дополнительных отчётов и обработок.
Откроется ли EPF, сохранённый в новой платформе, в старой?
Не всегда. Пишите разработчику, на каком релизе делалась обработка, и открывайте платформой не ниже этого номера.