Имя: Пароль:
1C
1C 7.7
v7: Прямой запрос (поиск по номеру док)
0 LOTOS2000
 
12.12.14
17:36
Нужно найти документ по номеру (номер тип = число)
    ТекстЗапросаСКЛ = "
    |SELECT
    |        Жур.IDDoc as [Док $Документ],
    |        Жур.IDDocDef as Док_вид
    |
    |FROM
    |    _1SJourn Жур
    |INNER JOIN
    |    $Документ.РРР as ДокРРР ON ДокРРР.IDDoc = Жур.IDDoc
    |WHERE
    |    Жур.Docno = :ДН  
    |";
    рс.УстановитьТекстовыйПараметр("ДН", ПромНомер );
ПромНомер - строка с номером документа.
Как красиво (кастом или конвертом) преобразовать и найти номер?
Если можно пример.
1 Злопчинский
 
12.12.14
17:38
Могу нести херню - но нафига тебе джоин к таблице документа, если все что надо ты получаешь в Жур.IDDoc ...?
2 Злопчинский
 
12.12.14
17:39
И Следует учесть - периодичность нумерации документов
3 LOTOS2000
 
12.12.14
17:39
Джоин - для отбора по виду документа.
4 LOTOS2000
 
12.12.14
17:40
иначе получу пачку документов
5 Гёдза
 
12.12.14
17:41
в журнале есть вид документа
6 LOTOS2000
 
12.12.14
17:43
джойн - не существенно.
Мне нужно вот это:
    |    Жур.Docno = :ДН
переписать во что-то такое:
    |    Жур.Docno = cast(:ДН as numeric(5))
7 LOTOS2000
 
12.12.14
17:45
Вот в таком виде:
    ТекстЗапросаСКЛ = "
    |SELECT
    |        Жур.IDDoc as [Док $Документ],
    |        Жур.IDDocDef as Док_вид
    |
    |FROM
    |    _1SJourn Жур
    |WHERE
    |    Жур.Docno = :ДН  
    |";

я получаю документы, у которых НомерДок = строка, а это не то что мне нужно.
8 mehfk
 
12.12.14
17:46
DOCNO    Номер документа. Длина определяется максимальным номером всех документов. Тип - Строка (максимальное значение - 20).
9 Злопчинский
 
12.12.14
17:47
посмотри DD файл на своем документе - там все равно номер документа - это строка.
так что все что тебе надо - это число преобразовать в строку, боюсь ошибиться - с ведущими пробелами
10 Злопчинский
 
12.12.14
17:48
для ограничения по able документа м.б. имеет смысл вот сюда условие наложить: Жур.IDDocDef
а не джойнить нафиг ненужную таблицу
11 Ёпрст
 
12.12.14
17:52
(0)
    ТекстЗапросаСКЛ = "
    |SELECT
    |        Жур.IDDoc as [Док $Документ],
    |        Жур.IDDocDef as Док_вид
    |
    |FROM
    |    _1SJourn Жур
    |WHERE Жур.iddocdef=$ВидДокумента.НужныйВид and
    |    Жур.Docno like'%:НужныйНомер%'
12 mehfk
 
12.12.14
17:55
НужныйНомер = 1000
найдет док с номером 11000, я1000 и т.д.
13 antoneus
 
12.12.14
17:55
а если тупо рс.УстановитьТекстовыйПараметр("ДН", Число(ПромНомер));
14 LOTOS2000
 
12.12.14
17:55
Лайк!

Спасибо! Решилось :) (11)
15 Ёпрст
 
12.12.14
17:56
(12) ну, пусть тогда добивает до длины нумера и ишет по равенству, хотя поиск по номеру.. да еще и не в пределах периодичности дока - вообще зло
16 Ёпрст
 
12.12.14
17:57
(14) рано радуешься, если номер дока имеет периодичность год, к примеру , то возможны дубли с разными датами..
17 Ёпрст
 
12.12.14
17:57
ну и ладно
18 LOTOS2000
 
12.12.14
17:58
(16) я знаю, уже сделал ловушку :)
19 mehfk
 
12.12.14
18:00
(18) Теперь проверь на НужныйНомер = 1
20 LOTOS2000
 
12.12.14
18:04
(19) its work
21 antoneus
 
12.12.14
18:08
(20) it works тогда уж или it's working )