Разработка и Конфигурация · 10 мин
Как посмотреть код внешней обработки 1С
Как открыть и посмотреть код внешней обработки 1С (EPF) через конфигуратор, что делать с защищёнными модулями и как избежать типичных ошибок при анализе.
Внешняя обработка 1С — это файл с расширением EPF (или ERF для внешних отчётов), который содержит формы, макеты и программный код на встроенном языке. Чтобы посмотреть код такой обработки, нужен конфигуратор 1С: Предприятие — именно он умеет открывать бинарный формат EPF и показывать структуру объекта. Никакие текстовые редакторы или архиваторы для этой задачи не подойдут: файл хранится в собственном контейнерном формате платформы.
Типовые ситуации, когда требуется посмотреть код обработки: проверка сторонней разработки перед запуском в рабочей базе, поиск причины ошибки, перенос функциональности в основную конфигурацию или изучение чужого решения как примера. Во всех случаях последовательность действий одинаковая, но есть нюансы с защищёнными модулями, версиями платформы и режимом запуска.
Важно понимать различие: открыть обработку в пользовательском режиме (через «Файл → Открыть» в тонком клиенте) и открыть её в конфигураторе — это разные вещи. Первый способ только запускает обработку, второй — показывает её внутреннее устройство и код. Ниже разобраны оба подхода и дополнительные инструменты анализа.
Что понадобится для просмотра кода обработки
Главное требование — установленная платформа 1С: Предприятие с конфигуратором. Конфигуратор входит в стандартную поставку платформы, отдельно его устанавливать не нужно. Достаточно учебной версии платформы, если рабочей лицензии нет: для просмотра кода внешней обработки лицензионные ограничения не мешают.
Второй момент — версия платформы. Обработка, созданная на более новой версии платформы, может не открыться в старом конфигураторе или открыться с ошибками. Если при открытии появляется сообщение о несовместимости, обновите платформу до версии не ниже той, на которой обработка была сохранена.
Также понадобится сам файл обработки с расширением .epf. Если обработку прислали архивом — распакуйте его. Если обработка встроена в справочник «Дополнительные отчеты и обработки» внутри базы, её сначала нужно выгрузить на диск через команду сохранения в файл.
Как открыть внешнюю обработку в конфигураторе
Запустите конфигуратор любой информационной базы — подойдёт даже пустая база без конфигурации. В главном меню выберите «Файл → Открыть» и укажите путь к EPF-файлу. Платформа распознает формат и откроет обработку в виде дерева объектов, как при открытии отчёта или обработки внутри конфигурации.
В открывшемся окне вы увидите структуру обработки: список форм, макетов и общие свойства объекта. Сам код находится не на верхнем уровне дерева, а в модулях — их нужно открывать отдельными командами, о чём рассказано в следующем разделе.
- 1Запустите конфигуратор любой базы 1С
- 2Выберите в меню «Файл → Открыть» и укажите EPF-файл
- 3Дождитесь загрузки структуры обработки в виде дерева
- 4Откройте нужный модуль: модуль объекта или модуль формы
- 5Просмотрите код, при необходимости используйте поиск по модулю (Ctrl+F)
Где именно находится код: модуль объекта и модули форм
Во внешней обработке код распределён по нескольким местам, и новички часто смотрят не туда. Основные точки размещения кода:
- Модуль объекта — открывается через контекстное меню корня дерева обработки, пункт «Открыть модуль объекта». Здесь обычно размещают серверную логику, функции получения данных, обработчики, не привязанные к интерфейсу.
- Модуль формы — откройте нужную форму двойным щелчком, затем перейдите на вкладку «Модуль» в нижней части редактора формы. Здесь обработчики событий формы и команд, клиентские процедуры.
- Модуль менеджера — встречается редко, открывается аналогично модулю объекта через контекстное меню.
Практический признак: если обработка при запуске показывает форму с кнопками, основная логика чаще всего в модуле этой формы. Если обработка выполняет действия пакетно, без интерактива, — ищите код в модуле объекта. В сложных обработках логика разнесена: форма вызывает процедуры модуля объекта, поэтому просматривать нужно оба места.
Как быстро найти нужный фрагмент кода
Если обработка большая, используйте поиск по всем модулям: в конфигураторе есть глобальный поиск (Ctrl+Shift+F), но для внешнего файла он работает ограниченно. Надёжнее открыть каждый модуль и искать внутри него через Ctrl+F по ключевым словам — например, по тексту сообщения об ошибке, которое выводит обработка.
Как посмотреть код без конфигуратора
Штатной возможности посмотреть код EPF-файла без платформы 1С не существует: формат бинарный и закрытый. Однако есть обходные варианты для смежных задач.
Если у вас есть доступ к базе, где обработка подключена как дополнительная, а конфигуратор недоступен, можно воспользоваться специализированными инструментами разработчика (например, консолью кода или инструментами анализа внешних файлов), которые распаковывают контейнер EPF. Такие инструменты извлекают модули в текстовые файлы, которые читаются любым редактором. Учитывайте, что это нештатные средства — используйте их только с обработками, на анализ которых у вас есть право.
Для разработчиков, работающих с EDT (1C:Enterprise Development Tools), существует другой путь: внешние обработки можно импортировать в проект EDT, где код представлен в виде обычных файлов модулей на встроенном языке. Это удобно для сравнения версий и хранения в системе контроля версий.
Сравнение способов
Штатный и самый надёжный способ. Требует установленной платформы, но работает с любым EPF-файлом без дополнительных настроек.
Подходит для разработчиков, ведущих проекты в EDT и хранящих код в git. Требует импорта обработки в проект.
Позволяют извлечь модули в текстовые файлы без конфигуратора. Нештатные средства, результат зависит от конкретного инструмента и версии формата.
Защищённые модули: почему код не открывается
Частая ситуация: обработка открывается, но вместо кода виден пустой модуль или сообщение о защите. Это значит, что разработчик поставил обработку без исходных текстов модулей — платформа позволяет сохранять EPF только со скомпилированным байт-кодом. В этом случае посмотреть логику штатными средствами невозможно.
Второй вариант защиты — пароль на модуль. При попытке открыть модуль конфигуратор запросит пароль, и без него код недоступен. Пароль может знать только автор обработки или поставщик решения.
Обходить такую защиту не стоит: во-первых, это нарушает права автора и условия поставки, во-вторых, результаты работы декомпиляторов не гарантируют корректность восстановленного кода. Правильный путь — запросить исходные тексты у поставщика. Если обработка куплена, уточните условия лицензии: иногда исходники предоставляются по запросу или входят в расширенную поставку.
На что обратить внимание при анализе чужого кода
Просмотр кода сторонней обработки перед запуском — это вопрос безопасности данных. Обработка выполняется с правами пользователя, который её запустил, и может делать с базой всё, что доступно этому пользователю.
Проверьте в коде характерные места риска:
- вызовы
ЗапуститьПриложение,КомандаСистемы— запуск внешних программ; - работа с файловой системой:
Записать,УдалитьФайлы, обращения к сетевым путям; - HTTP-запросы и отправка данных — объекты
HTTPСоединение,HTTPЗапрос; - прямые запросы к базе и конструкции
Удалить()у объектов; - обращения к COM-объектам и внешним компонентам.
Наличие таких вызовов само по себе не означает вредоносность — например, обмен с сайтом требует HTTP-запросов. Но каждый такой фрагмент стоит прочитать и понять, какие данные куда передаются.
Как проверить, что вы увидели весь код
После просмотра убедитесь, что не пропустили части обработки. Контрольные точки: открыт и просмотрен модуль объекта, просмотрены модули всех форм из дерева обработки, проверены макеты — в макетах кода нет, но там могут быть запросы и схемы компоновки данных, влияющие на логику.
Дополнительная проверка — запуск обработки в копии базы под отладчиком. Подключите отладку в конфигураторе, поставьте точку останова в начале модуля формы и пройдите выполнение по шагам. Так вы увидите реальный порядок вызовов и поймёте, какие процедуры действительно задействованы.
Как проверить результат
Модуль открывается и содержит читаемый код на встроенном языке
Модуль пуст или запрашивается пароль — код защищён
Каждая форма из дерева открыта, вкладка «Модуль» просмотрена
Часть форм не просмотрена — логика может быть пропущена
Обработка работает в копии базы без ошибок и неожиданных действий
Появляются обращения к внешним ресурсам или изменение данных, не описанные в назначении обработки
Частые вопросы
Можно ли посмотреть код обработки, если установлен только тонкий клиент без конфигуратора?
Нет, тонкий клиент только запускает обработки, но не показывает их код. Нужен конфигуратор из полной поставки платформы либо среда 1C:EDT. Учебная версия платформы для этого подходит.
Чем отличается файл EPF от ERF при просмотре кода?
EPF — внешняя обработка, ERF — внешний отчёт. Формат контейнера одинаковый, открываются оба типа в конфигураторе через «Файл → Открыть», структура модулей аналогична. Разница только в назначении объекта.
Почему конфигуратор выдаёт ошибку при открытии EPF-файла?
Чаще всего причина в несовместимости версий: файл сохранён на более новой платформе, чем установлена у вас. Обновите платформу. Реже файл действительно повреждён при передаче — запросите его повторно.
Как выгрузить код обработки в текстовый файл?
Штатно конфигуратор не выгружает модули внешней обработки в текст. Варианты: скопировать код вручную через буфер обмена, импортировать обработку в проект 1C:EDT, где модули хранятся как файлы, или использовать инструменты распаковки EPF.
Безопасно ли открывать EPF-файл в конфигураторе?
Да, открытие файла в конфигураторе не выполняет код обработки — вы только просматриваете структуру и модули. Опасен именно запуск обработки в базе, поэтому анализ кода всегда проводят до первого запуска.
Что делать, если обработка подключена в базе и файла на диске нет?
Откройте в базе справочник дополнительных отчётов и обработок, найдите нужную обработку и используйте команду выгрузки в файл. Полученный EPF-файл затем откройте в конфигураторе обычным способом.
Что важно запомнить
Код внешней обработки 1С открывается в конфигураторе через «Файл → Открыть», а сам код находится в модуле объекта и модулях форм. Защищённые паролем или поставляемые без исходников модули штатно не просматриваются — исходники запрашивают у поставщика. До запуска чужой обработки в рабочей базе всегда просматривайте код и проверяйте работу на копии.