|
Клиент-банк, БП 2.0.44.13 |
☑ |
0
qwe123
20.02.13
✎
09:17
|
Обработка Клиент-банк вываливается с ошибкой о преобразовании к числу, если в один день несколько платежек на один р/с контрагента.
В релизе БП 2.0.44.13 добавили функцию
Функция ПолучитьЧислоИзСтроки(Знач НомерДок)
Если ПустаяСтрока(НомерДок) Тогда
Возврат 0;
КонецЕсли;
ДлинаНомера = СтрДлина(НомерДок);
Для инд = 1 По ДлинаНомера Цикл
ПозицияНеЦифровойСимвол = инд;
// поиск ведем с конца номера, до первого не цифрового символа
Код = КодСимвола(НомерДок, ДлинаНомера - инд + 1);
Если Код < 48 ИЛИ Код > 57 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если ПозицияНеЦифровойСимвол <> ДлинаНомера Тогда
НомерДок = Сред(НомерДок, ПозицияНеЦифровойСимвол);
КонецЕсли;
Возврат Число(НомерДок);
КонецФункции
Мне ведь не кажется, что функция неправильно номер обрезает?
|
|
1
Wobland
20.02.13
✎
09:24
|
ложь
|
|
2
qwe123
20.02.13
✎
09:27
|
(1)?
НомерДок = "Ц0000000015"
ПозицияНеЦифровойСимвол = 11
номер не обрезается и вылетает ошибка на Возврат Число(НомерДок)
|
|
3
Wobland
20.02.13
✎
09:28
|
истина
|
|
4
Wobland
20.02.13
✎
09:31
|
ПозицияНеЦифровойСимвол=ДлинаНомера - инд + 2;
|
|
5
Галахад
гуру
20.02.13
✎
09:33
|
ПозицияНеЦифровойСимвол <= ДлинаНомера
|
|
6
D_Pavel
20.02.13
✎
09:37
|
У меня тоже эта обработка глючит, но в моем случае ошибка в запросе!
|
|
7
Wobland
20.02.13
✎
10:06
|
ДлинаНомера=СтрДлина(НомерДок);
Для инд=0 По ДлинаНомера-1 Цикл
ПозицияНеЦифровойСимвол=ДлинаНомера-инд;
Код=КодСимвола(НомерДок, ПозицияНеЦифровойСимвол);
Если Код<48 ИЛИ Код>57 Тогда
Прервать;
КонецЕсли;
ПозицияНеЦифровойСимвол=ПозицияНеЦифровойСимвол-1;
КонецЦикла;
НомерДок=Число(Сред(НомерДок, ПозицияНеЦифровойСимвол+1));
|
|
8
Wobland
20.02.13
✎
10:08
|
(7) проверка на ПозицияНеЦифровойСимвол=ДлинаНомера нужна. а то не работает в случае крайнего нецифрового символа
|
|
9
qwe123
23.02.13
✎
23:27
|
надо же... в 2.0.45.5 поправили. ура.
|
|