![]() |
![]() |
|
Клиент-банк, БП 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 поправили. ура.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |