К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как открыть код внешней обработки 1С

Как открыть код внешней обработки 1С (EPF) через конфигуратор: просмотр модуля формы и объекта, работа с защищёнными файлами, типичные ошибки и проверка результата.

Внешняя обработка 1С — это файл с расширением .epf, который содержит формы, макеты и программный код на встроенном языке. Чтобы посмотреть или изменить этот код, файл нужно открыть не двойным щелчком, а через конфигуратор — именно там доступны модули объекта и форм. Попытка открыть .epf в блокноте покажет бинарное содержимое, потому что формат внутренне представляет собой контейнер с упакованными данными.

Задача встречается в двух ситуациях: когда нужно изучить чужую обработку перед внедрением и когда требуется доработать собственный инструмент. В обоих случаях порядок действий одинаков, но есть важные ограничения: часть обработок поставляется с защищённым (скрытым) модулем, и открыть их код штатными средствами нельзя. Ниже разобраны все сценарии — от простого открытия до работы с защищёнными файлами и проверки результата.

Что такое внешняя обработка и где в ней хранится код

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

Код распределён между двумя типами модулей. Модуль объекта содержит процедуры и функции, доступные при программном вызове обработки, например экспортные функции для подключаемых печатных форм. Модули форм содержат обработчики событий элементов интерфейса — нажатий кнопок, изменения полей, открытия формы. При изучении чужой обработки обычно смотрят оба.

Как открыть код обработки через конфигуратор

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

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

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

После открытия файла появится окно структуры обработки. Если вместо кода в модуле видна пустая заготовка или короткий текст-заглушка — модуль защищён, об этом ниже отдельный раздел.

Как посмотреть модуль объекта и модули форм

Модуль объекта открывается из контекстного меню корневого элемента дерева обработки: правый клик → «Открыть модуль объекта». Здесь обычно лежат экспортные процедуры, функция СведенияОВнешнейОбработке() для подключаемых обработок и общая бизнес-логика.

Модули форм открываются из редактора формы. Двойной щелчок по форме в дереве открывает визуальный редактор, а в нижней части окна есть закладки «Форма», «Модуль», «Реквизиты» и «Команды». Переход на закладку «Модуль» показывает весь код формы. Если форм несколько, код каждой просматривается отдельно.

Для поиска по всему коду обработки используйте глобальный поиск (Ctrl+Shift+F) с областью поиска «Текущий документ» либо откройте оба модуля и ищите в каждом. Отдельного режима поиска по всем модулям внешней обработки разом в конфигураторе нет — это частая причина, по которой разработчики выгружают обработку в исходники.

Что делать, если модуль защищён паролем

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

Штатного способа снять такую защиту не существует. Легальные варианты: запросить исходный код у автора или поставщика, найти открытую версию той же обработки, либо переписать нужную логику самостоятельно по наблюдаемому поведению. Инструменты восстановления кода из байт-кода существуют, но их применение к чужим коммерческим обработкам может нарушать лицензионное соглашение и авторские права.

Как выгрузить код обработки в текстовые файлы

Когда нужно изучить обработку целиком, сравнить версии или хранить код в системе контроля версий, удобно выгрузить её в исходные файлы. Современный способ — утилита EDT или выгрузка через конфигуратор в XML-файлы: в дереве обработки правый клик → «Выгрузить в файлы». Получается набор XML и BSL-файлов, где модули лежат в читаемом виде.

Альтернатива — открыть .epf в 1C:Enterprise Development Tools (EDT): среда импортирует обработку как проект, и весь код становится доступен в привычной структуре с поиском, навигацией и подсветкой. Это удобно для больших обработок с десятком форм.

Сравнение вариантов

Конфигуратор

Подходит для быстрого просмотра и небольших правок. Ограничение: нет удобного поиска по всем модулям сразу.

Выгрузка в XML-файлы

Подходит для сравнения версий и хранения в Git. Ограничение: для правок файлы нужно загружать обратно.

1C:EDT

Подходит для глубокого анализа и доработки больших обработок. Ограничение: требует установки отдельной среды.

Как проверить, что код открылся корректно

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

Если обработка открывается с ошибкой «Нарушена целостность файла» или «Неподдерживаемый формат» — файл повреждён при копировании или создан более новой версией платформы. Проверьте версию платформы и запросите файл заново.

Контрольные точки

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

Содержимое модуля
Норма

Читаемый код с процедурами и функциями

Тревожный признак

Пустой модуль или заглушка о защите паролем

Открытие файла
Норма

Дерево обработки с формами и макетами

Тревожный признак

Ошибка формата или целостности файла

Синтаксис
Норма

Проверка модуля проходит без ошибок

Тревожный признак

Ошибки компиляции — файл повреждён или не та версия платформы

Типичные ошибки и ограничения

Самая частая ошибка — попытка открыть .epf двойным щелчком или в текстовом редакторе. Файл либо не откроется, либо покажет бинарное содержимое. Второй типичный промах — открытие обработки в режиме «Предприятие» (Файл → Открыть): так она выполняется, а не открывается для редактирования, и код недоступен.

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

Типичные ошибки
01
Открытие .epf в режиме «Предприятие» — обработка выполняется, а код остаётся недоступным
02
Правка и сохранение обработки без копии — оригинал теряется, откатить изменения нечем
03
Игнорирование версии платформы — файл не открывается или ломается совместимость
04
Запуск неизученной обработки в рабочей базе — риск порчи данных

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

Итог

Что важно запомнить

Код внешней обработки открывается только в конфигураторе или EDT: Файл → Открыть, затем модуль объекта или модули форм. Защищённые паролем модули штатно не открываются. Изучайте и тестируйте чужие обработки только в копии базы, а перед правками сохраняйте резервную копию файла.

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

Можно ли открыть код обработки без конфигуратора?

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

Почему вместо кода пустой модуль?

Модуль защищён паролем поставщика при сохранении обработки. Платформа исполняет скомпилированный байт-код, поэтому обработка работает, но исходный текст недоступен. Штатного способа снять защиту нет — запросите исходники у автора.

Чем отличается открытие обработки в «Предприятии» и в конфигураторе?

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

Обработка не открывается с ошибкой формата — что делать?

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

Как посмотреть код подключаемой печатной формы из «Дополнительных отчетов и обработок»?

Сначала выгрузите файл на диск: в справочнике дополнительных отчетов и обработок есть команда выгрузки в файл. Полученный .epf откройте в конфигураторе обычным способом. Править обработку лучше через тот же механизм — загрузкой изменённого файла обратно.

Можно ли сравнить код двух версий одной обработки?

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