• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/query/query.php
  • Класс: BitrixMainORMQueryQuery
  • Вызов: Query::checkChainsDistinct
protected function checkChainsDistinct($chain)
{
	/** @var Chain[] $chains */
	$chains = is_array($chain) ? $chain : array($chain);

	foreach ($chains as $chain)
	{
		$field = $chain->getLastElement()->getValue();

		if ($field instanceof ExpressionField)
		{
			$expression = $field->getFullExpression();
			$expression = ExpressionField::removeSubqueries($expression);

			preg_match_all('/(?:^|[^a-z0-9_])(DISTINCT)[s(]+/i', $expression, $matches);

			if (!empty($matches[1]))
			{
				return true;
			}
		}
	}

	return false;
}