Коллеги, привет!

Подскажите, можно ли использовать регулярные выражения в формуле бизнес-процесса.

Заранее благодарю.

Нравится

2 комментария
Лучший ответ

На сколько я знаю, в формуле регулярные выражения не работают (ну у меня не завелось). Можно сделать через сценарий следующим образом:

1. Добавляете 2 параметра типа Строка в параметры процесса

Входные данные и Результат (нужно запомнить Код данных параметров, он потом потребуется)

2.  Далее во вкладке методы настроек процесса добавляем в Using следующую строку: System.Text.RegularExpressions

3. Добавляете элемент задание-сценарий со следующим кодом:

Regex pattern = new Regex("([^\\d])");
string rawPhone = Get<string>("Код параметра где лежит оригинальный номер");
Set("Код параметра куда сохранить только цифры", pattern.Replace(rawPhone,""));
return true;

4. Ну и собственно - profit) Дальше уже из параметра БП можно это брать и записывать куда нужно. Ну или прям в сценарии.

На сколько я знаю, в формуле регулярные выражения не работают (ну у меня не завелось). Можно сделать через сценарий следующим образом:

1. Добавляете 2 параметра типа Строка в параметры процесса

Входные данные и Результат (нужно запомнить Код данных параметров, он потом потребуется)

2.  Далее во вкладке методы настроек процесса добавляем в Using следующую строку: System.Text.RegularExpressions

3. Добавляете элемент задание-сценарий со следующим кодом:

Regex pattern = new Regex("([^\\d])");
string rawPhone = Get<string>("Код параметра где лежит оригинальный номер");
Set("Код параметра куда сохранить только цифры", pattern.Replace(rawPhone,""));
return true;

4. Ну и собственно - profit) Дальше уже из параметра БП можно это брать и записывать куда нужно. Ну или прям в сценарии.

Сидоров Александр Валерьевич,

спасибо большое! Попробую)

Показать все комментарии

Здравствуйте!

В версии 3.3.2.109 появилась такая проблема:

Для полей с телефоном я использую регулярное выражение

(\+7\(\d{3}\)\d{3}-\d{2}-\d{2})(,\s?\+7\(\d{3}\)\d{3}-\d{2}-\d{2})*

Поле обычное, edit.
В Windows 7 телефон вводится и отображается хорошо. Но в XP перед телефоном появляется лишний символ BOM.

Подскажите, пожалуйста, как от него избавиться?

Нравится

3 комментария

Повторил то же на XP для версии 3.3.2. Создал поле, указал маску и тип маски. При выполнении символа в начале нет, при вводе первым символом стоит +. Что еще нехарактерного Вы сделали при добавлении поля, чего я упустил и не повторил? Как добиться той же ошибки?

Создала для тестирования все по минимуму. Окно и поле, результат тот же. Посмотрите, пожалуйста.

Повторил то же самое на XP SP3, проблема не возникает. Как в предыдущем случае, с выражением для номера телефона, так и для тестового простого окна с выражением из числа. Прикрепляю скриншот с результатом и параметрами системы. Похоже, что проблема не с Террасофт, а с настройками Вашей ОС.

Показать все комментарии