Добрый день.
Подскажите, как я могу проверить, что строка, которую я хочу преобразовать в ГУИД корректна?

Например, я загружаю данные из экселя, в колонке файла указаны ГУИД . Затем эти строки гуид я преобразую в тип ГУИД.
Так вот, если исходные данные кривые (5533222, вместо 0000-000000.....-00), то конструкция ГУИД = Новый УникальныйИдетификатор(МойГуид) падает с ошибкой.
---
Через регулярное выражение

```1c
    &НаКлиенте

    Тест_GUID = "01234567-89AB-CDEF-abcd-ef0123456789";

    RegExp = Новый COMОбъект("VBScript.RegExp");
    RegExp.IgnoreCase = Ложь; //Игнорировать регистр
    RegExp.Global = Истина; //Поиск всех вхождений шаблона
    RegExp.MultiLine = Ложь; //Многострочный режим

    RegExp.Pattern = "^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$";

    Matches=RegExp.Execute(Тест_GUID);

    ЧислоВхождений=Matches.Count();
    Если ЧислоВхождений>0 Тогда
    Сообщить("Подходит");
    Иначе
    Сообщить("НЕ подходит");
    КонецЕсли;
```
---
ак я могу проверить, что строка, которую я хочу преобразовать в ГУИД корректна? Как вариант:
1. Использовать РазложитьСтрокуВМассивПодстрок(НРег(СтрокаГУИД)) с разделителем "-".
2. Проверить количество элементов массива и длину каждого из них, если не соответствует формату - сразу браковать.
3. В каждой подстроке массива заменить символы "0123456789abcdef" на пустую строку и если после этого хоть в одной подстроке этого что-то осталось - браковать.

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

Поэтому совсем без Попытка...Исключение обойтись вряд ли получится.
---
Попытку не предлагать?
---
ак я могу проверить, что строка, которую я хочу преобразовать в ГУИД корректна? Как вариант:
1. Использовать РазложитьСтрокуВМассивПодстрок(НРег(СтрокаГУИД)) с разделителем "-".
2. Проверить количество элементов массива и длину каждого из них, если не соответствует формату - сразу браковать.
3. В каждой подстроке массива заменить символы "0123456789abcdef" на пустую строку и если после этого хоть в одной подстроке этого что-то осталось - браковать.

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

Поэтому совсем без Попытка...Исключение обойтись вряд ли получится.
---
Нет :)
---
Через регулярное выражение

```1c
    &НаКлиенте

    Тест_GUID = "01234567-89AB-CDEF-abcd-ef0123456789";

    RegExp = Новый COMОбъект("VBScript.RegExp");
    RegExp.IgnoreCase = Ложь; //Игнорировать регистр
    RegExp.Global = Истина; //Поиск всех вхождений шаблона
    RegExp.MultiLine = Ложь; //Многострочный режим

    RegExp.Pattern = "^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$";

    Matches=RegExp.Execute(Тест_GUID);

    ЧислоВхождений=Matches.Count();
    Если ЧислоВхождений>0 Тогда
    Сообщить("Подходит");
    Иначе
    Сообщить("НЕ подходит");
    КонецЕсли;
```
---
```1c
    СтроковыеФункцииКлиентСервер.ЭтоУникальныйИдентификатор(Идентификатор)

    // Проверяет, является ли строка уникальным идентификатором.
    // В качестве уникального идентификатора предполагается строка вида
    // "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", где X = [0..9,a..f].
    //
    // Параметры:
    // Значение - Строка - проверяемая строка.
    //
    // Возвращаемое значение:
    // Булево - Истина, если переданная строка является уникальным идентификатором.
    //
    Функция ЭтоУникальныйИдентификатор(Знач Значение) Экспорт
    ...
```