Имя: Пароль:
1C
1С v8
v8 План обмена из двух баз в одну
0 vitkut
 
25.04.12
08:33
Здравствуйте! Стоит задача из двух баз УПП сливать номенклатуру в одну + документы "ЗаказПоставщику".
Я так понимаю стандартный план обмена синхронизирует объекты по Универсальному Идентификатору. Что произойдет если будет совпадение идентификаторов в двух источниках?
1 Лоботряс
 
25.04.12
08:34
КонецСвета
2 Лоботряс
 
25.04.12
08:38
По-правильному справочная информация должна вводится в одной базе и транслироваться на остальные, иначе будет вечный геморрой
3 vitkut
 
25.04.12
08:40
Это понятно. Но вот так сложилось.
4 vitkut
 
25.04.12
08:42
Кто знает как создается UID? Может как-то привязывается к названию базы или еще чему. Интересует вероятность совпадения.
5 Лоботряс
 
25.04.12
08:42
(3)Ну как всегда. Вообще вероятность такого совпадения очень низка, почитай в гугле про УИД.
6 Serg_1960
 
25.04.12
11:17
(0) Не "тот" подход к решению проблемы --> не "те" вопросы задаются.

А если: план обмена, с синхронизацией справочников по коду и документов по номеру и дате? Предлагаю подумать :)
7 vitkut
 
25.04.12
17:35
Спасибо, конечно. Но не тот случай :(. Тут запросто и код и номер и дату могут поменять.
8 БибиГон
 
25.04.12
18:04
соответствие хранить в регистре сведений
9 Aleksey
 
25.04.12
18:10
10 Живой Ископаемый
 
25.04.12
18:50
если будет совпадение по УИДу, то найдется этот элемент и перезапишется. То есть с кем последним обмен, того и тапки. То есть это всего лишь частный случай ситуации, когда реквизиты одного и того же объекта меняются в разных базах одновременно.

но вероятность совпадения ну просто капец какая низкая. К названию базы не привязывается, при начале сеанса генерируется новый случайный УИД, который зависит от текущего времени и времени аптайма среды сеанса. и потом в рамках текущего сеанса все последующие новые объекты, для которых мы специально не вызываем метод УстановитьССылкуНового получают УИД, полученный автоинкрементом от этого первого сгенеренного УИДа. в Этом месте можно было бы поддаться паранойе - а что если автоинкремент не сработает в силу каких либо причин, например один объект еще не записался, а новый мы уже создаем и движок пытается ему назначить тот же УИД что и предыдущему. Однако если задуматься, такое невозможно - ну не можем мы в рамках ОДНОГО сеанса ОДНОВРЕМЕННО выполнить код ПолучитьССылкуНового()
11 Митор
 
25.04.12
18:51
Что-бы совпасть УиДами нужно пипец как постаратся
12 Живой Ископаемый
 
25.04.12
19:23
2(11) да что там стараться - УстановитьССылкуНового(Новый СправочникСсылка.Контрагенты(Новый УникальныйИдентификатор("a763cfbb-f94f-4c67-8e13-0e96a3a7f353"))