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