30.09.2021 Анна Лисовая 7640
Работа оператора «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С:Зарплата и управление персоналом

- Перевод зарплатных баз с версии ЗУП 2.5 на версию ЗУП 3.1.
- Сопровождение в п...

ООО «ЛукБелОйл»
ООО «ЛукБелОйл»

Отрасль:
Нефтегазовая отрасль

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

- Обследовании бизнес-процессов «Документооборот», «Казначейство и Бюджети...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:ТОИР Управление ремонтами и обслуживанием оборудования

Мониторинг и анализ ключевых показателей деятельности предприятия Управле...

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

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

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

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

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

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

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

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

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

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

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

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

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

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

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

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

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

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

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

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

ООО «Иви.ру»
ООО «Иви.ру»

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

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

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

Филиал ГлавУпДК при МИД России фирма «Инпредкадры»
Филиал ГлавУпДК при МИД России фирма «Инпредкадры»

Отрасль:
Государственное управление

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

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

Внедрение 1С:Управление торговлей
ООО «Амперсенд»

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

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

- Оформление заказов поставщикам;
- Управление отношениями с поставщиками;...

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

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

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

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