Как узнать ГУИД?
25.01.14
Задачи пользователя - Поиск данных
ГУИД в 1С - 36-изначный набор букв и цифр, является уникальным идентификатором.
Нужен, например, при интеграции с другими приложениями.
Нужен, например, при интеграции с другими приложениями.
Скачать файл
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Наименование | По подписке [?] | Купить один файл | |
---|---|---|---|
ПрочитатьГУИД.epf
.epf 7,83Kb ver:ReadGUID
266
|
ГУИД можно рассчитать из навигационной ссылки, например:
e1cib/data/Документ.ЗаказПокупателя?ref=b59500055d80a2b911de397d51012ccc
Берём правые 32 символа и переставляем их местами по формуле:
(между группами символов ставим дефис)
последние 8 символов - 4 символа, начиная с 21-го - 4 символа, начиная с 17-го - 4 первых символа - 12 символов, начиная с 5-го
или номерами символов
25 26 27 28 29 30 31 32 - 21 22 23 24 - 17 18 19 20 - 1 2 3 4 - 5 6 7 8 9 10 11 12 13 14 15 16
получаем:
51012ccc-397d-11de-b595-00055d80a2b9
символы дефиса стоят на позициях 9, 14, 19, 24.
Другой вариант - программно получить через конструкцию XMLСтрока:
ГУИДСсылки = XMLСтрока(Ссылка);
или через УникальныйИдентификатор:
ГУИДСсылки = ЗаказПокупателяСсылка.УникальныйИдентификатор();
Следует помнить, что глобальный метод УникальныйИдентификатор() возвращает значение с типом УникальныйИдентификатор, XMLСтрока - строковое представление уникального идентификатора, то есть строчку. Поэтому, если ГУИД нужен, чтобы передавать его символьно (например, записывать в файл обмена с интегрированной программой) - Welcome, XMLСтрока!
А вот для обратного преобразования нужно обязательно указывать тип данных:
ЗаказПокупателяСсылка = XMLЗначение(Тип("ДокументСсылка.ЗаказПокупателя"), ГУИДСсылки);
или
ЗаказПокупателяСсылка = Документы.ЗаказПокупателя.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИДСсылки));
(и здесь, как видно, использование XML выглядет привлекательнее...).
В прилагаемой обработке пример получения ГУИДа по выбранному значению и получение значения по указанному ГУИДу.
Конечно же, для того, чтобы найти нужный тип, перебираются метаданные и подставляются в 1-ый параметр. А проверка 'валидности' ссылки осуществляется по заполнению поля 'ВерсияДанных'.
Ещё важно по теме ГУИДов: