Имя: Пароль:
1C
1С v8
Проверка Гуид
,
0 bborisko
 
30.04.13
08:10
Помогите написать регулярное выражение или может есть другой способ - надо проверить что в строке Гуид.
1 vde69
 
30.04.13
08:15
гуид произвольный или из этой базы?
2 bborisko
 
30.04.13
08:18
из базы
3 Defender aka LINN
 
30.04.13
08:18
(1) А, типа, регулярка от этого поменяется?
(0) Через Попытку проверь
4 HeroShima
 
30.04.13
08:20
(0) Формат какой-то фиксированный?
5 bborisko
 
30.04.13
08:23
Формат Гуид в 1с
6872d2fc-ddd8-11e0-a8cd-001e682faa88
Проверить кол. символов и наличие тире в нужном месте.
6 mehfk
 
30.04.13
08:24
(0)
Функция ИзвлечьGUIDИзСтроки(СтрокаСообщения)
   
   RegExp = Новый COMОбъект("VBScript.RegExp"); // создаем объект для работы с регулярными выражениями
   RegExp.MultiLine = Истина;                   // истина — текст многострочный, ложь — одна строка
   RegExp.Global = Истина;                     // истина — поиск по всей строке, ложь — до первого совпадения
   RegExp.IgnoreCase = Истина;                 // истина — игнорировать регистр строки при поиске
   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}\}";
   
   objMatches = RegExp.Execute(СтрокаСообщения);
   
   Для ъ = 0 по objMatches.Count - 1 Цикл
       objMatch = objMatches.Item(ъ);
       Возврат Сред(objMatch.Value,2,СтрДлина(objMatch.Value)-2);
   КонецЦикла;
   
   Возврат "";
   
КонецФункции
7 bborisko
 
30.04.13
08:25
(6) Спасибо!
8 Defender aka LINN
 
30.04.13
08:27

Попытка
   ИД = Новый УникальныйИдентификатор(Строка);
   ЭтоГУИД = Истина;
Исключение
   ЭтоГУИД = Ложь;
КонецПопытки;
9 Sammo
 
30.04.13
08:36
Кроме того можно проверить запросом - если есть проблемы с регуляркой и попыткой.
Через Like
10 bborisko
 
30.04.13
08:45
(9) Покажи как? Интересно для общего развития)
11 Sammo
 
30.04.13
11:43
ВЫБРАТЬ
   &Стр
ГДЕ
   &Стр ПОДОБНО &Шаблон

&Стр - твоя строка
&Шаблон - соответственно шаблон гуида.
Но, насколько я помню, там не взлетит использование {[0-9a-fA-F]{8} надо будет указывать [A-Z 0-9][A-Z 0-9][A-Z 0-9] и так далее.
Нюанс - мс скуль не отличает маленькие буквы от больших, поэтому если решение только для MS SQL, то можно не указывать a-z A-Z