23.08.2021 Айдар Фархутдинов 14203
Регулярные выражения в 1С

Содержание:

1.       Значение Регулярных выражений

2.       Функционал и примеры регулярных выражений

 

1.    Значение Регулярных выражений


Приветствую, коллеги! В данной статье будет рассмотрены регулярные выражения в 1С, также известные как выражения RegExp.   

Регулярных выражения – это один из инструментов, который предназначен для анализа текстов и имеет довольно широкий функционал. В самой системе 1С не предусмотрен инструментарий для работы с выражениями RegExp. Но, при этом, даже на платформе 1С, можно пользоваться объектом из Windows, который осуществляет работу с регулярными выражениями – VBScript.RegExp.

Все программные коды, которые будут описаны ниже, действительны для всех конфигураций и версий системы 1С 8.х.


2.    Функционал и примеры регулярных выражений


Для начала следует обозначить, как использовать регулярные выражения, как создаётся объект при их помощи, строка кода для данного действия, будет выглядеть так, как показано на скриншоте ниже:   



Рис. 1 Пример использования регулярных выражения для создания объекта


Также стоит отметить, что за глобальные переменные представляются переменные вида:


Рис. 2 Глобальные переменные в примере с регулярными выражениями


Разберём перечень свойств, которые присущи объекту VBScript.RegExp:

1.     Global. Значение «Ложь» по умолчанию и поиск значения «Истина» Истина по всему объёму текста;

2.     IgnorCase. По умолчанию ему присваивается значение «Ложь», и оно учитывается для всего символьного регистра, а в значении «Истина» символьный регистр не будет учтён;

3.     Multiline. Также по умолчанию присваивается значение «Ложь» – является объектом на одну строку; в значении «Истина» обозначает объект на большее количество строк.

4.     Pattern. Это свойство, которое представляет собой некоторую шаблонную строку при использовании регулярных выражений.


Далее представим перечень методов, которые могут быть использованы в примере с регулярными выражениями:


1.     Test(СтрокаТекста) – данный метод осуществляет сверку строки, которую в него подставили, на то, насколько она соответствует шаблонной строке. Это может быть, к примеру, поверка на корректность адреса. Возвращается «Ложь», если строка имеет полное соответствие с шаблоном, а значение «Истина» – в случае, если не подтверждено соответствие шаблону;

2.     Replace(СтрокаТекста, СтрокаЗамены) – в данном методе для первого параметра происходит поиск строки, которая соответствует шаблону, а при помощи второго параметра происходит замена первого значения;

3.     Execute(СтрокаТекста) – этот метод производит поиск строки, которая соответствует указанному шаблону, и возвращает значения в виде коллекции подстрок, которые были найдены.

Также у данного объекта есть софт, при помощи которого происходит отладка шаблонов для регулярных выражений – это RegexBuddy.

Далее представлен пример того, как при помощи данного объекта программно описать поиск HTML тегов внутри строки:

Следующий пример с регулярными выражениями ищет HTML теги в строке:


Рис. 3 Регулярные выражения в 1С для поиска тегов в строке


Поменяем в коде программы шаблон регулярных выражений так, чтобы были крупные скобки, при помощи которых происходят группировки в коллекциях SubMatces. В таком случае код будет представлен в следующем виде:


Рис. 4 Применение шаблона регулярных выражений в коде


После этого будет осуществлён поиск самого тега, а также текстовой информации, которая идёт после данного тега. Чтобы сделать обработку подобного шаблона регулярных выражений, необходимо написать код следующего вида:



Рис. 5 Обработка шаблона регулярных выражений

Стоит рассмотреть также и пример того, как можно использовать регулярные выражения для проверки email, то есть проверки корректности введения электронного адреса:



Рис. 6 Регулярные выражения для проверки email

Если внутри текста регулярные выражения встречаются часто, то лучшим вариантом решения данной проблемы будет написание специальной оболочки. Главными позициями в таком случае будут:

·        Глобальная переменная, которая будет вложенным объектом внутри объекта VBScript.RegExp;

·        Проведение инициализации вышеуказанной глобальной переменной, которая будет производится при каждом запуске данной конфигурации или в конкретных случаях, если прописана специальная функция;

·        Инкапсуляция по методам внутри объекта VBScript.RegExp.


Специалист компании «Кодерлайн»

Айдар Фархутдинов





Наши проекты

Апгрейд 1С:Бухгалтерия 8 ПРОФ (USB) до версии 1С:Бухгалтерия 8 КОРП (USB)
ООО «Ява Строй»

Отрасль:
Строительство

Внедренное типовое решение:
1С:Бухгалтерия 8 КОРП (USB)

- Создание чистых конфигураций. Внесение изменений в БД ЗУП и новая расчетная ведомость;
- Администрирование MS SQL Server;
- Сжати...

ООО «Солви Пак»
ООО «Солви Пак»

Отрасль:
Торговля. Производство печати на рулонных материалах

Внедренное типовое решение:
1С:CRM+1С:Комплексная автоматизация

Управление отношениями с клиентами (CRM) ...

ЗАО «Инвестгеосервис»
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Объемно-календарное планирование производства Автоматизация бизнес-процессов Анализ деятельности в разрезе проектов Планирование проектов У...

ООО «ПраксисКом»
ООО «ПраксисКом»

Отрасль:
Аутсорсинг бухгалтерских услуг

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

- Взаиморасчеты с поставщиками
- Учет прихода ТМЦ
- Взаиморасчеты с покупателями
- Учет продаж ТМЦ
- Управление складскими ...

ООО «Фипар»
ООО «Фипар»

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автоматизировали блоки: продажи, закупки, производство, складская и т...

ООО "РУКАРД-АУРА"
ООО "РУКАРД-АУРА"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Комплексная автоматизация

- Налоговый учет;...

Автоматизация кадрового учета на базе ПП "1С:Зарплата и управление персоналом" в ТД НМК
ООО «Торговый дом Нальчикский молочный комбинат»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Кадровый учет;
- Расчет зарплаты;
- Регламентированная отчетность;
- Анализ кадрового состава;
- Учет рабочего времени; ...

Автоматизация производственного планирования нефтесервисной компании на базе 1С:ЕРП 2.0
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Блок планирования проектов (процессы объемно-календарного планирования производства)...

Автоматизация интеграции с информсистемами клиентов на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
«1С:Предприятие 8. WMS Логистика. Управление складом»

– Управление складскими запасами;
– Оформление заказов покупателей;
– Логистика адресного склада;
– Управление отношениями с пост...

ФГУП «Почта России»
ФГУП «Почта России»

Отрасль:
Почта, доставка

Внедренное типовое решение:
1С:Управление торговлей

- Оформление заказов поставщикам
- Оформление заказов покупателей
- Управление складскими запасами ...

Автоматизация торгового учета на базе "1С:Управление торговлей"
ООО «ТЕЛЕВЕС РУСС»

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

- Управление складскими запасами;
- Оформление заказов покупателей;
- Планирование продаж;
- Взаиморасчеты с покупателями;
-...

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

Отрасль:
Машиностроение, приборостроение

Внедренное типовое решение:
1С:Документооборот ПРОФ

Делопроизводство
Учет и хранение документов
Ведение номенклатуры дел
Учет и контроль исполнения поручений
Учет договоров...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение