prepareQuery
\Bitrix\Main\ORM\Query\Query public \Bitrix\HumanResources\Builder\Structure\NodeDataBuilder::prepareQuery( );
Метод создает ORM-запрос к таблице узлов структуры и применяет настройки билдера. Нестатический метод.
Параметры
Без параметров.
Возвращаемое значение
Метод возвращает объект \Bitrix\Main\ORM\Query\Query. Запрос учитывает заданные поля выборки, ограничение, смещение, время кеширования, сортировку и фильтры.
Исключения
Метод может выбросить \Bitrix\HumanResources\Exception\NodeAccessFilterException, \Bitrix\Main\ArgumentException, \Bitrix\Main\ObjectPropertyException или \Bitrix\Main\SystemException.
Особенности
Метод объединяет добавленные фильтры с помощью логики AND. Если направление поиска в NodeFilter не равно null, запрос также выбирает связь CHILD_NODES.
По умолчанию время кеширования запроса составляет 86400 секунд. Метод применяет ограничение и смещение, только если их значения больше нуля. Значение времени кеширования меньше нуля не передается в ORM-запрос.
Если набор полей не изменен через setSelect(), запрос выбирает поля ID, TYPE, PARENT_ID, STRUCTURE_ID, ACTIVE, GLOBAL_ACTIVE, NAME, DESCRIPTION, ACCESS_CODE, COLOR_NAME и SORT.
Пример
<?php
use Bitrix\HumanResources\Builder\Structure\Filter\NodeFilter;
use Bitrix\HumanResources\Builder\Structure\NodeDataBuilder;
use Bitrix\Main\Loader;
if (!Loader::includeModule('humanresources'))
{
echo 'Модуль humanresources не установлен';
return;
}
// Идентификатор существующего узла структуры
$nodeId = 1;
try
{
$builder = NodeDataBuilder::createWithFilter(
NodeFilter::createWithNodeId($nodeId),
);
$query = $builder->prepareQuery();
echo $query->getQuery();
}
catch (\Throwable $exception)
{
echo 'Не удалось подготовить запрос: ' . $exception->getMessage();
}