Имя: Пароль:
1C
1С v8
какова вероятность генерации одинакового УИД объекта в двух разных базах 1с?
0 pankrat00
 
16.04.14
13:06
Ну собственно интересует числовое значение. На сколько она ничтожна.
И второй вопрос было ли такое куго нить на практике?
1 Maxus43
 
16.04.14
13:08
у меня было на практике 1 раз,
вероятность в цифрах - хз, ОЧЕНЬ мала
2 Лефмихалыч
 
16.04.14
13:10
(0) ни разу не было
(1) може просто пробирки надо чище мыть :)
3 pankrat00
 
16.04.14
13:11
(1) Maxus43 есть возможность программной установки и переноса УИД. Может это был тот случай?
4 Maxus43
 
16.04.14
13:11
(2) недавно с тобой же и спорили в другой теме какой-то.
Было было, есть же вероятность? есть, дак зачем разводить демагогию. Я бы сам не поверил никому, если бы не столкнулся
5 PR
 
16.04.14
13:12
(1) LOL
6 Maxus43
 
16.04.14
13:13
(3) мы анализировали эту ситуацию. По записям Версионирования были созданы 2 документа с одинаковый УИД в разных базах разными пользователями без права запуска внешних бработок и с порезанными правами.
Других объяснений не нашли
7 H A D G E H O G s
 
16.04.14
13:13
(6) Значит что-то не учли.
8 Maxus43
 
16.04.14
13:15
всё может быть, других объяснений не найдено. Считайте спонтанной флуктуацией на альфе-центавра
9 PR
 
16.04.14
13:16
(7) Скажем так, вероятность того, что это действительно тот самый случай... :))
10 Maxus43
 
16.04.14
13:19
По теме - боятся такой ситуации конечно не надо.
(9) самое невероятное событие когда-нибудь да случается. Тем более что это событие теоретически возможно. У кого-то и с динамическим обновлением проблем нет, но это ничего не значит
11 Infsams654
 
16.04.14
13:24
(10)+ GOOGLE
GUID (Globally Unique Identifier) — статистически уникальный 128-битный идентификатор. Его главная особенность — уникальность, которая позволяет создавать расширяемые сервисы и приложения без опасения конфликтов, вызванных совпадением идентификаторов. Хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико (2128 или 3,4028?1038), что вероятность того, что в мире будут независимо сгенерированы два совпадающих ключа, крайне мала. Тем не менее, случаи совпадения известны: на системе Windows 95 GUID’ы ярлыка запуска DOS-программ (.pif) и программы ZipMagic 2000 совпадали.
12 Maxus43
 
16.04.14
13:32
И не забываем что ГУИД 1с - намного примитивней ГУИДа винды, он генерится 1 раз, потом обычный инкремент. генерится 1 раз на время работы (сервера 1с, процесса или ещё чего)...

Опять же вероятность очень очень мала, с этим никто и не спорит
13 Aleksey
 
16.04.14
13:34
(11) Мы же про 1С говорим, а у неё все через... вообщем не так как в других программах
14 jsmith82
 
16.04.14
13:34
это пасхалка )
15 МихаилМ
 
16.04.14
13:36
на этом форуме 2 раза видел темы, где авторы уверяли, что
задвоились   гуид.
16 Maxus43
 
16.04.14
13:36
(14) видимо, мне тоже было приятно когда я искал почему каждую итерацию обмена пропадает документ в центральной базе, потом опять появляется :)
17 Maxus43
 
16.04.14
13:37
(15) это я и был 2 раза :)
18 ДенисЧ
 
16.04.14
13:37
~10^-15
19 Aleksey
 
16.04.14
13:37
(0) ГУИД не хранит вид, т.е. для того чтобы появилось проблема мало того что должны быть одинаковы ГУИДы, так еще и тип и вид объектов должны совпадать. Т.е. если если у тебя гутд документа прихода и гуид документа расхода будут совпадать - то для 1С это не важно, для неё это всё равно будут разные объекты.
А вот если гуид документа расхода совпадёт с другим документом расход .... вообщем мало того что вероятность одинаковых гуидов низка, так она еще и уменьшается из-за того что ГУИД в 1С не глобальный
20 shuhard
 
16.04.14
13:39
(0) 10 в -12 степени
21 Maxus43
 
16.04.14
13:43
22 Serginio1
 
16.04.14
13:44
23 МихаилМ
 
16.04.14
13:46
(19)
ошибаетесь. для 1с  несовпадение гуидов документов важно. причем они не должны совпадать в пределах кол-ва документов метаданных
v8: Восстановление по УИД
24 pankrat00
 
16.04.14
14:18
Можно ли считать что вероятность достаточно мала что бы не придумывать дополнительную защиту от задвоения УИД?
25 МихаилМ
 
16.04.14
14:20
(24)

да можно считать, что вероятность  мала .
26 Maxus43
 
16.04.14
14:21
(24) конечно
27 ИС-2
 
naïve
16.04.14
14:24
(10) а вот и надо. Одинаовые конфигурации на разных заводах. У организации сгенирировался один guid. Вот потом были проблемы с сливом информации в консолидацию
28 Maxus43
 
16.04.14
14:27
(27) скажи это (5), он самый упёртый)
29 Serginio1
 
16.04.14
14:32
22+ wiki:GUID
Алгоритм, который Microsoft использовала для генерации GUID, был широко раскритикован. В частности, в качестве основы для генерации части цифр GUID использовался MAC-адрес сетевого адаптера, что означало, например, что по данному документу MS Word (также получающему при создании свой уникальный GUID) можно было определить компьютер, на котором он был создан. Позже Microsoft изменила алгоритм таким образом, чтобы он не включал в себя MAC-адрес


А вот 1С своей инкроментацией Гуида значительно увеличивает вероятность коллизий
http://help1c.com/faq/view/1099.html
30 fisher
 
16.04.14
15:03
(0) Для этого нужен алгоритм формирования идентификатора в 1С и входные условия. А точный алгоритм вроде неизвестен.
Известно, что примерно половина заюзана под ДатаВремя. Остальная часть вроде как константа для конкретной сессии. Но как именно она генерится - неизвестно. Я не слышал, по крайней мере. Очевидно только, что вероятность явно выше, чем у классического алгоритма. Это понятно хотя бы по тому факту, что единичные случаи дублей эпизодически фиксируются.
31 fisher
 
16.04.14
15:05
Мне кажется, что 1С сосредоточились на том, чтобы исключить дубли в пределах одной базы. А снаружи - как повезёт.
32 IVT_2009
 
16.04.14
15:08
(30) там точно дата и время завязана. я видел востановление даты по идентификатору - что мне совсем не понравилось.
33 pankrat00
 
16.04.14
15:14
Ну получается пока только у Maxus43 на практике был зарегистрирован случай... Maxus43 какие последствия были?
34 Леша1с
 
16.04.14
15:18
(31)"чтобы исключить дубли в пределах одной базы. "
так и есть.
(2), (5) вероятность достаточно велика, т.к. ГУИД уникален только в пределах одной базы.
А в других базах - генерится все по тому же алгоритму (отнюдь не случайное число): вид объекта - вид документы - что-то еще.
И вероятность - где-то 1 на 100 тыс объектов в совокупности по двум базам.
35 Maxus43
 
16.04.14
15:20
(33) да никаких серъёзных, ибо заметили. Создали новый док и всё. Как заметили - (16)
36 Maxus43
 
16.04.14
15:25
в РИБ есть более серъёзные проблемы с РАУЗ например, там ключи аналитики под него не приспособлены. Как вариант - генерить для новых гуид по своему алгоритму. 1с сама отказалась от этого, ссылаясь на "что математические никакие алгоритмы формирования гуида не гарантируют 100% совпадения"
37 vvirus
 
16.04.14
15:32
тогда ведите5  учёт в  тройных GUID
id base id MetaObject id Object

в пределах одной  базы  GUID  всё таки уникален
38 fisher
 
16.04.14
16:18
(34) Вот больше всего интересует это "что-то еще". Склоняюсь к тому, что это тупо номер сеанса пользователя. Вероятность одномоментного создания в двух разных базах документа одного и того же вида в сеансах с совпавшими номерами относительно невелика. Но вполне реальна, что и наблюдается.
39 Maxus43
 
16.04.14
16:20
(34)(38) вы шо, в разных сеансах делайте одновремено Сообщить(Новый УникальныйИдентификатор()) - и поглядите на него, он инкрементируется, пофиг на вид документа или сеанс
40 Serginio1
 
16.04.14
16:21
(37) Можно использовать Новый УникальныйИдентификатор()
в УстановитьСсылкуНового

Будет честный GUID
41 fisher
 
16.04.14
16:22
(39) Создание произвольного идентификатора и идентификатора конкретного объекта - не одно и то же. Я когда создавал доки с двух разных сеансов - получал разные префиксы.
42 Serginio1
 
16.04.14
16:23
(39) Новый УникальныйИдентификатор()) не инкрементируется
Инкрементируется только УИД ссылок
43 Maxus43
 
16.04.14
16:24
(41) точно?
(42) сделай сообщить(Новый УникальныйИдентификатор()) 3 раза, он инкрементируется
44 fisher
 
16.04.14
16:27
(43) Вроде да. Еще когда знакомился с 8.0 пытался исследовать вопрос.
Сделал в табло. Не инкрементируется.
45 Serginio1
 
16.04.14
16:31
(43) Да делал

Вот пример в цикле

Для сч=1 По 10 Цикл

    Гуид=нрег(СокрЛП(Новый УникальныйИдентификатор()));
    Сообщить(Гуид);
    
КонецЦикла;


30a921b3-6585-4229-bb4a-fd09a751729d
9fe052aa-7603-43af-87d9-f9c7a18d5cd3
78eb4b48-1e78-4362-8835-47a4c85bdf9c
6cf3611d-e69f-4328-a658-38f0ae48ce12
ca56ce36-d690-495b-b1c5-95507289779b
f621f599-7d6c-442f-beb0-92e56a5cdf6a
e95fb206-6748-4b3c-b611-0e677e096b0a
899d2d33-ee09-4848-8eeb-5e435acdab49
7dcb1728-3148-47a7-9c16-f6f7ff8b76e6
101e88be-1779-4728-8676-9af615d48990

Покажи где инкремент
При этом и дата не вытаскивается как в
http://help1c.com/faq/view/1099.html
46 fisher
 
16.04.14
16:36
Допускаю, что вида документа там нет. Вполне достаточно для второй половины гуида генерить псевдослучайное число для сеанса пользователя. Ибо невозможно одномоментно в одном сеансе создать два документа (там же время не до секунд, а до тиков хранится).
47 fisher
 
16.04.14
16:38
Кстати, это легко проверить. Щаз попробую...
48 Maxus43
 
16.04.14
16:41
(45) сдаётся мне что меняют правила генерации гуида в платформах, на 8.1 делал - инкрементился... ничо не понимаю ужо. Или от файловая клиент-сервер ещё зависит? я запутался...
49 fisher
 
16.04.14
16:45
Похоже на то, что я прав.
Первые два - один вид документа, вторые два - другой. Созданы по порядку:
9273d422-c562-11e3-868a-00155d00a5a9
96f9ede2-c562-11e3-868a-00155d00a5a9
9cacf720-c562-11e3-868a-00155d00a5a9
a1b7641c-c562-11e3-868a-00155d00a5a9
50 fisher
 
16.04.14
16:54
Я перестал что-либо понимать. Создаю в новых и разных сеансах - префикс тот же самый. Щаз на рабочей базе гляну...
51 Локи-13
 
16.04.14
17:01
(27)
Сразу можно предположить, что одну базу сделали на основе другой, либо имел место перенос данных.

(0)
Проверь!

Организуешь на мисте темку, по сбору списков гуидов.
Я могу такой сформировать по примерно 30 гиговой базе.

Берешь выборку из 100ни баз, проводишь анализ, и находишь одинаковые.

Считаешь вероятность.
Сообщаешь всем.
52 Леша1с
 
16.04.14
17:06
(46) всегда был.
Не знаю, куда у вас подевался...
53 Леша1с
 
16.04.14
17:07
(51)"Берешь выборку из 100ни баз, проводишь анализ, и находишь одинаковые."
это надо центральную базу ГУИДов составлять, и расасылать обработки для сбора новых.
54 fisher
 
16.04.14
17:08
Короче, похоже, что 6 байт - тупо идентификатор базы. Т.е. пересечение уидов разных баз - маловероятно. Кроме уида базы и времени в тиках остаются 2 - 3 байта, которые х.з. как формируются. Это и не сессия и не вид документа.
55 ptiz
 
16.04.14
17:10
(27) Логично, т.к. наверняка базы создавались из одного шаблона типовой БП, где изначально была заведена "Наша организация".
56 МихаилМ
 
16.04.14
17:42
(52)
ссылку или алгоритм , подтверждающие Ваше утверждение.
57 Леша1с
 
16.04.14
17:57
58 Леша1с
 
16.04.14
17:59
вот еще на посошок
http://forum-1c.ru/index.php?topic=33699.0
59 Леша1с
 
16.04.14
18:00
и еще на дорожку
v8: ГУИД 1С8
60 fisher
 
16.04.14
18:00
(54) + Причем абсолютно непонятно назначение этих оставшихся байт, т.к. они могут оставаться константой целый день для разных видов документов и разных сессий пользователей.
(57) Х.з. как было раньше, но сейчас вида объекта там нет.
61 МихаилМ
 
16.04.14
18:01
+(60)
и не было.
62 fisher
 
16.04.14
18:02
(60) + Проверяется тупым экспериментом за 2 минуты.
63 МихаилМ
 
16.04.14
18:03
(57)
какой из двух: рарусовский или создатель видеокурсов ?
64 NcSteel
 
16.04.14
19:56
(0) Случалось и не раз. Поэтому всячески избегаю обменов по ГУИДу.
65 Aleksey
 
16.04.14
20:39
(23) С какой это пьяной радости. У меня вполне может быть ГУИЛ поступления совпадать с ГУИД реализации и счет-фактуры
66 Torquader
 
16.04.14
20:54
GUID "уникальный", так как использует данные о времени выполнения и оборудовании компьютера, так как различий много, то есть некоторые гарантии уникальности.
Но, когда вы переходите к работе с виртуальными машинами, то велика вероятность того, что две машины будут настролько похожи, что произойдёт генерация одинакового идентификатора.

Проблема для 1С в том, что она генерит не 1 идентификатор, а сразу набор (так проще - команда генерации позволяет указать некоторое количество ID, которые будут отличаться только полем счётчика), а потом достаёт следующий ID из набора - так что, если совпадёт начальный ИД, то будет как в семёрке - два одинаковых набора.

Правда, система никак не проверяет использование одинаковых ID для разных типов данных.
67 Леша1с
 
17.04.14
17:15
(63) рарусовский конечно.
Второй еще менее.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.