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