|
Доступ к объекту window ВебКлиента | ☑ | ||
---|---|---|---|---|
0
lufton
06.12.20
✎
23:14
|
Доброго времени суток! Есть необходимость использовать регулярные выражения в 1С на ВебКлиенте. Есть замечательная компонента, но она не устанавливается в ВебКлиент.
Возникла идея, а что если использовать методы самого браузера? Т.е. каким-то образом обратиться к объекту window открытого окна с запущенным ВебКлиентом. Знаю, что можно использовать ПолеHTMLДокумента, но у меня задача: регулярки в общем модуле, т.е. без форм. |
|||
1
acht
06.12.20
✎
23:39
|
(0) > окна с запущенным ВебКлиентом.
... > в общем модуле, т.е. без форм. Чувстуешь противоречие, не? |
|||
2
lufton
07.12.20
✎
00:27
|
(1) да, чувствую ) что ж делать-то?
|
|||
3
acht
07.12.20
✎
00:42
|
(2) Зависит о того, что тебе важней - общий модуль без форм или таки формы на клиенте.
|
|||
4
DES
07.12.20
✎
00:58
|
||||
5
acht
07.12.20
✎
01:33
|
(4) И чо там у тебя получилось?
|
|||
6
lufton
07.12.20
✎
02:35
|
Пока что вот так сделал, работает хотя бы в IE:
Функция RegEx(РегулярноеВыражение = "", ИгнорироватьРегистр = Истина, ВсеСовпадения = Истина) Экспорт #Если ВебКлиент Тогда RegEx = Новый COMОбъект("VBScript.RegExp"); RegEx.Pattern = РегулярноеВыражение; RegEx.Global = ВсеСовпадения; RegEx.IgnoreCase = ИгнорироватьРегистр; #Иначе ПодключитьВнешнююКомпоненту("ОбщийМакет.НП_RegEx","НП_RegEx", ТипВнешнейКомпоненты.Native); RegEx = Новый("AddIn.НП_RegEx.RegEx"); RegEx.Шаблон = РегулярноеВыражение; RegEx.ВсеСовпадения = ВсеСовпадения; RegEx.ИгнорироватьРегистр = ИгнорироватьРегистр; #КонецЕсли Возврат RegEx; КонецФункции Функция Совпадает(Текст, РегулярноеВыражение, ИгнорироватьРегистр = Истина, ВсеСовпадения = Истина) Экспорт RegEx = RegEx(РегулярноеВыражение, ИгнорироватьРегистр, ВсеСовпадения); #Если ВебКлиент Тогда Возврат RegEx.Test(Текст); #Иначе Возврат RegEx.Совпадает(Текст); #КонецЕсли КонецФункции Функция Заменить(Текст, РегулярноеВыражение, Замена, ИгнорироватьРегистр = Истина, ВсеСовпадения = Истина) Экспорт RegEx = RegEx(РегулярноеВыражение, ИгнорироватьРегистр, ВсеСовпадения); #Если ВебКлиент Тогда Возврат RegEx.Replace(Текст, Замена); #Иначе Возврат RegEx.Заменить(Текст, , Замена); #КонецЕсли КонецФункции Может кому-то пригодится, но хотелось бы полноценные регулярки в более продвинутых браузерах. |
|||
7
arsik
гуру
07.12.20
✎
09:00
|
(0) Регулярки настолько хороши, что необходимы и их ничего не может заменить? Ну бред же.
|
|||
8
polosov
07.12.20
✎
09:37
|
(7) Да, регулярки настолько хороши.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |