Имя: Пароль:
1C
1С v8
БСП - обмен данными по правилам - РС Соответствие объектов информационных баз
0 withoutname
 
20.09.22
17:54
Подскажите как можно реализовать самостоятельное заполнение регистра Соответствие объектов информационных баз?

Сценарий следующий:
1. Выгружается документ, номенклатура не создается (в тч добавлено название номенклатуры и уид базы источника)
2. Пользователь в документе выбирает требуемую Номенклатуру
3. При проведении устанавливать соответствие
1 withoutname
 
21.09.22
09:23
Никто что-ли таким не баловался? )
2 withoutname
 
28.09.22
09:13
Есть такие функции

РегистрыСведений.СоответствияОбъектовИнформационныхБаз.ОбъектЕстьВРегистре(Склад, УзелОбмена)
РегистрыСведений.СоответствияОбъектовИнформационныхБаз.ДобавитьЗапись(СтруктураЗаписи);


Записи добавляются, но в последующем не используются при обмене...
3 withoutname
 
28.09.22
10:51
Нашел, я не указал в РС ТипИсточника и ТипПриемника, а они используются при поиске
Поправил, теперь подставляется )
4 withoutname
 
28.09.22
11:32
Итоговый код

УзелОбмена = Константы.дит_УзелОбменаБИТ.Получить();
Если ЗначениеЗаполнено(УзелОбмена) Тогда
    Если Не РегистрыСведений.СоответствияОбъектовИнформационныхБаз.ОбъектЕстьВРегистре(Склад, УзелОбмена)
        И ЗначениеЗаполнено(Склад) И ЗначениеЗаполнено(дит_УИДСкладаБИТ) Тогда
        
        СтруктураЗаписи = Новый Структура;
        СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелОбмена);
        СтруктураЗаписи.Вставить("УникальныйИдентификаторИсточника", Склад);
        СтруктураЗаписи.Вставить("УникальныйИдентификаторПриемника", дит_УИДСкладаБИТ);
        СтруктураЗаписи.Вставить("ТипПриемника",                     "СправочникСсылка." + Склад.Метаданные().Имя);
        СтруктураЗаписи.Вставить("ТипИсточника",                     "СправочникСсылка." + Склад.Метаданные().Имя);
        
        РегистрыСведений.СоответствияОбъектовИнформационныхБаз.ДобавитьЗапись(СтруктураЗаписи);
    КонецЕсли;
    
    Для каждого СтрокаТовар Из Товары Цикл
    
        Если ЗначениеЗаполнено(СтрокаТовар.Номенклатура)
            И Не РегистрыСведений.СоответствияОбъектовИнформационныхБаз.ОбъектЕстьВРегистре(СтрокаТовар.Номенклатура, УзелОбмена) Тогда
            
            СтруктураЗаписи = Новый Структура;
            СтруктураЗаписи.Вставить("УзелИнформационнойБазы", УзелОбмена);
            СтруктураЗаписи.Вставить("УникальныйИдентификаторИсточника", СтрокаТовар.Номенклатура);
            СтруктураЗаписи.Вставить("УникальныйИдентификаторПриемника", СтрокаТовар.дит_УИДНоменклатурыБИТ);
            СтруктураЗаписи.Вставить("ТипПриемника",                     "СправочникСсылка." + СтрокаТовар.Номенклатура.Метаданные().Имя);
            СтруктураЗаписи.Вставить("ТипИсточника",                     "СправочникСсылка." + СтрокаТовар.Номенклатура.Метаданные().Имя);
            
            РегистрыСведений.СоответствияОбъектовИнформационныхБаз.ДобавитьЗапись(СтруктураЗаписи);
        КонецЕсли;
    КонецЦикла;
КонецЕсли;
5 withoutname
 
28.09.22
11:34
Всем спасибо )
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой