Отличие директивы «ИМЕЮЩИЕ» от условия «ГДЕ» состоит в том, что ее можно использовать для агрегатных функций. Обязательным условием при этом является использование группировки по остальным полям.
Пример:
1 2 3 4 5 6 7 8 9 10 11 |
ВЫБРАТЬ тбЗадания.Задание, СУММА(тбЗадания.КоличествоИсполнителей) КАК КоличествоИсполнителей ИЗ РегистрСведений.устВыполняемыеЗадания КАК тбЗадания ГДЕ тбЗадания.Выполнение СГРУППИРОВАТЬ ПО тбЗадания.Задание ИМЕЮЩИЕ СУММА(тбЗадания.КоличествоИсполнителей) > 0 |
При этом есть одна особенность. Не смотря на то, что аналогичная директива на языке запросов SQL (HAVING) позволяет указать псевдоним поля, на языке запросов 1С псевдоним поля указать нельзя. Т.е. в конце нельзя написать: «ИМЕЮЩИЕ КоличествоИсполнителей > 0″, – это будет неправильно, нужно полностью продублировать всю функцию (в нашем случае «СУММА(тбЗадания.КоличествоИсполнителей)»)