|
Проверка номера в клиент банке |
☑ |
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
|
|
|
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")
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший