|   |   | 
| 
 | Из чего состоит уникальный идентификатор? | ☑ | ||
|---|---|---|---|---|
| 0
    
        1Сергей 25.01.16✎ 12:35 | 
        348a0be9-7ee7-11e5-80ba-00155d1e0800
 Первая часть, как мне кажется, уникальна во всей базе. Нет? Третья похожа на дату или код сеанса. Подскажите, плз | |||
| 86
    
        bolobol 25.01.16✎ 13:52 | 
        (84) Не понял вашу аллегорию про Почту России... Про неё, родимую, знаю, например, девиз: "Письмо должно быть долгожданным!".
 А рассказ-то о применённом алгоритме будет? | |||
| 87
    
        Живой Ископаемый 25.01.16✎ 13:52 | 
        Ок, 26 и 36     | |||
| 88
    
        Aceforg 25.01.16✎ 13:54 | 
        (0)
 ГУИД = Новый УникальныйИдентификатор(); Строка = СтрЗаменить(Base64Значение(ГУИД)," ",""); 12 символов, и не надо ничего кодировать | |||
| 89
    
        Drac0 25.01.16✎ 13:54 | 
        (85) Ограничение на количество бит и на количество символов, блин, разные вещи.     | |||
| 90
    
        Живой Ископаемый 25.01.16✎ 13:55 | 
        2(88) тоже годнота     | |||
| 91
    
        kolts23381 25.01.16✎ 13:55 | 
        Тоже задавался вопросом а уникален ли ууид в пределах базы. Хотя вероятность повторения ничтожно мала. В пользу уникальности говорит наличие составных типов данных.     | |||
| 92
    
        Живой Ископаемый 25.01.16✎ 14:00 | 
        2(91) э... Еще раз, сгенери объект, создай два объекта двух разных типов, присвой обоим в качестве ссылки нового этот уид. Запиши оба объекта. Они запишутся.
 Создай 2 другой объект или запись регистра, в котором реквизит будет составного типа. и установи в качестве значения ссылки на первые два объекта. Тоже запишутся. | |||
| 93
    
        Drac0 25.01.16✎ 14:01 | 
        (88) только гуид надо к двочным данным преобразовать же.     | |||
| 94
    
        Живой Ископаемый 25.01.16✎ 14:01 | 
        2(93) почему?
 http://screencast.com/t/Sgd4Zq2T0dtK | |||
| 95
    
        1Сергей 25.01.16✎ 14:03 | 
        (88) классно     | |||
| 96
    
        xxTANATORxx 25.01.16✎ 14:05 | 
        (72)на первый уид накинь ксором второй, на результат скором третий уид     | |||
| 97
    
        PR третий 25.01.16✎ 14:07 | 
        (86) Причем здесь аллегории?
 Я говорю, для Почты России сделал ГУИд в 13 символов для печати штрихкода. Алгоритм следующий. Убираем из ГУИДА тире и перекодируем строку с использованием 94 символов вместо 16. 94 символа — это все возможные символы для штрихкода. | |||
| 98
    
        kolts23381 25.01.16✎ 14:08 | 
        (92) А что будет если присвоить этому реквизиту ссылку на один из созданных объектов? Значит помимо ссылки хранится и тип данных? Лень проверять :)     | |||
| 99
    
        PR третий 25.01.16✎ 14:10 | 
        (98) Давно ли у нас можно присваивать ссылки указанием ГУИДа, без указания типа при создании ссылки по ГУИДу?     | |||
| 100
    
        Lama12 25.01.16✎ 14:10 | 
        Было уже или нет?
 1С генерит новый гуид в начале сеанса. Далее при добавлении объекта к гуиду добавляется 1. Это то, что помню с давних пор. Возможно сейчас что-то поменяли, но вряд ли. | |||
| 101
    
        Drac0 25.01.16✎ 14:10 | 
        (94) а, ты из строки двоичные получаешь. Забавно )     | |||
| 102
    
        forforumandspam 25.01.16✎ 14:16 | 
        (88) Выполни обратное преобразование.     | |||
| 103
    
        kolts23381 25.01.16✎ 14:17 | 
        (99) Дело не в этом. А в том, как допустим запрос вытащит нужные данные. Запрос знает что здесь сидит составной тип данных и ищет нужную ссылку соединяя таблицы с возможными типами(читал что составные типы данных замедляют запрос, собственно почему если запрос знает какой тип данных там сидит)  . А если у разных типов одинаковые ууиды(а это по сути и есть ссылка) то что будет?     | |||
| 104
    
        Живой Ископаемый 25.01.16✎ 14:20 | 
        2(98), да, именно там ссылка по сути из двух уидов разделенных двоеточием     | |||
| 105
    
        forforumandspam 25.01.16✎ 14:20 | ||||
| 106
    
        Живой Ископаемый 25.01.16✎ 14:21 | 
        uid таблицы : uid объекта     | |||
| 107
    
        PR третий 25.01.16✎ 14:22 | 
        (103) А почему ты думаешь, что тип хранится в ГУИДе?     | |||
| 108
    
        Живой Ископаемый 25.01.16✎ 14:23 | 
        (105) то есть из строки uid нужно бурать тире? логично     | |||
| 109
    
        kolts23381 25.01.16✎ 14:27 | 
        (107) Я так не думаю и уверен что это не так. Я думал что программа, встречая составной тип данных, просто ищет подходящий ууид у всех возможных вариантов(типов входящих в составной).
 Вот встречал в нескольких местах что то подобное: " Ваша проблема вот здесь. В СУБД будет выполнен запрос, в котором будут сделаны соединения ко всем объектам, входящим в тип реквизита Объект, а их может быть оооооочень много. Поэтому и СУБД будет это переваривать оооооочень долго. Это можно обойти, если вы знаете заранее, какой конкретно объект вам надо отфильтровать по владельцу (договоры, например)." Зачем делать соединения ко всем типам если мы заранее знаем тип? Или все таки не знам? | |||
| 110
    
        kolts23381 25.01.16✎ 14:28 | 
        Поэтому советуют использовать ВЫРАЗИТЬ     | |||
| 111
    
        PR третий 25.01.16✎ 14:29 | 
        (109) Соединение ко все типам делается не потому, что мы не знаем тип, а потому что мы тип знаем уже после выполнения запроса. А соединение делается с учетом типа как бэ.     | |||
| 112
    
        kolts23381 25.01.16✎ 14:31 | 
        "Соединение ко все типам делается не потому, что мы не знаем тип, а потому что мы тип знаем уже после выполнения запроса."
 Не понятно, можно другими словами? | |||
| 113
    
        PR третий 25.01.16✎ 14:33 | 
        (112) У тебя таблица с составным реквизитом, в ней сто записей.
 Как ты ограничишь сразу соединения одной, двумя или несколькими таблицами, а не всеми, если ты не знаешь, какие таблицы нужно присоединять, а какие нет? Ты же данные еще не выбрал и не знаешь, какие типы использовались, а какие нет. | |||
| 114
    
        ObjectRelation Model 25.01.16✎ 14:34 | 
        (111) вот ты можешь расписать фразу "масло масляное"     | |||
| 115
    
        PR третий 25.01.16✎ 14:35 | 
        +(113) Грубо говоря, есть субконто.
 С какими таблицами соединять субконто в проводках, если в субконто может быть контрагент, договор, товар и еще дохрена всего? Ты же не знаешь, пока не выберешь данные из проводок. Может у тебя кроме контрагентов ничего и не попадется, а может только контрагенты и договоры, а может еще и товары будут. | |||
| 116
    
        kolts23381 25.01.16✎ 14:37 | 
        Так понятней (113) , то есть мы выбираем набор данных и там может быть разный тип. 
 Почему я так дотошно, просто делаю стороннюю программу с обменом с 1С и там составной тип данных не предусмотрен и решаю на уровне уникальности ссылок. | |||
| 117
    
        PR третий 25.01.16✎ 14:38 | 
        (116) Ну и зря. Как раз будешь в составном типе тянуть все кавно из базы, вдруг именно там и лежит твоя ссылка.     | |||
| 118
    
        Sammo 25.01.16✎ 14:42 | 
        А зачем это знать?
 Потому что гуид мог придти из другой базы, его могли установить руками... Так что любая логика, которая допускает наличие чего-то в гуиде некорректна. Даже сортировка по ссылке без использования даты. Видел реальный пример - для скорости в отчете использовали сортировку документов по ссылке. Мол всегда увеличивается на 1. Ага. Через полгода меняется сервер приложений, ссылка начинает формироваться по-другому и весь отчет ломается. | |||
| 119
    
        kolts23381 25.01.16✎ 14:45 | 
        (117)Ничего умнее на тот момент когда делал не придумал. Через двоеточие тип данных : ссылка  придется переделывать много.     | |||
| 120
    
        PR третий 25.01.16✎ 14:55 | 
        (118) Ну да, конечно, ты еще скажи, что в значении реквизита составного типа не хранится тип, только ГУИД ссылки.     | |||
| 121
    
        PR третий 25.01.16✎ 14:56 | 
        (119) Я и говорю, зря.
 Будешь каждый раз валюту искать не в справочнике "Валюты", а по всей базе. | |||
| 122
    
        НЕА123 25.01.16✎ 15:00 | 
        (118)
 >Так что любая логика, которая допускает наличие чего-то в гуиде некорректна видел типа два справочника с одинаковыми гуидами элементы встречаются (связь какая-то). корявенько, но работает. (119) что переделывать?гуид уникален в таблице, но не в базе. | |||
| 123
    
        yukon 25.01.16✎ 15:02 | 
        (103) Ничего не будет. В том смысле, что все отработает штатно и вернет все ссылки. Ссылка, содержит тип:гуид. Т.е. ничего фатального в одинаковых ГУИДах у разных типов метаданных нет.     | |||
| 124
    
        kolts23381 25.01.16✎ 15:11 | 
        (121) Не по всей базе, а в нескольких таблицах, к тому же ууид используется в качестве первичного ключа и имеет индекс.     | |||
| 125
    
        bolobol 25.01.16✎ 15:24 | 
        (97) Вы ошиблись на ПОРЯДОК в расчётах! Чтобы получилась возможность уложиться в 13 символов длины - один символ должен содержать 920+ вариантов, а не 94!     | |||
| 126
    
        bolobol 25.01.16✎ 15:25 | 
        (88) С тем же успехом можно использовать Рандом(стартовый номер = ГУИД)     | |||
| 127
    
        bolobol 25.01.16✎ 15:26 | 
        *(126) "Рандом(стартовый номер = ГУИД*ГУИД*ГУИД)"     | |||
| 128
    
        Cyberhawk 25.01.16✎ 15:27 | 
        (53) Номер + дата документа, но это ненадежно (запустят перенумерацию или перепроведут оперативно в течение дня с новой датой и что делать будешь?)     | |||
| 129
    
        Карупян 25.01.16✎ 15:31 | 
        1 символ в утф = 4 байта. Поэтому теоретически гуид можно ужать дос троки 4. Только это будет не читабельная строка совсем     | |||
| 130
    
        PR третий 25.01.16✎ 16:30 | 
        (125) Выкинь кашу из своей головы.
 Для кодирования ГУИДа было 36 символов, включая 4 тире на фиксированных местах. Я убрал тире. И вместо 32 символов, каждый из которых может принимать 16 вариантов, использую 13, каждый из которых может принимать 94 варианта. Какие, блеать, 920+ вариантов? | |||
| 131
    
        Drac0 25.01.16✎ 16:38 | 
        (126) Эм, ты знаешь, что такое Base 64 и зачем он нужен?     | |||
| 132
    
        bolobol 25.01.16✎ 16:50 | 
        (130) С математикой не дружим совсем? Степени, корень степени - ни о чём не говорят слова? Математика, кагбэ, строгая наука. Ёмкости множества пересчитайте и "тыкать и указывать что делать" можете себе, как только поймёте, что необходимо исправить.     | |||
| 133
    
        Карупян 25.01.16✎ 16:51 | 
        (132) ну реши уровнение
 2^16 = 94^x | |||
| 134
    
        bolobol 25.01.16✎ 16:51 | 
        (131) Не представляю. Гуглить лень. Но что-то мне подсказывает, что со сжатием данных оно никак не связано, я не прав?     | |||
| 135
    
        bolobol 25.01.16✎ 16:51 | 
        (133) Что есть это выражение? Зачем мне его решать?     | |||
| 136
    
        Карупян 25.01.16✎ 16:51 | 
        вернее 2^128 = 94^x     | |||
| 137
    
        H A D G E H O G s 25.01.16✎ 16:53 | 
        (136) Что ты там по основанию 94 нашел такого?     | |||
| 138
    
        H A D G E H O G s 25.01.16✎ 16:54 | 
        (129) 1 символ в utf от 1С = 2 байта. целуйте веник.     | |||
| 139
    
        H A D G E H O G s 25.01.16✎ 16:54 | 
        (134) Абсолютно прав.     | |||
| 140
    
        Карупян 25.01.16✎ 16:55 | 
        (137) 94 буквы.
 Правда x получается 19.5 | |||
| 141
    
        H A D G E H O G s 25.01.16✎ 16:55 | 
        (140) А, все, увидел.     | |||
| 142
    
        H A D G E H O G s 25.01.16✎ 16:57 | 
        (140) Кого - то поимеютъ.     | |||
| 143
    
        Карупян 25.01.16✎ 16:57 | 
        Чтоб 13 символов было нужно 920 букв в алфавите     | |||
| 144
    
        bolobol 25.01.16✎ 16:57 | 
        (136) Могу только ответ дать: вместо "2" в уравнении будет 1,586..., что говорит о том, что множество справа при степени 13 меньше в 1.26 раза.     | |||
| 145
    
        H A D G E H O G s 25.01.16✎ 16:57 | 
        И этот кто-то - походу - наш Красный Плащ.     | |||
| 146
    
        Карупян 25.01.16✎ 16:57 | 
        На утфе можно в 8 уложиться     | |||
| 147
    
        H A D G E H O G s 25.01.16✎ 16:58 | 
        (146) Это еще более частный случай.     | |||
| 148
    
        bolobol 25.01.16✎ 16:59 | 
        *(144) извиняйте, за нематематическую точность     | |||
| 149
    
        H A D G E H O G s 25.01.16✎ 17:00 | 
        Роман убрал тире...     | |||
| 150
    
        bolobol 25.01.16✎ 17:06 | 
        (149) А мой коллега потом удивляется, что посылка выйдя из Китая, обнаруживается через 1.5 месяца в Калининграде, вместо Питера...
 )) | |||
| 151
    
        PR третий 25.01.16✎ 17:07 | 
        (132) Сейчас проверил максимальную длину штрихкода для гуида 
 "ffffffff-ffff-ffff-ffff-ffffffffffff", получилось не 13, а 20 символов, штрихкод "B2d~msQ*Q+5M('\99=BD". 20 символов максимум по неравенству "16^32 <= 94^x", где x получился равен 20. | |||
| 152
    
        PR третий 25.01.16✎ 17:11 | 
        А, вон откуда 920. Типа 920 возможных символов.
 Тогда уж 921, если быть точным. У меня в моем примере со штрихкодами не забалуешь, есть 94 символа, их и грызи. В большинстве случаев одинесовский ГУИД дает 13 символов. | |||
| 153
    
        PR третий 25.01.16✎ 17:12 | 
        (150) Тире как бэ стоят в фиксированных местах, ага     | |||
| 154
    
        bolobol 25.01.16✎ 17:24 | 
        (152) Аааа, вот в чём магия!, в виде нарастающей последовательности, которая не достигает максимума, как правило. Тогда - да, всё под контролем)     | |||
| 155
    
        PR третий 25.01.16✎ 17:27 | 
        (154) У меня была печаль, нужен уникальный признак документа, а даже 32 символа на конверте не напечатаешь, потому что тогда в окне показывается строка совершенно непотребной длины.
 А вот 13 вполне влазит, да. | |||
| 156
    
        H A D G E H O G s 25.01.16✎ 17:35 | 
        (154) Ну почему. Можно дождаться, что при потерях данных в 1,5 раза (а именно столько у Романа) мы будем иметь дубли в Почте России в обозримом будущем. Как вот данные там накопятся - так и можно ждать звоночка.
 Роман, ты нас держи в курсе. | |||
| 157
    
        PR третий 25.01.16✎ 17:36 | 
        (156) Дима, какие потери, ты о чем? Это преобразование без потерь как бэ :))     | |||
| 158
    
        PR третий 25.01.16✎ 17:37 | 
        +(157) Если в результате преобразования получится, о, неужели!, 14 символов, а не 13, я распечатаю 14 :))
 Всяко лучше, чем гарантированно 32 :)) | |||
| 159
    
        H A D G E H O G s 25.01.16✎ 17:38 | 
        "Если в результате преобразования получится, о, неужели!, 14 символов, а не 13, я распечатаю 14 :)"
 Ахренеть. А можно алгоритм посмотреть? | |||
| 160
    
        PR третий 25.01.16✎ 17:39 | 
        (159) Можно. (97) :))
 Или тебе прямо-таки программный код? | |||
| 161
    
        H A D G E H O G s 25.01.16✎ 17:39 | 
        (160) Код.     | |||
| 162
    
        PR третий 25.01.16✎ 17:41 | 
        (161) Тогда пожалуй не стоит. Все-таки Почта России, а не ООО "Березка" :))
 Могу в почту выслать, если очень хочется. Подготовлю обфусцированный код, вышлю. Слать? | |||
| 163
    
        H A D G E H O G s 25.01.16✎ 17:46 | 
        (162) А нафига мне обфусцированный? Давай обычный на
 liveups@yandex.ru | |||
| 164
    
        dmpl 25.01.16✎ 17:47 | 
        (40) В пределах базы просто последовательно инкрементируемый счетчик сойдет с нужной базой (системой счисления).     | |||
| 165
    
        dmpl 25.01.16✎ 17:52 | 
        (78) Если типовая конфигурация - можно хранилище значения с соответствием ссылок и кодов помещать в сохраненные настройки.     | |||
| 166
    
        dmpl 25.01.16✎ 17:58 | 
        (97) Стандартный - не влезет менее чем в 20 символов. Какой-то нестандартный - возможно.
 (98) Открой файл обмена с выгрузкой любого составного типа - и все увидишь ;) | |||
| 167
    
        dmpl 25.01.16✎ 18:02 | 
        (122) Гуид уникален глобально.     | |||
| 168
    
        dmpl 25.01.16✎ 18:03 | 
        (130) Это был не гуид. Это просто уид местечковый.     | |||
| 169
    
        PR третий 25.01.16✎ 18:51 | 
        (163) Выслал.
 Кстати, сейчас смотрел примеры с ГУИДами, что-то 13 не получается, все 20 символов :)) Видимо, я когда искал решение, где-то в процессе получился какой-то нечитабельный сканером 13-тисимвольный код, поэтому в голове и отложилось про 13 символов. | |||
| 170
    
        PR третий 25.01.16✎ 18:52 | 
        (164) Вообще ГУИД как бэ уникальный в пределах земного шара вроде как.
 При желании я ГУИД и в одной базе задублирую, но я говорю про уникально генерируемый. | |||
| 171
    
        Злопчинский 25.01.16✎ 18:54 | 
        кстати, скоро гуидов свободных не останется и наступит ппс.
 обсуждаются идеи выдавать гуиды типа как dns - на время... или по подписке... | |||
| 172
    
        PR третий 25.01.16✎ 18:58 | 
        Чет я расстроился про 20 символов :))
 То ли дело 13. А тут 20 какие-то :)) | |||
| 173
    
        Cyberhawk 25.01.16✎ 19:04 | 
        (172) Я не понял, так у тебя объекты инфобазы соответствуют 20-значным кодам? А при сканировании 20-значного ШК обратно разворачиваешь этот считанный ШК в ГУИД, так что ли?     | |||
| 174
    
        PR третий 25.01.16✎ 19:11 | 
        (173) Да. Нормально, че. Можно было на регистрах сведений соответствий запилить конечно и при этом еще соответствие генерить, случайным числом, например. Но зачем?     | |||
| 175
    
        bolobol 25.01.16✎ 19:24 | 
        Блиииин... А я ждал, что вот - код потоковой архивации данных на 1С, на микрословаре, получу...
 Обидно, чё. | |||
| 176
    
        PR третий 25.01.16✎ 19:48 | 
        (175) Во всей ветке не было ни слова при архивацию     | |||
| 177
    
        bolobol 26.01.16✎ 11:32 | 
        (176) А как ещё сократить последовательность, кроме как сжав её?     | |||
| 178
    
        PR третий 26.01.16✎ 12:26 | 
        (177) Что-то у тебя по ходу вообще каша в голове.
 Ты реально не понимаешь, как можно из 2 символов, каждый из которых может принимать только значение "0" или "1", сделать один, если он может принимать значения "0", "1", "2" или "3"? Основная проблема ГУИДа в моем случае, что используются только 16 из разрешенных 94 символов. Тем не менее в моем решении никакой архивации нет, хотя в итоге и получается меньшее количество символов. Архивация — это совершенно иное. | |||
| 179
    
        Карупян 26.01.16✎ 12:28 | 
        (175) по словарю вообще можно в 1 байт уложиться. правда если гуидов немного совсем
 Подсказка РС: Номер-ГУИД | |||
| 180
    
        dmpl 26.01.16✎ 13:03 | 
        (175) Словарь, кстати, можно хранить отдельно от кода. В этом случае возможно сжатие.     | |||
| 181
    
        dmpl 26.01.16✎ 13:05 | 
        (179) Ну это крайний вариант, возможны и промежуточные.     | |||
| 182
    
        bolobol 26.01.16✎ 13:14 | 
        (178) У меня хоть каша есть, у вас вообще "оупен-эйр" по теме. Вы действительно уверены, что в один бит можно поместить значения 0, 1, 2 и 3?? Мне смешно с вас)
 Ладно, в любом случае - дальше только офф, т.к. реализации, что я спрашивал, у вас всё равно нет. Завязываем) | |||
| 183
    
        PR третий 26.01.16✎ 14:19 | 
        (182) А с хрена ли один бит-то?     | |||
| 184
    
        yukon 26.01.16✎ 14:32 | 
        (182) Вы действительно уверены, что в один бит можно поместить значения 0, 1, 2 и 3
 Вы будуте смеятся, но можно. Правда это уже будет не совсем бит, но рядом. А вообще, в (178) не "бит", а "символ". | |||
| 185
    
        Smile 8D 26.01.16✎ 15:05 | 
        (182) Задача, которую решают в ветке - сокращение количества символов в строке, при сохранении уникальности. Задачи сократить количество необходимой памяти (архивировать) - нет.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |