IE 2017

Определение УИДА и поиск объекта по имеющемуся УИДу

Администрирование - Поиск данных

Определение уникального идентификатора для любого ссылочного объекта метаданных.
Нахождение объекта метаданных по уникальному идентификатору.
Сжатие уникального идентификатора до 20 символов с сохранением уникальности.

 

Попадаются задачи по интеграции, когда есть ограничение по длине уникального идентификатор.
Целиком стандартный УИД использовать из-за этого не получается, а здесь дана готовая процедура по превращению уникального 36 символьного УИДа в 20 символьный.
Такой способ не требует добавления регистра для хранения внешнего ключа, а также операций по записи/чтению из него.

 

Для определения уникального идентификатора сначала выберите тип объекта, как показано на рисунке.

Выбор типа данных

После укажите элемент и нажмите кнопку "Выполнить".

Определение УИДа

В поле "УИД" отобразится уникальный идентификатор, а в поле "Упакованный" - сжатый до 20 символов идентификатор.

  

Для поиска объекта по уникальному идентификатору вставьте уникальный идентификатор (обычный или сжатый) , поиск будет осуществлен по всем ссылочным типам.


Поиск объекта

Нажмите кнопку "Выполнить", в поле объект отобразится найденный объект.

В обработке есть как обычная так и управляемая форма.

Скачать файлы

Наименование Файл Версия Размер
ОпределитьУИДОбъекта.epf
.epf 14,82Kb
30.04.15
20
.epf 14,82Kb 20 Скачать

См. также

Комментарии
1. Денис Буянкин (bds22) 18 29.04.15 10:34 Сейчас в теме
лучше бы вместо "сжатия" в виде строки сделали преобразование в десятичное число, был бы хоть какой-то толк от этого. в памяти GUID занимает всего 16 байтов. хранение сжатой 20-байтовой строки потребует на 4 байта больше)))
2. Сергѣй Батанов (baton_pk) 208 29.04.15 10:44 Сейчас в теме
(1) bds22,
20 байт - это в случае, если строка в UTF-8 в памяти хранится. В случае с UTF-16 это уже 40 байт, а при UTF-32 - все 80.
3. Виталий Германов (Vitstav) 3 29.04.15 10:51 Сейчас в теме
Если честно, не понимаю для чего обработка... я вот накатал что то подобное за 10 минут... с созданием объекта с определенным УИД-ом из за косяка обмена... но что бы просто показывать.... зачем =)) Те кто захотят поменять смогут написать и что бы показывался)))
Silmariil; baton_pk; +2 Ответить 1
4. Alexander Kondrin (AlexKo) 39 29.04.15 11:52 Сейчас в теме
(3) Vitstav,
основной плюс этой обработки - сжатый уид.
Попадаются задачи по интеграции, когда есть ограничение по длине уникального идентификатор. Целиком стандартный УИД использовать из-за этого не получается, а здесь дана готовая процедура по превращению уникального 36 символьного УИДа в 20 символьный.
5. Сергѣй Батанов (baton_pk) 208 29.04.15 11:59 Сейчас в теме
(4) AlexKo, а если и 20 символов много?
уж лучше в регистре сведений внешние ключи хранить.
6. Alexander Kondrin (AlexKo) 39 29.04.15 12:04 Сейчас в теме
(5) baton_pk,
За последние 5 лет в реальных задачах интеграции не было случая, что много:)
Такой способ не требует добавления регистра, а также операций по записи/чтению из него.
7. Роман Ложкин (webester) 23 29.04.15 16:15 Сейчас в теме
(6)Не что бы наехать а ради справедливости, это просто редкий, очень редкий случай когда 36 много а 20 норм. Мне за 10 лет реальных задач, 36 символов строка не разу не была большой. Случай настолько редкий, что никто так и не понял о чем вы говорите. Возможно у вас есть какая то система где под ключевое поле выделено 20 символов, Но у соседа оно может оказаться 19.
8. Денис Буянкин (bds22) 18 29.04.15 19:00 Сейчас в теме
автоопределение типа объекта по GUID (перебором всех метаданных) сильно долго будет работать? может кому-то будет неудобно выбирать тип справочника или документа...
9. Denis Bazin (Bazin) 7 29.04.15 19:16 Сейчас в теме
для любого объекта метаданных

Я уже думал регистры сведений прикурили
10. Alexander Kondrin (AlexKo) 39 30.04.15 05:20 Сейчас в теме
(7) webester,
Из реальных задач - при интеграции с Unilever используется. Согласен, что задача редкая, но может кому-то пригодится.
11. Alexander Kondrin (AlexKo) 39 30.04.15 08:45 Сейчас в теме
(8) bds22,
Как оказалось отрабатывает быстро. Убрал выбор типа, автоматически ищется по всем ссылочным типам. Добавил табличную часть с найденными объектами - чисто теоретически для разных типов метаданных уид может совпасть.
12. Сергѣй Батанов (baton_pk) 208 30.04.15 08:56 Сейчас в теме
(11) AlexKo,
я вам скажу, когда он чисто практически может совпадать :)
допустим при обмене между базами мы из одного документа делаем два документа разного вида :) вот в большинстве случаев и я да и не я делают так, чтобы гуиды совпадали с исходным. такое было у меня на прошлом месте, такое есть у меня сейчас.
к примеру, можно посмотреть типовые правила переноса Розница 1.0 - Комплексная Автоматизация. там так отчёт о розничных продажах расщепляется на непосредственно отчёт и приходный кассовый ордер к нему.
13. Denis Bazin (Bazin) 7 30.04.15 18:01 Сейчас в теме
(12) baton_pk, это зло в чистом виде (не знал что можно создавать два объекта с одним гуидом).
В моем случае настроен обмен N-числа баз(включая не 1С).
1. При обмене База1 -> База2, База2 знает GUID1
2. При обмене База2 -> База3, База3 знает GUID1 и GUID2
3. При обмена База1 -> База3, я легко получаю объекты по GUID, тк База3 знает про Базу1
14. Виталий Германов (Vitstav) 3 02.05.15 19:58 Сейчас в теме
(13) не гуидом а УИДом разные вещи. Один глобальный - и он есть уникальный. Другой локальный. Он тоже уникальный, но в пределах данной таблицы. К глобальному как раз таки "название таблицы" добавляется. А по поводу зло это или нет... я уже и не вспомню с чем это было связано... но были разные рквизиты в платежных документах между УТ и БП, и в платежном документе в бухгалтерии использовался контрагент, тогда как в УТ использовалось физическое лицо. Так вот... при типовом обмене создавались в БП контрагенты с ФИО как у физ лицо... но самое прикольное это был УИД. Он был такой же как у физического лица в УТ, и проверка стояла у них как раз таки на тот самый УИД.
15. Анянов Михаил (insurgut) 165 02.05.15 20:07 Сейчас в теме
Позвольте не скромный вопрос - на кой сжимать УИД объекта? Просто интересно узнать реальную задачу =)
16. Alexander Kondrin (AlexKo) 39 04.05.15 05:29 Сейчас в теме
(15) insurgut,
При интеграции с учетными системами партнеров. У некоторых западных компаний в информационных системах длина идентификатора точек/контрагентов ограничена 20 символов.
17. Андрей Акулов (DrAku1a) 1213 07.05.15 02:32 Сейчас в теме
СсылкаНаОбъект.УникальныйИдентификатор()

Это не оно?
18. Сергей Лесовой (Synoecium) 213 18.06.15 11:19 Сейчас в теме
Да нормальная тема, что накинулись на автора? Хотел сам накидать такую обработину, а тут уже готовая есть.
1yh1; DrAku1a; +2 Ответить 1
19. Андрей Акулов (DrAku1a) 1213 16.12.16 05:52 Сейчас в теме
(18) Не спорю. Сейчас понадобилось, вспомнил что видел такое - качнул, сэкономил немного времени (как раз написать этот коммент)...
Оставьте свое сообщение