Имя: Пароль:
1C
1С v8
Функция для получения подстроки по маске
0 SeiOkami
 
25.08.13
12:40
Поясню.

Вот такой запрос возвращает истина:
ВЫБРАТЬ
    ВЫБОР
        КОГДА "Вася Пупкин -" ПОДОБНО "% %[-]"
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Поле1

Вот такой ложь:

ВЫБРАТЬ
    ВЫБОР
        КОГДА "Вася Пупкин - текст" ПОДОБНО "% %[-]"
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК Поле1


Есть ли метод (чтобы не изобретать), который вернет подстроку переданного текста, которая удовлетворяет маске, при этом отбросив не удовлетворяющий участок?

Например:

Результат = ПодстрокаПоМаске("Вася Пупкин - текст", "% %[-]");
//Результат будет равен "Вася Пупкин -"
1 hhhh
 
25.08.13
12:55
ПОДОБНО "% %[-]%"

не?
2 SeiOkami
 
25.08.13
12:57
(1), что не?
3 SeiOkami
 
25.08.13
12:59
Запросы указаны просто чтобы было легче понять.
Пожалуйста, коллеги, дочитывайте до конца прежде чем ответить)
4 Rie
 
25.08.13
12:59
(0) Нет такого. Можешь использовать регулярные выражения - притащив их откуда-нибудь.
5 Rie
 
25.08.13
13:00
(3) Чтобы легче понять было - надо не писать лишнего.
6 SeiOkami
 
25.08.13
13:03
Т.е. либо писать печальную функцию языком 1с (я так полагаю для данной задачи не печальную написать не выйдет), либо внешние компоненты?
7 Rie
 
25.08.13
13:13
(6) Писать "свои" регулярные выражения на 1С - не стоит. Для конкретного случая - функция на 1С может быть простой (зависит от образца).
Но! Всё уже придумано до нас! http://kb.mista.ru/article.php?id=698 (первая ссылка в Google по запросу "1С регулярные выражения")
8 Rie
 
25.08.13
13:15
+(7) Для того, чтобы не просто сопоставить, а извлечь - надо уйти куда-нибудь в JavaScript и вернуть результат оттуда.
9 SeiOkami
 
25.08.13
13:18
(7), а на линухе такой код заработает? на мобильно приложение скомпилиться?
Если нет, то придется все же как то на 1с =(
10 Rie
 
25.08.13
13:20
(9) Тогда на 1С.
11 Rie
 
25.08.13
13:21
+(10) Или написать Native внешнюю компоненту.
12 SeiOkami
 
25.08.13
13:22
Ок, спасибо, буду как-то извращаться )