|
УникальныйИдентификатор со "своим куском". | ☑ | ||
---|---|---|---|---|
0
серый КТУЛХУ
09.11.21
✎
16:31
|
есть ли какая-то возможность сгенерить в базе для (новгого) объекта УИД такой, чтобы у него был "хвост" из 17 моих символов?
прим.: опережая события, на вопрос "зачем": для однонаправленного обмена, в котором источник предоставляет свой 17-значный уникальный (в пределах всей своей базы) ID выгружаемых объектов |
|||
1
asady
09.11.21
✎
16:35
|
(0) я бы поднял http сервис с единственной функцией getUID()
и во всех базах которые собираюсь интегрировать брал уиды только от этого сервиса |
|||
2
серый КТУЛХУ
09.11.21
✎
16:41
|
(1): источник уже есть и он живет с уникальнвми id уже давно (нажито дохрена и продолжает появляться)
в приемнике помимо того что оно сам по себе лопатит со своими уид-ами, надо еще сверху нахлобучить прием из источника - причем такой чтобы можно было и из источника при надобности дергать оригинальные объекты. доаолнительный реквизит мутить для этого, индексируемый, и перетачивать правила обмена на поиск по нему с игнором уид - не очень хотелось, поэтому и вопрос. |
|||
3
Fragster
гуру
09.11.21
✎
16:43
|
если он гарантированно уникальный - то добиваешь строку слева (справа, через один) чем-нибудь допустимым (например 15 нулей), добавляешь минусы в нужных местах и делаешь Новый УникальныйИдентификатор(Твоя получившаяся строка)
|
|||
4
Fragster
гуру
09.11.21
✎
16:43
|
если он УЖЕ гарантированно уникальный
|
|||
5
Fragster
гуру
09.11.21
✎
16:44
|
ну и да, 17 твоих символов должны быть в диапазоне 0-9a-f
|
|||
6
Fragster
гуру
09.11.21
✎
16:44
|
либо base64 их предварительно и этустроку уже преобрахуй
|
|||
7
серый КТУЛХУ
09.11.21
✎
16:45
|
(3): гарантировано уникальный 17-циферный.
я опасался что "добитый" может среди "родных УИД приемника встретиться - тогда жопа случится... нэ? |
|||
8
Fragster
гуру
09.11.21
✎
16:46
|
(7) ну будет исключение. но вероятность такого [крайне мала](https://s00.yaplakal.com/pics/pics_original/3/6/2/1922263.jpg)
|
|||
9
Fragster
гуру
09.11.21
✎
16:48
|
ну вот, маркдаун на форуме сломали (
|
|||
10
Kassern
09.11.21
✎
16:50
|
(9) а он вообще работал?
|
|||
11
серый КТУЛХУ
09.11.21
✎
16:50
|
(8) ох, я перфекционист и всеми силами стараюсь уходить от ситуаций, в которых коллизия "возможна но крайне маловероятна"... потому что она во-первых возможна, а во-вторых настолько редка, что при возникновении трындеца где-то в другом месте по ее вине - о ее вине подумаешь в последнюю сцко очередь...
(да, по ссылке твоей 404 чота)) |
|||
12
Kassern
09.11.21
✎
16:50
|
(11) скобку нужно убрать в конце
|
|||
13
Fragster
гуру
09.11.21
✎
16:53
|
(12) не нужно, это markdown, который типа должен работать https://wiki.mista.ru/doku.php?id=life:forum:razmetka_markdown_na_forume
|
|||
14
Fragster
гуру
09.11.21
✎
16:54
|
(10) __да__
|
|||
15
Fragster
гуру
09.11.21
✎
16:54
|
опа )
|
|||
16
Kassern
09.11.21
✎
16:54
|
(13) для того, чтобы в данный момент посмотреть ссылку - нужно, так как она добавляется в урл
|
|||
17
acht
09.11.21
✎
16:59
|
(7) Если добъешь нулями, то с естественно сгенерированными гарантировано не встретишся.
Там, ЕМНИП, 1С 4ю версию UUID использует. При добивании нулями можно поле версии нулями забить и версия превратится в 0ю - с меткой времени. Ну и время у тебя нулями забить, чтобы уж совсем противоестесвенно. Надо только посчитать куда твои 17 чисел попадут и возможно порядок байт поменять. |
|||
18
acht
09.11.21
✎
17:00
|
(10) Только у модераторов. Пусть страдают =]
|
|||
19
серый КТУЛХУ
09.11.21
✎
17:02
|
(17): о! спасибо, добрый человек - пойдк искать спецификацию на 14-ю версию uuid, смотреть - куда запихивать свои 17 символов (а м.б. и 15 если циферную строку в хекс перегнать "как положено")
|
|||
20
Fragster
гуру
09.11.21
✎
17:05
|
(17) 1с использует 4ю версию только для Новый УникальныйИдентификатор (и то в линуксе до какой-то версии был 1. или в винде 1, а в линуксе 4). Для ПолучитьСсылку(Неопределено) используется какой-то series гомункул. нулем не очень хорошо забивать поле версии, но работать будет.
|
|||
21
Fragster
гуру
09.11.21
✎
17:07
|
||||
22
acht
09.11.21
✎
17:12
|
(20) > нулем не очень хорошо забивать поле версии
Ну да, внутри 1С все будет работать. А вот если этот объект поедет дальше, то этот "дальше" может и сильно удивиться. Если совсем по феншую, то это нужен таки новый реквизит объекта. |
|||
23
серый КТУЛХУ
09.11.21
✎
17:16
|
(21): ы. это 18-й релиз. у нас 14-й. в нем какая версия?
и еще: только в Работа macOS и Linux используется 4-я версия? а в вин? (по 2-1 ссылке - "У Вас нет доступа к "Партнерской конференции".") (22): Ок, спасибо. учту. а есть вариан как-то до-забить мою уникальную 17(или 15 в хексе)-символьную строку до УИД 4-й версии так чтобы ее и "снаружи" по стандарту нормально скушать можно было? |
|||
24
mistеr
09.11.21
✎
17:18
|
(0) Не советую ничего мутить с внутренними идентификаторами. Если не хочешь, чтобы потом тебя вспоминали недобрым словом. Храни свой внешний идентификатор в отдельном реквизите.
(11) > всеми силами стараюсь уходить от ситуаций, в которых коллизия "возможна но крайне маловероятна" Ну никак не вяжется с (0) |
|||
25
серый КТУЛХУ
09.11.21
✎
17:22
|
(24): перечти обсуждение - и увяжется.
|
|||
26
acht
09.11.21
✎
17:22
|
(23) Надо смотреть части гуида, этож просто 128 бит == 16 байт. Посмотреть что за что в 4й версии отвечает, сама версия - это поле где-то там в середине. Можно ли напихать туда бит не теряя здравого смысла...
И только потои думать, как это в 36-символьном hex будет выглядеть |
|||
27
серый КТУЛХУ
09.11.21
✎
17:27
|
(26): 4-ка (номер версии, 4 бита) - первый символ третьей группы, а первый символ четверной группы (1-3 старших бита) - это "вариант" (это что? любое? или как?)
прим.: а если время загнать за границу конца дня - будет гарантировано уникальное, но скушается ли "снаружи"?.. |
|||
28
Garykom
гуру
09.11.21
✎
17:27
|
(0) >для однонаправленного обмена, в котором источник предоставляет свой 17-значный уникальный (в пределах всей своей базы) ID выгружаемых объектов
Можно но не нужно Лучше сделай доп.реквизит и все |
|||
29
серый КТУЛХУ
09.11.21
✎
17:32
|
да, спасибо, конечно думаю про доп.реквизит - но пока именно это для меня связано с неслабыми доводами "против": неохота корячить базу, хотелось бы обойтись только правилами обмена - приемник "чисто родной" и во фреше планируется, с автообновлением. нормальный обмен в принципе может охватить любые объекты источника - даже если там ввести новый объект в обмен - то его можно с такими алгоритмами через правила обмена сразу включить без корректировки структуры базы-приемника и без добавления в ней дополнительных реквизитов с "обвесом".. так что тот вариант - все-таки не "и все".
|
|||
30
acht
09.11.21
✎
17:32
|
(27) Откуда мне знать. У кого, в конеце концов, документация сейчас открыта? =]
|
|||
31
серый КТУЛХУ
09.11.21
✎
17:33
|
* нормальный обмен" - в смысле только обмен с подкрученным формированием гуид объектов приемника
|
|||
32
acht
09.11.21
✎
17:33
|
(29) > это для меня связано с неслабыми доводами "против": неохота
А хорошо получилось. |
|||
33
серый КТУЛХУ
09.11.21
✎
17:33
|
(30): палюбэ спасибо, коллега.
|
|||
34
Garykom
гуру
09.11.21
✎
17:35
|
(29) на будущее и ради простоты думать лучше
а если другой источник появится что делать? а если программист поменяется? |
|||
35
Garykom
гуру
09.11.21
✎
17:36
|
(34)+ и главное что будет если источник скосячит?
с доп.реквизитом это можно отловить а тут опс и затерло нафик |
|||
36
серый КТУЛХУ
09.11.21
✎
17:58
|
спасибо. думаю.
|
|||
37
mistеr
09.11.21
✎
18:00
|
(29) Добавляй общий реквизит.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |