|   |   | 
| 
 | Регулярные выражения в платформе | ☑ | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0
    
        MM 02.08.22✎ 10:58 | 
 
        1С наконец-то анонсировала поддержку регулярных выражений, хотя как-то на мой взгляд куцо.
 https://wonderland.v8.1c.ru/blog/podderzhka-regulyarnykh-vyrazheniy-vo-vstroennom-yazyke/ | ||||||||||
| 2
    
        СеменовСемен 02.08.22✎ 11:02 | 
        Странно что они не сделали объект, а напихали кучу глобальных функций     | ||||||||||
| 3
    
        unbred 02.08.22✎ 11:04 | 
        (0) очевидная штука, которая напрашивалась в момент создания 1с в принципе.     Буду использовать новые возможности | ||||||||||
| 4
    
        unenu 02.08.22✎ 11:05 | 
        это еще в 8.0 должно было быть в коробке.
 что ж, 20 лет спустя и готово. что дальше затолкают в платформу: распознавания лиц, машинное обучение, поддержка ВР? хотя это тоже будет еще 20 лет спустя. | ||||||||||
| 5
    
        MM 02.08.22✎ 11:05 | 
        (1) Наконец-то дождался. Но без возможности использовать подвыражения и удобного получения выбранных подстрок это потребует обёртки. Так же к сожалению продолжение поиска потребует повторного вызова функции, что не выглядит быстро. И ещё, пока не описаны технические детали реализации механизма сложно будет переходить на платформенные регулярки.     | ||||||||||
| 7
    
        MM 02.08.22✎ 11:08 | 
        (3) шутка состоит в том что механизм есть в платформе давным давно в рамках ICU, вот только он не был выведен в язык 1С. У Орефкова была ВК который этот механизм могла доставать, но, к сожалению, была не очень стабильна.     | ||||||||||
| 8
    
        Garykom гуру 02.08.22✎ 11:11 | 
        Хрень.
 Ибо надо не по строкам а по объектам (как в памяти так и в базе) 1С. | ||||||||||
| 9
    
        Garykom гуру 02.08.22✎ 11:12 | 
        (8)+ По типу есть некая ТЗ со строковым полем или справочник Номенклатура с наименованием
 И вот по ТЗ или по справочнику искать регуляркой | ||||||||||
| 10
    
        СеменовСемен 02.08.22✎ 11:14 | 
        (9) это ты linq описываешь, а не регулярки     | ||||||||||
| 11
    
        vde69 02.08.22✎ 11:16 | 
        регулярные выражения сделают код нечитаемым... примерно как скрипты unix системах.
 вот например кто с лету может означать что делает шаблон ^#\/база\.была.*сдохла Мне это не нужно | ||||||||||
| 12
    
        СеменовСемен 02.08.22✎ 11:18 | 
        Спорить о том нужно или не нужно уже поздно     | ||||||||||
| 13
    
        MM 02.08.22✎ 11:19 | 
        (9) А как делать поиск по базе если её SQL такого не умеет, а кроме того у каждого объекта может быть обработчик получения представления, который его превратит в произвольную строку. Кроме того мне гораздо интереснее не поиск, а получение подстрок и их замена.
 (11) Есть у RegExp такой недостаток, что их не сложно писать, но вот читать, особенно чужие, это печаль. И нужно прочесть Фридла. | ||||||||||
| 14
    
        Волшебник 02.08.22✎ 11:20 | 
        Я поддерживаю. Будет много новых интересных веток на форуме.     | ||||||||||
| 15
    
        vde69 02.08.22✎ 11:20 | 
        если сделают конструктор регулярок (типа как конструктор запросов) тогда взлетит     | ||||||||||
| 16
    
        unbred 02.08.22✎ 11:20 | 
        (11) ты же как-то можешь читать такое: ?("база была",false,"сдохла")
 привыкнешь) | ||||||||||
| 17
    
        Кирпич 02.08.22✎ 11:22 | 
        (11) Ну всяко проще, чем читать страницу кода, который это ищет без регулярок     | ||||||||||
| 19
    
        Garykom гуру 02.08.22✎ 11:24 | 
        (16) Нет я такое читать не могу
 Как вижу складываю маты на автора и стараюсь переписать на Если Тогда Иначе | ||||||||||
| 20
    
        Ryzeman 02.08.22✎ 11:29 | 
        (4) +1
 Хорошо что добавили. Рефакторить всё что на RegExp и прочие поиски через запросы и иную дичь я, конечно, не буду. Но новое - почему бы и нет? Буду использовать новые возможности | ||||||||||
| 21
    
        Asmody 02.08.22✎ 11:30 | 
        (0) И как это они не изобрели свой язык регулярок? Как-то не по одинесовски!     | ||||||||||
| 22
    
        MM 02.08.22✎ 11:32 | 
        (21) Синтаксис пока не описан, ждём сюрпризов.     | ||||||||||
| 23
    
        ИначеЕсли 02.08.22✎ 11:35 | 
        Для 1С:исполнителя будет полезно.     Буду использовать новые возможности | ||||||||||
| 24
    
        ИначеЕсли 02.08.22✎ 11:37 | 
        Но выглядит бедновато без возможности искать по файлам/каталогам и внутри коллекций 1с     | ||||||||||
| 25
    
        Ryzeman 02.08.22✎ 11:38 | 
        (22) СтрЗаменитьПоРегулярномуВыражению(МояСтрока, "♂☻база☻♂☻была☻♂", "сдохла")
 ? | ||||||||||
| 26
    
        ansh15 02.08.22✎ 12:16 | 
        В качестве справки будет отсылать на regex101 или аналогичное. Хотя, могут и на ИТС сделать.     | ||||||||||
| 27
    
        bolobol 02.08.22✎ 12:42 | 
        Пример задачи приведите, пожалуйста. Хорошо бы не один.     Мне это не нужно | ||||||||||
| 28
    
        СеменовСемен 02.08.22✎ 12:49 | 
        (27) обработка входящих данных, а ля текст назначения платежа     | ||||||||||
| 29
    
        vde69 02.08.22✎ 13:04 | 
        (27) примеры
 помощник формирования наименования, хитрый поиск дублей | ||||||||||
| 30
    
        Гений 1С гуру 02.08.22✎ 13:07 | 
        (0) хорошо, хотя я 100500 раз писал свои разборы строк.     | ||||||||||
| 31
    
        bolobol 02.08.22✎ 13:10 | 
        (28) СтрНайти - предостаточно, не встречал более хитрой необходимости, а это очень частая задача
 (29) формирование наименования - где тут регулярки? Поиск дублей - слишком специфичная задача, если даже пользователи не могут сами наткнуться - только усложнять им жизнь, что им приходится разбирать предложенные списки, а им и так живётся, без разборов. А вот найденное пользователем _срочно_ объединить и устранить - это и без регулярок вылезает | ||||||||||
| 32
    
        СеменовСемен 02.08.22✎ 13:10 | 
        (31) ну например номер счета найти в строке назначения     | ||||||||||
| 33
    
        kittystark 02.08.22✎ 13:11 | 
        (27) когда-то написал загрузку экселевских файлов от поставщиков и покупателей 
 с привязкой их наименований номенклатуры к своим наименованиям так вот такие задачи "кто во что горазд" - хорошо и быстро решаются регулярками обычным кодом "если Найти() тогда" - просто застрелиться можно | ||||||||||
| 34
    
        СеменовСемен 02.08.22✎ 13:11 | 
        (32) конечно регулярки тупо можно заменить посимвольным переборов - ведь они именно так и работают     | ||||||||||
| 35
    
        bolobol 02.08.22✎ 13:43 | 
        (32) СтрНайти "№" + СтрНайти " " - решал и решает 100% этих задач
 (33) Потому что так не делают, номенклатура привязывается в момент заказа и дальше таких вопросов не возникает. А поиск в электронных накладных идёт по коду, не по наименованию | ||||||||||
| 36
    
        bolobol 02.08.22✎ 13:51 | 
        Вспоминается бардак с Номенклатурой, который долго упорядочивали. Посадили человека за этот справочник который чётко сформулировал правила наименований. Он за неделю перебил автомагически все наименования и без регулярок. И ушёл в отпуск... 
 Вернулся, а в номенклатуре вместо: - светильник потолочный - светильник напольный - светильник настенный ... появились бра, торшер, люстра, шкафная лучина... выгнали нерадивых и ситуация не повторялась | ||||||||||
| 37
    
        Arbuz 02.08.22✎ 14:57 | 
        (0)Если будут более-менее использовать в типовых — куда вы денетесь — будете вникать и нахваливать )
 Я бы ещё AWK добавил ))) Хотя большинство тут 'тся' и 'ться' не могут осилить. (36) Посмотрел бы я, как ты бы вручную перебил номенклатуру, когда её >> 30к позиций! И сегодня формулировка наименований чёткая, а через 15к позиций ещё более чёткая. Хотя любителей обезьяней работы хватает. Хⱦли думать, надо хⱦярить!© | ||||||||||
| 38
    
        bolobol 02.08.22✎ 15:07 | 
        (37) Я не сильно там помогал, а позиций на тот момент было около 120ооо. За неделю. Один человек. С программированием знакомый поверхностно. Выборки и автозамены написал.     | ||||||||||
| 39
    
        bolobol 02.08.22✎ 15:10 | 
        (37) ...странно желание смотреть на человека вручную меняющего наименования номенклатуры... подумал я, но понимаю, что за компьютером смотрю как он автоматически что-то делает - с удовольствием) И я как будто занят.. "Компилируется жэ!" ))     | ||||||||||
| 40
    
        Ryzeman 02.08.22✎ 15:11 | 
        (38) Я считаю что элементы и переборы коллекции всё ерунда. Зачем тебе структура если можно сделать 50 переменных и передавать их? Что за новомодные выдумки...
 Никто не спорит что что угодно можно сделать через посимвольный подбор, а при очень большом желании извращнуться и через запрос с его ПОДОБНО. Но есть инструмент, который придумали более 40 лет назад. Почему, блин, не использовать его? | ||||||||||
| 41
    
        bolobol 02.08.22✎ 15:14 | 
        (40) Это не мне вопрос, наверное. У меня у самого вопрос - примеры для использования в 1С нужны. Сам я этот инструмент (сторонний т.е.) использовал для обновлятора типовой с доработками - это реально ускорило поиск в файлах конфы ЗУПа. Но это слишком специфичная ситуация даже для того чтобы делать её вообще на 1С.     | ||||||||||
| 42
    
        bolobol 02.08.22✎ 15:16 | 
        (40) Кстати, постоянно жаркие споры о том, что в ЗУП-е набор параметров методов передаётся в структурах... люди кругом плачут... переписывают всё на параметры самого метода. Вот вам и структура зачем, если можно 50 переменных. Только по параметрам метода читабельно что за параметр, а структуру надо наизусть знать     | ||||||||||
| 43
    
        Ryzeman 02.08.22✎ 15:17 | 
        (41) Ну, примеры тебе привели. Обработка внешних данных с любых сервисов. Поиск клиентов, номеров телефонов, счетов, названий номенклатур и т.п. Всё, что пользователи могут указывать левой пяткой или всё что в базу притягивается не по строгим маскам     | ||||||||||
| 44
    
        Ryzeman 02.08.22✎ 15:17 | 
        Просто ты утверждаешь что тебе достаточно использовать для этого СтрНайти и Если. Ну ок, тебе достаточно. А людям удобнее RegExp     | ||||||||||
| 45
    
        СеменовСемен 02.08.22✎ 15:18 | 
        (42) если параметров больше 3 то лучше структура     | ||||||||||
| 46
    
        bolobol 02.08.22✎ 15:18 | 
        (43) Тоже - достаточно ограничить пользователя входной маской и проблемы нет. Всяко дешевле чем потом разбираться, почему смс не отправилось     | ||||||||||
| 47
    
        Ryzeman 02.08.22✎ 15:19 | 
        (45) Со структурой и масштабировать код проще. Но это был вообще-то сарказм. 
 (46) Если сервис НЕ твой и ты НИКАК не можешь повлиять на то, что он тебе шлёт? | ||||||||||
| 48
    
        bolobol 02.08.22✎ 15:20 | 
        (45) Вот и плачем в ЗУП-е от них... 5-6 модулей приходится прошерстить, чтобы найти полное описание структуры... долго, неудобно, не всегда документировано полностью. Переписываем!     | ||||||||||
| 49
    
        СеменовСемен 02.08.22✎ 15:20 | 
        (48) так описание нужно просто написать     | ||||||||||
| 50
    
        Ryzeman 02.08.22✎ 15:20 | 
        Это как со СЛУ. Вот конкретно мне нахрен не сдались СЛУ в 1с, вообще до лампочки. А коллега из страховой кайфует - у неё математики море и конкретно СЛУ сильно в кассу пришлось.     | ||||||||||
| 51
    
        СеменовСемен 02.08.22✎ 15:21 | 
        А вообще просто нужна жесткая типизация а ля тайпскрипт     | ||||||||||
| 52
    
        bolobol 02.08.22✎ 15:21 | 
        (47) Вот-вот! Вот такой пример хочу! Прям до входных данных с примером всей системы и почему так. Мне - интересно! В 1С мы переписываем все такие места - регулярок избегать именно.     | ||||||||||
| 53
    
        bolobol 02.08.22✎ 15:24 | 
        (50) Про это новшество тоже интересовался, не понял там про производство и СЛУ, но сложилось стойкое впечатление, что там без этого не обойтись. С регулярками вопрос ближе, но они такие тугие, что всеми силами, тем более - что использовать нужно внешний объект, избавляемся от применения.     | ||||||||||
| 54
    
        bolobol 02.08.22✎ 15:26 | 
        Была, кстати, тема у меня о регулярках - там в несколько строк выражение было для поиска какой-то ерунды, но её через Если и СтрНайти - вообще бы жесть писать     | ||||||||||
| 55
    
        bolobol 02.08.22✎ 15:27 | 
        Я к тому, чтобы вы понимали, что я не отрицаю их, а необходимость в применении для задач в 1С не видел. Их писать-то правильно сложно, а читать и подправлять потом...     | ||||||||||
| 56
    
        СеменовСемен 02.08.22✎ 15:34 | 
        (54) а как найти число в строке через СтрНайти?     | ||||||||||
| 57
    
        Diversus 02.08.22✎ 15:38 | 
        (0) Самое интересное, что уже есть ВК, которая умеет это делать и прекрасно работает:
 https://github.com/alexkmbk/RegEx1CAddin | ||||||||||
| 58
    
        kittystark 02.08.22✎ 16:06 | 
        (57) если мне не изменяет склероз, где-то на ИС было решение через фасеты XDTO ("встроенные" в 1С) - там слегка через одно место, но уже "родное", из коробки, без всяких ВК     | ||||||||||
| 59
    
        СеменовСемен 02.08.22✎ 16:07 | 
        (58) там только на сравнение с образцом     | ||||||||||
| 60
    
        kittystark 02.08.22✎ 16:11 | 
        (59) ну да, наверное...
 RegExp.Replace - наше все, во всяком случае для меня, поэтому видимо посмотрел и не стал применять | ||||||||||
| 61
    
        kittystark 02.08.22✎ 16:18 | 
        мне вот другое интересно: этот заявленный функционал можно будет применять в выражениях ресурсов СКД без затыков на безопасный режим?     | ||||||||||
| 62
    
        lexushka 02.08.22✎ 16:27 | 
        по уму это в языке запросов надо     | ||||||||||
| 63
    
        kittystark 02.08.22✎ 16:29 | 
        (62) мечтаю об этом уже лет 15
 имхо не потянут | ||||||||||
| 64
    
        bolobol 02.08.22✎ 16:31 | 
        (56) Для й= 1 по Стрдлина(СтрокаСЧислом) Цикл СтрНайти("0123456789", Сред(СтрокаСЧислом, й)); КонецЦикла;     | ||||||||||
| 65
    
        СеменовСемен 02.08.22✎ 16:48 | 
        (64) ну те ты практически сам создаешь свой регэксп, а можно взять готовый     | ||||||||||
| 66
    
        СеменовСемен 02.08.22✎ 16:49 | 
        (64) твой цикл конечно же не найдет все число, а найдет все числа     | ||||||||||
| 67
    
        bolobol 02.08.22✎ 16:53 | 
        (66) Пардон, не вчитался) Но суть понятна, как и код реализующий эту суть - прозрачен и прост. Да и требуется такое в особо извращённых ситуациях. Ну, т.е., я не видел задач где это необходимо делать на потоке     | ||||||||||
| 68
    
        СеменовСемен 02.08.22✎ 16:54 | 
        (67) далеко не прозрачен, нужно учитывать пред. значения, где то накапливать результат, до первого ненужного символа     | ||||||||||
| 69
    
        bolobol 02.08.22✎ 16:55 | 
        (65) В готовой регулярке будет больше строк и без комментариев не обойтись. Такой код сам себя комментирует... и это не комментарий "тут говнокод")))     | ||||||||||
| 70
    
        bolobol 02.08.22✎ 16:57 | 
        (68) Регулярка внутри именно это и делает - посимвольно просматривает строку, выбирая нужное. Оптимизация в регулярках, вплоть, наверное, до деревьев, распараллеливающих поиск - нужна для обработок оооочень большого объёма данных. Точно не номер счёта разыскать в назначении платежа.     | ||||||||||
| 71
    
        kittystark 02.08.22✎ 17:07 | 
        (67) "на потоке", из реально сделанного, на вскидку:
 - причесать наименования к единому шаблону туеву-хучу карточек номенклатуры, вплоть до "стандартизирования" всяческих разделителей - выдернуть из наименования упаковку(-и), ед.изм., размеры, бренд и т.п. - записать в свойства - перенумератор кода элемента справочника, со своими правилами :) - да, да, мне не стыдно! и еще кучу всяких "выбиралок" | ||||||||||
| 72
    
        СеменовСемен 02.08.22✎ 17:09 | 
        (72) а мог бы как человек через цикл и стрнайти сделать )     | ||||||||||
| 73
    
        kittystark 02.08.22✎ 17:09 | 
        (71) + для себя вынес одно простое правило - если работаю со строками, и конструкция кода сложнее чем СтрНайти() СтрЗаменить() - мне проще воспользоваться регуляркой     | ||||||||||
| 74
    
        kittystark 02.08.22✎ 17:10 | 
        (72) угу, "взмахнула фея палочкой и отвалилась у танка башня..."
 из той же оперы | ||||||||||
| 75
    
        Конструктор1С 02.08.22✎ 17:35 | 
        (45) если параметров много, то надо думать над реорганизацией кода, а не прятать последствия в структуру     | ||||||||||
| 76
    
        bolobol 02.08.22✎ 17:48 | 
        (([^а-яА-ЯёЁa-zA-Z\s\xA0])([\s\xA0]+)([а-яА-ЯёЁa-zA-Z]))|(([^а-яА-ЯёЁa-zA-Z\s\xA0])([\s\xA0]+)([^а-яА-ЯёЁa-zA-Z\s\xA0]))|(([а-яА-ЯёЁa-zA-Z])([\s\xA0]+)([^а-яА-ЯёЁa-zA-Z\s\xA0]))|(([\s\xA0])([\s\xA0]+))
 - код убирает пробелы, аналог: СтрНайти(.., Таб, " ");СтрНайти(.., 0160, " ");СтрНайти(.., " ", " "), но не между словами, дабы сохранить "...Останки КАК Останки...". Попробуй - разберись! Писан был только из-за того, что требовалось пройти все тексты ЗУП-а _быстро_. А конструкция сложнее чем просто СтрНайти и СтрЗаменить в части "не между словами". Но только из-за скорости и объёма обработки на регулярной основе сделано на регулярке. В обычной, в штатной работе приложения такую необходимость встретить, похоже, только если очень хочется регулярку прикрутить, когда она даёт меньше кода чем код на 1С. | ||||||||||
| 77
    
        novichok79 02.08.22✎ 17:48 | 
        (0) АХАХАХХА, ну прям 1C way == да, но нет.
 positive/negative lookahead? name matching groups? НЕ, НЕ СЛЫШАЛИ. а почему нельзя было сделать как везде - регулярка == экземпляр класса и работа идет через нее? 1С считает разрабов 1С инвалидами, неспособными в полноценные регулярки? (11) фи, херня мы в начале строки, дальше идут символы #/база. далее любое количество любых символов (кроме перевода строк) и дальше слово сдохла а че в конце нет $? чтобы точно был конец строки? но мне этого не нужно, ибо в Golang регулярки почти нормальные (нет positive/negative lookahead, из-за того что разработчики либы гарантируют что время выполнения поиска будет O(n)) Мне это не нужно | ||||||||||
| 78
    
        novichok79 02.08.22✎ 17:54 | 
        (0) и да, а какую спецификацию регулярок держит сей монстр из сосновых шишек и пластилина?
 была уже где-то ВК, которая все это умеет и гораздо лучше. Лёха из интернетов смог, а великая и ужасная 1С нет? чет как-то неудобно даже. (15) regex101.com наше все | ||||||||||
| 79
    
        bolobol 02.08.22✎ 17:54 | 
        (75) Даа, даааа... именно так и выглядят поверхностно выдаваемые рекомендации. Красиво выглядят, умно, но не имеют ничего общего с реальностью     | ||||||||||
| 80
    
        novichok79 02.08.22✎ 17:56 | 
        (79) понял, принял, милорд - эксперд по выдаче рекомендаций.
 хорошо, не спорю. | ||||||||||
| 81
    
        novichok79 02.08.22✎ 18:02 | 
        > зачем нужны регулярки?
 пфффф, очевидно же: 1) сложная работа со строками, чтобы не пейсать везде циклы с обходом строк и кучей если. за тебя регулярочка строит внутри конечный автомат и делает тоже самое, только без лишей писанины 2) когда надо удалить слово или строку после с несколькими вариантами. 3) когда надо привести строку в какой-либо формат 4) когда надо вырезать слово из скобочек без посимвольного обхода и создания стека скобочек но, кто я такой чтобы здесь что-то доказывать :) > слишком сложна (с) я обычно текстом в комментарии над регуляркой расписываю ожидаемое поведение, беру прям и копирую с regex101.com -> translate.google.com -> ПРОФИТ | ||||||||||
| 82
    
        bolobol 02.08.22✎ 18:08 | 
        НовыйЭлемент= РазместитьНовыйЭлементНаФорме(Имя, Заголовок, ТипЭлемента, ПутьКДанным, ПередЭлементом);
 Пять параметров, хотя, казалось бы, из обязательных лишь Имя и ТипЭлемента - два параметра лучше чем пять, затем можно НовыйЭлемент. - и Заголовок указать и Путь к данным и разместить в нужное место на форме и прочие параметры настроить... только нужна знать как называются эти параметры. Например, что там есть "РастягиватьПоГоризонтали" и "АвтоРазмерПоГоризонтали", а можно добавить шестой параметр в функцию "Растягивать", и в функции это всё учесть и потом не задаваться этим вопросом. Ни как называется, ни что эти параметры в паре работают. И так далее - функция разрослась до 9-ти параметров, которые покрывают уже несколько лет все хотелки. И ничего помнить не приходится! Всё написано в самой функцией названием параметров, и подсказка работает в конфигураторе из коробки | ||||||||||
| 83
    
        bolobol 02.08.22✎ 18:14 | 
        (81) Это не реальная задача, это что-то промо-рекламное... 
 Вот, например, реальная задача: пользователь выбирает галками показатели, которые он хочет видеть в отчёте, группировки. И нужно собрать текст запроса, пихнуть его в СКД.. да тоже.. чем регулярки здесь помогут? Искать ВЫБРАТЬ / ПОМЕСТИТЬ / ГДЕ... чтобы не попасть в подзапрос какой? Сделано через СтрНайти, СтрЗаменить. Ибо - не представляю, чем тут помогут регулярки. Запутать - точно запутают. Там сходу не разберёшь где что править | ||||||||||
| 84
    
        Кирпич 02.08.22✎ 20:10 | 
        (83) Так никто не заставляет всё делать регулярками. Как удобно, так и делай. А что добавили, правильно. Надо было еще в 7.7 добавлять. Инструмент полезный.     | ||||||||||
| 88
    
        Timon1405 02.08.22✎ 22:12 | |||||||||||
| 89
    
        novichok79 03.08.22✎ 00:03 | 
        (83) промо-рекламное, кек. откройте для себя мир не1сного IT, там такое сплошь и рядом.     | ||||||||||
| 90
    
        novichok79 03.08.22✎ 00:04 | 
        (88) ну это прям как-то слишком сложно, да и не вставить картинку в исходники.     | ||||||||||
| 91
    
        novichok79 03.08.22✎ 00:08 | 
        (83) жесть какая-то, а чё отбор СКД на форму уже не выводится или теперь не модно?
 звучит как какой-то жуткий костыль. вам там пользователь накрутит так что база пригляжет, если нет контроля галочек. если уж надо сделать анализ текста запроса, то чем не угодила схема запроса? и отборы на формах и анализ через схему запроса юзал, пока работал в 1с. ничего сложного. | ||||||||||
| 92
    
        novichok79 03.08.22✎ 00:09 | 
        (83) анализ текста запроса регулярками - путь инвалида, имхо.     | ||||||||||
| 93
    
        СеменовСемен 03.08.22✎ 08:25 | 
        (83) у запроса есть объектная модель, никакие стрзаменить не нужны     | ||||||||||
| 94
    
        vbus 03.08.22✎ 08:53 | 
        Народная мудрость:
 Некоторые люди, сталкиваясь с проблемой, думают: «Ага, я умный, я решу её с помощью регулярных выражений». Теперь у них две проблемы. | ||||||||||
| 95
    
        bolobol 03.08.22✎ 11:11 | 
        (93) Не осилил, если честно. Собрать через строки - много проще..     | ||||||||||
| 96
    
        AXZ 03.08.22✎ 11:18 | 
        (4) Поддержка ВР - не выйдешь из вирта пока не укажешь 100500 заданных поставщиком реквизитов)))     | ||||||||||
| 97
    
        assasu 03.08.22✎ 11:22 | 
        (11) книжка Бена Форта читается очень легко     | ||||||||||
| 98
    
        Гений 1С гуру 09.08.22✎ 13:43 | 
        Решил, раз такая пьянка, поделиться наиболее востребованной функцией вместо регулярок:
 Функция НайтиШаблон(Строка, МаркерНачала, МаркерКонца) Экспорт Р = Новый Структура("Найден", ложь); Поз = Найти(Строка, МаркерНачала); Если Поз = 0 Тогда Возврат Р; КонецЕсли; Начало = Лев(Строка, Поз - 1); Хвост = Сред(Строка, Поз + СтрДлина(МаркерНачала)); Поз = Найти(Хвост, МаркерКонца); Если Поз = 0 Тогда Возврат Р; КонецЕсли; Конец = Сред(Хвост, Поз + СтрДлина(МаркерКонца)); Середина = Лев(Хвост, Поз - 1); Р.Вставить("Начало", Начало); Р.Вставить("Середина", Середина); Р.Вставить("Конец", Конец); Р.Найден = истина; Возврат Р; КонецФункции | ||||||||||
| 99
    
        TormozIT гуру 09.08.22✎ 13:44 | 
        Конечно 2. Подгруппы - наше все.     Останусь на прежних механизмах RegExp | ||||||||||
| 100
    
        СеменовСемен 09.08.22✎ 14:01 | 
        (99) а кто сказал что не будет подгрупп?     | ||||||||||
| 101
    
        MM 09.08.22✎ 14:51 | 
        (98) А если искомое переменной длины и ограничено цифрами или ограниченным набором символов, идущих в определённом порядке?
 (100) На партнёрском сказали. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |