Имя: Пароль:
1C
1С v8
УникальныйИдентификатор со "своим куском".
,
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) Добавляй общий реквизит.
Закон Брукера: Даже маленькая практика стоит большой теории.