Создать идентификатор и восстановить то же значение из строки

Учебные задачи

Отличаем создание случайного UUID от разбора его строкового представления. Новый UUID не означает, что в базе появился документ.

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

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

Подготовка

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

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

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

Идентификатор = Новый УникальныйИдентификатор;
Текст = Строка(Идентификатор);
Восстановленный = Новый УникальныйИдентификатор(Текст);
Сообщить(СтрДлина(Текст) = 36);
Сообщить(Восстановленный = Идентификатор);
Нулевой = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
Сообщить(НРег(Строка(Нулевой)) = "00000000-0000-0000-0000-000000000000");
Попытка
    Некорректный = Новый УникальныйИдентификатор("это не UUID");
Исключение
    Сообщить("Неверное строковое представление UUID не принято");
КонецПопытки;

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

  1. Конструктор без аргументов генерирует новый идентификатор. Строка создаёт его стандартное представление с дефисами.

  2. Конструктор из строки восстанавливает переданное значение, а не генерирует новое случайное.

  3. Нулевой UUID — конкретное допустимое значение. Его нужно отличать от Неопределено.

  4. Неверное представление отлавливаем отдельно. Не заменяем его автоматически новым UUID, иначе связь с исходным объектом будет потеряна.

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

  1. Все три булевых сравнения Истина; выводится сообщение о некорректном UUID.

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

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

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

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

  1. UUID — идентификатор, не пароль, не токен доступа и не доказательство существования объекта базы.

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

  3. Нулевой UUID не является автоматически Неопределено или пустой ссылкой конкретного справочника.

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

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

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

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

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