Имя: Пароль:
1C
1C 7.7
v7: Отбор по типу операции в запросе
0 Absurdus
 
25.08.15
09:28
Есть запрос

SELECT      
    right(Рег.ПозицияДокумента,9) as [Док $Документ],
    Рег.ВидДокумента as Док_вид,
    Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура]
FROM
    $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата, :КонДата~,Документ,,
    inner join $Справочник.Номенклатура as НомРег with (nolock) on НомРег.id = Номенклатура  and НомРег.id in (select val from #СписокНом)
                                ,,(Номенклатура), (Количество)) as Рег

Надо по реквизиту КодОперацииМ в документе отобрать. И посчитать проданное количество. Не соображу как
1 Absurdus
 
25.08.15
09:28
Делаю так:
SELECT      
    right(Рег.ПозицияДокумента,9) as [Док $Документ],
    Рег.ВидДокумента as Док_вид,    
    Рег.IDDoc as ДокИд,
    Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура]
    case when ((Рег.ВидДокумента = '5292') and (Жур.КодОперацииМ = '   7E7   ')) then Рег.КоличествоРасход else 0 end as КолРасходРеалОпт,
    case when ((Рег.ВидДокумента = '5292') and (Жур.КодОперацииМ = '   7E8   ')) then Рег.КоличествоРасход else 0 end as КолРасходРеалРозн
FROM
    $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата, :КонДата~,Документ,,
    inner join $Справочник.Номенклатура as НомРег with (nolock) on НомРег.id = Номенклатура  and НомРег.id in (select val from #СписокНом)
    inner join _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc
                                                                                                                                        
                                
                               ,,(ДокИд,Номенклатура), (Количество)) as Рег

Meta name parser error: недопустимое значение параметра "$РегистрОстаткиОбороты.ОстаткиТМЦ" (7)

НЕ получается...
2 DCKiller
 
25.08.15
09:36
inner join _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc

Мож тут "Рег" лишнее?
3 Absurdus
 
25.08.15
09:40
(2) Убрал. Таже ошибка...
4 patapum
 
25.08.15
09:51
(3) что-то параметров для создания таблицы остатки и обороты многовато. inner join вроде пишется сразу после периодичности (4-й), отбор 5-й, измерения 6-й, ресурсы 7-й. а у тебя 8 получается
http://www.script-coding.com/Direct_queries.html#4.2.
5 DCKiller
 
25.08.15
09:51
(3) Убери (ДокИд,Номенклатура) вообще... или передай туда не псевдонимы, а имена полей
6 Absurdus
 
25.08.15
10:02
(4,5) Верхний то запрос работает
7 patapum
 
25.08.15
10:07
(6) а wtf этот ДокИд? (ДокИд, Номенклатура)
попробуй убрать его
8 Absurdus
 
25.08.15
10:10
(7) Сейчас так, но толку тоже 0
SELECT      
    right(Рег.ПозицияДокумента,9) as [Док $Документ],
    Рег.ВидДокумента as Док_вид,    
    Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура]
FROM
    $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата, :КонДата~,Документ, ,
    inner join $Справочник.Номенклатура as НомРег with (nolock) on НомРег.id = Номенклатура  and НомРег.id in (select val from #СписокНом)
    inner join _1Sjourn as Жур ON right(Жур.ПозицияДокумента,9) = right(Рег.ПозицияДокумента,9)
                   ,,(Номенклатура), (Количество)) as Рег
9 patapum
 
25.08.15
10:18
(8) толку 0 - это что? запрос выполняется или ошибка?
10 Absurdus
 
25.08.15
10:20
Meta name parser error: это метаимя разрешить невозможно "$РегистрОстаткиОбороты.ОстаткиТМЦ"State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Недопустимое имя столбца "ПозицияДокумента".
11 patapum
 
25.08.15
10:31
(10) у меня в простейшем запросе не получается выбрать Рег.ПозицияДокумента. откуда ты взял, что так бывает? что у тебя работает (0) пока не верю... :-)
12 Absurdus
 
25.08.15
10:34
(10) Первый запрос сто лет как исправно работает и выдает нужный результат
13 patapum
 
25.08.15
10:42
попробуй
inner join _1Sjourn as Жур ON right(Жур.ПозицияДокумента,9) = right(ПозицияДокумента,9)
или вынеси этот inner join из формирования таблицы в просто выборку, т.е.
SELECT      
    right(Рег.ПозицияДокумента,9) as [Док $Документ],
    Рег.ВидДокумента as Док_вид,    
    Рег.Номенклатура as [Номенклатура $Справочник.Номенклатура]
FROM
    $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата, :КонДата~,Документ, ,
    inner join $Справочник.Номенклатура as НомРег with (nolock) on НомРег.id = Номенклатура  and НомРег.id in (select val from #СписокНом)
                   ,,(Номенклатура), (Количество)) as Рег
    inner join _1Sjourn as Жур ON right(Жур.ПозицияДокумента,9) = right(Рег.ПозицияДокумента,9)
14 Absurdus
 
25.08.15
10:51
В обоих случаях ошибка:

Meta name parser error: это метаимя разрешить невозможно "$РегистрОстаткиОбороты.ОстаткиТМЦ"State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Недопустимое имя столбца "ПозицияДокумента".
15 Absurdus
 
25.08.15
10:53
FROM
    $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата, :КонДата~,Документ, ,
    inner join $Справочник.Номенклатура as НомРег with (nolock) on НомРег.id = Номенклатура  and НомРег.id in (select val from #СписокНом)
                   ,,(Номенклатура), (Количество)) as Рег
    inner join _1Sjourn as Жур ON Жур.IDDoc = Рег.IdDoc

Почему-то на Рег.IDdoc ругается, что не определен
16 patapum
 
25.08.15
10:56
(15) ну да, Рег.IdDoc не определен. right(Рег.ПозицияДокумента,9) у тебя работает, по нему и соединяй
inner join _1Sjourn as Жур ON right(Жур.ПозицияДокумента,9) = right(Рег.ПозицияДокумента,9)
17 Absurdus
 
25.08.15
11:16
(16) Не соединяется так
inner join _1Sjourn as Жур ON right(Жур.ПозицияДокумента,9) = right(Рег.ПозицияДокумента,9)

Meta name parser error: это метаимя разрешить невозможно "$РегистрОстаткиОбороты.ОстаткиТМЦ"State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Недопустимое имя столбца "ПозицияДокумента".
18 Дык ё
 
25.08.15
11:38
(17) забей, один фиг в полях Остатки будут данные без учета кодов операций
19 patapum
 
25.08.15
11:40
может, так?
FROM
    $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачДата, :КонДата~,Документ, ,
    inner join $Справочник.Номенклатура as НомРег with (nolock) on НомРег.id = Номенклатура  and НомРег.id in (select val from #СписокНом)
                   ,,(Номенклатура), (Количество)) as Рег
    inner join _1Sjourn as Жур ON rigyt(Жур.IDDoc) = right(Рег.ПозицияДокумента,9)
20 Absurdus
 
25.08.15
11:46
(19) О! Так что-то похожее стало выдавать, сейчас поковыряю
Независимо от того, куда вы едете — это в гору и против ветра!