Разработка и Конфигурация · 11 мин
Как посмотреть внешний код в 1С
Как открыть и посмотреть внешний код в 1С: внешние обработки через конфигуратор, модули объектов, расширения, запуск в безопасном режиме и типичные ошибки.
Под «внешним кодом» в 1С обычно понимают три вещи: внешние обработки и отчёты (файлы .epf и .erf), расширения конфигурации (.cfe) и внешние компоненты. Чаще всего задача сводится к тому, чтобы открыть файл обработки в конфигураторе и посмотреть её программный код — модуль объекта, модуль формы и процедуры. Это нужно, чтобы понять, что делает обработка перед запуском в рабочей базе, найти ошибку или позаимствовать алгоритм.
Главный инструмент для просмотра — конфигуратор 1С:Предприятие. Простой запуск обработки через «Файл — Открыть» в режиме предприятия покажет только её работу, но не код. Чтобы увидеть именно исходники, файл нужно открыть в конфигураторе, после чего дерево структуры обработки даст доступ к модулям, формам, макетам и запросам.
Важное ограничение: часть обработок распространяется без исходного кода (поставка «только исполнение») или защищена паролем. В таком случае код посмотреть штатными средствами нельзя — платформа честно сообщит об этом. Ниже разберём все рабочие сценарии, их условия и ограничения.
Что считается внешним кодом в 1С
Прежде чем искать код, определите, с каким типом объекта вы работаете — от этого зависит способ открытия. Внешняя обработка (.epf) и внешний отчёт (.erf) — самостоятельные файлы, которые не входят в конфигурацию, но выполняются в ней. Расширение конфигурации (.cfe) — надстройка, изменяющая поведение типовой конфигурации без её снятия с поддержки. Внешняя компонента (.dll, .zip по технологии NativeAPI) — бинарный код, который вообще не содержит встроенного языка 1С.
Отдельный случай — обработки, подключённые через механизм «Дополнительные отчеты и обработки» (типичен для конфигураций на БСП: УТ, ERP, БП, ЗУП). Такие обработки хранятся внутри информационной базы, но физически это те же внешние файлы, загруженные в справочник. Чтобы посмотреть их код, файл сначала нужно выгрузить на диск.
Как открыть внешнюю обработку в конфигураторе
Базовый способ подходит для любого файла .epf или .erf, лежащего на диске. Запустите конфигуратор той базы, для которой предназначена обработка (это не обязательно, но удобно — подсветка синтаксиса и проверка будут учитывать метаданные конфигурации). Сама база при этом может быть пустой: внешняя обработка открывается как самостоятельный файл.
Дальше порядок такой: меню «Файл — Открыть», выберите файл обработки. Появится окно структуры внешней обработки с ветками «Формы», «Макеты», «Модуль объекта». Если обработка открылась сразу в режиме запуска — значит, вы открыли её в режиме предприятия, а не в конфигураторе; закройте и повторите через конфигуратор.
- 1Запустите конфигуратор нужной информационной базы
- 2Откройте меню «Файл — Открыть» (Ctrl+O) и укажите файл .epf или .erf
- 3В дереве структуры выберите «Действия — Открыть модуль объекта» для просмотра основного кода
- 4Двойным кликом по форме откройте конструктор формы, затем вкладку «Модуль» для кода формы
- 5Изучите макеты: запросы и схемы компоновки часто содержат основную логику отчётов
Просмотр модуля объекта и модуля формы
Модуль объекта содержит серверную логику: экспортные процедуры и функции, обработчики, код формирования отчёта. Модуль формы — код, работающий на клиенте: обработчики нажатий кнопок, команды, события элементов. В управляемых формах модули разделены директивами &НаКлиенте и &НаСервере, и важно понимать, где какая часть выполняется.
Если обработка содержит несколько форм, открывайте каждую отдельно. Основная форма обычно помечена в свойствах обработки как «Форма по умолчанию». Кнопки на форме привязаны к командам, а команды — к обработчикам в модуле, поэтому искать логику удобно от видимого элемента интерфейса.
Просмотр запросов и схем компоновки
В отчётах (.erf) значительная часть логики находится не в модуле, а в схеме компоновки данных: текст запроса, настройки группировок, ресурсы. Откройте ветку «Макеты», найдите макет типа «Схема компоновки данных» и двойным кликом откройте конструктор. Текст запроса можно скопировать и проверить в консоли запросов.
Как выгрузить и посмотреть обработку из справочника дополнительных отчётов
Если обработка подключена к базе через «Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки», её файл хранится внутри базы. Прямого просмотра кода из режима предприятия нет — только запуск. Чтобы добраться до исходников, откройте элемент справочника дополнительных обработок и используйте команду «Выгрузить в файл» (в разных версиях БСП — «Сохранить в файл» или аналогичная в меню «Ещё»).
После выгрузки полученный .epf открывается в конфигураторе стандартным способом. Учтите: у пользователя должны быть права на работу с дополнительными обработками и на выгрузку, иначе команда будет недоступна. В некоторых конфигурациях выгрузка дополнительно ограничена настройками безопасности.
Как посмотреть код расширения конфигурации
Расширения просматриваются не через «Файл — Открыть», а через список расширений конфигурации. В конфигураторе откройте «Конфигурация — Расширения конфигурации». В списке видны все подключённые расширения с признаком активности и безопасного режима. Двойной клик по расширению открывает его дерево метаданных — заимствованные объекты, собственные формы и модули.
Код расширения смотрите так же, как код конфигурации: модули форм, общие модули, обработчики событий. Обратите внимание на аннотации изменения методов (&ИзменениеИКонтроль, &Вместо, &Перед, &После) — они показывают, как расширение вклинивается в типовую логику. Если файл расширения лежит отдельно (.cfe), его можно загрузить через кнопку «Загрузить из файла» в том же окне списка расширений.
Почему код может не открываться
Самая частая причина — обработка поставлена без исходного кода. Разработчик при сохранении может скрыть модули, и тогда при попытке открыть модуль платформа выдаст сообщение о том, что модуль недоступен. Вторая причина — пароль на обработку: при открытии файла конфигуратор запросит пароль, и без него структура не раскроется.
Третья группа причин техническая: файл повреждён, создан в более новой версии платформы, чем ваша, или это вообще не обработка, а, например, компонента. Проверьте версию платформы, на которой работаете: обработки, сохранённые в режиме совместимости новой версии, в старой могут не открыться.
Безопасность при работе с чужим кодом
Внешние обработки выполняются с правами текущего пользователя и могут делать с базой всё, что разрешено этому пользователю: изменять и удалять документы, читать и пересылать данные, запускать команды операционной системы. Поэтому правило простое: сначала просмотр кода, потом запуск — и первый запуск только на копии базы.
При просмотре обращайте внимание на вызовы ЗапуститьПриложение, КомандаСистемы, HTTPСоединение, УдалитьДанные, прямые запросы к базе. Наличие таких конструкций не обязательно означает вредоносность, но требует понимания, зачем они используются. Для запуска непроверенных обработок используйте профили безопасности кластера и безопасный режим.
Что делать, если конфигуратора нет
Если под рукой нет установленного конфигуратора, вариантов немного. Файл .epf — бинарный контейнер, и простым текстовым редактором его содержимое не читается осмысленно. Существуют сторонние инструменты разбора формата внешних обработок, которые извлекают тексты модулей в обычные файлы — они применяются на свой риск и не являются штатным средством платформы.
Легальный и надёжный путь — установить платформу 1С (конфигуратор входит в состав поставки) или воспользоваться средой разработки EDT, которая тоже умеет импортировать внешние обработки в проект и показывать их модули как обычные исходные файлы. EDT особенно удобна, если нужно искать по коду нескольких обработок сразу.
Сравнение вариантов
Штатный способ для .epf/.erf и расширений. Подходит всем, у кого установлена платформа. Ограничение: не открывает обработки без исходного кода.
Импортирует обработки в проект, удобен для поиска и анализа нескольких файлов. Требует отдельной установки и привыкания к интерфейсу.
Позволяют извлечь модули без платформы. Риск: неофициальные инструменты, возможны ошибки разбора и угрозы безопасности самих утилит.
Проверка результата
Признак того, что вы открыли именно код, а не запустили обработку: в конфигураторе видно дерево структуры с ветками «Формы», «Макеты», «Модуль объекта», а редактор модуля показывает текст на встроенном языке с подсветкой синтаксиса. Если вместо этого появилось окно с кнопками и полями ввода — вы в режиме исполнения.
Дополнительная проверка — пункт меню «Конфигуратор» должен быть активен, а в заголовке окна указано имя файла обработки, а не название информационной базы в режиме предприятия. Для расширений проверяйте, что дерево открыто именно из окна списка расширений, а не из основной конфигурации.
Как проверить результат
Дерево структуры обработки с модулями и формами
Рабочее окно обработки с кнопками — вы в режиме предприятия
Модуль открывается и показывает код
Сообщение о недоступности модуля или запрос пароля — код закрыт поставщиком
Файл открывается без ошибок формата
Ошибка формата потока — файл повреждён или создан в более новой версии
Частые вопросы
Можно ли посмотреть код внешней обработки без конфигуратора?
Штатными средствами — нет: файл .epf является бинарным контейнером. Варианты — установить платформу с конфигуратором, использовать 1C:EDT с импортом обработки в проект либо сторонние разборщики формата на свой риск.
Почему при открытии модуля появляется сообщение, что модуль недоступен?
Разработчик сохранил обработку в режиме поставки без исходного кода. Это осознанная защита: платформа не хранит текст модуля в файле, и восстановить его штатными средствами невозможно. Обратитесь к автору обработки за исходниками.
Как посмотреть код обработки, подключённой в справочнике дополнительных отчётов и обработок?
Откройте элемент справочника «Дополнительные отчеты и обработки» в режиме предприятия, выгрузите обработку в файл через соответствующую команду меню, затем откройте полученный .epf в конфигураторе. Нужны права на выгрузку дополнительных обработок.
Чем отличается просмотр кода расширения от просмотра обработки?
Обработка открывается как файл через «Файл — Открыть», а расширение — через «Конфигурация — Расширения конфигурации» с последующим открытием его дерева метаданных. В расширении дополнительно смотрите аннотации изменения методов, показывающие перехват типовой логики.
Безопасно ли открывать чужую обработку в конфигураторе?
Да, само открытие файла в конфигураторе код не исполняет — опасен только запуск обработки. Поэтому просмотр исходников как раз и является способом проверки перед запуском. Запускайте незнакомые обработки только на копии базы.
Обработка не открывается с ошибкой формата — что делать?
Чаще всего файл создан в более новой версии платформы или повреждён при передаче. Проверьте версию своей платформы и попросите прислать файл заново, желательно архивом. Если версия устарела — обновите платформу до актуального релиза.
Что важно запомнить
Внешний код 1С смотрят в конфигураторе: обработки и отчёты — через «Файл — Открыть», расширения — через список расширений конфигурации. Обработки из справочника дополнительных отчётов сначала выгружают в файл. Код, поставленный без исходников или под паролем, штатно не открывается. Перед запуском любой чужой обработки сначала изучите её модули и тестируйте только на копии базы.