Внешняя обработка .epf: открываем в Конфигураторе, правим код, храним в Git
Содержание
Редактировать 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С, в списке баз выберите нужную и нажмите кнопку
Конфигуратор. - В меню
ФайлвыберитеОткрыть. В диалоге в типе файлов оставьте внешние обработки и отчёты или выберите «Все файлы». - Укажите путь к
.epfи нажмитеОткрыть. Обработка появится в отдельном окне со структурой: реквизиты, табличные части, формы, макеты. - Раскройте нужную форму двойным щелчком. Код модуля открывается вкладкой
Модульвнизу окна формы. - Внесите правку. Для проверки синтаксиса нажмите
Действия → Синтаксический контроль модуля(или сочетание клавиш, указанное рядом с пунктом в вашей версии). - Сохраните файл через
Файл → Сохранить. Для новой копии используйтеФайл → Сохранить как.
Как запустить правку и проверить результат
Не выходя из Конфигуратора, запустите отладку: Отладка → Начать отладку (или 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С. Проверяйте результат на копии, а итоговый файл всегда открывайте в Конфигураторе.
- Для обработок с формами на новой платформе разборка вручную иногда даёт неполный результат. Надёжнее штатная выгрузка.
- Скачивайте программы с официальных репозиториев проектов. Файлы с «ускорителями» и «взломщиками паролей» с форумов часто несут вирусы.
Идея «открыть EPF прямо из пользовательского режима и подправить» тоже встречается, но редактирования там нет: в пользовательском режиме обработку только запускают. Редактор кода работает в Конфигураторе или EDT.
Ошибки при открытии и сохранении EPF
Разберём то, что реально ломается.
| Симптом | Вероятная причина | Что делать |
|---|---|---|
| Файл не открывается, сообщение о неверном формате | Файл сохранён более новой платформой, либо повреждён | Откройте платформой не ниже той, что использовал автор; проверьте размер файла, возьмите другую копию |
| Обработка открывается, но формы пустые | Нарушена структура, часть данных потеряна при копировании | Восстановите из резервной копии |
| При сохранении сообщение о запрете доступа | Файл занят другим процессом или лежит в защищённой папке | Закройте программы, использующие файл; сохраните в папку пользователя |
| «Ошибка компиляции модуля» при запуске | После правки остался синтаксис, неверный для режима запуска | Запустите синтаксический контроль, проверьте директивы &НаКлиенте и &НаСервере |
| Обработка в базе не обновилась | В справочнике дополнительных обработок осталась старая версия | Загрузите новый файл в элемент справочника заново |
| Антивирус удаляет файл | Срабатывание на внешний код | Добавьте исключение для рабочей папки, но откуда пришёл файл — проверьте |
Отдельно про безопасность. Внешняя обработка может выполнять произвольный код: читать данные, записывать их, обращаться к файловой системе. Поэтому не открывайте и не подключайте EPF из непроверенных источников, даже если он «обещает» чудо-отчёт. В рабочих базах подключение внешних обработок принято разрешать только через справочник дополнительных отчётов и обработок и только администратору.