Имя: Пароль:
1C
 
v8: Где взять описание GUID, который в 1С 8? продолжение
0 Mikhail Volkov
 
08.01.11
12:10
Все же остались сомнения: GUID и UUID одно и то же? В предыдущей части [b]H A D G E H O G s[/b] писал: [q]GUID 1С-а представленный в 1С, например
Сообщить(Строка(Ссылка.УникальныйИдентификатор()));
отличается от фактически хранимого в базе на некоторые перемешанные значения
Например, в 1С он выглядит как
6F9619FF-8B86-D011-B42D-00CF4FC964FF
В базе (фактически) он имеет значение:
6F9619FF-D011-8B86-B42D-00CF4FC964FF [/q]
Так же приводятся функции преобразования GUID в UUID и обратно...
Мне хочется точно это знать, чтобы синхронизировать 1Сv8 базы по GUID, например УПП - УТ - РТ. А GUID-ы были присвоены (получены) из баз 1Сv7, их перенес в 1Сv8. По Сообщить(Строка(Ссылка.УникальныйИдентификатор())); все ОК, совпадает! А на самом деле? Потом GUID не поменять...
1 hhhh
 
08.01.11
12:17
(0) это не преобразование, это представление. В таком виде вылазит на экран. А внутри всё одинаково.
2 Новиков
 
08.01.11
12:21
>> В предыдущей части

Ссылку на предыдущую часть желательно б конечно указать.
3 Лефмихалыч
 
08.01.11
12:59
(0) >GUID-ы были присвоены (получены) из баз 1Сv7

это ты еще с нового года не протрезвел или просто не так выразился?
4 IamAlexy
 
08.01.11
13:01
(3) а чего странного.. в 7ке тоже можно было получить эти самые UINы

правда они непохожи ни разу на то что в 8ке...


зы: в вроде как всегда было так что что в 7ке, что в 8ке уникальность этих "уникальных иднентификаторов" поддерживается в рамках одной базы...
5 Лефмихалыч
 
08.01.11
13:13
(4) да вот это всё и странно
6 SergoOd
 
08.01.11
13:31
(4) В 7ке в рамках БД. В 8-ке уникальность глобальна.
7 SergoOd
 
08.01.11
13:32
(+6) Там UIN ( в 7.7.).  Здесь GUID (в 8-ке)
8 ДенисЧ
 
08.01.11
13:32
(6) "В 8-ке уникальность глобальна"
блаженны надеющиеся...
9 SergoOd
 
08.01.11
13:33
(8) Остается надеяться :)
10 Новиков
 
08.01.11
13:34
(8) "Блажен кто верует. Легко ему на свете" (с)
11 SergoOd
 
08.01.11
13:43
(10) GUID - Globally Unique Identifier - шестнадцатибайтный двоичный массив, обеспечивающий, по-идее, идентификаторы, которые не повторяются нигде и никогда.
"Нигде" обеспечивается включением в код MAC-адреса сетевого интерфейса (при его отсутствии - какого-то суррогата).
"Никогда" - это генерация меток времени с точностью до 1 нс размером 8 байт.
Так делает Microsoft, B называет ID  глобальным.
Вопрос к Новикову - есть факты, что 1С генерит повторяющиеся GUIDы? Этоя не для спора пишу - мне хочется услышать тех, кто реально столкнулся с этим.
12 ДенисЧ
 
08.01.11
13:45
(11) МС уже давно не пихает мак в гуиды...
13 MM
 
08.01.11
13:47
1C генерирует GUIDы уникально, но последовательными блоками (не вызывая каждый раз функцию ОС), это нужно для борьбы с диапазонными блокировками в БД работающими в автоматическом режим блокировок.
14 SergoOd
 
08.01.11
13:47
(12) Согласен. Но от этого он не перестал быть GUID
15 ДенисЧ
 
08.01.11
13:50
(14) скажем так. Я 5 лет назад натолкнулся на дублирование гуидов, генерируемых mssql.
Причем они были сгененированы гарантированно в разное время.
16 SergoOd
 
08.01.11
13:52
Коллеги, можете иронизировать насчет "блаженных" :), кто верует, но я продолжаю надеяться, что 1С здесь на повторение не попадет. Разве, что люди руками не влезут.
http://www.1c-pro.ru/index.php?showtopic=26426
Это обсуждалось.
Спасибо за терпение.
17 Новиков
 
08.01.11
13:54
(14) чисто гипотетически предположу, что твой вопрос - это не тонкий троллинг, а все такие действительно тяга к светлому. К знаньям то бишь. Исходя из этого и не умоляя общности исследований, могу дополнить Грибоедовский афоризм следующими утверждением: мне не известны факты, когда платформа 1С, без участия маленьких, потненьких, шаловливых ручонков, делала не уникальные гуиды. Но это совсем не означает, что одинаковых гуидов с присутсвием уже упомянутых маленьких и потненьких - нет. Конечно есть. Причем, обычно я их наблюдаю там, где пишутся какие-то скулевские апдейты, где есть какие-то мега-исправлялки неправильных обменов. Где есть приямые выгружалки из тисов акккурат куда-то в 8.x - и т.д. Практически всегда, если запустить соотв. обработки, мы увидим одинаковые гуиды ;)
18 SergoOd
 
08.01.11
13:59
(17) Та какой там троллинг... Тем более тонкий.
Намечаются как раз массовые обмены в одном проекте.
Вот и ищу мнения опытных людей.
Про "потные руки" я как раз и писал в (16), в ссылке на обсуждение.
"Причем, обычно я их наблюдаю там, где пишутся какие-то скулевские апдейты, где есть какие-то мега-исправлялки неправильных обменов."
Сам этого боюсь.
19 hhhh
 
08.01.11
14:00
(11) ну, 1С разрешает программисту самому генерить эти коды. А если этот инструмент попадет в руки Новикову, тогда мама не горюй.
20 H A D G E H O G s
 
08.01.11
14:01
Опять GUID-о спор.

(15) Ты прям ясно видел, как NewID() возвращает одинаковые GUID ?
21 ДенисЧ
 
08.01.11
14:01
(20) Я прям ясно видел, что у меня 2 элемента справочника (в 77, кастомно) имеют одинаковый гуид, из-за чего я попал на штуку рублей...
22 Новиков
 
08.01.11
14:02
(19) я надеюсь массовые обмены между 7.7 и 8.хэ? =)
23 SergoOd
 
08.01.11
14:03
(17) НЕ могу удержаться...
Блажен, кто верует, - ТЕПЛО ему на свете! - А. Грибоедов, "Горе от ума", (Чацкий), 1824

Тепло - не легко. Это опят же не для спора - просто тем, кто верует, все-таки тоже не легко.
Никого не хочу обидеть.
24 H A D G E H O G s
 
08.01.11
14:04
(21) 1с77 использует в качестве UID GUID? Вроде longint всегда был.
25 ДенисЧ
 
08.01.11
14:05
(24) Специально для одарённых написал "кастомно". Введён был отдельный реквизит, который заполнялся триггером.
26 Новиков
 
08.01.11
14:05
(23) "ай да Пушкин! ай да сукин сын!" (с)

//тонкий троллинг все-таки детектид
27 SergoOd
 
08.01.11
14:06
(22) Видимо вопрос ко мне.  Именно между 77 и 8. :((
28 SergoOd
 
08.01.11
14:07
(26)  все - больше ни слова не напишу.
29 H A D G E H O G s
 
08.01.11
14:08
(25) Вооот. Ближе к телу. А то всякий хрень говоришь, "кастомно"...

И как же этот реквизит заполнялся?
30 ДенисЧ
 
08.01.11
14:10
(29) для очень особо одарённых написал - "по триггеру". OnInsert, если шо.
31 H A D G E H O G s
 
08.01.11
14:10
(25) Вот так появляются возрастные комплексы...
Прокатили ДенисЧ на штуку пять лет назад, с тех пор верует, что GUID неуникален.

Может просто руки - крюки?
32 ДенисЧ
 
08.01.11
14:11
(31) да, разумеется. Только у писателей newid()...
33 H A D G E H O G s
 
08.01.11
14:11
(30) Ты счаст прикалываешься, да?
Как бы пофиг, в какой момент реквизит заполнялся, важно, заполнялся ли он NewID()-ом, или там что свое писалось.
34 ДенисЧ
 
08.01.11
14:13
(33) Ну я не знаю, уж насколько одарённым нужно быть, чтобы мои посты не понимать...
35 Новиков
 
08.01.11
14:17
а вот не подеретесь!
а вот не подеретесь!

;)
36 H A D G E H O G s
 
08.01.11
14:31
(32) Все же newId() ?
Версию SQL не вспомнишь?
2000-ая?

А то можно проверить.
37 Immortal
 
08.01.11
15:05
так вроде обсасывали этот вопрос уже..
автор, поищи на форуме ветки
38 Mikhail Volkov
 
08.01.11
15:41
to Новиков предыдущая часть здесь v8: Где взять описание GUID, который в 1С 8?
to Лефмихалыч в базах 1Cv7 GUID-ы были навешаны надстройкой Агент+ http://www.agentplus.ru/ для обмена с КПК торговых агентов.
to hhhh значит просто представление, а не преобразование?
Если я объекту присвоил GUID следующим образом:
Ссылка = Справочники.МойСправочник.ПолучитьСсылку(Новый УникальныйИдентификатор("4E49CD44-EB96-48B0-86CB-2795436898F9"));
МойСправочник.УстановитьСсылкуНового(Ссылка);
А потом проверяю:
Выборка = Справочники.МойСправочник.Выбрать();
Пока Выборка.Следующий() Цикл
   Сообщить("Объект: " + Выборка.Наименование + ", идентификатор: " + Выборка.Ссылка.УникальныйИдентификатор());
   // или так (тот же результат вижу)
   Сообщить("Объект: " + Выборка.Наименование + ", идентификатор: " + XMLСтрока(Выборка.Ссылка));
КонецЦикла;
то так оно и есть?
39 Aleksey
 
08.01.11
16:23
(38) А ты попробуй
40 Mikhail Volkov
 
08.01.11
17:10
В этом и дело, что в обоих вариантах для данного примера вижу "4E49CD44-EB96-48B0-86CB-2795436898F9" - то что задал. Сомнение вызывает высказывание H A D G E H O G s: "GUID 1С-а представленный в 1С, например
Сообщить(Строка(Ссылка.УникальныйИдентификатор()));
отличается от фактически хранимого в базе на некоторые перемешанные значения
Например, в 1С он выглядит как
6F9619FF-8B86-D011-B42D-00CF4FC964FF
В базе (фактически) он имеет значение:
6F9619FF-D011-8B86-B42D-00CF4FC964FF" - типа не верь глазам своим...
41 ДенисЧ
 
08.01.11
17:47
(36) 7й
42 Immortal
 
08.01.11
19:56
(40)и в скл тоже?
43 Immortal
 
08.01.11
19:56
ну т.е. что там видишь в БД
44 H A D G E H O G s
 
08.01.11
20:00
(40) Залезь в SQL Enterprise Manager-ом и посмотри, что там фактически лежит.
45 H A D G E H O G s
 
08.01.11
20:00
(41) Неее, такой древности я у себя не найду.
46 Immortal
 
08.01.11
21:46
(17) одинаковые гуиды возможны в РИБ.