Почему не получается подключить внешнюю обработку в 1С:ERP и система требует функцию "СведенияОВнешнейОбработке"?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← К списку

Часто при работе с внешними обработками в 1С:ERP возникает путаница: в одних случаях они открываются без проблем, а в других система выдает ошибку и требует наличия какой-то непонятной функции. Давайте вместе разберемся, в чем причина такого поведения и как правильно работать с внешними файлами *.epf.

Проанализируем ситуацию. На самом деле, существует два принципиально разных способа использования внешних обработок, и от выбора способа зависит, какие требования предъявляются к ее коду. Выясним причину проблемы, рассмотрев оба подхода.

Решение 1: Простое открытие обработки для разового использования

Этот метод является самым быстрым и простым. Он идеально подходит, когда вам нужно выполнить какую-то операцию всего один раз, протестировать код или быстро запустить инструмент, который не требуется встраивать в интерфейс программы для постоянного использования.

Рассмотрим по шагам, как это сделать:

  1. Откройте программу 1С в режиме "Предприятие".
  2. В главном меню (обычно слева вверху) выберите пункт "Файл".
  3. В выпадающем меню нажмите на "Открыть...".
  4. В открывшемся диалоговом окне выберите ваш файл внешней обработки с расширением .epf и нажмите "Открыть".

Важный момент: при таком способе запуска система 1С не предъявляет никаких специальных требований к коду обработки. Ей не нужна экспортная функция СведенияОВнешнейОбработке(), так как обработка не регистрируется в системе, а просто исполняется "на лету". Именно поэтому многие опытные разработчики утверждают, что эта функция не нужна — они имеют в виду именно этот сценарий использования.

Решение 2: Регистрация обработки в системе для постоянной работы (Дополнительная обработка)

Этот подход используется, когда вы хотите, чтобы ваша обработка стала полноценной частью системы. Например, вы хотите добавить новую кнопку в документ, которая будет выполнять определенные действия, или сделать обработку доступной всем пользователям из определенного раздела программы. В этом случае обработка не просто открывается, а регистрируется в справочнике Дополнительные отчеты и обработки.

Именно для этого механизма и нужна экспортная функция СведенияОВнешнейОбработке(). Когда вы пытаетесь добавить обработку через интерфейс администрирования, система обращается к этой функции, чтобы получить служебную информацию о ней: как ее называть, где отображать, какие команды (кнопки) создавать и для каких объектов конфигурации она предназначена.

Если при добавлении обработки система выдает ошибку, что не найдены сведения о ней, значит, вы пытаетесь ее именно зарегистрировать, а в ее коде отсутствует или некорректно заполнена необходимая функция.

Рассмотрим подробнее, что нужно сделать для успешной регистрации:

Шаг 1. Добавление функции СведенияОВнешнейОбработке() в модуль объекта

В вашей внешней обработке, в модуле объекта, должна быть экспортная функция с точным названием СведенияОВнешнейОбработке. Эта функция должна возвращать структуру с определенными параметрами.

Посмотрим на пример базовой структуры этой функции:


Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
    ПараметрыРегистрации.Вставить("Наименование", "Моя первая дополнительная обработка");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
    ПараметрыРегистрации.Вставить("Информация", "Эта обработка предназначена для демонстрации механизма подключения");

    Команды = Новый Массив;
    
    // Описываем первую команду (кнопку), которую увидит пользователь
    Команда1 = Новый Структура;
    Команда1.Вставить("Представление", "Открыть основную форму");
    Команда1.Вставить("Идентификатор", "ОткрытьФорму");
    Команда1.Вставить("Использование", "ОткрытиеФормы");
    Команда1.Вставить("ПоказыватьОповещение", Истина);
    
    Команды.Добавить(Команда1);
    
    ПараметрыРегистрации.Вставить("Команды", Команды);
    
    Возврат ПараметрыРегистрации;

КонецФункции

Проанализируем ключевые параметры:

Шаг 2. Подключение обработки в режиме "Предприятие"

Когда код обработки готов, ее нужно загрузить в систему. Разберем этот процесс по шагам:

  1. Убедитесь, что у вас есть права администратора.
  2. Перейдите в раздел "НСИ и администрирование".
  3. В группе "Сервис" найдите пункт "Печатные формы, отчеты и обработки".
  4. Убедитесь, что установлен флажок "Дополнительные отчеты и обработки". Если нет — установите его.
  5. Перейдите по ссылке "Дополнительные отчеты и обработки".
  6. В открывшемся списке нажмите кнопку "Добавить из файла...".
  7. Выберите ваш файл .epf. Если функция СведенияОВнешнейОбработке() заполнена корректно, система не выдаст ошибок и откроет карточку для настройки.
  8. В карточке вы можете настроить, каким пользователям и в каких разделах программы будет доступна ваша обработка.

Таким образом, мы выяснили, что оба подхода к работе с внешними обработками верны, но предназначены для разных задач. Если вам нужно просто запустить код — используйте "Файл -> Открыть". Если вы хотите интегрировать функционал в систему на постоянной основе — необходимо корректно описать функцию СведенияОВнешнейОбработке() и зарегистрировать обработку через раздел администрирования.

← К списку