Как исправить ошибку «Метод объекта не обнаружен (ПриПолученииНастроек)» при создании нового плана обмена в 1С

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

При разработке собственных механизмов интеграции на платформе «1С:Предприятие 8» программисты часто сталкиваются с необходимостью создания новых планов обмена. Если ваша конфигурация построена на базе Библиотеки стандартных подсистем (БСП), процесс добавления нового плана обмена строго регламентирован. Любое отклонение от стандартов БСП может привести к критическим ошибкам, из-за которых система откажется запускаться даже в режиме «Предприятие».

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

Почему возникает ошибка «Метод объекта не обнаружен (ПриПолученииНастроек)»

Давайте проанализируем ситуацию. Ошибка обычно проявляется в виде следующего системного сообщения:


{ОбщийМодуль.ОбменДаннымиСервер.Модуль(8825)}: Метод объекта не обнаружен (ПриПолученииНастроек)
ПланыОбмена[ИмяПланаОбмена].ПриПолученииНастроек(НастройкиПланаОбмена);

Эта ошибка возникает в тот момент, когда подсистема обмена данными БСП пытается инициализировать настройки для вашего нового плана обмена. Когда вы регистрируете свой план обмена в подсистеме (например, добавляя строку ПланыОбменаПодсистемы.Добавить(Метаданные.ПланыОбмена.ИмяВашегоПланаОбмена) в общем модуле ОбменДаннымиПереопределяемый), ядро БСП автоматически включает его в контур мониторинга.

При запуске системы, открытии формы настроек синхронизации или в процессе самого обмена общий модуль БСП ОбменДаннымиСервер пытается динамически обратиться к модулю менеджера вашего плана обмена и вызвать из него экспортную процедуру ПриПолученииНастроек. Если эта процедура отсутствует, не объявлена как экспортная или ошибочно помещена в модуль объекта вместо модуля менеджера, платформа генерирует исключение, полностью блокируя дальнейшую работу.

Важное примечание: Иногда данная ошибка может проявляться на полностью типовых конфигурациях (1С:ERP, 1С:Комплексная автоматизация или 1С:Управление нашей фирмой) после обновления. Это происходит, если разработчики фирмы «1С» добавили в поставку новый служебный план обмена, но забыли описать необходимый метод в его модуле менеджера. Способ устранения в обоих случаях идентичен.

---

Шаг 1. Создание процедуры в Модуле менеджера плана обмена

Для решения проблемы нам необходимо предоставить БСП ожидаемый интерфейс. Откроем конфигуратор, найдем наш новый план обмена и перейдем в его Модуль менеджера (обратите внимание, именно в модуль менеджера, а не модуль объекта!).

Добавим в модуль менеджера следующий шаблон экспортной процедуры:


#Область ПрограммныйИнтерфейс

// Заполняет настройки, влияющие на использование плана обмена подсистемой БСП.
//
// Параметры:
//  Настройки - Структура - настройки плана обмена по умолчанию.
//                          См. описание возвращаемого значения функции 
//                          ОбменДаннымиСервер.НастройкиПланаОбменаПоУмолчанию().
//
Процедура ПриПолученииНастроек(Настройки) Экспорт
	
	// Здесь при необходимости переопределяются стандартные настройки БСП.
	// Если специфических настроек нет, процедуру можно оставить пустой.
	
КонецПроцедуры

#КонецОбласти

Даже если вам не нужно переопределять стандартное поведение БСП для данного обмена, эта процедура обязательно должна присутствовать в модуле менеджера и иметь ключевое слово Экспорт. Пустая процедура просто вернет настройки по умолчанию, что позволит системе успешно пройти инициализацию.

---

Шаг 2. Настройка параметров обмена внутри процедуры (при необходимости)

Разберем подробнее, какие именно настройки мы можем переопределить в процедуре ПриПолученииНастроек. Это позволит нам тоньше управлять поведением обмена данными. Через входящий параметр Настройки (который является структурой) мы можем задать следующие свойства:

  1. Использование правил регистрации: Если ваш обмен использует правила регистрации объектов (КД 2.1 или КД 3.0), мы можем явно указать это в настройках.
    
    Настройки.ПравилаРегистрацииВМенеджере = Истина;
    Настройки.ИмяМенеджераРегистрации = "ИмяВашегоОбщегоМодуляРегистрации";
    
  2. Определение глобальности обмена: По умолчанию БСП считает многие обмены локальными. Если ваш план обмена должен быть доступен глобально во всех узлах, установите: Настройки.Глобальный = Истина;
  3. Варианты транспорта данных: Вы можете ограничить каналы передачи данных (например, разрешить только каталог или только FTP).
    
    // Пример отключения отправки по электронной почте для данного плана обмена
    Настройки.ДоступныеТранспортыДанных.Удалить("Email");
    

---

Шаг 3. Дополнительные требования БСП к новому плану обмена

Одной лишь вставки процедуры ПриПолученииНастроек в модуль менеджера часто бывает недостаточно для полноценной работы обмена в экосистеме БСП. Чтобы ваш новый план обмена функционировал стабильно, выполните следующие обязательные шаги:

1. Включение обязательного регистра в состав

В свойствах вашего плана обмена перейдите на вкладку «Состав». Убедитесь, что в состав включен регистр сведений СоответствияОбъектовИнформационныхБаз. Этот регистр используется БСП для сопоставления ссылок между различными базами данных. Если его не включить, при первой же синхронизации вы получите ошибку записи соответствий.

2. Настройка авторегистрации

Для всех объектов, которые вы включаете в состав плана обмена, настоятельно рекомендуется устанавливать свойство «Авторегистрация» в значение «Запретить». Дело в том, что БСП управляет регистрацией изменений программно через подписки на события. Ручная авторегистрация платформы может конфликтовать с механизмами БСП, вызывая избыточную регистрацию документов и справочников, что приведет к замедлению работы системы.

3. Добавление обязательных макетов

Если ваш обмен будет использовать правила конвертации данных (особенно актуально для интеграций на КД 2.1), БСП требует наличия определенных макетов непосредственно в самом плане обмена. Даже если в будущем вы планируете загружать правила из внешних файлов, создайте в плане обмена три макета с типом «Текстовый документ» со следующими точными именами:

4. Регистрация в общих командах

Чтобы пользователи могли настраивать синхронизацию через стандартный интерфейс БСП, ваш новый план обмена должен быть включен в типы параметров следующих общих команд конфигурации:

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

---

Особенности разработки в расширениях конфигурации

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

В этом случае безопаснее и надежнее осуществлять переопределение списка планов обмена БСП через функцию СписокПлановОбменаБСП в общем модуле ОбменДаннымиПовтИсп, предварительно перенеся его в ваше расширение с вызовом метода &Вместо или &После.

Соблюдение этих простых правил и обязательное наличие процедуры ПриПолученииНастроек в модуле менеджера гарантируют корректную интеграцию вашего нового плана обмена в общую экосистему конфигурации 1С и избавят вас от неприятных системных ошибок на этапе запуска предприятия.

← На главную