|   |   | 
| 
 | По какому алгоритму формируется GUID или что можно использовать вместо него? | ☑ | ||
|---|---|---|---|---|
| 0
    
        ИС-2 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 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 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 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. Лишь бы символов хватало. Но ТС упомянул, что пользователи должны читать результат и диктовать друг-другу. Несовместимые требования у него. )     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |