Имя: Пароль:
1C
1С v8
В каком порядке выполняются команды запроса
,
0 Serega103
 
29.04.15
08:49
Вопрос в следующем:
Есть запрос в котором таблица сначала группируется по одному полю, по 3-м другим суммируется. Дальше мне нужно проверить условие на сумму в сгруппированной таблице. Так вот вопрос: что сначала выполнится группировка или проверка на условие?
1 ДенисЧ
 
29.04.15
08:50
Смотря как напишешь...
2 ДенисЧ
 
29.04.15
08:50
А вообще - для проверки условий группировки есть слово ИМЕЮЩИЕ
3 1976vas
 
29.04.15
08:55
(2) Самое оптимальное. Еще можно сгруппировать в ВТ и потом отбирать по условию из нее.
4 Serega103
 
29.04.15
08:55
(1) написал вот так. Прокатит?
ВЫБРАТЬ
ВЗапрос.Ссылка,
СУММА(ВЗапрос.Поле1 + ВЗапрос.Поле2 + ВЗапрос.Поле3) КАК КонтрольнаяСумма
ИЗ
ВЗапрос
ГДЕ
    ВЗапрос.Поле1 + ВЗапрос.Поле2 + ВЗапрос.Поле3 = &КонтрольнаяСумма

СГРУППИРОВАТЬ ПО
    ВЗапрос.Ссылка
5 Serega103
 
29.04.15
08:56
(3) ВТ как вариант, но говорят что плодить ВТ не есть гуд для производительности...
6 ДенисЧ
 
29.04.15
08:56
(4) нет
7 Fragster
 
гуру
29.04.15
09:00
в конструкторе открой закладку с условием, поставь галочку "Произвольное" и напиши туда Сумма(ываждлыа) = &длпафываф и посмотри, что получится в результате
8 Necessitudo
 
29.04.15
09:01
(7) Ржу
9 ДенисЧ
 
29.04.15
09:01
(7) Мышевозчик! Фу...
10 Serega103
 
29.04.15
09:06
(2) курю оператор "имеющие". Не пойму как вставить его в запрос через коструктор...
11 nbv8608
 
29.04.15
09:12
(10) Сделай как написано (7)  и получишь имеющие или вставь текст запроса и найди где эта строка после ИМЕЮЩИЕ в условиях.
ВЫБРАТЬ
    ПеремещениеТоваров.Ссылка
ИЗ
    Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТоваровТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
        ПО ПеремещениеТоваровТовары.Ссылка = ПеремещениеТоваров.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
                ,
                ,
                СчетДт = &Счет4111
                    И СчетКт = &Счет4111,
                ,
                ) КАК ХозрасчетныйДвиженияССубконто
        ПО ПеремещениеТоваровТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
ГДЕ
    ХозрасчетныйДвиженияССубконто.Сумма <> 0

СГРУППИРОВАТЬ ПО
    ПеремещениеТоваров.Ссылка

ИМЕЮЩИЕ
    СУММА(ПеремещениеТоваровТовары.Себестоимость) = 0
12 Serega103
 
29.04.15
09:16
(11) появилось.
Вобщем с этим оператором всё взлетело. Всем спасибо.
13 1976vas
 
29.04.15
09:17
Программист всегда исправляет последнюю ошибку.