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