30.09.2021 Анна Лисовая 7616
Работа оператора «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С, а также рассмотрено использование оператора «ИМЕЮЩИЕ» на различных примерах.


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

Анна Лисовая

Наши проекты

ООО «Вистеон Автоприбор Электроникс»
ООО «Вистеон Автоприбор Электроникс»

Отрасль:

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

- Управленческий учет; - Расчет зарплаты; - Логистика адресного склада; - Учет ...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

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

ЗАО «Многопрофильная формирующая авиагруппа» (ЗАО МФГ)
ЗАО «Многопрофильная формирующая авиагруппа» (ЗАО МФГ)

Отрасль:
Оптовая торговля транспортными средствами и оборудованием

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

- Финансы, управленческий учет, мониторинг показателей
- Бухгалтерский уче...

Внедрение 1С:Управление торговлей в оптово-розничной компании «Много Плитки»
ООО «Много Плитки»

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

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

Закупки (снабжение) и управление отношениями с поставщиками:
- Оформление ...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

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

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

Бухгалтерский учет
- Банк и касса
- Расчеты с контрагентами
Налоговый ...

Автоматизация складских операций на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

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

Реализовали разработку уникального модуля «Интернет-магазины» на базе прог...

ООО «Фипар»
ООО «Фипар»

Отрасль:

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

Специалисты «Кодерлайн» внедрили «1С:ERP. Управление предприятием 2» и автома...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

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

- Внедрение функционала управления НСИ;
- Рефакторинг;
- Оптимизация общег...

ХИТЕК-ГРУП
ХИТЕК-ГРУП

Отрасль:
Продажа парикмахерского инструмента и аксессуаров

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

Документооборот (ECM)
• Делопроизводство
Управление бизнес-процессами и И...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

Автоматизации учета затрат и расчета себестоимости с использованием конфигурации «Koderline: Управление проектами строительства скважин»
ООО «Буровая сервисная компания «ГРАНД»

Отрасль:
Нефтесервис

Внедренное типовое решение:
«Koderline: Управление проектами строительства скважин»

Учет и планирование:
- собственную разработку компании «Кодерлайн» – конф...

Автоматизация производственного планирования нефтесервисной компании на базе 1С:ЕРП 2.0
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

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

- Блок планирования проектов (процессы объемно-календарного планирования пр...

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

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

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

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