0. AlexKo 46 28.04.15 13:43 Сейчас в теме

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

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

Перейти к публикации

Комментарии
Сортировка: Древо
1. bds22 12 29.04.15 10:34 Сейчас в теме
лучше бы вместо "сжатия" в виде строки сделали преобразование в десятичное число, был бы хоть какой-то толк от этого. в памяти GUID занимает всего 16 байтов. хранение сжатой 20-байтовой строки потребует на 4 байта больше)))
2. baton_pk 375 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 Ответить
4. AlexKo 46 29.04.15 11:52 Сейчас в теме
(3) Vitstav,
основной плюс этой обработки - сжатый уид.
Попадаются задачи по интеграции, когда есть ограничение по длине уникального идентификатор. Целиком стандартный УИД использовать из-за этого не получается, а здесь дана готовая процедура по превращению уникального 36 символьного УИДа в 20 символьный.
5. baton_pk 375 29.04.15 11:59 Сейчас в теме
(4) а если и 20 символов много?
уж лучше в регистре сведений внешние ключи хранить.
6. AlexKo 46 29.04.15 12:04 Сейчас в теме
(5) baton_pk,
За последние 5 лет в реальных задачах интеграции не было случая, что много:)
Такой способ не требует добавления регистра, а также операций по записи/чтению из него.
7. webester 27 29.04.15 16:15 Сейчас в теме
(6)Не что бы наехать а ради справедливости, это просто редкий, очень редкий случай когда 36 много а 20 норм. Мне за 10 лет реальных задач, 36 символов строка не разу не была большой. Случай настолько редкий, что никто так и не понял о чем вы говорите. Возможно у вас есть какая то система где под ключевое поле выделено 20 символов, Но у соседа оно может оказаться 19.
10. AlexKo 46 30.04.15 05:20 Сейчас в теме
(7) webester,
Из реальных задач - при интеграции с Unilever используется. Согласен, что задача редкая, но может кому-то пригодится.
8. bds22 12 29.04.15 19:00 Сейчас в теме
автоопределение типа объекта по GUID (перебором всех метаданных) сильно долго будет работать? может кому-то будет неудобно выбирать тип справочника или документа...
11. AlexKo 46 30.04.15 08:45 Сейчас в теме
(8) bds22,
Как оказалось отрабатывает быстро. Убрал выбор типа, автоматически ищется по всем ссылочным типам. Добавил табличную часть с найденными объектами - чисто теоретически для разных типов метаданных уид может совпасть.
12. baton_pk 375 30.04.15 08:56 Сейчас в теме
(11)
я вам скажу, когда он чисто практически может совпадать :)
допустим при обмене между базами мы из одного документа делаем два документа разного вида :) вот в большинстве случаев и я да и не я делают так, чтобы гуиды совпадали с исходным. такое было у меня на прошлом месте, такое есть у меня сейчас.
к примеру, можно посмотреть типовые правила переноса Розница 1.0 - Комплексная Автоматизация. там так отчёт о розничных продажах расщепляется на непосредственно отчёт и приходный кассовый ордер к нему.
13. Bazin 6 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
baton_pk; +1 Ответить
14. Vitstav 3 02.05.15 19:58 Сейчас в теме
(13) не гуидом а УИДом разные вещи. Один глобальный - и он есть уникальный. Другой локальный. Он тоже уникальный, но в пределах данной таблицы. К глобальному как раз таки "название таблицы" добавляется. А по поводу зло это или нет... я уже и не вспомню с чем это было связано... но были разные рквизиты в платежных документах между УТ и БП, и в платежном документе в бухгалтерии использовался контрагент, тогда как в УТ использовалось физическое лицо. Так вот... при типовом обмене создавались в БП контрагенты с ФИО как у физ лицо... но самое прикольное это был УИД. Он был такой же как у физического лица в УТ, и проверка стояла у них как раз таки на тот самый УИД.
9. Bazin 6 29.04.15 19:16 Сейчас в теме
для любого объекта метаданных

Я уже думал регистры сведений прикурили
15. insurgut 182 02.05.15 20:07 Сейчас в теме
Позвольте не скромный вопрос - на кой сжимать УИД объекта? Просто интересно узнать реальную задачу =)
16. AlexKo 46 04.05.15 05:29 Сейчас в теме
(15) insurgut,
При интеграции с учетными системами партнеров. У некоторых западных компаний в информационных системах длина идентификатора точек/контрагентов ограничена 20 символов.
17. DrAku1a 1289 07.05.15 02:32 Сейчас в теме
СсылкаНаОбъект.УникальныйИдентификатор()

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

Вакансии

Удаленный консультант-разработчик 1С
Краснодар
зарплата от 60 000 руб. до 60 000 руб.
Полный день



Ведущий программист 1С
Москва
зарплата от 150 000 руб. до 180 000 руб.
Полный день

Руководитель проектов 1С
Москва
Полный день