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

Народ как сложить УИДы ?

↓ [Волшебник, 25.01.21 - 10:44]
Народ как сложить УИДы ?
Я
   tmk315
 
25.01.21 - 09:17
Перекидывают в другую базу объекты система Датарион(шина) , обычно объект в объект , а тут в одном месте не хорошо сделали . Надо бы поправить , свести задачку к их механизму .
   ДенисЧ
 
1 - 25.01.21 - 09:18
уид3 = уид1+уид2
   tmk315
 
2 - 25.01.21 - 09:22
Не так преобразование к числу не может быть выполнено
   tmk315
 
3 - 25.01.21 - 09:23
Как то наверно можно из 2 уникальных значений получить третье .
   Йохохо
 
4 - 25.01.21 - 09:25
(3) хеш
   Малыш Джон
 
5 - 25.01.21 - 09:27
(2) значит надо преобразовать...
   Bigbro
 
6 - 25.01.21 - 09:27
(3) легко
уид3 = ""+уид1+уид2;
   tmk315
 
7 - 25.01.21 - 09:29
(6) мне его после обратно в УИД надо
   ДенисЧ
 
8 - 25.01.21 - 09:30
(7) Нам, тебе намекают, вообще не понятно, что тебе надо.
   tmk315
 
9 - 25.01.21 - 09:30
Начал писать функцию по символьно сложу через аски коды может получится.
   ДенисЧ
 
10 - 25.01.21 - 09:31
А может, лучше передать задачу тому, кто понимает, что в ней нужно сделать?
   Bigbro
 
11 - 25.01.21 - 09:31
(9) не надо так..
   butterbean
 
12 - 25.01.21 - 09:31
(0) имхо самое надежно - сделать регистр/таблицу в которой просто хранить 2 УИДа истоничника и 3-й УИД - результат. Может быть даже не формировать 3-й УИД, а просто где-то хранить связь 1го и 2го, а пользоваться только одним из них при передаче
   tmk315
 
13 - 25.01.21 - 09:32
(8) Есть два УИДА нужно получить из них новый один УИД
   Малыш Джон
 
14 - 25.01.21 - 09:33
(9) о, боже...

ЧислоИзШестнадцатеричнойСтроки("0x"+СтрЗаменить(Строка(уид1),"-",""))+ЧислоИзШестнадцатеричнойСтроки("0x"+СтрЗаменить(Строка(уид2),"-",""))
   Irbis
 
15 - 25.01.21 - 09:33
(0) Можешь рассмотреть их как два числа в 16ричной записи и сложить. Но такая фигня получится...
   Bigbro
 
16 - 25.01.21 - 09:33
сейчас автор сложит гантелю со шваброй и получит пачку доширака.
и придет с новой темой - почему остатки не совпадают после переноса ))
   tmk315
 
17 - 25.01.21 - 09:34
(12) система сопоставление сделана уже  и работает , 1 объект = 1 уид при транспортировку в другую базу ,  есть один случай когда документ с тч сотрудники транслируется в разные документы .
   Малыш Джон
 
18 - 25.01.21 - 09:34
(13) НовыйУИД= Новый УникальныйИдентификатор;

самый надежный способ
   tmk315
 
19 - 25.01.21 - 09:38
(14) Обрадовался ,не работает 
новый УникальныйИдентификатор(ЧислоИзШестнадцатеричнойСтроки("0x"+СтрЗаменить(Строка(Уид1),"-",""))+ЧислоИзШестнадцатеричнойСтроки("0x"+СтрЗаменить(Строка(Уид2),"-","")))
   Малыш Джон
 
20 - 25.01.21 - 09:40
(19) ясен пень, не работает
в (14) шестнадцатеричное число получается, а не строковое представление уида
   tmk315
 
21 - 25.01.21 - 09:44
Нужная же вещь как то должно просто выполняться ?
   Garykom
 
22 - 25.01.21 - 09:46
(21) может для тебя и сортировка просто, а по факту там куча алгоритмов и целая теория https://ru.wikipedia.org/wiki/Алгоритм_сортировки
   Garykom
 
23 - 25.01.21 - 09:48
Теоретически можно из двух уид получить третий но обратная операция низзя.
И есть некоторая вероятность что этот третий мог быть получен не первоначальной парой уидов а совсем другой ))
   butterbean
 
24 - 25.01.21 - 09:50
(21) чем  не подходит (12)?? просто делаешь таблицу сопоставления 3-х УИДов
   Lama12
 
25 - 25.01.21 - 09:51
(17) GUID  конечно сложить можно, только учти, что при простом складывании можешь получить величину превышающую максимальное значение UID. Как альтернатива, можно складывать по XOR, это тебе даст и обратное преобразование. Как вариант, можно конечно по символьно складывать, а результат обрезать по модулю 16. ИМХО, все это баловство.
Если тебе нужно таб часть раскидать, то может в саму табчасть добавить GUID? Если нельзя менять таб часть, то можно создать регистр сведений в который одно измерение ссылка на документ, а во второй хэш строки, а в ресурсе новый GUID.
   tmk315
 
26 - 25.01.21 - 09:54
(24) хочется вписаться в существующий механизм .
   Garykom
 
27 - 25.01.21 - 09:54
(26) ты плохо механизм изучил, там вероятно есть механизм замены чужих уидов
   tmk315
 
28 - 25.01.21 - 09:57
(25) спасибо с УИД в тч , подойдет , если не получится найти способ сложить 2 уида , интересно уже как сложить .
   Вафель
 
29 - 25.01.21 - 09:58
добавь в док 2 реквизита
   Bigbro
 
30 - 25.01.21 - 09:59
(28) ответь на (16) - что ты складываешь и что хочешь получить в итоге.
от этого зависит и ответ на твой вопрос.
 
 
   lEvGl
 
31 - 25.01.21 - 10:02
"сложить 2 уида" это как? и зачем? после первого ответа спроси "зачем" еще 2 раза и вероятно вопрос отпадет
   fisher
 
32 - 25.01.21 - 10:09
(28) А что сложного-то? В чем у тебя затык? Преобразовать из одной системы исчисления в другую? Ну, загугли. Это азы.
   fisher
 
33 - 25.01.21 - 10:14
А вообще, присоединяюсь к (25)
   PloAl
 
34 - 25.01.21 - 10:21
(0) В (4) все написали.
Получить строку из двух УИДов.
Получить Хеш МД5 от этой строки.
Расставить "-" в полученном Хеше МД5.
   H A D G E H O G s
 
35 - 25.01.21 - 10:40
Весело тут у вас. И конкурсы интересные.
   lEvGl
 
36 - 25.01.21 - 10:41
(34) что это за извращения такие продвигаются
   Dzenn
 
37 - 25.01.21 - 10:53
Если у тебя возник такой вопрос, значит, где-то в твоём решении заложена неправильная логика, и тебе нужен другой способ решения
   Обработка
 
38 - 25.01.21 - 10:58
Объясните простому смертному для чего складывают гуиды? Что это дает?
А то мне кажется как в математике на 1 м курсе сложение матриц транспонирование матриц итп.
Не говорю уж про комплексные числа и работа сними.
   Йохохо
 
39 - 25.01.21 - 10:59
(38) он хочет изоморфизм многие ко многим
   Garykom
 
40 - 25.01.21 - 11:34
Разделить конечный уид3 пополам и настроить какое то однозначное соответствие чтобы уид1 попадал в первую половину уид3, а уид2 во вторую половину уид3

Условно это:
уид3 = уид1/2 + уид2/2
   Garykom
 
41 - 25.01.21 - 11:35
(40)+ хотя нет не так, правильней:

уид3 = уид1/2 + max(уид)/2 + уид2/2
   Гений 1С
 
42 - 14.05.21 - 09:27
(0) используй конвертацию в систему счисления.
   Serg_1960
 
43 - 14.05.21 - 10:47
[юмор] Если вместе сложить маму и папу - то получатся дети. Они могут быть похожи на маму или папу, но не факт. Хорошо если на дедушку/бабушку, а что делать если станут похожи на соседа или на друга папы? :))
   Serg_1960
 
44 - 14.05.21 - 10:56
PS: я могу предложить методику GUID_1 ==> GUID_2 ==> GUID_1... но лучше автору сделать регистр сведений, подобный "СоответствияОбъектовИнформационныхБаз" типовых конфигураций.
   ДедМорроз
 
45 - 15.05.21 - 14:30
Можножество гуид - конечное.
Соответственно,не существует возможности однозначно сопоставить паре идентификаторов один.
Если же идентификаторы определяют объекты,то,конечно,паре объектов можно сопоставить один третий объект,но такое сопоставление выходит за рамки программирования.


Список тем форума
 
Читай всё полезное и впитывай, а нападки игнорируй. Здесь так принято. aka AMIGO
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.