Имя: Пароль:
1C
1C 7.7
v7: 1sqlite - выдрать обороты партий (все) с фильтами.
0 Cthulhu
 
14.03.12
12:45
ФирмыФильтрСЗ=СоздатьОбъект("СписокЗначений");
ФирмыФильтрСЗ.ДобавитьЗначение(БазФирма);    // "Справочник.Фирмы", заполнено, не группа!
ФирмыФильтрСЗ.ДобавитьЗначение(ДопФирма);    // "Справочник.Фирмы", заполнено, не группа!
КодыОперацийФильтрСЗ=СоздатьОбъект("СписокЗначений");
КодыОперацийФильтрСЗ.ДобавитьЗначение("З");
КодыОперацийФильтрСЗ.ДобавитьЗначение("Ь");
тТхт="
|SELECT Партии.Фирма [Фирма :Справочник.Фирмы], Партии.Поставка [Поставка :Документ]
|    , Партии.ПрихДокумент [ПрихДокумент :Документ], Партии.IDDOC [Документ:Документ]
|    , Sum(Партии.ОстатокТовара) Кво, Sum(Партии.Стоимость) Сум, Sum(Партии.НДС) Ндс
|FROM [Регистр.ПартииТоваров] Партии
|WHERE (Партии.Фирма IN (select val from ФирмыФильтр)
|    AND (Партии.Товар = :ВыбТмц)
|    AND (Партии.КодОперации IN (select val from КодыОперацийФильтр)
|GROUP BY Партии.Фирма, Партии.Поставка, Партии.ПрихДокумент, Партии.IDDOC
|ORDER BY Партии.Фирма, Партии.Поставка, Партии.ПрихДокумент, Партии.IDDOC";
_1склБаза.УложитьОбъекты(ФирмыФильтрСЗ,"ФирмыФильтр",0,"Фирмы");
_1склБаза.УложитьОбъекты(КодыОперацийФильтрСЗ,"КодыОперацийФильтр");
_1склЗапрос=_1склБаза.НовыйЗапрос(); _1склЗапрос.Отладка(1);
_1склЗапрос.Подставлять("ВыбТмц",ВыбТмц);    // "Справочник.ТМЦ", заполнено, не группа!
_1склЗапрос.ВыполнитьЗапрос(тТхт).ВыбратьСтроку();
// результат:
SELECT Партии.Фирма [Фирма :Справочник.Фирмы], Партии.Поставка [Поставка :Документ]
   , Партии.ПрихДокумент [ПрихДокумент :Документ], Партии.IDDOC [Документ:Документ]
   , Sum(Партии.ОстатокТовара) Кво, Sum(Партии.Стоимость) Сум, Sum(Партии.НДС) Ндс
FROM [Регистр.ПартииТоваров] Партии
WHERE (Партии.Фирма IN (select val from ФирмыФильтр)
   AND (Партии.Товар = '    AY   ')
   AND (Партии.КодОперации IN (select val from КодыОперацийФильтр)
GROUP BY Партии.Фирма, Партии.Поставка, Партии.ПрихДокумент, Партии.IDDOC
ORDER BY Партии.Фирма, Партии.Поставка, Партии.ПрихДокумент, Партии.IDDOC
_1склЗапрос.ВыполнитьЗапрос(тТхт).ВыбратьСтроку();
{Детотам-Чототам.ERT(9999999999)}: near "GROUP": syntax error

ЗЫ: а как его упорядочить по убыванию позиций документов-измерений? и при этом выбрать только первые с конца группировки?
1 Cthulhu
 
14.03.12
13:12
//ялох. количество скобок. но все равно - заменил:
FROM [Регистр.ПартииТоваров] Партии
WHERE (Партии.Фирма IN (select val from ФирмыФильтр)
   AND (Партии.Товар = :ВыбТмц)
   AND (Партии.КодОперации IN (select val from КодыОперацийФильтр)
GROUP BY Партии.Фирма, Партии.Поставка, Партии.ПрихДокумент, Партии.IDDOC
//на:
FROM [Регистр.ПартииТоваров] Партии
WHERE Партии.Фирма IN (select val from ФирмыФильтр)
   AND Партии.Товар = :ВыбТмц
   AND (Партии.КодОперации IN (select val from КодыОперацийФильтр)
GROUP BY Партии.Фирма, Партии.Поставка, Партии.ПрихДокумент, Партии.IDDOC
// результат:
SELECT Партии.Фирма [Фирма :Справочник.Фирмы], Партии.Поставка [Поставка :Документ]
   , Партии.ПрихДокумент [ПрихДокумент :Документ], Партии.IDDOC [Документ:Документ]
   , Sum(Партии.ОстатокТовара) Кво, Sum(Партии.Стоимость) Сум, Sum(Партии.НДС) Ндс
FROM [Регистр.ПартииТоваров] Партии
WHERE Партии.Фирма IN (select val from ФирмыФильтр)
   AND Партии.Товар = '    AY   '
   AND (Партии.КодОперации IN (select val from КодыОперацийФильтр)
GROUP BY Партии.Фирма, Партии.Поставка, Партии.ПрихДокумент, Партии.IDDOC
ORDER BY Партии.Фирма, Партии.Поставка, Партии.ПрихДокумент, Партии.IDDOC
_1склЗапрос.ВыполнитьЗапрос(тТхт).ВыбратьСтроку();
{Детотам-Чототам.ERT(9999999999)}: near "GROUP": syntax error