Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

По какому алгоритму формируется GUID или что можно использовать вместо него?

По какому алгоритму формируется GUID или что можно использовать вместо него?
Я
   ИС-2
 
25.07.13 - 15:39
Для привязки документов нужен какой-то уникальный идентификатор.
Номер и дата не подходят т.к меняются. Весь UID использовать не получается - сторонная прога не поддерживает такаю длину.

Как его можно образать, так чтобы сохранить уникальность? Или что можно использовать как уникальный идентификатор?
   Кирпич
 
1 - 25.07.13 - 15:46
ну смотря какая длина
   George Wheels
 
2 - 25.07.13 - 15:48
MD5 UID
   МихаилМ
 
3 - 25.07.13 - 15:48
(0)
сколько байт размер поля идентификатора ?
   Aleksey
 
4 - 25.07.13 - 15:48
Так а длина какая? Может просто "-" убрать?
   Gepard
 
5 - 25.07.13 - 15:49
я делал отдельную табличку со стандартным нумератором postgre и отдельным полем под гуид. инсертится гуид, получается число
   Русмус
 
6 - 25.07.13 - 15:51
GIUD - это число в 16-ричной системе счисления.
Преобразуй в 32-ричную систему - вдвое сократится длина, сохранив уникальность.
   ИС-2
 
7 - 25.07.13 - 16:00
(5) можно более подробно?
(6) Пользователи повесятся диктовать уникальный идентификатор

Можно, конечно, сделать свой реквзит-нумератор. Но охото более стартными средствами
   vladon
 
8 - 25.07.13 - 16:00
(2)

> MD5 UID

Из 128 бит получить 128 бит? ))
   МихаилМ
 
9 - 25.07.13 - 16:01
(6)
16-ричной - представление
GIUD - 16 байт. представляйте в любой системе счисления  
останутся те же 16 байт
   Serginio1
 
10 - 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

Уникальным будет если самостоятельно прописывашь через
УстановитьСсылкуНового(Новый УникальныйИдентификатор())
   vladon
 
11 - 25.07.13 - 16:04
Вот отсюда выберите любой алгоритм хеширования: http://en.wikipedia.org/wiki/List_of_checksum_algorithms
   vladon
 
12 - 25.07.13 - 16:08
(5) "я делал отдельную табличку со стандартным нумератором postgre и отдельным полем под гуид. инсертится гуид, получается число"

а вот это вообще неправильно, уникальность негарантирована.

вы генерируете псевдоуникальный номер для истинно уникального, ржака конечно.
   rs_trade
 
13 - 25.07.13 - 16:22
размер поля какой в сторонней проге? интеджер небось какой нить
   ИС-2
 
14 - 25.07.13 - 16:32
(13) строка 15
   acsent
 
15 - 25.07.13 - 16:35
сделать регитстр. Число - ссылка
   МихаилМ
 
16 - 25.07.13 - 16:36
(14)
если 15 байт - то копируйте первые 15 байт из 16.
   Serginio1
 
17 - 25.07.13 - 16:38
(14) По любому не уложишься, так как 60 бит идет на время а 40 идет на карту, так как GUID может создаваться на разных машинах.Проще сделать регистр для соответствия ссылок какому нибудь ИД тип Автоинкремента. При передаче  делать левое соединение и если Для такой ссылки добавлять в этот регистр значение max(ID)+1
   Serginio1
 
18 - 25.07.13 - 16:40
Кстати незнаю как сейчас но раньше были проблемы с УИД v8: Вхождение в список УникальногоИдентификатора ошибка
   Лефмихалыч
 
Модератор
19 - 25.07.13 - 16:45
(0) не менять номер не предлагать?
   ИС-2
 
20 - 25.07.13 - 16:46
(19) нет
   Лефмихалыч
 
Модератор
21 - 25.07.13 - 16:48
(20) почему?
   Gepard
 
22 - 25.07.13 - 16:54
(12) уникальность в системе остается (там GUID), да и в пределах этой таблицы тоже остается. Если внешняя система не может ничего съесть нечисловое, хэши не выход. Тут 100% уникальность в пределах таблицы.
   Ненавижу 1С
 
23 - 25.07.13 - 16:57
это шож за программа такая? что только 15 символов в строке?
   Кирпич
 
24 - 25.07.13 - 17:07
(0)да записывал бы время и все дела. что нибудь типа имя компьютера + датавремя. а уж насколько это у вас там уникально будет, смотри сам.
ну или тупо счетчик.
   Фауст
 
25 - 25.07.13 - 17:21
Делаешь реквизит у документа, тип - "справочник ссылка", При записи документа создаешь элемент справочника и присваиваешь его реквизиту документа. Получится на каждый документ будет 1 уникальный связанный с ним элемент справочника. По коду справочника будешь искать документ
   Gepard
 
26 - 25.07.13 - 17:32
(25) имхо, лучше в справочнике индексированное поле Документ.Ссылка, что бы сам документ не трогать, а справочник записывать через подписку
   Рэйв
 
27 - 25.07.13 - 17:35
УИД= Новый УникальныйИдентификатор
   Рэйв
 
28 - 25.07.13 - 17:35
все уже решено до нас
   Gepard
 
29 - 25.07.13 - 17:50
(28) внимательно читаем (14)
   fisher
 
30 - 25.07.13 - 17:58
(14) Если без потерь, то как уже предлагали - преобразовывай гуид к 32-ричке. В таком формате уиды в 7-ке хранились. Алгоритмы можешь найти готовые в семерочных ветках.
 
 
   fisher
 
31 - 25.07.13 - 18:01
А, чёрт. 32-рички мало. Придется чуток плотнее.
   fisher
 
32 - 25.07.13 - 18:17
Чета я затупил. Если строка не юникод, то не получится туда гуид впихнуть в 15 символов :)
Только резать.
   mistеr
 
33 - 25.07.13 - 18:55
(7) Нумератор - самое что ни на есть стандартное средство.
   Мыш
 
34 - 26.07.13 - 12:07
Можно в любую систему счисления перевести, не только 32. Лишь бы символов хватало. Но ТС упомянул, что пользователи должны читать результат и диктовать друг-другу. Несовместимые требования у него. )


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.