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

Свойства · Version5

Версия 5 уникального идентификатора.

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

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

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

Версия5 (Version5)

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

Описание:
Версия 5 уникального идентификатора.
Использование в версии:

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

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

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

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

Учебный код item:A-01 преобразуем в UUID версии 5. Одинаковые пространство и имя дают тот же результат, изменение регистра имени — другой.

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

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

Подготовка

  1. Отдельная учебная база. Фрагмент вставьте в серверную ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи.

  2. Платформа 8.5.1.1343; примеры работают в памяти и не создают объекты справочников/документов.

  3. Результаты UUID версий 3/5 зависят также от режима совместимости. Для сравнения между системами нужен отдельный тест контракта.

Пространство = Новый УникальныйИдентификатор("17c41c11-dc4f-41e1-b612-9c62fc508bc1");
ВнешнийКод = "item:A-01";
Первый = Новый УникальныйИдентификатор(ВерсияУникальногоИдентификатора.Версия5, Пространство, ВнешнийКод);
Повтор = Новый УникальныйИдентификатор(ВерсияУникальногоИдентификатора.Версия5, Пространство, ВнешнийКод);
ДругоеИмя = Новый УникальныйИдентификатор(ВерсияУникальногоИдентификатора.Версия5, Пространство, "item:a-01");
ДругоеПространство = Новый УникальныйИдентификатор("357382ac-a9d2-470e-a5c1-43fbd3d9a7e0");
ВДругомПространстве = Новый УникальныйИдентификатор(ВерсияУникальногоИдентификатора.Версия5, ДругоеПространство, ВнешнийКод);
Сообщить(Первый = Повтор);
Сообщить(Первый <> ДругоеИмя);
Сообщить(Первый <> ВДругомПространстве);

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

  1. Пространство имён фиксировано для этого учебного контракта. Не создаём его случайно при каждом вызове.

  2. Версия5 использует пространство и точное имя. Префикс item: отделяет класс учебных сущностей от других возможных ключей.

  3. Повторяем тот же вызов и сравниваем значения UUID напрямую.

  4. Имя чувствительно к содержимому, включая регистр. Преобразование A-01 в a-01 нельзя делать без правила внешнего контракта.

  5. Другое пространство отделяет другой независимый набор ключей даже при совпадении внешнего имени.

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

  1. Все три сравнения Истина: повтор одинаков, изменение имени/пространства даёт другое значение.

  2. Для одного и того же режима совместимости повторный запуск воспроизводит идентификатор.

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

Показана воспроизводимая идентификация учебного внешнего кода без создания объекта в базе.

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

  1. Это не готовый контракт API Авито: внешние имена и пространства должен определить ваш интеграционный протокол.

  2. Для совместимости старых конфигураций алгоритм UUID 3/5 может отличаться по замечанию локальной справки. Не обещаем точную строку между разными режимами.

  3. Детерминированный UUID не скрывает имя и не предназначен для хранения секрета.

  4. Коллизии идентификаторов и уникальность внешнего ключа всё равно требуют правил контроля данных.

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

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

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

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

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