БСП 3.1.5 Обмен данными. В базе приемнике не запускается поиск объектов ссылочного типа при получении данных
Написана небольшая конфигурация: 1 документ, 12 справочников, 3 перечисления.
Внедрена подсистема обмена данными БСП 3.1.5.
Написаны правила обмена Конвертация 2.1.
Правила протестированы на обработке УниверсальныйОбменВФорматеXML. Результат теста полностью удовлетворителен - переносится документ и все значения реквизитов как простых типов, так и ссылочного ссылочного типа. Вариант создания документа значения не имеет: можно создавать с нуля и заполнять руками, можно скопировать и подправить. Результат обмена один - документ и реквизиты загружаются в приемник полностью и без изменений! Вместе с документом передаются отсутствующие данные ссылочного типа.
Эти правила загружены в макет узла обмена. Обмен происходит. Но в базу-приемник передаются только те объекты которые добавлялись пользователем непосредственно в момент создания документа. Данные заполненные на этапе построения документа (авто-подстановка) или полученные при копировании переносятся как ссылки и соответственно не находятся (<Объект не найден> (72:b0d3309c2320a4ab11ec115d0a08ad02))
Натолкните на мысли: в какую сторону копать???
Попробовал добавить в ПКО в обработчик ПередВыгрузкой
ВсеОбъектыВыгружены = Ложь;
ТолькоПолучитьУзелСсылки = Ложь;
Но это не помогло.
Внедрена подсистема обмена данными БСП 3.1.5.
Написаны правила обмена Конвертация 2.1.
Правила протестированы на обработке УниверсальныйОбменВФорматеXML. Результат теста полностью удовлетворителен - переносится документ и все значения реквизитов как простых типов, так и ссылочного ссылочного типа. Вариант создания документа значения не имеет: можно создавать с нуля и заполнять руками, можно скопировать и подправить. Результат обмена один - документ и реквизиты загружаются в приемник полностью и без изменений! Вместе с документом передаются отсутствующие данные ссылочного типа.
Эти правила загружены в макет узла обмена. Обмен происходит. Но в базу-приемник передаются только те объекты которые добавлялись пользователем непосредственно в момент создания документа. Данные заполненные на этапе построения документа (авто-подстановка) или полученные при копировании переносятся как ссылки и соответственно не находятся (<Объект не найден> (72:b0d3309c2320a4ab11ec115d0a08ad02))
Натолкните на мысли: в какую сторону копать???
Попробовал добавить в ПКО в обработчик ПередВыгрузкой
ВсеОбъектыВыгружены = Ложь;
ТолькоПолучитьУзелСсылки = Ложь;
Но это не помогло.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) В типовых еще при настройке обмена все участвующие в обмене ссылочные объекты можно сопоставить. Вам или выгружать принудительно (ВыгрузитьПоправилу) или зарегистрировать в обмен вручную все существующие объекты. Правильно второе.
Обмен по плану обмена именно этим и отличается, что каждый объект выгружается только при изменении, а не всегда.
Обмен по плану обмена именно этим и отличается, что каждый объект выгружается только при изменении, а не всегда.
Немного разобрался.
Дела обстоят так:
Обработка Универсальный обмен в формате xml выгружает данные в xml файл содержащий описание объекта и правила "загрузки" объекта.
Подсистема обмена выгружает xml файл содержащий только выгружаемый объект а все ссылочные типы заменяет на их идентификаторы.
Из этого следует, что все данные должны быть предварительно выгружены в базу приемник.
Вопрос: как все таки заставить правила обмена работать на стороне приемника?
Сейчас, если в базе источник и приемник в справочнике склады были совпадающие данные, то они задваиваются:
Код Наименование
00001 Склад1
00001 СкладНовый1
00002 Склад2
00002 СкладНовый2
Дела обстоят так:
Обработка Универсальный обмен в формате xml выгружает данные в xml файл содержащий описание объекта и правила "загрузки" объекта.
Подсистема обмена выгружает xml файл содержащий только выгружаемый объект а все ссылочные типы заменяет на их идентификаторы.
Из этого следует, что все данные должны быть предварительно выгружены в базу приемник.
Вопрос: как все таки заставить правила обмена работать на стороне приемника?
Сейчас, если в базе источник и приемник в справочнике склады были совпадающие данные, то они задваиваются:
Код Наименование
00001 Склад1
00001 СкладНовый1
00002 Склад2
00002 СкладНовый2
(5)
РС Соответствие объектов информационных баз (КД 2)
Не могу понять, как туда попадает информация или как мне его настроить? Я просто включил его в план обмена как сказано в мануале.
Универсальный обмен не выполняет сопоставление при выгрузке/загрузке. Это делает обмен по плану обмена. Связь прописывается или в РС Соответствие объектов информационных баз (КД 2) или в РС Публичные идентификаторы синхронизируемых объектов (КД 3).
РС Соответствие объектов информационных баз (КД 2)
Не могу понять, как туда попадает информация или как мне его настроить? Я просто включил его в план обмена как сказано в мануале.
(7) В приемнике после записи объекта или ручного сопоставления. В отправители после получения подтверждения из приемника. Если вы ждете имя модуля и процедуры, то не скажу не искал. Для обмена со сторонними системами я например пишу так:
Если НЕ РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ЗаписьЕстьВРегистре(СтруктураПроверки) Тогда
РегистрыСведений.ПубличныеИдентификаторыСинхронизируемыхОбъектов.ДобавитьЗапись(СтруктураПроверки);
КонецЕсли;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот