|   |   | 
| 
 | 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-ное число? Только чисто теоретически.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |