Регулярные выражения в 1С #581653


#0 by Stim213
Кто-нить знает, в последнем релизе платформы появилась поддержка сабжа? Планируется ли вообще?
#0 by Stim213
Кто-нить знает, в последнем релизе платформы появилась поддержка сабжа? Планируется ли вообще?
#0 by Stim213
Кто-нить знает, в последнем релизе платформы появилась поддержка сабжа? Планируется ли вообще?
#1 by zak555
1%2%3
#2 by Поручик
Нет. И вряд ли будет по той же причине, по какой регулярок нет в языках высокого уровня компилируемого типа. Ещё тема
#3 by zak555
> в языках высокого уровня компилируемого типа этот про 1с ?
#4 by Поручик
Нет, не про 1С. Delphi, C++, etc. Но причина отсутствия та же самая.
#5 by Хранимая Процедура
чего? Встроенные регулярки есть везде кроме быдлоязычков делфи и 1с Нувыпонели
#6 by Alexandr Puzakov
Was ist das "регулярные выражения"?
#7 by ДенисЧ
Regular expressions
#8 by Нуф-Нуф
ватафак регулар экспрешшнс?
#9 by ДенисЧ
продаю уроки гугления. В 5 раз дороже СП.
#10 by Kavar
,
#11 by Гефест
Один из предметов лютого бешеного фапа одинэсников, переучившихся с труъ языков программирования
#12 by Нуф-Нуф
Прочитал. Анакуа?
#13 by badboychik
в чем проблема? создавай объект VBScript и юзай через него регулярки
#14 by Alexandr Puzakov
ну и накуй это в 1Сине? Реальные одноэсники используют полнотекстовый поиск!
#15 by IamAlexy
при загрузке например данных.. берем к примеру загрузку выписки, и прикручиваем разбор назначения платежа. регэкспом находим все варианты написания номера счета по которому идет оплата причем с учетом лидирующих нулей и прочих "отсебятин" которые клиенты в назначениях пишут... профит!
#16 by Alexandr Puzakov
то же самое можно провернуть и с помощью полнотекстового поиска: - заливаем данные в служебные регистры сведений; - обрабатываем данные с применением полнотекстового поиска; - сохраняем данные в нужном виде; - очищаем регистры; - профит.
#17 by Escander
не всё, по подстроке дур найдёт в слове "дурачина" не найдёт в слове "полудурок".
#18 by Alexandr Puzakov
все он найдет, надо уметь пользоваться и хоть иногда читать мануал.
#19 by Escander
для вышеприведённого пример можно использовать шаблон "дур*", но как найти для слова "полудурок"? Штатных средств в ПП для этого нет.
#20 by Alexandr Puzakov
у меня сейчас нет под рукой описания. Но там можно искать даже по слогам, стоящим в разных местах.
#21 by Escander
но только если с этих слогов начинаются слова и только так, с произвольного места - фигушки... про ключевое слово "РЯДОМ" тоже знаю
#22 by Alexandr Puzakov
#23 by Alexandr Puzakov
перестаньте нести пургу, там точность поиска и область поиска задается. Это целый поисковик внутри платформы...
#24 by Alexandr Puzakov
Помимо ключевых слов там есть еще целый набор служебных операторов.
#25 by Escander
будет СП под рукой - обоснуйте то, что пишите... а пока это слова
#26 by Armando
СЗОТ в полнотекстовом поиске с такой проблемой не сталкивался?
#27 by IamAlexy
а теперь все тоже самое но  в типовой без создания специальных регистров сведений куда что то нужно заливать а потом индексировать... регекспом я на лету, при чтении файла, обработаю строку и все.
#28 by IamAlexy
расскажи как ты поисковиком среди текста выцепишь конструкцию чуть более сложную чем "слог" ? ну например мне нужно найти в сплошном тексте номер по шаблону.. или все номера.. шаблон пусть будет XX/YYY-1-22-123/Й где вместо X - любые буквенные значения в англ. раскладке, вместо Y - любые значения в русской раскладке, ну и цифры ясен пень любые могут быть..  а в место Й - чонить из набора символов которых может быть пять-семь вариантов... обосрется твой полнотекстовый поиск в этой ситуации.. по полной оборсрется..
#29 by mikeA
логично будет предположить шаблон "*дур*" хотя в описании про * сказано что это замена окончания слова, но на самом деле работает и в начале. по крайней мере поиск в СП по "*кумен*" находятся слова "документа", "ДокументВыборка" regexp конечно более тонкая штука, но с ней и разбираться на порядок дольше. я бы сказал это более низкого уровня инструмент специальные регистры сведений это конечно жесть :)
#30 by IamAlexy
хз.. в типовой УТ игрался - фиг он так ищет...  только по "дур*" - по окончанию...
#31 by IamAlexy
а вообще конечно я проблемы не вижу.. 1С гибкая среда.. если нет чего штатного - вполне себе подключается внешняя приблуда какая и она слихвой компенсирует недостатки штатного функционала...
#32 by Escander
если что-то не документировано, то никаких гарантий что в следующем обновлении тоже будет работать... насчёт ищет в самом поиске а не в СП вы точно уверены? В СП вполне возможно индекс не стоковыми средствами построенный
#33 by Escander
есть библиотеки для регулярных выражений?
#34 by IamAlexy
ну в общем скорее да чем нет :)
#35 by Escander
"имя, как его имя?"
#36 by IamAlexy
что то типа:
#37 by mikeA
да хз как он там построен, в описании был пример использования полнотекстового поиска в СП "В справочной системе 1С:Предприятия 8 также реализован полнотекстовый поиск, позволяющий использовать поисковые операторы И, ИЛИ, НЕ, РЯДОМ и др.." возможно там механизм другой, в самой базе не проверял. мне пока Найти хватает :)
#38 by IamAlexy
я бы назвал его "MSScriptControl" :)
#39 by IamAlexy
везет тебе :).. хватает тебе "найти"...
#40 by IamAlexy
хотя вру - VBScript.RegExp  - вот он герой :)
#41 by IamAlexy
MSScriptControl это из другой оперы.. случайно закопипастилось
#42 by Escander
ну через комы это не спортивно...
#43 by andrewks
в виде куцехвостой замены можно и like заюзать. а так - jscript никто не отменял
#44 by IamAlexy
каким боком это не спортивно? ты еще скажи что лечить зубы у стороннего дантиста это неспортивно а надо самостоятельно прокачивать каждому скил стоматологии дабы самому себя лечить... работает же.. работает очень быстро... чем не вариант?
#45 by andrewks
тут можно только один аргумент привести - неуниверсальность ввиду возможности использования linux-серверов и клиентов
#46 by IamAlexy
+ хотя да.. пара служебных регистров которые при каждом поиске надо запонять, индексировать и очищать - вот оно.. спортивность во всей ее красе... параолемпийская спортивность.. по умственному развитию...
#47 by Escander
это точно что быстро? В скорости именно и сомнения...
#48 by Escander
ну там наверное как-то можно подтянуть тот-же пхп... нет в мире полной универсальности поэтому и приходится такое как-то переживать
#49 by andrewks
с тебя примерчик
#50 by Gesperid10
на лине нет регэкспов - ага
#51 by IamAlexy
вот то что я приводил сидит на самом деле в цикле который грузит реестры по 5-7 тысяч строк...
#52 by IamAlexy
еще один повод отказаться от ущербного линя в пользу православной полнофункциональной винды...
#53 by andrewks
я про COMОбъект говорил, вообще-то
#54 by mikeA
+ вы будете смеяться, но в базе "*кумен*" тоже работает
#55 by Escander
(51не, то что сам вызов и отработка должны работать - это понятно, а вот что со скоростью создания объекта? есть другое мнение! да, щас всё брошу
#56 by IamAlexy
эээ даже не замерял.. учитывая что ВСЯ загрузка файла идет очень быстро.. то есть по сути меньше минуты - даже не заморачивался с замером скорости создания объекта... по поводу другого мнения - тут дело такое: для специфичных задач используются специфичные инструменты.. нет специфичных задач - можно пользоваться любым г.вном.. есть - будь добр приобрети качественны инструмент это как  с сверлением дырок в стенах... ясен пень что перфоратор дорог.. но если ты зарабатываешь тем что в день по 100 дырок сверлишь тебе ударная дрель ну никак не подойдет.. не смотря на то что она тоже типа может дыру продолбить в стене... и говорить что буры для перфоратора плохие ибо их в ударную дрель невпихнуть по меньшей мере тупо... хочешь долбить бурами - купи перфоратор..
#57 by andrewks
по поводу линя - использование утилит консоли типа grep - тут всё ясно. а можно ли там сгенерить jscript-файл, и выполнить его, получив результат, по примеру com в выне?
#58 by xReason
Да когда 1С выкидывает ошибки, то я всегда использую регулярные выражения
#59 by Jolly Roger
а для чего?
#60 by IamAlexy
пример:  сижу себе сегодня в три утра.. делаю отчет который выводит годовой календарь загрузки рекламных точек (запрос выводит порядка 300 000 строк), ну там всякие оформления делаю чтобы занятые дни по точкам показать... короче не плохо  так закопался в отчете.. делал еге часа три... и тут бабах - вырубается платформа.. причем на ровном месте - когда все уже готово было и я просто варианты отчетов мастериал... регулярных выражений много, много вспомнил...  некоторые даже в слух произнес..
#61 by Alexandr Puzakov
ага, как всегда, использовать стандартные средства (хотя бы ознакомиться со всеми возможностями) не спортивно, спортивно прибегать к левым костылям. Для подавляющего большинства подобных задач полнотекстового поиска хватит за глаза, а для спецефических задач можно и костыль прикурутить. Но и не стоит забывать о лицензионности. P. S. чем плохо выделение нескольких отдельных регистров сведений для подобных задач?
#62 by IamAlexy
еще раз.. типовая. внешняя обработка по загрузке из клиент банка.. ну куда ты там свои регистры будешь прикручивать? а если у типовой пара тройка распределенных узлов есть?
#63 by IamAlexy
мы может про разные вещи говорим.. я это все к тому что если есть возможность НЕ снимать конфу с поддержки - то как раз спортивно, правильно, канонично, стандартно и тд и тп - будет именно НЕ снимать конфу с поддержки..
#64 by badboychik
что за чушь про полнотекстовой поиск?? регулярные выражения вообще для другого нужны - для парсинга текста из внешних источников или пользовательских данных. Какие нафиг индексы вы предлагаете городить, если надо например из текста вытащить все e-mail-ы ??
#65 by Jolly Roger
я так понял, парсит текст исключения. хотелось бы понять в чем профит...
#66 by Jolly Roger
да забей, у него абракадабра головного мозга...
#67 by IamAlexy
ты не так понял.. пример использования регулярных выражений при сбоях 1С описан в
#68 by Jolly Roger
ы...
#69 by apokrit
Если нужно только проверить соответствует или нет - можно извратиться и XDTO заюзать (там можно установить ограничение вида образец - это и есть regexp)
#70 by Stim213
>>запрос выводит порядка 300 000 строк Это фигня. Вот если бы запрос был в 300 000 строк и свет отключили перед самым сохранением..
#71 by Stim213
вобщем, я так понимаю, на этот отечественный авто в качестве системы ABS можно использовать только собственную ногу, тормозящую по асфальту, либо приварить ABS из других иномарок
#72 by Alexandr Puzakov
а зачем конфу с поддержки снимать? Достаточно включит возможности изменения. ПНХ. Моя голова не нуждается в твоих оценках.
#73 by IamAlexy
всеранво неприятно.. там рутина.. и оформление вариантов.. и не интересно по второму разу делать (а на самом деле по третьему ибо в пятницу сдох винт вместе с готовым отчетом и по этому пришлось его заново делать)
#74 by Alexandr Puzakov
емейлы на раз-два вытащатся при помощи встроенного языка.
#75 by Escander
хороший пример... бывает...
#76 by mikeA
save early, save often... у тебя же Снегопат и там вроде autosave есть.
#77 by badboychik
Прикалываешься или серьезно? Интересно посмотреть на алгоритм и засечь время написания. Значит вам проще нагородить 20 строк на встроенном языке вместо одной короткой команды? Что за бред то? Типичный пример одинэсия головного мозга...
#78 by VVi3ard
Абсолютно прав, у оппонентов ТС я вижу полное непонимание сути RegEX и их отличие от полнотекстового поиска в БД. Мне очень нравится полнотекстовый поиск и я рад что 1С добавила его поддержку в платформу, и я использую его в своих задачах. Но в то же время если попытаться выйти за рамки стандартных учетных задач то приходится использовать RegEX и если 1С позиционирует свою Платформу как Платформу то было бы неплохо предусмотреть возможность этого механизма на уровне ЛЕВ, ПРАВ, включить описание языка в справку. Мне не хватает например шаблонов для полей ввода основанных на RegEx так как в моей предметной области есть множество различных данных которые отлично шаблонизируются. Самое главное отличие RegEX от FTS заключается в том что FTS предназначен для поиска в базе, будь он хоть в 5 раз лучше чем RegEX он бесполезен когда необходимо распарсить текст который у тебя в переменной (Пришел как ответ от WEB сервиса, веден пользователем, получен по EMAIL) Я солидарен с ТС и я считаю что и COM объект и "Специальный регистр" это сплошные костыли. В то же время Платформа 1С весьма технологична и включает в себя множество различных технологий(XML,WEB сервисы, ADO(в последних релизах)) и меня лично это радует. Так вот RegEX это такая же мощная технология заключенная в одном операторе и она достойна того чтобы быть представленной в платформе. Читая Мисту раз за разом не перестаю натыкаться на то что мистяне относятся к платформе как к "запускалке" типовых конфигураций а не как к современной продвинутой платформе для разработки корпоративных систем.
#79 by ptiz
ПОДОБНО "%_@_%.__%" Подойдет?
#80 by VVi3ard
Я не думаю что хорошая идея хранить в базе мусор чтобы потом их этого мусора получать Email, стандартная здравая постановка задачи выглядит так: Из входящего мусора извлечь крупицы нужной информации и поместить её в базу. Если коротко FTS - Ищет, RegEX ВЫДЕЛЯЕТ и ЗАМЕНЯЕТ. Эти технологии взаимодополняющие друг друга. Если мне нужен поиск по БД то использовать RegEX глупо, в то же если мне нужно Получить массив определенных кусков текста или заменить на другие куски то использовать для этого FTS не менее глупо. Эти технологии для разных задач.
#81 by Alexandr Puzakov
я всегда был и буду за уместность. Что-то мне подсказывает, что перед использованием этой приблуды также само придется и с кодом повозиться, и интерфейс разработать. А еще к платформе можно прикрутить ядро от гугл-поисковика, но только это чревато колоссальными денежными и временными затратами... Если какая-то операция одноразовая или ужасно редкая, то вполне целесообразно за 20 минут нагородить тормозного кода, чем потратить день для написания хорошего кода. Оптимизацией надо заниматься только там, где это действительно целесообразно, и где это заказчик заметит.
#82 by sergeante
Не бздите. В дельфи есть сторонний класс TRegExpr
#83 by Alexandr Puzakov
мне вот интересно, неужели ты ежедневно распарсиваешь большие объемы текста с целью извлечения оттуда электронных адресов? Что ты вообще делаешь в 1С?
#84 by badboychik
Если кроме 1С ничего не знать, можно только и делать, что сидеть писать километры кода и придумывать заново давно придуманные алгоритмы, когда уже готовые решения лежат в пяти минутах поиска. Вам наверно дай экскаватор, вы возьмете лопату и будете вручную копать котлован, потому что "так надежнее и привычнее"
#85 by badboychik
>>> Что-то мне подсказывает, что перед использованием этой приблуды также само придется и с кодом повозиться, и интерфейс разработать. Это ЧТО-ТО жестоко тебя обманывает
#86 by sergeante
+100, с помощью регулярок я какие алгоритмы только не реализовывал. Да вы консоль запросов откройте и посмотрите сколько раз там регэкпы используются
#87 by sergeante
ты вопще о чём говоришь счас??
#88 by Alexandr Puzakov
там где достаточно покопать пять минут, я возьму лопату и покопаю, а не стану пригонять экскаватор. Если требуется вырыть котлован, то пригоню экскаватор. Не ну ладно у Алексея криво доработанный/настроенный клиент-банк, что сразу после загрузки данных налетает костыль с подвешенной ВК и начинает править данные, а после этого прибегает уборщица тетя Маша и убирает за этими делами опилки и стружку, ну а у вас-то что с вашей учетной системой, что приходится из текста выдирать электронные адреса? Платформа 1С:Предприятие предназначена для экономических учетных систем. И я обеими руками за то, чтобы использовать ее по назначению.
#90 by sergeante
элементарный пример из практики. Есть некий девайс, который тестирует некое оборудование и скидывает репорт в HTM формате. В репорте сотни параметров среди прочего текста, которые необходимо распарсить и перенести в 1с. Если ты будешь писать алгоритм парсера на 1с, то ты посинеешь, поседеешь и уволишься. Или распарсить регулярками. Времени уйдёт в 100 раз меньше, универсальности будет на 1000% больше. Время на доработку регулярок (если формат чуть изменился в связи со сменой прошивки девайса) уйдёт 15 минут.
#91 by badboychik
Запросом ПОДОБНО "%_@_%.__%" Подойдет? Не пойдет. Запросом к чему? К текстовому файлу или к переменной запросом тоже можно обратиться? И этот запрос наверно даже строчку "Вася@рам!блер@кгам.ру" как корректное мыло вернет?
#92 by sergeante
+ а ты про "полнотекстовый поиск", наивный вьюноша, пять минут назад услышал про регулярные выражения, и с пеной у рта начал доказывать что они не нужны, ога.
#93 by rs_trade
Прикол. Оказывается столько народу даже не слышало о рег. выражениях. И эти люди называют себя программистами. ))
#94 by sergeante
и я о том. Пипец, программистишки.
#95 by Stim213
ситуация в является довольно частой при использовании систем 1С как раз в качестве "экономических учетных систем"
#96 by VVi3ard
Для FTS возится приходится больше. Возни с RegEX не более чем с функцией ЛЕВ, ПРАВ. Для использования в качестве шаблона для поля ввода уже есть поля маски, достаточно добавить в это поле проверку на RegEX ну или добавить еще одно поле, контроль ввода пользователя через RegEx это стандартная мировая практика. И вообще эта технология популярна, востребована, и оценена всем мировым сообществом разработчиков, по этой технологии есть книги, учебники. Ты не хуже меня знаешь что Программирование это такая область в которой от того редкая операция или нет ничего не зависит если такая потребность есть то ты должен реализовать код который эту потребность будет закрывать. Ты можешь сделать быдло код который будет медленно работать и в котором потенциально будет множество ошибок, или написать нормальный код без излишних заморочек который понятен и легко сопровождаем. Мне кажется профессионал должен всегда выбирать второй вариант. И я уверен что если у тебя возникнет задача в которой по соотношению затраты/результат будет выгоднее использовать RegExp ты воспользуешься этим инструментом, т.к. это выбор профессионала. Сейчас для этого придется воспользоваться внешней компонентой что в целом не плохо за исключением того что этого компонента например на 2000 Windows нет(я сам сталкивался). Еще раз пойми что RegEXP это технология признания во всем мире, существует масса библиотек с готовыми шаблонами. С моей конфигурации RegExp используется для: Сторонние разработки: 1. Построение дерева запросов 2. Синтаксис помощник для режима "Предприятие" Мои разработки: 1. Правила парсинга логов ICQ и добавление на основе логов задач в систему. 2. В правилах импорта данных из каталога стоит разбор пути и формирование структуры справочника. 3. Разбор адресов в виде ([ул,улица,Улиц] насп.Название и.т.п) т.к. в регионах кавказа гос структуры дают данные в екселе набранном руками. 4. Разбор сумм в виде 13руб25к 5. Разбор писем от контрагентов 6. Целый блок задач связанных с работой с Яндекс картами web. В системе Help Desk используется разбор "логов" хранилища и на основе формируется описание релиза и задание на тестирование
#97 by sergeante
"Платформа 1С:Предприятие предназначена для экономических учетных систем. И я обеими руками за то, чтобы использовать ее по назначению." Упал под стол.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С