КД УстановитьСсылкуНового где происходит ? подскажите
Всем привет ! Пытаюсь разобраться с обменом, столкнулся со следующим вопросом и не могу догадаться ...
Обмен из базы Документооборот 1.4 в ERP 2 переливается
Спр.ВнутренниеДокументы > Спр.ДоговорыКонтрагентов
в ДО Спр.ВнутренниеДокументы есть реквизит СсылкаЕРП = УникальныйИдентификатор()
при обмене этот реквизит попадает в ЕРП в реквизит СсылкаДО = {ДО.СсылкаЕРП} и внимание ! происходит какая-то магия, - новый элемент в ERP Спр.ДоговорыКонтрагентов получает УникальныйИдентификатор() = {ERP.СсылкаДО}
То есть для нового элемента как я думаю выполняется код типа:
Но я не могу понять где это происходит ?!
Смотрю правила обмена - там такого нет ... В конфигурации ERP искал УстановитьСсылкуНового не нашел ...
Если есть идеи - подскажите где искать ?
В итоге: в обоих базах ДО и ERP одинаковые идентификаторы для соответственно Спр.ВнутренниеДокументы и Спр.ДоговорыКонтрагентов причем их можно использовать по кнопке "Перейти по ссылке";
Обмен из базы Документооборот 1.4 в ERP 2 переливается
Спр.ВнутренниеДокументы > Спр.ДоговорыКонтрагентов
в ДО Спр.ВнутренниеДокументы есть реквизит СсылкаЕРП = УникальныйИдентификатор()
при обмене этот реквизит попадает в ЕРП в реквизит СсылкаДО = {ДО.СсылкаЕРП} и внимание ! происходит какая-то магия, - новый элемент в ERP Спр.ДоговорыКонтрагентов получает УникальныйИдентификатор() = {ERP.СсылкаДО}
То есть для нового элемента как я думаю выполняется код типа:
ДоговорКонтрагента.УстановитьСсылкуНового(ДоговорКонтрагента.СсылкаДО );
Но я не могу понять где это происходит ?!
Смотрю правила обмена - там такого нет ... В конфигурации ERP искал УстановитьСсылкуНового не нашел ...
Если есть идеи - подскажите где искать ?
В итоге: в обоих базах ДО и ERP одинаковые идентификаторы для соответственно Спр.ВнутренниеДокументы и Спр.ДоговорыКонтрагентов причем их можно использовать по кнопке "Перейти по ссылке";
Прикрепленные файлы:
ПравилаОбмена.xml
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Припоминаю, что с этим вопросом когда то лазил отладчиком в обработке обмена данными, анализировал логику работы. Насколько я помню, там создавался объект по уникальному идентификатору, заполнялись реквизиты, и лишь потом проверялся объект на существование в ИБ, и если нету - записывался. Как именно создавался, не могу вспомнить. Возможно, что-то вроде "ПолучитьОбъект( ....УникальныйИдентифкатор"
Ответ неполноценный, но поможет в поисках.
Ответ неполноценный, но поможет в поисках.
(3) ситуация следующая: поиск по УИД не стоит, СсылкаЕРП указана в Полях_поиска
НО ! Она же является УИД-ом ! Есть ли какая-нибудь галочка/правило которая говорит "использовать УИД после успешного поиска по полям"
НО ! Она же является УИД-ом ! Есть ли какая-нибудь галочка/правило которая говорит "использовать УИД после успешного поиска по полям"
// ПКО_ДоговорыКонтрагентов_ПоследовательностьПолейПоиска
Если НомерВариантаПоиска = 1 тогда
СтрокаИменСвойствПоиска = "СсылкаДО";
ИначеЕсли НомерВариантаПоиска = 2 тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.Ссылка КАК Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Номер = &Номер
| И ДоговорыКонтрагентов.Дата = &Дата";
Запрос.УстановитьПараметр("Дата", СвойстваПоиска["Номер"]);
Запрос.УстановитьПараметр("Номер", СвойстваПоиска["Дата"]);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
СсылкаНаОбъект = Выборка.Ссылка;
Иначе
СсылкаНаОбъект = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
Иначе
ПрекратитьПоиск = 1;
КонецЕсли;
ПоказатьПрикрепленные файлы:


(4) посмотрел правила, ничего подозрительного не увидел. Тут только отладкой смотреть. попробуйте на стороне загрузки посмотреть, что происходит в обработке "Универсальный обмен данными в формате XML". Проблема и при ручной загрузке и при загрузке автоматом через синхронизацию? Посмотрите еще после выгрузки сам пакет обмена, корректные ли в нем данные и не стоит ли в пакете для этого объекта по какой-то причине поиск по уид.
(5) Хочу уточнить один момент: в обработчике ПоляПоиска, ПКО ДоговорыКонтрагентов следующий код:
ПрекратитьПоиск = 1; // <<< Это не означает ли, что создать Объект надо с УИД источника ?!
ПрекратитьПоиск - булево. Если Истина, то поиск объекта прекращается, в зависимости от того СсылкаНаОбъект заполнена или нет создается новый объект.
Если НомерВариантаПоиска = 1 тогда
СтрокаИменСвойствПоиска = "СсылкаДО";
ИначеЕсли НомерВариантаПоиска = 2 тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.Ссылка КАК Ссылка
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|ГДЕ
| ДоговорыКонтрагентов.Номер = &Номер
| И ДоговорыКонтрагентов.Дата = &Дата";
Запрос.УстановитьПараметр("Дата", СвойстваПоиска["Номер"]);
Запрос.УстановитьПараметр("Номер", СвойстваПоиска["Дата"]);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
СсылкаНаОбъект = Выборка.Ссылка;
Иначе
СсылкаНаОбъект = Справочники.ДоговорыКонтрагентов.ПустаяСсылка();
КонецЕсли;
Иначе
ПрекратитьПоиск = 1; // <<< Это не означает ли, что создать Объект надо с УИД источника ?!
КонецЕсли;
ПоказатьПрекратитьПоиск = 1; // <<< Это не означает ли, что создать Объект надо с УИД источника ?!
ПрекратитьПоиск - булево. Если Истина, то поиск объекта прекращается, в зависимости от того СсылкаНаОбъект заполнена или нет создается новый объект.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот