Имя: Пароль:
1C
1С v8
Вопрос по конструкции имеющие
0 memogolik
 
12.04.12
15:29
Есть запрос из вложенной таблицы. Я группирую все по одному столбцу, остальные три суммирую. Хочу, чтобы в запрос попадали лишь те записи, для которых произведение сумм в сгруппированном виде не равно 0. Вот мой запрос:


ВЫБРАТЬ
Влож.ДокументРасчетовСКонтрагентом,
Сумма(Влож.До45) КАК а,
Сумма(Влож.От45до90) КАК б,
Сумма(Влож.Свыше90) КАК с
ИЗ
(
ВЫБРАТЬ
   Деб.Регистратор,
   Деб.Контрагент,
   Деб.ДоговорКонтрагента,
   Деб.ДокументРасчетовСКонтрагентом,
   ВЫБОР
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)<45
       ТОГДА
           ВЫБОР
               КОГДА Деб.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
               ТОГДА Деб.СуммаВзаиморасчетов
               ИНАЧЕ 0-Деб.СуммаВзаиморасчетов
           КОНЕЦ
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)>=45 И РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)<90
       ТОГДА    0
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)>=90
       ТОГДА    0
   КОНЕЦ КАК До45,
   ВЫБОР
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)<45
       ТОГДА    0
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)>=45 И РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)<90
       ТОГДА
           ВЫБОР
               КОГДА Деб.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
               ТОГДА Деб.СуммаВзаиморасчетов
               ИНАЧЕ 0-Деб.СуммаВзаиморасчетов
           КОНЕЦ
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)>=90
       ТОГДА    0
   КОНЕЦ КАК От45до90,
   ВЫБОР
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)<45
       ТОГДА    0
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)>=45 И РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)<90
       ТОГДА    0
       КОГДА РАЗНОСТЬДАТ(Деб.ДокументРасчетовСКонтрагентом.Дата,&ВыбДата,ДЕНЬ)>=90
       ТОГДА
           ВЫБОР
               КОГДА Деб.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
               ТОГДА Деб.СуммаВзаиморасчетов
               ИНАЧЕ 0-Деб.СуммаВзаиморасчетов
           КОНЕЦ
   КОНЕЦ КАК Свыше90
ИЗ
   РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов КАК Деб
ГДЕ
   Деб.Контрагент = &ВыбКонтрагент
   И Деб.ДоговорКонтрагента = &ВыбДоговор
   И Деб.Период<=КОНЕЦПЕРИОДА(&ВыбДата)
) Влож
СГРУППИРОВАТЬ ПО
   Влож.ДокументРасчетовСКонтрагентом
ИМЕЮЩИЕ а*б*с<>0

Без конструкции "ИМЕЮЩИЕ" все работает норм, но когда добавляю ее
компилятор ругается. Подскажите пожалуйста где ошибка. Заранее спасибо.
1 zak555
 
12.04.12
15:30
> в сгруппированном виде не равно 0

обратись к регистру
2 Maxus43
 
12.04.12
15:30
ИМЕЮЩИЕ Сумма(Влож.До45) * ... <>0
?
3 Ненавижу 1С
 
гуру
12.04.12
15:30
ИМЕЮЩИЕ Сумма(Влож.До45)<>0 И
Сумма(Влож.От45до90)<>0 И
Сумма(Влож.Свыше90)<>0
4 memogolik
 
12.04.12
15:32
Спасибо, други!)
5 Maxus43
 
12.04.12
15:38
(4) Спасибо в карман не положиш. Накорми Бомжа!
6 memogolik
 
13.04.12
16:05
(5) Договорились,  Максимка. )