Перенос своего объектного реквизита КД 3.0 (ERP2 ->БП3)
Здравствуйте!
Имеется односторонний обмен БП3.0 -> ERP2.4
В БП и в ERP создан дополнительный справочник.
А так же в некоторые типовые документы добавлен реквизит - ссылка на этот справочник(в обоих базах).
Справочник включил в обмен, найдя в формате EnterpriseData наиболее похожий объект и дописав условие в ПОД по выбору ПКО. С ним все ок, он переносится. Важно: идентификация происходит сначала по полям поиска потом по УИД.
Не понятно как изменить правила обмена документов так чтобы ссылка на справочник переносилась тоже.
Как я понял через AdditionalInfo не подходит, т.к. идентификация справочника происходит не только по УИДу.
В обучающих роликах Гилева видел про перенос через ДополнительныеРеквизиты, с помощью т.н. "инструкции", но я не понял как при этом не сломать типовой перенос дополнительных реквизитов...
Имеется односторонний обмен БП3.0 -> ERP2.4
В БП и в ERP создан дополнительный справочник.
А так же в некоторые типовые документы добавлен реквизит - ссылка на этот справочник(в обоих базах).
Справочник включил в обмен, найдя в формате EnterpriseData наиболее похожий объект и дописав условие в ПОД по выбору ПКО. С ним все ок, он переносится. Важно: идентификация происходит сначала по полям поиска потом по УИД.
Не понятно как изменить правила обмена документов так чтобы ссылка на справочник переносилась тоже.
Как я понял через AdditionalInfo не подходит, т.к. идентификация справочника происходит не только по УИДу.
В обучающих роликах Гилева видел про перенос через ДополнительныеРеквизиты, с помощью т.н. "инструкции", но я не понял как при этом не сломать типовой перенос дополнительных реквизитов...
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Как вариант - в базе источнике в ПКО документа в обработчике "При отправке":
в базе приемнике, в ПКО документа в обработчике "При конвертации данных XDTO"
Минус решения в том, что поиск нужно описывать вручную.
Если ЗначениеЗаполнено(ДанныеИБ._ВашРеквизит_) Тогда
СтруктураДопИнф = Новый Структура;
СтруктураДопИнф.Вставить("_ВашРеквизит_", XMLСтрока(ДанныеИБ._ВашРеквизит_));
СтруктураДопИнф.Вставить("_ПоляПоиска1_", XMLСтрока(ДанныеИБ._ВашРеквизит_._ПоляПоиска1_));
СтруктураДопИнф.Вставить("_ПоляПоиска2_", XMLСтрока(ДанныеИБ._ВашРеквизит_._ПоляПоиска2_));
ДанныеXDTO.Вставить("AdditionalInfo", СтруктураДопИнф);
КонецЕсли;
в базе приемнике, в ПКО документа в обработчике "При конвертации данных XDTO"
Если ДанныеXDTO.Свойство("AdditionalInfo") Тогда
_СтрокаСсылкиВашРеквизит_ = "";
Если ДанныеXDTO.AdditionalInfo.Свойство("_ВашРеквизит_", _СтрокаСсылкиВашРеквизит_) Тогда
//Проверка на заполненность _СтрокаСсылкиВашРеквизит_
//Ищем по ссылку по строке _СтрокаСсылкиВашРеквизит_, если находим то ПолученныеДанные._ВашРеквизит_ = найденная ссылка, иначе:
//Если не находим ищем по полям ДанныеXDTO.AdditionalInfo._ПоляПоиска*_
//Если находим по полям поиска ПолученныеДанные._ВашРеквизит_ = найденная ссылка
КонецЕсли;
КонецЕсли;
ПоказатьМинус решения в том, что поиск нужно описывать вручную.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот