|
GUID и вычисление(восстановление) даты из него | ☑ | ||
---|---|---|---|---|
0
Lendy
26.10.07
✎
13:05
|
Как я понимаю, GUID генерится исходя из времени, даты и некоторой случайности. Можно ли из GUID вычислить дату его генерации (фактически дату создания объекта)? Способ для 8 байтного нашел, а для 16 нет. Лог не поможет, т.к. сломался.
|
|||
1
GrayT
26.10.07
✎
13:20
|
Может поможет.... http://ssy.mccinet.ru/guid.html
|
|||
2
Lendy
26.10.07
✎
13:42
|
(1) спасибо, буду искать в acсess, но в 1С может быть другой метод.
|
|||
3
Hadgehogs
26.10.07
✎
13:54
|
//Берем в 1С GUID как строку, отправляем в ВК, там GetGUIDFromString(), 8 (не левых, а хитро взятых) байт через CopyMemory() в переменную TDateTime. Не претендую на истину, Дельфей под рукой нету, могу дома попробовать. Важно! GUID в 1С хранится не так, как представляется. Там пары байт перемешаны почему - то.
|
|||
4
Hadgehogs
26.10.07
✎
13:55
|
+ дома буду часа через два, попробовать?
|
|||
5
Lendy
26.10.07
✎
14:23
|
(4) если можно. Я долго буду с ВК разбираться )) Если получится - буду пробовать.
|
|||
6
Lendy
26.10.07
✎
15:25
|
http://partners.v8.1c.ru/forums/thread.asp?forum=186&id=521906 ветка на партнерском форуме.
|
|||
7
Hadgehogs
26.10.07
✎
15:59
|
В ветку попасть не могу.
Нету в GUID даты, нету. В 1C ом GUID нету. Создайте новую конфу. Создайте в ней справочник. Заведите в справочнике пару элементов. Выведите их "GUID" Выйдите из 1С. зайдите в 1С создайте 1 элемент покурите создайт 2 ой элемент Выведите 'GUiD'ы Сожалею.. Однако продолжу опытки извлечь дату из настоящего GUID в Delphi |
|||
8
Hadgehogs
26.10.07
✎
16:04
|
(6)А че там, в ветке то?
|
|||
9
Lendy
26.10.07
✎
16:18
|
(8) пока ничего определенного. Советуют не пользоваться. От 1С ответа нет. По идее МАС адрес сетевой карты тоже должен быть в гуиде. Обычно это последние 8 байт. Но в 1С это не так.
|
|||
10
Hadgehogs
26.10.07
✎
16:33
|
Пока ощущение такое, что при начале работы генерится GUID, а затем при создании объектов идет его инкременация на единицу. Так как 1C не может генерить объекты быстрее, чем несколько наносекунд (см .http://ssy.mccinet.ru/guid.html), то инкременация отстает от реального GUID-ного времени. При новой загрузке 1С все повторяет.
Это только теория |
|||
11
Lendy
26.10.07
✎
16:37
|
(10) Если даже так, то тоже хорошо. Можно понять в какой день (сессии больше дня обычно не висят) был создан объект.
|
|||
12
Hadgehogs
26.10.07
✎
16:39
|
В принципе можно устанавливать свои "настоящие" GUID через
УстановитьСсылкуНового() в ПередЗаписью() |
|||
13
Hadgehogs
26.10.07
✎
16:41
|
Пошел короче GUID потрошить
|
|||
14
Hadgehogs
26.10.07
✎
16:56
|
(1)
Наносекунда = 10e-9 секунд. Чтобы "зацепить" эту наносекунду частота процессора должна быть 1/10e-9 ГЦ = 1ГГЦ. Что это? Это я на своем старом Duron 750 МГЦ р\нормальные GUID-ы не смогу получать. А - кошмар, я понял, почему на нем 1С тормозит. Ждет, пока GUID получить сможет :-) Как страшно жить... |
|||
15
Lendy
26.10.07
✎
22:13
|
Re: Вопрос по GUID и вычислению даты из него
сегодня 21:27 Нуралиев Сергей (1С, Москва) 522194 Сама по себе задача не является правильной. Уникальный идентификатор может быть и не сгенерирован при создании объекта, а взят из другой информационной системы. Не стоит его пытаться использовать в каком-либо качестве, кроме того, для которого он предназначен. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |