ГУИД в 1С - 36-изначный набор букв и цифр, является уникальным идентификатором. ГУИД можно рассчитать из навигационной ссылки, например: 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-ый параметр. А проверка 'валидности' ссылки осуществляется по заполнению поля 'ВерсияДанных'. | |
Скачать проверено антивирусом (7.8 Kb) | |
|
|
|
|
Просмотров: 1325 | Загрузок: 165 | |
Всего комментариев: 0 | |