|
Поиск документа по номеру в запросе |
☑ |
0
Gera1t
19.02.21
✎
09:42
|
Нужно найти документ по номеру в запросе.
Но не по вхождению, а по полному совпадению.
И нужно сделать так, что номер для поиска вводили без лидирующих 0.
Т.е если нужно найти документ по вхождению, то пишу
ПОДОБНО "%" + &НомерДок
А здесь нужно в запросе в условии отбросить лидирующие 0 у Номера документа и найти просто по точному соответствию НомерДок
|
|
1
Галахад
гуру
19.02.21
✎
09:46
|
НомерДок = Нули + НомерДок;
|
|
2
Lexey_
19.02.21
✎
09:46
|
(0) ПОДОБНО "&ЛидирующиеНули" + &НомерДок
ЛидирующиеНули считаешь в зависимости от длины введенного номера
|
|
3
butterbean
19.02.21
✎
09:47
|
обрабатывай номер перед передачей в запрос и проверяй на точное совпадение
|
|
4
Gera1t
19.02.21
✎
09:47
|
А там номер вида 0000-0000001
|
|
5
Gera1t
19.02.21
✎
09:48
|
(3) ну да, наверное так
|
|
6
Serg_1960
19.02.21
✎
10:14
|
В запросе удалить лидирующие нули? А "лидирующие" префиксы в номере документа тоже "отбросить в запросе"? "Нет, сынок, это фантастика"(слоган из рекламы сыра)
|
|
7
Gera1t
19.02.21
✎
10:18
|
Пока СтрДлина(НомерДокумента) < 6 Цикл
НомерДокумента = "0" + НомерДокумента;
КонецЦикла;
НомерДокумента = "0000-" + НомерДокумента;
Возврат НомерДокумента;
Вот так сделал, не универсально, зато быстро и работает
|
|
8
Serg_1960
19.02.21
✎
10:20
|
(7) Неспортивно - это не в запросе :)
|
|
9
Serg_1960
19.02.21
✎
10:28
|
(7) Самый простой и тупой запрос, когда номер документа без префикса и когда заранее известна длина номера (например, 10 позиций):
ВЫБРАТЬ
ВЫБОР
КОГДА НЕ ПОДСТРОКА(&НомерДок, 1, 1) = "0" ТОГДА ПОДСТРОКА(&НомерДок, 1, 10)
КОГДА НЕ ПОДСТРОКА(&НомерДок, 2, 1) = "0" ТОГДА ПОДСТРОКА(&НомерДок, 2, 9)
КОГДА НЕ ПОДСТРОКА(&НомерДок, 3, 1) = "0" ТОГДА ПОДСТРОКА(&НомерДок, 3, 8)
...
КОГДА НЕ ПОДСТРОКА(&НомерДок, 9, 1) = "0" ТОГДА ПОДСТРОКА(&НомерДок, 9, 2)
Иначе ПОДСТРОКА(&НомерДок, 10, 1)
КОНЕЦ КАК НомерБезЛидирующихНулей
|
|
10
Pro-tone
19.02.21
✎
10:31
|
(7) НомерДокументаСтрокой = "0000-" + Формат(НомерДокументаЧислом, "ЧЦ=6; ЧВН=; ЧГ=0") так красивее и быстрее работать будет
|
|
11
Builder
19.02.21
✎
10:34
|
(10) Ну тогда уж еще проще
НомерДокументаСтрокой = "0000-" + Прав("000000"+НомерДокументаЧислом,6)
|
|
12
dka80
19.02.21
✎
10:43
|
а еще номера могут повторяться каждый год
|
|
13
lodger
19.02.21
✎
10:43
|
(11) если НомерДокументаЧислом - строка, то ладно, если число больше 999, то не ладно.
|
|
14
Builder
19.02.21
✎
10:43
|
(12) Это уже другое условие :)
|
|
15
Serg_1960
19.02.21
✎
10:46
|
Детский сад, штаны на лямках :)
Формат(Число(Сред(НомерДок,Найти(НомерДок,"-")+1)),"ЧГ=")
|
|
16
Gera1t
19.02.21
✎
10:49
|
Всем большое спасибо!
(10), (11) Вообще красота!
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший