БСП 3.1.5 Обмен данными. В базе приемнике не запускается поиск объектов ссылочного типа при получении данных

1. tsmult 5 10.09.21 09:55 Сейчас в теме
Написана небольшая конфигурация: 1 документ, 12 справочников, 3 перечисления.
Внедрена подсистема обмена данными БСП 3.1.5.
Написаны правила обмена Конвертация 2.1.

Правила протестированы на обработке УниверсальныйОбменВФорматеXML. Результат теста полностью удовлетворителен - переносится документ и все значения реквизитов как простых типов, так и ссылочного ссылочного типа. Вариант создания документа значения не имеет: можно создавать с нуля и заполнять руками, можно скопировать и подправить. Результат обмена один - документ и реквизиты загружаются в приемник полностью и без изменений! Вместе с документом передаются отсутствующие данные ссылочного типа.

Эти правила загружены в макет узла обмена. Обмен происходит. Но в базу-приемник передаются только те объекты которые добавлялись пользователем непосредственно в момент создания документа. Данные заполненные на этапе построения документа (авто-подстановка) или полученные при копировании переносятся как ссылки и соответственно не находятся (<Объект не найден> (72:b0d3309c2320a4ab11ec115d0a08ad02))

Натолкните на мысли: в какую сторону копать???

Попробовал добавить в ПКО в обработчик ПередВыгрузкой

ВсеОбъектыВыгружены = Ложь;
ТолькоПолучитьУзелСсылки = Ложь;

Но это не помогло.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 10.09.21 12:58 Сейчас в теме
(1) В типовых еще при настройке обмена все участвующие в обмене ссылочные объекты можно сопоставить. Вам или выгружать принудительно (ВыгрузитьПоправилу) или зарегистрировать в обмен вручную все существующие объекты. Правильно второе.

Обмен по плану обмена именно этим и отличается, что каждый объект выгружается только при изменении, а не всегда.
3. tsmult 5 10.09.21 14:06 Сейчас в теме
(2)
В типовых еще при настройке обмена все участвующие в обмене ссылочные объекты можно сопоставить.


Я всё так и сделал.

Обмен по плану обмена именно этим и отличается, что каждый объект выгружается только при изменении, а не всегда.


Я это учёл.
6. RustamZz 10.09.21 16:24 Сейчас в теме
(3)
Я всё так и сделал.
а как тогда появились дубли и <объект не найден>
4. tsmult 5 10.09.21 15:16 Сейчас в теме
Немного разобрался.
Дела обстоят так:
Обработка Универсальный обмен в формате xml выгружает данные в xml файл содержащий описание объекта и правила "загрузки" объекта.
Подсистема обмена выгружает xml файл содержащий только выгружаемый объект а все ссылочные типы заменяет на их идентификаторы.
Из этого следует, что все данные должны быть предварительно выгружены в базу приемник.

Вопрос: как все таки заставить правила обмена работать на стороне приемника?

Сейчас, если в базе источник и приемник в справочнике склады были совпадающие данные, то они задваиваются:

Код Наименование
00001 Склад1
00001 СкладНовый1
00002 Склад2
00002 СкладНовый2
5. RustamZz 10.09.21 16:22 Сейчас в теме
(4) Универсальный обмен не выполняет сопоставление при выгрузке/загрузке. Это делает обмен по плану обмена. Связь прописывается или в РС Соответствие объектов информационных баз (КД 2) или в РС Публичные идентификаторы синхронизируемых объектов (КД 3).
7. tsmult 5 10.09.21 17:05 Сейчас в теме
(5)
Универсальный обмен не выполняет сопоставление при выгрузке/загрузке. Это делает обмен по плану обмена. Связь прописывается или в РС Соответствие объектов информационных баз (КД 2) или в РС Публичные идентификаторы синхронизируемых объектов (КД 3).


РС Соответствие объектов информационных баз (КД 2)
Не могу понять, как туда попадает информация или как мне его настроить? Я просто включил его в план обмена как сказано в мануале.
8. RustamZz 10.09.21 17:24 Сейчас в теме
(7) В приемнике после записи объекта или ручного сопоставления. В отправители после получения подтверждения из приемника. Если вы ждете имя модуля и процедуры, то не скажу не искал. Для обмена со сторонними системами я например пишу так:
Если НЕ РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ЗаписьЕстьВРегистре(СтруктураПроверки) Тогда
	РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ДобавитьЗапись(СтруктураПроверки);
КонецЕсли;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот