Разработка и Конфигурация · 9 мин
Как открыть код внешней обработки 1С
Как открыть код внешней обработки 1С (EPF) через конфигуратор: просмотр модуля формы и объекта, работа с защищёнными файлами, типичные ошибки и проверка результата.
Внешняя обработка 1С — это файл с расширением .epf, который содержит формы, макеты и программный код на встроенном языке. Чтобы посмотреть или изменить этот код, файл нужно открыть не двойным щелчком, а через конфигуратор — именно там доступны модули объекта и форм. Попытка открыть .epf в блокноте покажет бинарное содержимое, потому что формат внутренне представляет собой контейнер с упакованными данными.
Задача встречается в двух ситуациях: когда нужно изучить чужую обработку перед внедрением и когда требуется доработать собственный инструмент. В обоих случаях порядок действий одинаков, но есть важные ограничения: часть обработок поставляется с защищённым (скрытым) модулем, и открыть их код штатными средствами нельзя. Ниже разобраны все сценарии — от простого открытия до работы с защищёнными файлами и проверки результата.
Что такое внешняя обработка и где в ней хранится код
Внешняя обработка (.epf) — это самостоятельный файл, который работает поверх любой информационной базы без изменения её конфигурации. Внутри файла находятся: модуль объекта (основная логика), одна или несколько форм с собственными модулями, макеты для печати и табличных документов, а также описание реквизитов и табличных частей.
Код распределён между двумя типами модулей. Модуль объекта содержит процедуры и функции, доступные при программном вызове обработки, например экспортные функции для подключаемых печатных форм. Модули форм содержат обработчики событий элементов интерфейса — нажатий кнопок, изменения полей, открытия формы. При изучении чужой обработки обычно смотрят оба.
Как открыть код обработки через конфигуратор
Основной и единственный штатный способ — конфигуратор 1С. Версия платформы, под которой запускается конфигуратор, должна быть не ниже версии, для которой создавалась обработка, иначе файл может не открыться или откроется с ошибками совместимости.
Порядок действий одинаков для любой базы: обработка не привязана к конкретной конфигурации, поэтому можно открыть её даже в пустой файловой базе. Это удобно для безопасного изучения чужого кода — нет риска что-то сломать в рабочей системе.
- 1Запустите конфигуратор любой базы подходящей версии платформы
- 2Выберите меню Файл → Открыть (Ctrl+O) и укажите файл .epf
- 3В дереве обработки раскройте ветку «Формы» и откройте нужную форму
- 4На вкладке «Модуль» внизу окна формы откроется её код
- 5Для кода уровня объекта: правый клик по корню обработки → «Открыть модуль объекта»
- 6Проверьте, что код читается и не отображается заглушка защищённого модуля
После открытия файла появится окно структуры обработки. Если вместо кода в модуле видна пустая заготовка или короткий текст-заглушка — модуль защищён, об этом ниже отдельный раздел.
Как посмотреть модуль объекта и модули форм
Модуль объекта открывается из контекстного меню корневого элемента дерева обработки: правый клик → «Открыть модуль объекта». Здесь обычно лежат экспортные процедуры, функция СведенияОВнешнейОбработке() для подключаемых обработок и общая бизнес-логика.
Модули форм открываются из редактора формы. Двойной щелчок по форме в дереве открывает визуальный редактор, а в нижней части окна есть закладки «Форма», «Модуль», «Реквизиты» и «Команды». Переход на закладку «Модуль» показывает весь код формы. Если форм несколько, код каждой просматривается отдельно.
Для поиска по всему коду обработки используйте глобальный поиск (Ctrl+Shift+F) с областью поиска «Текущий документ» либо откройте оба модуля и ищите в каждом. Отдельного режима поиска по всем модулям внешней обработки разом в конфигураторе нет — это частая причина, по которой разработчики выгружают обработку в исходники.
Что делать, если модуль защищён паролем
Разработчик может поставить защиту на модуль при сохранении обработки. Внешне это выглядит так: файл открывается в конфигураторе, формы и макеты видны, но вместо кода отображается пустой модуль или текст вроде «Модуль защищён паролем поставщика». Платформа при этом исполняет скомпилированный байт-код — обработка работает, но исходник недоступен.
Штатного способа снять такую защиту не существует. Легальные варианты: запросить исходный код у автора или поставщика, найти открытую версию той же обработки, либо переписать нужную логику самостоятельно по наблюдаемому поведению. Инструменты восстановления кода из байт-кода существуют, но их применение к чужим коммерческим обработкам может нарушать лицензионное соглашение и авторские права.
Как выгрузить код обработки в текстовые файлы
Когда нужно изучить обработку целиком, сравнить версии или хранить код в системе контроля версий, удобно выгрузить её в исходные файлы. Современный способ — утилита EDT или выгрузка через конфигуратор в XML-файлы: в дереве обработки правый клик → «Выгрузить в файлы». Получается набор XML и BSL-файлов, где модули лежат в читаемом виде.
Альтернатива — открыть .epf в 1C:Enterprise Development Tools (EDT): среда импортирует обработку как проект, и весь код становится доступен в привычной структуре с поиском, навигацией и подсветкой. Это удобно для больших обработок с десятком форм.
Сравнение вариантов
Подходит для быстрого просмотра и небольших правок. Ограничение: нет удобного поиска по всем модулям сразу.
Подходит для сравнения версий и хранения в Git. Ограничение: для правок файлы нужно загружать обратно.
Подходит для глубокого анализа и доработки больших обработок. Ограничение: требует установки отдельной среды.
Как проверить, что код открылся корректно
Признак успешного открытия — читаемый текст на встроенном языке с процедурами и функциями, а не пустой модуль и не набор непонятных символов. Дополнительно убедитесь, что обработка проходит синтаксическую проверку: в редакторе модуля выполните «Конфигурация → Проверка конфигурации» не нужно, достаточно кнопки проверки синтаксиса модуля.
Если обработка открывается с ошибкой «Нарушена целостность файла» или «Неподдерживаемый формат» — файл повреждён при копировании или создан более новой версией платформы. Проверьте версию платформы и запросите файл заново.
Как проверить результат
Читаемый код с процедурами и функциями
Пустой модуль или заглушка о защите паролем
Дерево обработки с формами и макетами
Ошибка формата или целостности файла
Проверка модуля проходит без ошибок
Ошибки компиляции — файл повреждён или не та версия платформы
Типичные ошибки и ограничения
Самая частая ошибка — попытка открыть .epf двойным щелчком или в текстовом редакторе. Файл либо не откроется, либо покажет бинарное содержимое. Второй типичный промах — открытие обработки в режиме «Предприятие» (Файл → Открыть): так она выполняется, а не открывается для редактирования, и код недоступен.
Ещё одна ловушка — несовпадение версий платформы. Обработка, сохранённая в платформе 8.3.22, может не открыться в конфигураторе 8.3.10. Обратное обычно работает: старые файлы открываются в новых версиях.
Перед любыми правками сделайте копию файла. Конфигуратор сохраняет изменения напрямую в .epf без истории версий, и случайное сохранение необратимо испортит рабочий инструмент.
Что важно запомнить
Код внешней обработки открывается только в конфигураторе или EDT: Файл → Открыть, затем модуль объекта или модули форм. Защищённые паролем модули штатно не открываются. Изучайте и тестируйте чужие обработки только в копии базы, а перед правками сохраняйте резервную копию файла.
Частые вопросы
Можно ли открыть код обработки без конфигуратора?
Напрямую — нет, формат .epf читают только средства платформы. Обходной путь — попросить разработчика выгрузить обработку в XML-исходники: модули в них хранятся в обычных BSL-файлах, которые открываются любым текстовым редактором.
Почему вместо кода пустой модуль?
Модуль защищён паролем поставщика при сохранении обработки. Платформа исполняет скомпилированный байт-код, поэтому обработка работает, но исходный текст недоступен. Штатного способа снять защиту нет — запросите исходники у автора.
Чем отличается открытие обработки в «Предприятии» и в конфигураторе?
В режиме «Предприятие» обработка запускается и выполняет свою логику — это режим пользователя. В конфигураторе файл открывается как структура с формами, макетами и модулями — это режим разработчика, только там виден код.
Обработка не открывается с ошибкой формата — что делать?
Проверьте версию платформы: файл, сохранённый в более новой версии, не откроется в старой. Также файл мог быть повреждён при передаче — запросите его повторно. Если обе причины исключены, возможно, это не внешняя обработка, а файл другого формата с переименованным расширением.
Как посмотреть код подключаемой печатной формы из «Дополнительных отчетов и обработок»?
Сначала выгрузите файл на диск: в справочнике дополнительных отчетов и обработок есть команда выгрузки в файл. Полученный .epf откройте в конфигураторе обычным способом. Править обработку лучше через тот же механизм — загрузкой изменённого файла обратно.
Можно ли сравнить код двух версий одной обработки?
В конфигураторе штатного сравнения внешних обработок нет. Выгрузите обе версии в XML-файлы и сравните полученные каталоги любым инструментом сравнения файлов — так видны изменения и в коде, и в формах.