|
UUID (ГУИДы) | ☑ | ||
---|---|---|---|---|
0
_Дайвер_
24.08.17
✎
11:12
|
Доброго времени суток друзья!
Встал вопрос касательно ГУИДов в системе 1С, расскажите пожалуйста подробнее на основании каких данных он формируется? |
|||
1
Ёпрст
24.08.17
✎
11:13
|
нажми на "Я" справа вверху.
|
|||
2
Волшебник
модератор
24.08.17
✎
11:13
|
зачем тебе?
|
|||
3
_Дайвер_
24.08.17
✎
11:21
|
(1) Искал, не могу найти на основании каких данных он формируется, Дата + Время + Код + еще что то там. (2) Возник вопрос, если в 2-х базах, будет идентичные объекты, гуид совпадет или нет. Может он просто как код формируется типа сначало 0000001 потом 0000002 и т.д.
|
|||
4
arsik
гуру
24.08.17
✎
11:23
|
(3) нет
|
|||
5
aleks_default
24.08.17
✎
11:23
|
"Искал, не могу найти" - возьми на полке такую толстую книжку
|
|||
6
Волшебник
модератор
24.08.17
✎
11:23
|
(3) Не совпадёт.
|
|||
7
SSSSS_AAAAA
24.08.17
✎
11:24
|
(3) Объекты, созданные в разных базах, будут иметь разные идентификаторы даже если все остальное в них будет абсолютно одинаковым.
|
|||
8
Ёпрст
24.08.17
✎
11:24
|
(4,6) совпадает.
Пример есть :) |
|||
9
Вафель
24.08.17
✎
11:24
|
Даже не мисте этот вопрос раз 100 обсуждался
|
|||
10
_Дайвер_
24.08.17
✎
11:26
|
Есть какая нибудь литература касательно ГУИДов в 1С? Отдельная статья)
|
|||
11
Ёпрст
24.08.17
✎
11:27
|
если вторая база была получена путём клонирования первой, то с большой долей вероятности в ней будут объекты одного типа с одинаковой ссылкой.
|
|||
12
_Дайвер_
24.08.17
✎
11:27
|
(7) Вопрос, на основании чего он разный получится?)
|
|||
13
Волшебник
модератор
24.08.17
✎
11:28
|
(11) Да, это вполне реально.
|
|||
14
dezss
24.08.17
✎
11:31
|
||||
15
Ёпрст
24.08.17
✎
11:31
|
+11 я на это нарвался, при переносе в общую базу, когда объеты одной базы "перетёрли" объекты другой базы при сонхронизации по внутреннему идентификатору. Базы создавались лет 5 назад из одной общей.
Пришлось делать синхронизацию по полям поиска. :( |
|||
16
SSSSS_AAAAA
24.08.17
✎
11:35
|
(12) На основании алгоритма его расчета.
|
|||
17
h-sp
24.08.17
✎
11:36
|
да, тоже постоянно сталкиваюсь например слить две базы с разными организациями, при переносе 2 организации сливаются в одну.
|
|||
18
_Дайвер_
24.08.17
✎
11:37
|
может такое произойти что в разных базах создались 2 идентичных гуида, и скажем при переносе они встретятся (16) Алгоритм и интересует)
|
|||
19
_Дайвер_
24.08.17
✎
11:41
|
Спасибо(14), H A D G E H O G Описал кстати в v8: Где взять описание GUID, который в 1С 8?
GUID - ссылка - это тупо 16 байт. Формируется по особому алгоритму, гарантирующему уникальность вновь созданных ПРЕДСТАВЛЯЕТСЯ обычно в виде: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, где X - представлем в шестнадцетиричном видею Важно! GUID 1С-а представленный в 1С, например Сообщить(Строка(Ссылка.УникальныйИдентификатор())); отличается от фактически хранимого в базе на некоторые перемешанные значения Например, в 1С он выглядит как 6F9619FF-8B86-D011-B42D-00CF4FC964FF В базе (фактически) он имеет значение: 6F9619FF-D011-8B86-B42D-00CF4FC964FF (Это тупо пример, там алгоритм перестановки другой, лень споминать) Важно! GUID 1С формирует не по правилам Microsoft, а инкрементно. В начале сеанса формируется стартовый GUID, r примеру 6F9619FF-8B86-D011-B42D-00CF4FC964F0 У каждого последующего, созданного в этом сеансе ссылочного объекта GUID будет на 1 больше, к примеру: 6F9619FF-8B86-D011-B42D-00CF4FC964F1 6F9619FF-8B86-D011-B42D-00CF4FC964F1 6F9619FF-8B86-D011-B42D-00CF4FC964F1 |
|||
20
SSSSS_AAAAA
24.08.17
✎
11:42
|
(18) В разных базах не могут создасться одинаковые идентификаторы.
|
|||
21
Вафель
24.08.17
✎
11:42
|
Инкрементный гуид - это тоже по правилам, назывется
SequentialUUID |
|||
22
_Дайвер_
24.08.17
✎
11:50
|
(20) Почему? Их хоть и МНОГО(2 в 128 степени), но вероятность есть)
|
|||
23
H A D G E H O G s
24.08.17
✎
11:53
|
Все рассуждения о дублях ГУИД - это городские байки, к которым пока никто не привел фактов; при этом, на 100% я уверен, что дубли ГУИД будут вызваны какими-нибудь обменами.
|
|||
24
H A D G E H O G s
24.08.17
✎
11:55
|
MRStormak, кстати, раскрыл загадку переставления значений GUID - для большей монотонности значений кластерного ключа.
|
|||
25
H A D G E H O G s
24.08.17
✎
11:55
|
Гдето была ветка.
|
|||
26
Вафель
24.08.17
✎
11:56
|
(24) так это давно было известно, SeqUUID все-таки не 1с придумала
|
|||
27
H A D G E H O G s
24.08.17
✎
11:58
|
(26) Не знал. Думал - Российское ноухау.
|
|||
28
Вафель
24.08.17
✎
11:59
|
Даже в АПИ венды есть функция
|
|||
29
_Дайвер_
24.08.17
✎
12:01
|
(23) Если судить в пределах 1-й конфигурации, да(байки 100%), а если при обменах, то такое поведение не исключено, а если БД-х создались из 1-й, то вероятность увеличится, правильно?)
|
|||
30
Вафель
24.08.17
✎
12:03
|
Тут вопрос: как следующий генерится. В какой момент генерируется ключевой 0 элемент.
Ну в серверной вроде при старте сервера,а в файле? |
|||
31
SSSSS_AAAAA
24.08.17
✎
12:06
|
(29) Нет, не правильно. Научитесь таки различать СОЗДАНИЕ и ХРАНЕНИЕ. Дублирование есть результат не СОЗДАНИЯ, а обменов/передач/копирований и т.д.
|
|||
32
_Дайвер_
24.08.17
✎
12:41
|
(31) Я ведь тоже самое спросил, только своими словами: "Если судить в пределах 1-й конфигурации" - НЕТУ ОБМЕНОВ, "а если при обменах, то такое поведение не исключено, И если БД-х создались из 1-й" ОБМЕНЫ\ПЕРЕДАЧИ\КОПИРОВАНИЯ
|
|||
33
Torquader
27.08.17
✎
00:33
|
Значит так.
Алгоритм генерации УИД-ов старается, чтобы они были уникальными, но внутри алгоритма используются параметры машины, такие как MAC-адрес и другие уникальные данные компьютера. Но, если кто-то уникальные данные подправит так, что на двух компьютерах они будут абсолютно одинаковыми, то есть вероятность получить два одинаковых УИД-а. |
|||
34
Garykom
гуру
27.08.17
✎
00:44
|
(33) От MAC-адресов MS отказался, поэтому встает веселая трабла когда на клонированной винде в копии базы легко получить одинаковые гуиды в одно время если генерировать их в одно время.
|
|||
35
Garykom
гуру
27.08.17
✎
00:48
|
(34)+ К примеру на 100 клонированных компах в одной РИБ базе 1С 8.1 на ~2 миллиона объектов (уникальных уид) смогли получить 1 совпадение.
Хотя специально не старались, просто купили кучу системников для автоматизации аптек, админы банально наклонировали винду (даже без смены лицензионных ключей), туда воткнули РИБ базы и отправили по филиалам. Затем при работе через полгода получили 1 совпадение - документ сначала был, а потом перезатерся другим (совсем другая аптека) при штатном обмене. |
|||
36
Torquader
27.08.17
✎
00:58
|
(35) Если бы использовались непоследовательные ИД, то совпадений было бы меньше.
|
|||
37
Garykom
гуру
27.08.17
✎
01:02
|
(36) Да просто желательно знать тонкости работы железа/софта и предусматривать это в своих решениях.
Не обязательно делать кста предотвращение дублей, можно и систему обнаружения и исправления трабл, что и было потом сделано. |
|||
38
Mikhail Volkov
27.08.17
✎
05:20
|
(12) Дык, это сверх секретная информация. Билл Гейтс создал его как некий ИНН масштаба вселенной, и даже не какой-то личности, а любого эл. документа, поскольку в GUID вшивается мак-адрес сетевой карты компа, на котором создан эл. документ. Так-что все мы "под колпаком Мюллера". После конечно объявили, что GUID - нарушение прав человека, и он просто случайное 32 разрядное 16-ное число для 1С-ников.
|
|||
39
Tateossian
27.08.17
✎
15:45
|
||||
40
Tateossian
27.08.17
✎
15:46
|
(35) Наверное поиск этого бага был весьма трудным) Мол, куда делся документ?
|
|||
41
Garykom
гуру
27.08.17
✎
16:44
|
(40) Неа, там повезло что на основании этих доков делались "реестры рецептов", куда и ссылка на исходный документ и скопированы данные из реквизитов документа.
Система предназначенная для контроля изменения документов (уже отправленных на оплату) задним числом сработала штатно. |
|||
42
craxx
27.08.17
✎
17:29
|
(0) я в 7.7 их формировал как MD5-хэш от ЗначениеВСтрокуВнутр()
|
|||
43
Фигня
27.08.17
✎
17:50
|
на клонированных базах неоднократно встречался с дублированием для разных объектов. Например в периферийных. В разных базах, даже из одной конфигурации, даже при переносе данных ни разу не сталкивался.
|
|||
44
Живой Ископаемый
27.08.17
✎
22:03
|
Чуваки, 2к17 на дворе.... Хорош муйню давно переваренную перетирать
|
|||
45
Mikhail Volkov
28.08.17
✎
04:37
|
Разве может повториться случайное 32 разрядное 16-ное число? Только чисто теоретически.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |