![]() |
![]() |
|
Надо создать уникальный идентификатор. | ☑ | ||
---|---|---|---|---|
0
alex4x
09.03.06
✎
13:36
|
Надо создать уникальный идентификатор для записи данных в внешнюю базу данных. Функции случайного числа я так понимаю нет. Милисикунд тоже нет. Может кто решал эту задачу ?
|
|||
1
Salvador Limones
09.03.06
✎
13:37
|
А чем Новый УникальныйИдентификатор() не нравится?
|
|||
2
romix
модератор
09.03.06
✎
13:39
|
||||
3
Андрюха
09.03.06
✎
13:40
|
А где ТелепатБот дрыхнет?
|
|||
4
alex4x
09.03.06
✎
13:40
|
Ну GUID - он длинный, а потом какая гарантия что он стопудово будет уникальным ?
|
|||
5
mikecool
09.03.06
✎
13:40
|
(4) почитай описание...
|
|||
6
Андрюха
09.03.06
✎
13:41
|
(4) Бугага! Создай 2 GUID и слепи в одну строку....
|
|||
7
Андрюха
09.03.06
✎
13:42
|
(6)+ Или воспользуйся текущей датой в числовом представлении.
|
|||
8
alex4x
09.03.06
✎
13:52
|
А можно получить уникальный идентификатор разреза регистра сведений ?
|
|||
9
Vozhd
09.03.06
✎
13:56
|
(8) "уникальный идентификатор разреза" - это что-то новое в отечественной автоматизации?
|
|||
10
alex4x
09.03.06
✎
13:59
|
(9) Есть регистр сведений, у него допустим три измерения и один реквизит.
|
|||
11
Vozhd
09.03.06
✎
14:01
|
(10) И?
|
|||
12
Rovan
гуру
09.03.06
✎
14:04
|
(8) идентификатор разреза регистра сведений - это видимо список значений измерений
|
|||
13
alex4x
09.03.06
✎
14:07
|
Ну и вот реквизит или ссылка на него лежит же в какой-то одной SQL табличке, и foregin key ями связан с тремя таблицами измерений. Если узнать ID этой строки, то это будет уникальный идентификатор разреза.
А вот что про UUID написано: УникальныйИдентификатор (UUID) Из строки Синтаксис: Новый УникальныйИдентификатор(<Строка>) Параметры: <Строка> (обязательный) Тип: Строка. Строка GUID. Строка задается в виде "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", где Х - символы обозначающие шестнадцатеричное число. Описание: Создает уникальный идентификатор из указанной строки GUID. Уникальность полученного таким образом идентификатора определяется уникальностью строки и поэтому не гарантирована. Пример: СтрокаGUID = "a763cfbb-f94f-4c67-8e13-0e96a3a7f353"; НовыйGUID = Новый УникальныйИдентификатор(СтрокаGUID); Получается что никаких гарантий то нет!!! |
|||
14
Удивленный
09.03.06
✎
14:18
|
Гарантии даст только господь бог.
Ты бы задачку, что-ли, обрисовал поподробнее. А то абсолютно неясно, что тебе надо. |
|||
15
Vozhd
09.03.06
✎
14:26
|
(13)
УникальныйИдентификатор (UUID) По умолчанию Синтаксис: Новый УникальныйИдентификатор Описание: Создает новый гарантированно уникальный идентификатор. Пример: Отчет = Отчеты[ИмяОтчета].Создать(); Форма = Отчет.ПолучитьФорму(,,Новый УникальныйИдентификатор); Форма.ПоказыватьЗаголовок = ПоказыватьЗаголовок; Форма.ОбновитьОтчет(); Форма.Открыть(); |
|||
16
alex4x
09.03.06
✎
14:26
|
(14) Надо сформировать стопудово уникальный код для каждой записи в регистре сведений.
|
|||
17
Vozhd
09.03.06
✎
14:41
|
(16) а в (15) фраза "новый гарантированно уникальный идентификатор" Вас ни на какие мысли не наводит?
|
|||
18
romix
модератор
09.03.06
✎
14:50
|
GUID можно сказать что стопудово уникальный, т.к. генерируется на основании 6-байтового номера сетевой карты и текущего времени. И содержит достаточно бит, чтобы вероятность "не стопудовости" стремилась к 0.
Отсюда следует, что надо иметь на каждом компе сетевую карту (пусть даже встроенную в материнку) и генерировать GUID-ы по возможности не сплошным потоком (т.е. чтобы время различалось). |
|||
19
Андрюха
09.03.06
✎
18:45
|
(18) Но всё-таки для подстраховочки генерируй два идентификатора и создавай свой уникальный из последовательности нечётных символов первого и чётных второго :)))
|
|||
20
Asmody
09.03.06
✎
18:48
|
(19) я думаю, что для уверенности нужно все таки 4 ГУИДа
|
|||
21
romix
модератор
09.03.06
✎
19:12
|
(18) Хотя вот мне говорят что время там берется в тактах процессора.
(19) Месье знает толк в извращениях :-) (20) А почему не 8? |
|||
22
Asmody
09.03.06
✎
19:35
|
(21) да хоть 16 :)
|
|||
23
romix
модератор
09.03.06
✎
19:54
|
(22) На вероятность совпадения/несовпадения это же никак не влияет?
А влияет только количество бит идентификатора. А поскольку есть еще сетевая карта и таймер, то вероятность совпадения строго = 0 (если конечно сетевая карта есть в наличии). |
|||
24
Дяпти
09.03.06
✎
20:18
|
(16) Регистр сведений с уникальным идентификатором записи имхо не что иное как справочник (ну или любая другая типообразующая сущность). Там уникальность Ссылки проверяется при вводе новой, хоть и генерится по алгоритму GUID. Может тебе справочник нужен?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |