ВерсияУникальногоИдентификатора

Темы платформы · UUIDVersion

Определяет версию уникального идентификатора.

Полное описание, параметры и ограничения

ВерсияУникальногоИдентификатора (UUIDVersion)

ВерсияУникальногоИдентификатора (UUIDVersion)

Доступен, начиная с версии 8.3.21.

Значения
Версия1 (Version1)
Версия3 (Version3)
Версия4 (Version4)
Версия5 (Version5)

Описание:

Определяет версию уникального идентификатора.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.3.21.

Методическая информация

Практические примеры

Получить устойчивый UUID для собственного учебного ключа

Одинаковые пространство имён и имя дают одинаковый UUID версии 5; меняя учебное имя или пространство, получаем отдельные ключи.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Собственная учебная база 8.5.1.1343. Создайте внешнюю обработку с управляемой формой, командой Выполнить и кнопкой этой команды; весь модуль урока вставьте в форму.

  2. Первый урок выполняется в обычном тонком/толстом клиенте, затем для сравнения только в своём клиенте /TESTCLIENT. Менеджер /TESTMANAGER — другой режим и не выдаётся за тестируемый сеанс.

  3. Все обращения диагностические: не устанавливают компоненты, не открывают карту, не отключают режимы защиты и не завершают клиента.

  4. Статическая сверка имён API не доказывает результат запуска на вашем клиенте; Истина/Ложь здесь зависят от среды.

&НаКлиенте
Процедура Выполнить(Команда)
    Пространство = Новый УникальныйИдентификатор("70a582c7-190a-435e-83fd-b9f51a9a01ce");
    ДругоеПространство = Новый УникальныйИдентификатор("2240fbc8-608d-42f2-9fe8-a6b8a56bd730");
    ИмяЗаказа = "guide-owned-order-001";
    Версия = ВерсияУникальногоИдентификатора.Версия5;
    Первый = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, Версия, Пространство, ИмяЗаказа);
    Повторный = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, Версия, Пространство, ИмяЗаказа);
    ВторойЗаказ = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, Версия, Пространство, "guide-owned-order-002");
    ДругойИсточник = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, Версия, ДругоеПространство, ИмяЗаказа);
    ВерсияТри = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Ложь, ВерсияУникальногоИдентификатора.Версия3, Пространство, ИмяЗаказа);
    Совместимый = ПолучитьУникальныйИдентификаторСПоддержкойСовместимости(Истина, Версия, Пространство, ИмяЗаказа);
    Сообщить(ТипЗнч(Первый) = Тип("УникальныйИдентификатор"));
    Сообщить(Первый = Повторный);
    Сообщить(Первый <> ВторойЗаказ);
    Сообщить(Первый <> ДругойИсточник);
    Сообщить(Первый <> ВерсияТри);
    Сообщить(СтрШаблон("Для этого учебного имени старый совместимый результат совпал=%1", Первый = Совместимый));
    Сообщить("Учебный UUID заказа: " + Строка(Первый));
КонецПроцедуры

Разбор по шагам

  1. Оба пространства — собственные фиксированные UUID из текста урока, не стандартные пространства DNS/URL и не реальные идентификаторы чужой базы.

  2. Сначала выбираем версию 5 и явно Ложь для совместимости. Пространство и имя участвуют в устойчивом ключе; простой случайный Новый УникальныйИдентификатор такую повторяемость не обеспечивает.

  3. Все повторные вызовы для одного учебного заказа используют одинаковые аргументы. Второй заказ отличается именем, другой источник — пространством имён.

  4. Версия 3 показана отдельным вызовом; её ключ не выдаётся за тот же результат версии 5.

  5. Истина совместимости воспроизводит поведение до 8.3.24 включительно, которое для версий 3/5 могло не полностью соответствовать RFC4122. Не обещаем, что для каждого имени старый результат обязательно отличается.

  6. UUID — идентификатор, не пароль или подпись. Устойчивость имени не подтверждает право доступа к заказу и не создаёт документ в базе.

Как проверить результат

  1. Первые пять проверок ожидаются Истина на собственных фиксированных примерах; шестая диагностическая, затем выводится собственный UUID.

  2. При повторном запуске первый UUID стабилен. Документы заказа, ключи аутентификации и внешние сервисы не используются.

Ожидаемый результат

На полностью заданных данных показаны реальный именованный UUID, версия, пространство и режим совместимости.

На что обратить внимание

  1. Изменение регистра/пробелов в имени или выбранной версии может изменить ключ; нормализацию договоритесь выполнять до генерации.

  2. Не менять совместимость в действующем обмене без миграционного плана существующих ключей.

  3. Не превращать предсказуемый UUID в токен авторизации и не обещать математическую невозможность коллизий.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.