Имя: Пароль:
1C
1C 7.7
v7: Как в прямом запросе отсортировать доки?
0 Chameleon1980
 
08.08.14
13:58
Подскажите:
Как в прямом запросе отсортировать доки как 1С'ка сортирует черным запросом ?
пжлста
1 ДенисЧ
 
08.08.14
14:01
А как тебе конкретно надо?
2 Chameleon1980
 
08.08.14
14:01
кусок:

SELECT NullIf(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime), '17530101') Документ_дата
    , ПриходныйОрдерПоАД.IDDOC [Ссылка $Документ.ПриходныйОрдерПоАД]
    , $ПриходныйОрдерПоАД.Сумма Приход
    ,0 Расход
    , $ПриходныйОрдерПоАД.ЧОК ЧОК
FROM _1SJOURN AS Журнал With (NOLOCK)
    LEFT OUTER JOIN $Документ.ПриходныйОрдерПоАД AS ПриходныйОрдерПоАД With (NOLOCK) ON Журнал.IDDOC = ПриходныйОрдерПоАД.IDDOC
WHERE (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) <= :ДатаКонца)
    AND (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) >= :ДатаНачала)
    AND (ПриходныйОрдерПоАД.IDDOC <> $ПустойИд)
    AND ($ПриходныйОрдерПоАД.ЧОК = 0)

ORDER BY Документ_дата
3 Chameleon1980
 
08.08.14
14:01
ну, видимо, по позиции документа
4 Chameleon1980
 
08.08.14
14:02
может дату не обрезать?
5 ДенисЧ
 
08.08.14
14:02
order by Журнал.DATE_TIME_IDDOC
не предлагать?
6 Ёпрст
 
08.08.14
14:03
(5) продай ему СП!
7 Ёпрст
 
08.08.14
14:04
вот тут
(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) <= :ДатаКонца)

вообще cast не нужен, если че..
8 Ёпрст
 
08.08.14
14:05
да и.. достаточно там between писать еще
9 Ёпрст
 
08.08.14
14:06
заместо сказки на ночь
http://www.1cpp.ru/forumfiles/Attachments/mod_002.zip
10 ДенисЧ
 
08.08.14
14:07
(6) у меня нет СП по "1с++ для чайников", кончились. Дефицит, понимаешь ли...
11 Chameleon1980
 
08.08.14
14:09
да ладно. :)
ну я в (4) правильно предположил же ?
нет?
12 Ёпрст
 
08.08.14
14:15
(11) нет
13 Ёпрст
 
08.08.14
14:15
ответ в (5)
14 Chameleon1980
 
08.08.14
14:50
еще. Хочу итоги:

SELECT
    Журнал.DATE_TIME_IDDOC as DATE_TIME_IDDOC
    , NullIf(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime), '17530101') Документ_дата
    , ПриходныйОрдерПоАД.IDDOC [Ссылка $Документ.ПриходныйОрдерПоАД]
    , ПриходныйОрдерПоАД.sp40683 Приход
    ,0 Расход
    , ПриходныйОрдерПоАД.sp40697 ЧОК
FROM _1SJOURN AS Журнал With (NOLOCK)
    LEFT OUTER JOIN dh40673 AS ПриходныйОрдерПоАД With (NOLOCK) ON Журнал.IDDOC = ПриходныйОрдерПоАД.IDDOC
WHERE (Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) BETWEEN '20140101' AND '20141231')
    AND (ПриходныйОрдерПоАД.IDDOC <> '     0   ')
    AND (ПриходныйОрдерПоАД.sp40697 = 0)

GROUP BY DATE_TIME_IDDOC, ПриходныйОрдерПоАД.IDDOC,ПриходныйОрдерПоАД.sp40683,ПриходныйОрдерПоАД.sp40697
    WITH ROLLUP

ORDER BY DATE_TIME_IDDOC

так неверно показывает
15 Chameleon1980
 
08.08.14
14:51
напомните как скрин выложить
16 varelchik
 
08.08.14
14:53
ОГО!
(ПриходныйОрдерПоАД.IDDOC <> '     0   ')
а что даже такое бывает?
Документ да еще и с пустым iddoc!
17 Ёпрст
 
08.08.14
14:53
ясен пень..
кто суммировать то будет ?
18 Ёпрст
 
08.08.14
14:54
и вот это:
NullIf(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime), '17530101')

тоже лишнее.
там достаточно просто к дате привести, не нужен там NullIf
19 Chameleon1980
 
08.08.14
14:55
это пустая ссылка
ПриходныйОрдерПоАД.IDDOC <> $ПустойИд
20 Chameleon1980
 
08.08.14
14:55
(19) к (16)
21 Chameleon1980
 
08.08.14
14:58
(18) CAST(<Выражение> AS <Тип>) ?
22 Chameleon1980
 
08.08.14
15:03
просто это конструктор qryMaker сделал

поправил.

|    , Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime) Документ_дата

а нет у кого поновее конструктора?
23 varelchik
 
08.08.14
15:13
(19) А что в таблице Приходных может быть пустойид?
батенька у вас с базой не все лады.
ПустойИД может быть у реквизита но никак ни у поля iddoc.
24 varelchik
 
08.08.14
15:15
+(18)
Left(Журнал.DATE_TIME_IDDOC, 8) as [Документ_дата $Дата]
25 Chameleon1980
 
08.08.14
15:21
(23) я приводил кусок кода
далее идет UNION ALL
и из других доков выбирается подобная инфа.
порядок полей соответствует.
Но когда я пишу без

ПриходныйОрдерПоАД.IDDOC <> $ПустойИд

получается много пустых строк
26 Chameleon1980
 
08.08.14
15:21
(24) да приводит нормально
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан