30.09.2021 Анна Лисовая 7811
Работа оператора «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 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

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

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

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

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

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

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

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

ООО "АСК ИНЖИНИРИНГ"
ООО "АСК ИНЖИНИРИНГ"

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

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

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

ООО «Еврорадиаторы»
ООО «Еврорадиаторы»

Отрасль:
1С:ERP 2.4

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

Специалисты «Кодерлайн» помогли перенести базу из текущей системы «1С:ERP 2.2» ...

ООО "НЦКТ"
ООО "НЦКТ"

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

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

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

ООО «Экслтрейд»
ООО «Экслтрейд»

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

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

Оформление заказов поставщикам Оптовая торговля Торговые операции ...

Внедрение блоков в 1С:Комплексная автоматизация 8
ООО «Больцен Рус»

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

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

- Оперативный учет...

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

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

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

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

ООО «ПЛЮСПЭЙ»
ООО «ПЛЮСПЭЙ»

Отрасль:
Организацией расчетов посредством электронных средств платежа

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

- Разработка подсистемы оперативного учета транзакций...

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

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

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

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

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

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

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в дан...

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

Отрасль:
Бухгалтерские услуги

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

- Интеграция продукта с базой данных оперативного учета Axapta;
- Доработка фу...

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

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

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

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