Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Поиск документа по номеру в запросе

Поиск документа по номеру в запросе
Я
   Gera1t
 
19.02.21 - 09:42
Нужно найти документ по номеру в запросе.
Но не по вхождению, а по полному совпадению.
И нужно сделать так, что номер для поиска вводили без лидирующих 0.
Т.е если нужно найти документ по вхождению, то пишу
ПОДОБНО "%" + &НомерДок
А здесь нужно в запросе в условии отбросить лидирующие 0 у Номера документа и найти просто по точному соответствию НомерДок
   Галахад
 
1 - 19.02.21 - 09:46
НомерДок = Нули + НомерДок;
   Lexey_
 
2 - 19.02.21 - 09:46
(0) ПОДОБНО "&ЛидирующиеНули" + &НомерДок
ЛидирующиеНули считаешь в зависимости от длины введенного номера
   butterbean
 
3 - 19.02.21 - 09:47
обрабатывай номер перед передачей в запрос и проверяй на точное совпадение
   Gera1t
 
4 - 19.02.21 - 09:47
А там номер вида 0000-0000001
   Gera1t
 
5 - 19.02.21 - 09:48
(3) ну да, наверное так
   Serg_1960
 
6 - 19.02.21 - 10:14
В запросе удалить лидирующие нули? А "лидирующие" префиксы в номере документа тоже "отбросить в запросе"? "Нет, сынок, это фантастика"(слоган из рекламы сыра)
   Gera1t
 
7 - 19.02.21 - 10:18
Пока СтрДлина(НомерДокумента) < 6 Цикл 
        НомерДокумента = "0" + НомерДокумента;
    КонецЦикла;
    
    НомерДокумента = "0000-" + НомерДокумента;
    
    Возврат НомерДокумента;


Вот так сделал, не универсально, зато быстро и работает
   Serg_1960
 
8 - 19.02.21 - 10:20
(7) Неспортивно - это не в запросе :)
   Serg_1960
 
9 - 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)
КОНЕЦ КАК НомерБезЛидирующихНулей
   Pro-tone
 
10 - 19.02.21 - 10:31
(7) НомерДокументаСтрокой = "0000-" +  Формат(НомерДокументаЧислом, "ЧЦ=6; ЧВН=; ЧГ=0") так красивее и быстрее работать будет
   Builder
 
11 - 19.02.21 - 10:34
(10) Ну тогда уж еще проще 
 НомерДокументаСтрокой = "0000-" +  Прав("000000"+НомерДокументаЧислом,6)
   dka80
 
12 - 19.02.21 - 10:43
а еще номера могут повторяться каждый год
   lodger
 
13 - 19.02.21 - 10:43
(11) если НомерДокументаЧислом - строка, то ладно, если число больше 999, то не ладно.
   Builder
 
14 - 19.02.21 - 10:43
(12) Это уже другое условие :)
   Serg_1960
 
15 - 19.02.21 - 10:46
Детский сад, штаны на лямках :)

Формат(Число(Сред(НомерДок,Найти(НомерДок,"-")+1)),"ЧГ=")
   Gera1t
 
16 - 19.02.21 - 10:49
Всем большое спасибо!
(10), (11) Вообще красота!

Список тем форума
Рекламное место пустует  Рекламное место пустует
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.