Size: a a a

1С, БСП, DevOps и Архитектура

2021 October 11

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Видимо да, проверяю, если ИД еще не в списке загруженных, то создаю. Иначе или ничего не делаю или обновляю существующий,  тут уже зависит от загружаемого объекта
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Идея такая, по крайней мере. Если она ущербна, буду рад если покажете в чем.
источник

Г

Г🐈рри in 1С, БСП, DevOps и Архитектура
РС СоответствияОбъектовИнформационныхБаз используется при обмене по правилам КД2. Если используется формат ED, то там свой РС "Публичные идентификаторы синхронизируемых объектов": https://its.1c.ru/db/metod8dev#content:5870:hdoc
источник

Г

Г🐈рри in 1С, БСП, DevOps и Архитектура
Если бы выгружал по правилам КД 2, то в принципе тема уже хорошо раскурена.  Вот для примера:
https://infostart.ru/1c/articles/1184532/
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Ну, так если у нас не используется ни то ни другое, могу я использовать этот регистр для хранения данных?
Если просто буду в регистр писать данные. Не задействую всю "механику" подсистемы обмена - не приведет ли это каким-то печальным последствиям?
источник

YM

Yaroslav Matsera in 1С, БСП, DevOps и Архитектура
О сколько граблей чудесных нам этот путь (не использовать мехнизмы БСП) готовит ))
Ты ничего не поломаешь, если будешь просто использовать РС СоответствияОбъектовИнформационныхБаз, но он тебе ничем и не поможет: если идентификация по ГУИД - то по нему быстрее сразу найти при загрузке, чем задействовать этот регистр. Регистр предназначен именно для хранения соответствий объектов, чей ГУИД не совпадает (т.е. объекты сопоставляются по набору реквизитов).
источник

Г

Г🐈рри in 1С, БСП, DevOps и Архитектура
Совершенно верно. Если у тебя соответствие по ссылке, ее сразу лучше на метаданных и проверять - есть она или нет. Эти все обвязки сделаны для того, чтобы можно было сопоставлять в т.ч. и не воспавшее по гуидам.
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Это если при создании объекта ему присваивать ГУИД пришедший из нетленки. Тогда да. Но я чую что такой способ мне тоже принесет множество "открытий",
Посему и хочу где-то их фиксировать.
источник

YM

Yaroslav Matsera in 1С, БСП, DevOps и Архитектура
В обмене БСП на основе КД2 механизм поиска в этом РС встроен в методы поиска объекта с высшим приоритетом (т.е. только если в этом РС нет соответствия - тогда начинаются поиск по ГУИД и по реквизитам), но в простом обмене XML по КД2 - этот регистр не задействован и тебе его придется прикручивать руками
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
А вот это вот "соответствие по ссылке" каким образом реализуется? Если у меня в бух.базе нет ссылок из нетленки? Чо-то толи лыжи у меня не едут... то-ли не понимаю я Вас )
источник

PZ

P Z in 1С, БСП, DevOps и Архитектура
Если нету то тогда отработает стандартный механизм поиска и запись туда в итоге добавится
источник

YM

Yaroslav Matsera in 1С, БСП, DevOps и Архитектура
Ссылка = Справочник.МойСправочник.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИДИзНетленкиСтрокой));
Если Ссылка.ПолучитьОбъект() = Неопределено Тогда
// Нет такого объекта, создаем и не забываем УстановитьСсылкуНового()
Иначе
// Есть такой объект, редактируем
КонецЕсли;
источник

Г

Г🐈рри in 1С, БСП, DevOps и Архитектура
к коду выше вот что следует тебе знать. В КД2, ты можешь настроить синхронизацию по УИДу. В
источник

Г

Г🐈рри in 1С, БСП, DevOps и Архитектура
этом случае в приемнике (в БП) у тебя будет всегда создаваться элемент с этим УИДом. (Синхронизация по ссылке)
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Если в базах уже ведется учет (параллельно введены сопоставляемые объекты), то по-хорошему перед использованием приоритетного сопоставления по УИДу нужно убедиться, что до начала первого обмена совпадений по УИДам в базах нет.
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Вот как-то не привык я чужие УИДы в базу записывать. Почему-то нележит у меня в этом направлении душа.
источник

Г

Г🐈рри in 1С, БСП, DevOps и Архитектура
Если синхронизация по УИДу нет, то ты должен указать поля синхронизации: там код, дата, номер или что тебе нужно.

Можно комбинировать: ты сначала ищешь по УИДу, но если ничего не нашлось, то продолжаешь искать по полям поиска. В этом случае, если ты нашел по этим полям что-то (как у тебя), тогда ссылка естественно меняться не будет, иначе ты просто получишь битую ссылку на этот объект.
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
В том числе и по этому.
А еще потому что из нетленки выгрузка может быть в несколько разных бухий (в нетленке несколько организаций а бухия по одной штуке на каждую)
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Я правильно понял, что если я найду по "полям поиска" - то мне потом при каждой загрузке придется искать по полям поиска.
Или записать ссылку в регистр "ПубличныеИдентификаторы"? Так ведь?

Ибо первое что я собирался сделать - это выгрузить все что уже есть - и сопоставить идентификаторы двух баз между собой.

Т.к. в базу уже много чего выгружалось сторонними обменами.
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Я как-то думал что искать идентификатор в регистре - это как-то быстрее и проще, чем каждый объект по своим полям поиска "выискивать" всякий раз.
Плюс гарантии всяко больше что не задублирются УИДы.
источник