30.09.2021 Анна Лисовая 7582
Работа оператора «HAVING»

Содержание:

1.       Оператор «WHERE»

2.       Оператор «HAVING»

 

Приветствую, коллеги! В данной я расскажу о том, как в системе 1С проходит работа с оператором «ИМЕЮЩИЕ», а также с аналогичной одноимённой секцией. Также будут даны примеры использования данного оператора в 1С 8.3 и проведена аналогия с другим схожим оператором для простоты понимания.   


1.      Оператор «WHERE»


Оператор «WHERE» (ГДЕ) – это конструкция особого вида, которая необходима для применения процедуры по отбору для данных, которые подлежат выгрузке.


Бывают ситуации, когда данные получаем по регистрам. В этих случаях лучше всего описывать условия по отбору внутри различных параметров в виртуальных таблицах. Когда работает оператор «ГДЕ», в первую очередь получаем все возможные записи, а затем только начнёт свою работу отбор, по этой причине запрос работает значительно медленнее, чем мог бы.


Далее можно увидеть пример вида запроса для получения списка контактных лиц с выбранной должностью. В данном случае параметр по отбору имеет вид «&ИмяПараметра». Этот параметр может принимать любой вид:



Рис. 1 Оператор WHERE 


2.      Оператор «HAVING»


Для начала стоит сделать обратить внимание на то, что такое агрегатные функции в 1С. Агрегатные функции в запросе – это те функции, которые являются математическими и применимы для набора входящих данных. По итогу они возвращают единственное значение. Использование агрегатных функций помогает определять сумму, максимальное или минимальное значение, общее число значений, среднее арифметическое, моду, медиану и так далее.


Этот оператор – «HAVING» (ИМЕЮЩИЕ) – похож на оператора «ГДЕ», который был описан в предыдущем пункте, но, в отличие от оператора «ГДЕ», он может быть применён на агрегатных функциях. Иные виды полей, помимо тех, которые задействуются данным оператором, должны иметь группировки.


Далее приведён скриншот примера, в котором происходит выборка наибольших цен из справочника номенклатуры. Когда значения более 1000, они группируются относительно вида номенклатуры:



Рис. 2 Использование агрегатных функций и оператора ИМЕЮЩИЕ


Если во вложенном запросе в 1С также находятся агрегатные функции, либо секция «СГРУППИРОВАТЬ ПО», то групповой оператор для произведения входа будет иметь следующий вид:



Рис. 3 Агрегатные функции во вложенном запросе в 1С


В отличие от оператора «WHERE», оператор «HAVING» используется для разнообразных группировок с наложением какого-то условия.


Рассмотрим пример: пусть необходимо вычесть общую калорийность различной еды, в зависимости от её цвета. Для этого потребуется использовать группировку по цвету, а затем агрегатную функцию «СУММА» относительно калорийности, вид кода представлен ниже:



Рис. 4 Пример использование операции 1С 8.3 ИМЕЮЩИЕ


Далее следует добавить условие по результату нашей группировки. Условие должно отобрать лишь те цвета, для которых общая калорийность будет больше 100, для этого действия код программы будет иметь следующий вид:



Рис. 5 Работа оператора программы 1С ИМЕЮЩИЕ


Можно наблюдать, что инструкция оператора 1С «ИМЕЮЩИЕ» даёт возможность наложения различных условий на значения агрегатных функций во время группировок.


Стоит отметить, что если агрегатные функции принимают участие в условии, то они не обязательно должны быть в перечне выборки, как показано на примере ниже:



Рис. 6 Агрегатные функции 1С в условии


В примере можно увидеть, что наша функция, которая является агрегатной, - «СУММА(Калорийность)» находится в секции «ИМЕЮЩИЕ», то есть в условии, но не находится в списке для общей выборки – «ВЫБРАТЬ».


Условием в операторе «HAVING» может быть и некоторое простое логическое выражение, и более сложное, которое состоит из простых, соединенных «И», «ИЛИ», «НЕ».


Рассмотрим пример, в котором нужно выбрать цвета продуктов, у которых суммарная калорийность между 200 и 300, в этом случае код запроса будет выглядеть следующим образом:



Рис. 7 Код запроса с агрегатными функциями


В данной статье был рассмотрен оператор «HAVING» в системе 1С, были даны общие понятия по данной секции, приведено сравнение с другим схожим оператором в программе 1С, а также рассмотрено использование оператора «ИМЕЮЩИЕ» на различных примерах.


Специалист компании «Кодерлайн»

Анна Лисовая

Наши проекты

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО "ДЕКОР"
ООО «ДЕКОР»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Управление персоналом и кадровый учет (HRM):
- Кадровый учет
- Расчет зарпл...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление холдингом

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- ...

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

Отрасль:
Производство

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Различная отраслевая специфика:
- Переработка давальческого сырья
- Уче...

ООО ХДМ Рус
ООО ХДМ Рус

Отрасль:
Торговля

Внедренное типовое решение:
1С:Управление торговлей

Управление цепочками поставок Оптовая торговля ...

ФГОУ ВПО «Горский государственный аграрный университет»
ФГОУ ВПО «Горский государственный аграрный университет»

Отрасль:
Образование

Внедренное типовое решение:
1С:Колледж ПРОФ

- Управление персоналом и кадровый учет (HRM):
Кадровый учет
Управление об...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделени...

ООО "РУКАРД-АУРА"
ООО "РУКАРД-АУРА"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Комплексная автоматизация

- Налоговый учет;...

АО «Вертолетная сервисная компания»
АО «Вертолетная сервисная компания»

Отрасль:
МТО эксплуатации вертолетной техники

Внедренное типовое решение:
1С:Бухгалтерия КОРП

- Консультации по сложным вопросам налогового и бухгалтерского учета;
- Ра...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Управление холдингом 8

Бухгалтерский учет;
Расчет зарплаты и кадровый учет;...

АО "Нижегородский водоканал"
АО "Нижегородский водоканал"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

-Кадровый учет
-Расчет зарплаты
-Регламентированная отчетность
-Подбор ...

ООО "ОМЗ"
ООО "ОМЗ"

Отрасль:
Металлургическая промышленность, металлообработка

Внедренное типовое решение:
1С:Управление производственным предприятием

Автоматизация бизнес-процессов...

Внедрение блока бухгалтерского учета «1С:Управление производственным предприятием»
ОАО «Издательство «Просвещение»

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление производственным предприятием

Бухгалтерский учет:
- Завершение периода;
- Регламентированная отчетнос...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение