Уникальность UUID в БД. #615145


#0 by Snork
Подскажите, БД 1С обеспечивает уникальность UUID, которой получаем посредством .УникальныйИдентификатор в пределах всех БД или только в пределах объектов одного вида? Допустим имеем 2 разных вида документов. У них UUIDы могут пересекаться или нет в 1 БД?
#1 by pumbaEO
Да, могут.
#2 by Рэйв
Нет, не могут
#3 by Рэйв
Если имеется УникальеныйИдентификатор коненчно.  ID в таблицах могут
#4 by Рэйв
*имеется в виду
#5 by Snork
Повторюсь: выражение, которое получено с помощью .УникальныйИдентификатор будет гарантировано уникальным среди всех объектов различного вида/типа в пределах 1 БД?
#6 by Рэйв
Да.
#7 by Snork
спс
#8 by Snork
Допустим из БД №1 в БД №2 по ссылке (UUID) выгружается какой либо вид документов. Если в БД №2 создать вручную 1 документ этого вида, то его UUID может пересечься с одним из UUIDов документов, которые мы потом будет выгружать из БД №1?
#9 by pumbaEO
в теории не может пересечься, на практике и палка раз в год стреляет... Таким образом практически все типовые обмены сделаны.
#10 by Живой Ископаемый
2 Если уид двух объектов одного вида будет одинаков, они "сольются" в базе приемнике. То есть от объекта заведенного руками, после загрузки сообщения обмена не останется и следа... кроме разве фантома в ЖР в поле "Представление Данных"
#11 by Advan
Не совсем - были случаи совпадения в разных базах - но они очень редки - шанс столкнуться с таким очень мал.
#12 by Snork
я как раз про этот шанш или палку Сейчас делаю выгрузку для 1 завода из 1 бд в другую. Большого кол-ва видов документов. Причем некоторые виды документов 1 БД сливаются в 1 вид документов другой БД. Пока выгружаю по UUID. Вот думаю правильно ли это стратегически?
#13 by Живой Ископаемый
"Причем некоторые виды документов 1 БД сливаются в 1 вид документов другой БД" - надо полагать что НЕСКОЛЬКО видов документов одной БД в ОДИН вид другой... Итого ты опасаешься, нет ли УЖЕ сейчас в БД1 двух документов РАЗНОГО вида с ОДИНАКОВЫМ уидом. Дык проверь.
#14 by Gobseck
Эта тема неоднократно обсуждалась применительно как к GUID от фирмы 1С, так и к GUID от MS SQL Server. Историю вопроса излагаю по памяти. Первоначально в MS SQL для формирования GUID использовался MAC адрес сетевой платы (заведомо уникальный для каждого компьютера) и случайное число, сгенерированное на основе системной даты и времени в долях секунды. Понятно, что такой подход давал практически 100% гарантию, что GUID никогда не повторится. Потом пошли разборки относительно того, что MAC адрес сетевой платы нельзя выкладывать куда попало из соображений конфидециальности. Фирма Microsoft изменило алгоритм формирования GUID и засекретило его. Вероятность совпадения в разных базах несколько увеличилась и такие случаи на больших базах время от времени возникают. Фирма 1С алгоритм формирования GUID скрывала с самого начала. Можно предположить, что ситуация примерно как с GUID от фирмы Microsoft. Насколько знаю, так делают. Но при этом проверяют на наличие совпадений.
#15 by Живой Ископаемый
2нет, дело с 1С в другом. в том что первоначальный УИД формируется при первом создании нового объекта в конкретном сеансе, и затем инкрементируется для всех последующих объектов созданных в данном сеансе. Ну и да, возможно детальный алгоритм формирования изначального уида в сеансе не известен, известно только что зависит от аптайма среды, выполняющей сеанс
#16 by Snork
сейчас точно нет, т.к. 2ая БД пустая. Но они же могут появиться в будущем. Когда во 2ой БД начнут вводить вручную документы 1С или Ms sql имею разные алгоритмы формирования uid. На форуме в аналогичных ветках обсуждалось
#17 by sda553
Пересечение может быть только в теории, на практике ни одного такого случая до сих пор ни у кого никогда не было. Во всех случаях когда эту проблему поднимали на мисте, выяснялось, что виноват обмен данными между базами, а не случайное совпадение. Обычно это происходит когда смешивается и конфликтуют обмен/загрузка по УИД и обмен/загрузка по , допустим, коду справочника. Вначале проходит обмен/загрузка по УИД, в другой базе появляется элемент с таким же УИД, через некоторое время отрабатывает загрузка по коду и все реквизиты элемента переписываются и внешне он превращается в другой элемент справочника, но с таким же УИД. Еще через некотрое время на мисте появляется тема "А могут ли совпасть УИДы?" Так что ищите ошибку в другом месте, она так вероятнее
#18 by fisher
"Фирма 1С алгоритм формирования GUID скрывала с самого начала" В том-то и дело. И она явно использует не майкрософтовский алгоритм. 1С каким-то макаром присваивает идентификатор сессии пользователя (составляющая гуида) и в её рамках выдача гуидов идет последовательно. Соответственно, смело гарантировать уникальность хотя бы в пределах БД я бы поостерегся. Фиг его знает, как оно на самом деле.
#19 by Живой Ископаемый
+ аналогично... Ни раз не видел чтобы совпадали уиды
#20 by Живой Ископаемый
понятно, можно впредь такие ветки относить в лайф с пометкой "холивар"
#21 by ChAlex
Да вряд ли они появятся в будущем. 1С тоже вряд ли изобретала велосипед и использует майкрософтовсий гуид. Вероятность 1 на триллионы. Совпасть могут уже после обменов (если таковым пользоваться).
#22 by zva
на практике легко, когда умельцы подключают два независимых сервера 1С к одной базе
#23 by sda553
Сомневаюсь, требую эксперимента и отчета
#24 by Aleksey
Ты с нумератором не путаешь?
#25 by zva
Погорячился, контроль уникальности там не работает, uuid все равно разный создается
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С