30.09.2021 Анна Лисовая 7861
Работа оператора «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С:Управление корпоративными финансами

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

ООО «ЛИГА-ТРАНС»
ООО «ЛИГА-ТРАНС»

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

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

- Сделано ТЗ по автоматизации учета МСФО: - Разработана карта бюджета доходо...

Апгрейд 1С:Бухгалтерия 8 ПРОФ (USB) до версии 1С:Бухгалтерия 8 КОРП (USB)
ООО «Ява Строй»

Отрасль:
Строительство

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

- Создание чистых конфигураций. Внесение изменений в БД ЗУП и новая расчетна...

Фармацевтическое предприятие «Оболенское»
АО «Фармацевтическое предприятие «Оболенское»

Отрасль:
Фармацевтическая промышленность

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

- Адаптации блоков/подсистем планирования продаж, закупок и казначейства. ...

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

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

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

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

Разработка функциональных требований к информсистеме на базе «1С:Управление холдингом 8»
ФГУП «СВЯЗЬ-безопасность»

Отрасль:
Охранные услуги

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

- Зафиксировали процессы по блокам бухгалтерского, налогового учета, казнач...

ЗАО «Инвестгеосервис»
ЗАО «Инвестгеосервис»

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

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

Объемно-календарное планирование производства Автоматизация бизнес-проце...

Автоматизация контроля исполнительской дисциплины на базе ПП «1С:Документооборот 8 ПРОФ»
ООО «ФСК Лидер»

Отрасль:
Строительство и девелопмент

Внедренное типовое решение:
1С:Документооборот 8 ПРОФ

- Делопроизводство;
- Учет и хранение документов;
- Учет и контроль исполне...

ПЭК
ПЭК

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

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

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

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

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

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

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

Внедрение «1С:Бухгалтерия 8 ПРОФ» в компании «Мостехника»
ООО «Мостехника»

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

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

Документооборот (ECM):
- Учет рабочего времени;
Управление персоналом и ка...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в
ИП Любо Виктория Александровна (ООО «Рекреация»)

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

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Осуществлены разработки:
– отчета по спецификации Заказа;
– загрузки сп...

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

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

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

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