|
По какому алгоритму формируется GUID или что можно использовать вместо него? | ☑ | ||
---|---|---|---|---|
0
ИС-2
naïve
25.07.13
✎
15:39
|
Для привязки документов нужен какой-то уникальный идентификатор.
Номер и дата не подходят т.к меняются. Весь UID использовать не получается - сторонная прога не поддерживает такаю длину. Как его можно образать, так чтобы сохранить уникальность? Или что можно использовать как уникальный идентификатор? |
|||
1
Кирпич
25.07.13
✎
15:46
|
ну смотря какая длина
|
|||
2
George Wheels
25.07.13
✎
15:48
|
MD5 UID
|
|||
3
МихаилМ
25.07.13
✎
15:48
|
(0)
сколько байт размер поля идентификатора ? |
|||
4
Aleksey
25.07.13
✎
15:48
|
Так а длина какая? Может просто "-" убрать?
|
|||
5
Gepard
25.07.13
✎
15:49
|
я делал отдельную табличку со стандартным нумератором postgre и отдельным полем под гуид. инсертится гуид, получается число
|
|||
6
Русмус
25.07.13
✎
15:51
|
GIUD - это число в 16-ричной системе счисления.
Преобразуй в 32-ричную систему - вдвое сократится длина, сохранив уникальность. |
|||
7
ИС-2
naïve
25.07.13
✎
16:00
|
(5) можно более подробно?
(6) Пользователи повесятся диктовать уникальный идентификатор Можно, конечно, сделать свой реквзит-нумератор. Но охото более стартными средствами |
|||
8
vladon
25.07.13
✎
16:00
|
(2)
> MD5 UID Из 128 бит получить 128 бит? )) |
|||
9
МихаилМ
25.07.13
✎
16:01
|
(6)
16-ричной - представление GIUD - 16 байт. представляйте в любой системе счисления останутся те же 16 байт |
|||
10
Serginio1
25.07.13
✎
16:04
|
wiki:%D2%E0%E1%EB%E8%F6%E0_%F0%E0%E7%E4%E5%EB%EE%E2_GUID
Но вот в 1С автоматически просто увеличиваются на 1 ку. v8: ГУИД 1С8 Уникальным будет если самостоятельно прописывашь через УстановитьСсылкуНового(Новый УникальныйИдентификатор()) |
|||
11
vladon
25.07.13
✎
16:04
|
Вот отсюда выберите любой алгоритм хеширования: http://en.wikipedia.org/wiki/List_of_checksum_algorithms
|
|||
12
vladon
25.07.13
✎
16:08
|
(5) "я делал отдельную табличку со стандартным нумератором postgre и отдельным полем под гуид. инсертится гуид, получается число"
а вот это вообще неправильно, уникальность негарантирована. вы генерируете псевдоуникальный номер для истинно уникального, ржака конечно. |
|||
13
rs_trade
25.07.13
✎
16:22
|
размер поля какой в сторонней проге? интеджер небось какой нить
|
|||
14
ИС-2
naïve
25.07.13
✎
16:32
|
(13) строка 15
|
|||
15
acsent
25.07.13
✎
16:35
|
сделать регитстр. Число - ссылка
|
|||
16
МихаилМ
25.07.13
✎
16:36
|
(14)
если 15 байт - то копируйте первые 15 байт из 16. |
|||
17
Serginio1
25.07.13
✎
16:38
|
(14) По любому не уложишься, так как 60 бит идет на время а 40 идет на карту, так как GUID может создаваться на разных машинах.Проще сделать регистр для соответствия ссылок какому нибудь ИД тип Автоинкремента. При передаче делать левое соединение и если Для такой ссылки добавлять в этот регистр значение max(ID)+1
|
|||
18
Serginio1
25.07.13
✎
16:40
|
Кстати незнаю как сейчас но раньше были проблемы с УИД v8: Вхождение в список УникальногоИдентификатора ошибка
|
|||
19
Лефмихалыч
модератор
25.07.13
✎
16:45
|
(0) не менять номер не предлагать?
|
|||
20
ИС-2
naïve
25.07.13
✎
16:46
|
(19) нет
|
|||
21
Лефмихалыч
модератор
25.07.13
✎
16:48
|
(20) почему?
|
|||
22
Gepard
25.07.13
✎
16:54
|
(12) уникальность в системе остается (там GUID), да и в пределах этой таблицы тоже остается. Если внешняя система не может ничего съесть нечисловое, хэши не выход. Тут 100% уникальность в пределах таблицы.
|
|||
23
Ненавижу 1С
гуру
25.07.13
✎
16:57
|
это шож за программа такая? что только 15 символов в строке?
|
|||
24
Кирпич
25.07.13
✎
17:07
|
(0)да записывал бы время и все дела. что нибудь типа имя компьютера + датавремя. а уж насколько это у вас там уникально будет, смотри сам.
ну или тупо счетчик. |
|||
25
Фауст
25.07.13
✎
17:21
|
Делаешь реквизит у документа, тип - "справочник ссылка", При записи документа создаешь элемент справочника и присваиваешь его реквизиту документа. Получится на каждый документ будет 1 уникальный связанный с ним элемент справочника. По коду справочника будешь искать документ
|
|||
26
Gepard
25.07.13
✎
17:32
|
(25) имхо, лучше в справочнике индексированное поле Документ.Ссылка, что бы сам документ не трогать, а справочник записывать через подписку
|
|||
27
Рэйв
25.07.13
✎
17:35
|
УИД= Новый УникальныйИдентификатор
|
|||
28
Рэйв
25.07.13
✎
17:35
|
все уже решено до нас
|
|||
29
Gepard
25.07.13
✎
17:50
|
(28) внимательно читаем (14)
|
|||
30
fisher
25.07.13
✎
17:58
|
(14) Если без потерь, то как уже предлагали - преобразовывай гуид к 32-ричке. В таком формате уиды в 7-ке хранились. Алгоритмы можешь найти готовые в семерочных ветках.
|
|||
31
fisher
25.07.13
✎
18:01
|
А, чёрт. 32-рички мало. Придется чуток плотнее.
|
|||
32
fisher
25.07.13
✎
18:17
|
Чета я затупил. Если строка не юникод, то не получится туда гуид впихнуть в 15 символов :)
Только резать. |
|||
33
mistеr
25.07.13
✎
18:55
|
(7) Нумератор - самое что ни на есть стандартное средство.
|
|||
34
Мыш
26.07.13
✎
12:07
|
Можно в любую систему счисления перевести, не только 32. Лишь бы символов хватало. Но ТС упомянул, что пользователи должны читать результат и диктовать друг-другу. Несовместимые требования у него. )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |