|
Проверка номера в клиент банке | ☑ | ||
---|---|---|---|---|
0
Альбатрос
22.07.20
✎
18:21
|
Значение = СокрЛП(СтрокаЭкспорта.Номер);
Если Число(Строка(Число(Прав(Значение, 3)))) = 0 Тогда ДобавитьЗамечание(СтрокаЭкспорта, 4, "Номер должен оканчиваться на три цифры и не на ""000""!"); КонецЕсли; В чем сакральный смысл вот этого: Число(Строка(Число(Прав(Значение, 3))))? |
|||
1
Йохохо
22.07.20
✎
18:24
|
ошибка
|
|||
2
Fragster
гуру
22.07.20
✎
18:24
|
в том, что это говнокод, а регулярки в 1с не завезли
|
|||
3
Fragster
гуру
22.07.20
✎
18:25
|
более того, если там не число, то эта конструкция тупо упадет вместо сообщения
|
|||
4
Альбатрос
22.07.20
✎
18:25
|
(3) Она и падает)
|
|||
5
Альбатрос
22.07.20
✎
18:26
|
(1) Дважды юзается)
Процедура ПроверитьНаКорректностьНомераПриВыгрузке(СтрокаЭкспорта) Если КонтролироватьНекорректныеСимволыВНомере Тогда Значение = СокрЛП(СтрокаЭкспорта.Номер); Попытка Если Число(Строка(Число(Прав(Значение, 6)))) = 0 Тогда ДобавитьЗамечание(СтрокаЭкспорта, 4, "Номер не должен быть равен нулю!"); КонецЕсли; Исключение ДобавитьЗамечание(СтрокаЭкспорта, 4, "Указан неправильный номер документа(" + Прав(Значение, 6) + ")!"); КонецПопытки; КонецЕсли; Если НеКонтролироватьОкончаниеНомера Тогда Возврат; КонецЕсли; Значение = СокрЛП(СтрокаЭкспорта.Номер); Если Число(Строка(Число(Прав(Значение, 3)))) = 0 Тогда ДобавитьЗамечание(СтрокаЭкспорта, 4, "Номер должен оканчиваться на три цифры и не на ""000""!"); КонецЕсли; КонецПроцедуры Вроде как типовой код БСО, правда старенького релиза |
|||
6
Йохохо
22.07.20
✎
18:28
|
(4) но падает на первом Число, в венской нотации)
|
|||
7
lodger
22.07.20
✎
18:28
|
чья-то логическая ошибка. или фича старого релиза платформы.
|
|||
8
Fragster
гуру
22.07.20
✎
18:33
|
вот есть остроумный способ проверки: http://catalog.mista.ru/public/464971/
|
|||
9
Альбатрос
22.07.20
✎
18:39
|
(8) О, спасибо!
|
|||
10
Fragster
гуру
22.07.20
✎
18:44
|
(9) если честно, я бы не использовал такое на проде :)
|
|||
11
Fragster
гуру
22.07.20
✎
18:46
|
Попытка
Если Число(Прав(Значение, 3)) = 0 Тогда ДобавитьЗамечание(СтрокаЭкспорта, 4, "Номер должен оканчиваться на три цифры и не на ""000""!"); КонецЕсли; Исключение ДобавитьЗамечание(СтрокаЭкспорта, 4, "Номер должен оканчиваться на три цифры и не на ""000""!"); КонецПопытки; более читабельно да и работает быстрее |
|||
12
Йохохо
22.07.20
✎
18:48
|
Прав(Значение, 3) = "000" почему не?
|
|||
13
Fragster
гуру
22.07.20
✎
18:55
|
(12) потому что Прав("00", 3) <> "000" ;) да и для "АБВ" тоже
|
|||
14
Fragster
гуру
22.07.20
✎
18:57
|
хотя исходя из этого (11) тоже не совсем правильно
|
|||
15
Йохохо
22.07.20
✎
19:04
|
ну да, Найти(Прав(Значение, 3) , "000")
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |