Определяет версию уникального идентификатора.
Полное описание, параметры и ограничения
ВерсияУникальногоИдентификатора (UUIDVersion)
ВерсияУникальногоИдентификатора (UUIDVersion)
Доступен, начиная с версии 8.3.21.
Значения
Версия1 (Version1)
Версия3 (Version3)
Версия4 (Version4)
Версия5 (Version5)
Описание:
Определяет версию уникального идентификатора.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.21.
Методическая информация
Практические примеры
Получить устойчивый UUID для собственного учебного ключа
Одинаковые пространство имён и имя дают одинаковый UUID версии 5; меняя учебное имя или пространство, получаем отдельные ключи.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Собственная учебная база 8.5.1.1343. Создайте внешнюю обработку с управляемой формой, командой Выполнить и кнопкой этой команды; весь модуль урока вставьте в форму.
Первый урок выполняется в обычном тонком/толстом клиенте, затем для сравнения только в своём клиенте /TESTCLIENT. Менеджер /TESTMANAGER — другой режим и не выдаётся за тестируемый сеанс.
Все обращения диагностические: не устанавливают компоненты, не открывают карту, не отключают режимы защиты и не завершают клиента.
Статическая сверка имён API не доказывает результат запуска на вашем клиенте; Истина/Ложь здесь зависят от среды.
&НаКлиенте
Процедура Выполнить(Команда)
Пространство = Новый УникальныйИдентификатор("70a582c7-190a-435e-83fd-b9f51a9a01ce");
ДругоеПространство = Новый УникальныйИдентификатор("2240fbc8-608d-42f2-9fe8-a6b8a56bd730");
ИмяЗаказа = "guide-owned-order-001";
Версия = ВерсияУникальногоИдентификатора.Версия5;
Первый = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, Версия, Пространство, ИмяЗаказа);
Повторный = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, Версия, Пространство, ИмяЗаказа);
ВторойЗаказ = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, Версия, Пространство, "guide-owned-order-002");
ДругойИсточник = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, Версия, ДругоеПространство, ИмяЗаказа);
ВерсияТри = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, ВерсияУникальногоИдентификатора.Версия3, Пространство, ИмяЗаказа);
Совместимый = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Истина, Версия, Пространство, ИмяЗаказа);
Сообщить(ТипЗнч(Первый) = Тип("УникальныйИдентификатор"));
Сообщить(Первый = Повторный);
Сообщить(Первый <> ВторойЗаказ);
Сообщить(Первый <> ДругойИсточник);
Сообщить(Первый <> ВерсияТри);
Сообщить(СтрШаблон("Для этого учебного имени старый совместимый результат совпал=%1", Первый = Совместимый));
Сообщить("Учебный UUID заказа: " + Строка(Первый));
КонецПроцедурыРазбор по шагам
Оба пространства — собственные фиксированные UUID из текста урока, не стандартные пространства DNS/URL и не реальные идентификаторы чужой базы.
Сначала выбираем версию 5 и явно Ложь для совместимости. Пространство и имя участвуют в устойчивом ключе; простой случайный Новый УникальныйИдентификатор такую повторяемость не обеспечивает.
Все повторные вызовы для одного учебного заказа используют одинаковые аргументы. Второй заказ отличается именем, другой источник — пространством имён.
Версия 3 показана отдельным вызовом; её ключ не выдаётся за тот же результат версии 5.
Истина совместимости воспроизводит поведение до 8.3.24 включительно, которое для версий 3/5 могло не полностью соответствовать RFC4122. Не обещаем, что для каждого имени старый результат обязательно отличается.
UUID — идентификатор, не пароль или подпись. Устойчивость имени не подтверждает право доступа к заказу и не создаёт документ в базе.
Как проверить результат
Первые пять проверок ожидаются Истина на собственных фиксированных примерах; шестая диагностическая, затем выводится собственный UUID.
При повторном запуске первый UUID стабилен. Документы заказа, ключи аутентификации и внешние сервисы не используются.
Ожидаемый результат
На полностью заданных данных показаны реальный именованный UUID, версия, пространство и режим совместимости.
На что обратить внимание
Изменение регистра/пробелов в имени или выбранной версии может изменить ключ; нормализацию договоритесь выполнять до генерации.
Не менять совместимость в действующем обмене без миграционного плана существующих ключей.
Не превращать предсказуемый UUID в токен авторизации и не обещать математическую невозможность коллизий.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.