|
найти в строке число |
☑ |
0
начинающий1спрог
31.07.12
✎
15:16
|
В Бухгалтерии 2.0 есть такой документ ПоступлениеНаРасчетныйСчёт. В этом документе есть графа Назначение Платежа. так вот к примеру назначение платежа такое "терминал Кирпичное (...8848)" и по номеру 8848, который совпадает с частью имени договора контрагента, подставить значение в строку Договор контрагента (например "эквайринг Кирпичное (терм...8848)"). какие методы исп-ть для этого, подскажите? спасибо
|
|
1
mikecool
31.07.12
✎
15:17
|
Найти
|
|
2
palpetrovich
31.07.12
✎
15:21
|
(1) подозреваю там не только 8848 может быть ;)
|
|
3
начинающий1спрог
31.07.12
✎
15:23
|
(2)в том то и дело. просто цифры совпадают в строке назначение платежа и в имени договора
|
|
4
palpetrovich
31.07.12
✎
15:26
|
(3) что тут посоветовать? только парсить побуквенно строку с проверкой по КодуСимвола, как только находишь число - начинаешь его собирать. Хотя, если число в всегда скобках, то можно сразу плясать от скобки - чуток побыстрее будет
|
|
5
GLazNik
31.07.12
✎
15:27
|
Как-то так:
Числа = "0123456789";
СтрЧисла = "";
Для к = 1 по СтрДлина(НазначениеПлатежа) Цикл
Если Найти(Числа,Сред(НазначениеПлатежа,к,1)) > 0 Тогда
СтрЧисла = СтрЧисла + Сред(НазначениеПлатежа,к,1);
ИначеЕсли СтрДлина(СтрЧисла) > 0 Тогда
НайденноеЧисло = Число(СтрЧисла);
СтрЧисла = "";
КонецЕсли;
КонецЦикла;
|
|
6
GLazNik
31.07.12
✎
15:29
|
+(5) но точность сопоставления договора и назначения платежа по такому принципу достаточно не велика. я бы поискал другие критерии.
|
|
7
Kreont
31.07.12
✎
15:33
|
(0) Заставьте клиентов указывать номер договора через *8848*, и будет просто парсить.
|
|
8
Лефмихалыч
31.07.12
✎
15:44
|
Everebody stand back!
RE = New COMObject("VBScript.RegExp");
RE.Global = Истина;
RE.IgnoreCase = Истина;
RE.Multiline = Истина;
RE.Pattern = "\d+";
Для каждого Match Из RE.Execute("эквайринг Кирпичное (терм...8848)") Цикл
Сообщить(""+Match.Value+" @ "+Match.FirstIndex);
КонецЦикла;
|
|
9
palpetrovich
31.07.12
✎
16:08
|
(8) 8848 @ 28
забавно, спасибо запомню, мо пригодится ;)
|
|
10
1C_OOLer
31.07.12
✎
16:16
|
(8) Круть)
|
|
11
hhhh
31.07.12
✎
17:40
|
ну парсер кстати нормально работает. У меня например строку типа "8848, 8849, 8851" клиент-банк спокойно разбирает, и по датам тоже. Ну и по остаткам на 62-м счете смотрит и предварительно разбивает сумму на несколько договоров.
|
|
12
izekia
31.07.12
✎
17:44
|
(11) какой парсер?
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший