gifts2017

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

Опубликовал Alexander Kondrin (AlexKo) в раздел Администрирование - Поиск данных

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

 

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

 

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

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

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

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

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

  

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


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

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

Это не оно?
18. Сергей Лесовой (Synoecium) 18.06.15 11:19
Да нормальная тема, что накинулись на автора? Хотел сам накидать такую обработину, а тут уже готовая есть.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа