• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/entity_query.php
  • Класс: CEntityQuery
  • Вызов: CEntityQuery::checkFilterAggregation
protected function checkFilterAggregation($filter)
{
	foreach ($filter as $filter_def => $filter_match)
	{
		if ($filter_def === 'LOGIC')
		{
			continue;
		}

		if (!is_numeric($filter_def))
		{
			$csw_result = CSQLWhere::MakeOperation($filter_def);
			list($definition, ) = array_values($csw_result);

			$chain = $this->filter_chains[$definition];
			$last = $chain->getLastElement();

			$is_having = $last->getValue() instanceof CExpressionEntityField && $last->getValue()->IsAggregated();
		}
		elseif (is_array($filter_match))
		{
			$is_having = $this->checkFilterAggregation($filter_match);
		}

		if ($is_having)
		{
			return true;
		}
	}

	return false;
}