![]() |
![]() |
![]() |
|
ГУИД 1С8 | ☑ | ||
---|---|---|---|---|
0
boulat
23.06.08
✎
09:56
|
После удаления документа ГУИД освобождается или нет?
Произойдет свертка базы, боюсь не появились бы документы с такими же ГУИДами, какие были у старых документов. |
|||
1
Immortal
23.06.08
✎
09:59
|
нет
|
|||
2
Immortal
23.06.08
✎
10:00
|
можешь не бояццо. в пределах одной базы гуид не повторяеццо
|
|||
3
RomaH
naïve
23.06.08
✎
10:00
|
в поиск
ГУИД вообще НИКОГДА не повторяется (в идеале) |
|||
4
boulat
23.06.08
✎
10:07
|
(1),(2),(3) Я тоже так думаю, тем более вероятность повторения у 128 битного числа сами понимаете какая, но у нас в офисе возник спорный вопрос на эту тему, и без обоснования немного не катит. Может кто ссылками поделится?
|
|||
5
NewNick
23.06.08
✎
10:10
|
(4) стандартный алгоритм генерации гуида привязан к уникальным меткам железа(например мак адрес сетевой) и времени-дате с некислой точностью. если время назад переводить не будете и пытаться попасть в долю секунды когда гуид создавался то новый такой же не сделаете.
|
|||
6
Immortal
23.06.08
✎
10:11
|
(3) бугага. повторяеццо. и ишшо как. Поищи на форуме, казусы описаны(УРБД в частности)
|
|||
7
NewNick
23.06.08
✎
10:24
|
(6) хороший способ вести дискусию. типо ищите контраргументы на свой аргументы в поиске сами.
|
|||
8
Лефмихалыч
23.06.08
✎
10:34
|
>После удаления документа ГУИД освобождается или нет?
гуид состоит из двух частей, первая - уникальная метка момента времени, вторая - уникальная метка места. Как это может освобождаться? ЗЫ на счет мест "первая" и "вторая" не уверен, т.к. в 1С, кажется все наоборот, не уверен, но смысл от этого не меняется |
|||
9
Immortal
23.06.08
✎
10:41
|
(7) прссто не стоит столь категорично утверждать . Тем более что прецеденты уже были.
да и механизм..гг..генерации гуида в 1сv8 недавно ж вроде обсуждали. т.е. некоторые части гуида уникальные, а некоторые (которые увеличиваюццо на 1 при.. генерации) повторяются. |
|||
10
Лефмихалыч
23.06.08
✎
10:44
|
(9) то есть ГУИД 1С - не имеет ни чего общего с http://ru.wikipedia.org/wiki/UUID ?
Офигеть... |
|||
11
Лефмихалыч
23.06.08
✎
10:44
|
+(10) ...ни чего общего, кроме внешнего вида
|
|||
12
H A D G E H O G s
23.06.08
✎
10:44
|
(10) Имеет
|
|||
13
Immortal
23.06.08
✎
10:47
|
(10) имеет в некоторой части.
|
|||
14
H A D G E H O G s
23.06.08
✎
10:48
|
Стартовый GUID формируется по (10) потом, при записи новых объектов - инкремент на единицу в поле "Время".
|
|||
15
Лефмихалыч
23.06.08
✎
10:48
|
(12) внешний вид?
|
|||
16
Лефмихалыч
23.06.08
✎
10:49
|
(14) а в какой момент формируется стартовый гуид?
|
|||
17
H A D G E H O G s
23.06.08
✎
10:50
|
ХБЗ, может при старте/или при записи нового элемента справочника.
Дельфей под рукой нету, так бы глянул.. |
|||
18
H A D G E H O G s
23.06.08
✎
10:51
|
P.S. Сообщить(Строка(ЭлементСправочника.УникальныйИдентификатор()));
выведет не то, что хранится в базе.. Он поменяется местами поля ГУИДа (хз зачем) |
|||
19
Лефмихалыч
23.06.08
✎
10:52
|
зачем было такую куйню делать?.. а зачем тогда вообще было ГУИД делать? уму не растяжимо... от ить офощи...
|
|||
20
Лефмихалыч
23.06.08
✎
10:53
|
(18) на эти грабли я уже с разбегу прыгал, но надеялся, что это единственная причуда
|
|||
21
H A D G E H O G s
23.06.08
✎
10:57
|
(19)
Менять местами - да не пойму, может перечудили, может какая задумка... Инкремент - плюсы и минусы есть. плюс - скорость, минус нет возможности точно узнать дату ссылки. (тока дата). |
|||
22
NewNick
23.06.08
✎
10:59
|
вроде 1с юзает виндовую функцию CoCreateGUID( ). насколько я помню входных аргументов у нее нет. в таком случае что именно и зачем 1с увеличивает на 1 ?))
|
|||
23
Лефмихалыч
23.06.08
✎
11:03
|
(22) ты ветку полностью читал?
|
|||
24
H A D G E H O G s
23.06.08
✎
11:04
|
(22) При начале работы - ГУИД=CoCreateGUID();,
при записи - НовыйЭлемент.ГУИД=ГУИД; ГУИД=ГУИД+1; // в плане времени. (Согласитесь, так быстрее, чем еще раз CoCreateGUID()) ? |
|||
25
NewNick
23.06.08
✎
11:06
|
(23) вопрос к теме генерации гуида имеет отношение? ) читал. а в чем причина беспокойства ?
|
|||
26
NewNick
23.06.08
✎
11:07
|
(24) фигня.
|
|||
27
Лефмихалыч
23.06.08
✎
11:07
|
(24) быстрее, но зато (6)... какая-то глупая и нижнеполушарная логика...
ЗЫ Оценка умственных способностей дана "разрабоччегам" 1С, а не автору (24) {шоб понятно было} |
|||
28
H A D G E H O G s
23.06.08
✎
11:07
|
(26) Ваша версия?
|
|||
29
Лефмихалыч
23.06.08
✎
11:08
|
(26) была б фигня, не повторялись бы они до 3036 года
|
|||
30
NewNick
23.06.08
✎
11:08
|
(24)
Сообщить(Новый УникальныйИдентификатор()); Сообщить(Новый УникальныйИдентификатор()); Дает 4ff44eaa-c3c4-4ac7-8eb6-b55db94ffed4 9dedefa5-f49c-4956-9be1-f387289e5db6 |
|||
31
Лефмихалыч
23.06.08
✎
11:09
|
(30) и чо? кто сказал, что для создания ГУИДа нового объекта то же алгоритм?
|
|||
32
H A D G E H O G s
23.06.08
✎
11:09
|
(30) Садись, пять..
|
|||
33
NewNick
23.06.08
✎
11:10
|
(29) это в рамках 1с они повторятся ?)) они рискуют повторится в рамках общего алгоритма. который использует время.
|
|||
34
Лефмихалыч
23.06.08
✎
11:11
|
(33) еще раз - ветку всю читал?
|
|||
35
NewNick
23.06.08
✎
11:13
|
(31) проверь. я проверял. кроме того довольно забавно использовать 2 алгоритма для генерации гуида и кроме того опасно с учетом того что у пользователя есть возможность назначить свой гуид. а типовой для дока и генерация гуида как объекта оказывается играют по разным алгоритмам. вот тут как раз можно и нарваться на неуникальность. здравый смысл.
|
|||
36
NewNick
23.06.08
✎
11:15
|
(34)->(25)
|
|||
37
Лефмихалыч
23.06.08
✎
11:17
|
(35) о том и ветка, что "вот тут как раз можно и нарваться на неуникальность", но гения из 1С со здравым смыслом по факту не дружат, либо они на столько гения, что логика у них квантовая и простым смертным не понятна
|
|||
38
H A D G E H O G s
23.06.08
✎
11:21
|
(35)Да, херня неприятная, смотрим:
СписокСсылок=Новый СписокЗначений; Объект=Справочники.Склады.СоздатьЭлемент(); Объект.УстановитьСсылкуНового(Справочники.Склады.ПолучитьСсылку(Новый УникальныйИдентификатор())); Объект.Записать(); СписокСсылок.Добавить(Объект.Ссылка); Объект=Справочники.Склады.СоздатьЭлемент(); Объект.Записать(); СписокСсылок.Добавить(Объект.Ссылка); Для Каждого Элемент ИЗ СписокСсылок цикл Сообщить(Элемент.Значение.УникальныйИдентификатор()); КонецЦикла; |
|||
39
H A D G E H O G s
23.06.08
✎
11:22
|
И пару раз это выполнить :-)
|
|||
40
NewNick
23.06.08
✎
11:23
|
прикольно. беру свои слова обратно.
|
|||
41
NewNick
23.06.08
✎
11:23
|
Док1 = Документы.ABCКлассификацияПокупателей.СоздатьДокумент();
Док1.Дата = ТекущаяДата(); Док2 = Документы.ABCКлассификацияПокупателей.СоздатьДокумент(); Док2.Дата = ТекущаяДата(); Док1.Записать(); Док2.Записать(); сообщить(Док1.Ссылка.УникальныйИдентификатор()); сообщить(Док2.Ссылка.УникальныйИдентификатор()); |
|||
42
NewNick
23.06.08
✎
11:23
|
472f0b13-4079-11dd-a992-0013d3ae4805
472f0b14-4079-11dd-a992-0013d3ae4805 |
|||
43
H A D G E H O G s
23.06.08
✎
11:25
|
(40) Я не об этом..
Вот здесь и может быть неуникальность. Тока навряд ли.. так повезет. |
|||
44
NewNick
23.06.08
✎
11:25
|
звиздец. это выше моего понимания как и то как сравнивается момент времени привязанный кстати к гуидам.
|
|||
45
Лефмихалыч
23.06.08
✎
11:28
|
(44) то-то и оно, шо не понятно, как оно вообще работает...
|
|||
46
NewNick
23.06.08
✎
11:35
|
(29)
http://cppclub.newmail.ru/articles/insidecom09.html Эта функция выполняет специфицированный OSF DCE алгоритм, который использует комбинацию следующей информации для генерации GUID: текущие время и дату – 60 бит глобальный уникальный идентификатор машины, получаемый от сетевой карты (а при ее отсутствии синтезируемый из изменяющихся машинных состояний) – 48-битное значение и т.п. Шанс генерации двух одинаковых GUIDs ничтожно мал. Подсчитано, что используемый сейчас алгоритм генерации GUID начнет выдавать повторяющиеся значения в 3400 году. |
|||
47
NewNick
23.06.08
✎
11:36
|
Повторяемость гуида после 3400 года это к общему алгоритму, вызвано походу тем что переполнится 60 бит выделеных под текущее время и дату.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |