При настройке правил обмена в конфигурации «Конвертация данных» (ред. 2.1) и последующей выгрузке документов через обработку «Универсальный обмен данными в формате XML» разработчики нередко сталкиваются с исключением:
Ошибка при выгрузке данных: Метод объекта не обнаружен (УникальныйИдентификатор)
Разберем природу возникновения этой ошибки в платформе 1С:Предприятие, выясним ее главные причины и пошагово рассмотрим, как правильно настроить правила конвертации объектов (ПКО).
В платформе 1С:Предприятие метод УникальныйИдентификатор() определен только для ссылочных типов хранения данных, обладающих глобальным идентификатором (GUID). К ним относятся:
СправочникСсылкаДокументСсылкаПланВидовХарактеристикСсылкаПланСчетовСсылкаПланВидовРасчетаСсылкаПланОбменаСсылкаОднако значения перечислений (ПеречислениеСсылка), примитивные типы (числа, строки, булево, даты), системные значения (Неопределено, NULL), а также объекты (например, СправочникОбъект или ДокументОбъект) данным методом не обладают.
Когда в правиле конвертации объекта (ПКО) установлен признак «Искать объект приемника по внутреннему идентификатору», типовой механизм выгрузки пытается получить уникальный идентификатор источника: Источник.УникальныйИдентификатор(). Если источником выступает перечисление (например, СтавкаНДС при переносе из УТ в БП, где в одной базе это перечисление, а в другой — справочник) или строка, то платформа аварийно завершает выгрузку с ошибкой отсутствия метода.
Рассмотрим, как правильно настроить перенос, когда в базе-источнике реквизит имеет тип «Перечисление», а в базе-приемнике — «Справочник»:
Наименование установим флаг «Поиск объекта при загрузке по свойству».Наименование явно преобразуем перечисление в строковое представление:
Значение = Строка(Источник);
или воспользуемся XML-сериализацией:
Значение = XMLСтрока(Источник);
Проанализируем другие типовые сценарии, приводящие к аналогичной ошибке:
Источник.УникальныйИдентификатор(), а в качестве источника передан объект, возникнет ошибка. Корректный вызов для объекта выглядит так: Источник.Ссылка.УникальныйИдентификатор().ВыгрузитьПоПравилу(): При передаче структуры, строки или неопределенного значения в ПКО, в котором включен поиск по GUID.Неопределено), перед выгрузкой по правилу необходимо убедиться, что значение действительно является ссылкой.Если в правилах много объектов и сложно определить, на каком именно реквизите прерывается обмен, воспользуемся штатным механизмом отладки:
Источник.