Имя: Пароль:
1C
1C 7.7
v7: Не удалось привязать составной идентификатор
0 OnePrg
 
07.04.22
12:12
Помогите отладить запрос.


SELECT
     СпрТовар.ID as [Товар $Справочник.Товар],      
     $СпрТовар.ШК as ШК,
     $ПоследнееЗначение.ЦеныТовара.Цена(СпрЦ.ID, :КП) as [Цена $Число],
     Остатки.КвоОстаток as Количество
    ,Остатки1.КвоОстаток as Количество1
    ,Остатки2.КвоОстаток as Количество2
    ,Остатки3.КвоОстаток as Количество3     
FROM
     $Справочник.Товар as СпрТовар
LEFT JOIN
      $Справочник.ЦеныТовара СпрЦ
     ON СпрЦ.ParentExt = СпрТовар.ID
     AND $СпрЦ.ВидЦены = :ВидЦены
LEFT JOIN (                                                                                    
     SELECT
         Ост.Товар,
         SUM(Остатки.КвоОстаток) as КвоОстаток
     FROM
           $РегистрОстатки.Остатки(:КП,,МестоХранения IN (SELECT
                         СпрСклады.ID
                    FROM
                         $Справочник.МестаХранения as СпрСклады
                    WHERE
                         $СпрСклады.Город IN (SELECT VaL From #спГорода)),(Товар,МестоХранения),(Кво)) AS Ост
     GROUP BY
         Ост.Товар) AS Остатки
     ON СпрТовар.ID = Остатки.Товар
LEFT JOIN (                                                                                    
     SELECT
         Ост.Товар,
         SUM(Ост1.КвоОстаток) as КвоОстаток
     FROM
           $РегистрОстатки.Остатки(:КП,,МестоХранения IN (SELECT
                         СпрСклады.ID      
                    FROM
                         $Справочник.МестаХранения as СпрСклады
                    WHERE
                         $СпрСклады.Город = :ВыбГород1),(Товар,МестоХранения),(Кво)) AS Ост1
     GROUP BY
         Ост.Товар) AS Остатки1            
     ON СпрТовар.ID = Остатки1.Товар
LEFT JOIN (                                                                                    
     SELECT
         Ост.Товар,
         SUM(Ост2.КвоОстаток) as КвоОстаток
     FROM
           $РегистрОстатки.Остатки(:КП,,МестоХранения IN (SELECT
                         СпрСклады.ID      
                    FROM
                         $Справочник.МестаХранения as СпрСклады
                    WHERE
                         $СпрСклады.Город = :ВыбГород2),(Товар,МестоХранения),(Кво)) AS Ост2
     GROUP BY
         Ост.Товар) AS Остатки2            
     ON СпрТовар.ID = Остатки2.Товар
LEFT JOIN (                                                                                    
     SELECT
         Ост.Товар,
         SUM(Ост3.КвоОстаток) as КвоОстаток
     FROM
           $РегистрОстатки.Остатки(:КП,,МестоХранения IN (SELECT
                         СпрСклады.ID      
                    FROM
                         $Справочник.МестаХранения as СпрСклады
                    WHERE
                         $СпрСклады.Город = :ВыбГород3),(Товар,МестоХранения),(Кво)) AS Ост3
     GROUP BY
         Ост.Товар) AS Остатки3            
     ON СпрТовар.ID = Остатки3.Товар

WHERE
     СпрТовар.IsMark = 0
     AND СпрТовар.IsFolder = 2
     AND $СпрТовар.НевыгружатьНаСайт = 0
     AND Остатки.КвоОстаток > 0
ORDER BY
     СпрТовар.Descr
RS.ВыполнитьИнструкцию(ТекстЗапроса,ТЗ);      


Не удалось привязать составной идентификатор "Остатки.КвоОстаток".
1 OnePrg
 
07.04.22
12:34
Разобрался



SELECT
     СпрТовар.ID as [Товар $Справочник.Товар],      
     $СпрТовар.ШК as ШК,
     $ПоследнееЗначение.ЦеныТовара.Цена(СпрЦ.ID, :КП) as [Цена $Число],
     Остатки.КвоОстаток as Количество
    ,Остатки1.КвоОстаток as Количество1
    ,Остатки2.КвоОстаток as Количество2
    ,Остатки3.КвоОстаток as Количество3     
FROM
     $Справочник.Товар as СпрТовар
LEFT JOIN
      $Справочник.ЦеныТовара СпрЦ
     ON СпрЦ.ParentExt = СпрТовар.ID
     AND $СпрЦ.ВидЦены = :ВидЦены
LEFT JOIN (                                                                                    
     SELECT
         Ост.Товар,
         SUM(Ост.КвоОстаток) as КвоОстаток
     FROM
           $РегистрОстатки.Остатки(:КП,,МестоХранения IN (SELECT
                         СпрСклады.ID
                    FROM
                         $Справочник.МестаХранения as СпрСклады
                    WHERE
                         $СпрСклады.Город IN (SELECT VaL From #спГорода)),(Товар,МестоХранения),(Кво)) AS Ост
     GROUP BY
         Ост.Товар) AS Остатки
     ON СпрТовар.ID = Остатки.Товар
LEFT JOIN (                                                                                    
     SELECT
         Ост1.Товар,
         SUM(Ост1.КвоОстаток) as КвоОстаток
     FROM
           $РегистрОстатки.Остатки(:КП,,МестоХранения IN (SELECT
                         СпрСклады.ID      
                    FROM
                         $Справочник.МестаХранения as СпрСклады
                    WHERE
                         $СпрСклады.Город = :ВыбГород1),(Товар,МестоХранения),(Кво)) AS Ост1
     GROUP BY
         Ост1.Товар) AS Остатки1            
     ON СпрТовар.ID = Остатки1.Товар
LEFT JOIN (                                                                                    
     SELECT
         Ост2.Товар,
         SUM(Ост2.КвоОстаток) as КвоОстаток
     FROM
           $РегистрОстатки.Остатки(:КП,,МестоХранения IN (SELECT
                         СпрСклады.ID      
                    FROM
                         $Справочник.МестаХранения as СпрСклады
                    WHERE
                         $СпрСклады.Город = :ВыбГород2),(Товар,МестоХранения),(Кво)) AS Ост2
     GROUP BY
         Ост2.Товар) AS Остатки2            
     ON СпрТовар.ID = Остатки2.Товар
LEFT JOIN (                                                                                    
     SELECT
         Ост3.Товар,
         SUM(Ост3.КвоОстаток) as КвоОстаток
     FROM
           $РегистрОстатки.Остатки(:КП,,МестоХранения IN (SELECT
                         СпрСклады.ID      
                    FROM
                         $Справочник.МестаХранения as СпрСклады
                    WHERE
                         $СпрСклады.Город = :ВыбГород3),(Товар,МестоХранения),(Кво)) AS Ост3
     GROUP BY
         Ост3.Товар) AS Остатки3            
     ON СпрТовар.ID = Остатки3.Товар

WHERE
     СпрТовар.IsMark = 0
     AND СпрТовар.IsFolder = 2
     AND $СпрТовар.НевыгружатьНаСайт = 0
     AND Остатки.КвоОстаток > 0
ORDER BY
     СпрТовар.Descr