prepareQuery
\Bitrix\Main\ORM\Query\Query public \Bitrix\HumanResources\Builder\Structure\NodeMemberDataBuilder::prepareQuery( );
Метод создает ORM-запрос к таблице участников узлов структуры и применяет настройки билдера. Нестатический метод.
Параметры
Без параметров.
Возвращаемое значение
Метод возвращает объект \Bitrix\Main\ORM\Query\Query. Запрос учитывает заданные поля выборки, ограничение, смещение, время кеширования, сортировку и фильтры.
Исключения
Метод может выбросить \Bitrix\HumanResources\Exception\NodeAccessFilterException, \Bitrix\Main\ArgumentException, \Bitrix\Main\ObjectPropertyException или \Bitrix\Main\SystemException. Исключение \InvalidArgumentException возникает, если устаревший список ролей структуры используется вместе с roleFilter в NodeMemberFilter.
Особенности
Метод объединяет добавленные фильтры с помощью логики AND. Для NodeFilter и NodeSort метод задает псевдоним NODE.
По умолчанию время кеширования запроса составляет 86400 секунд. Метод применяет ограничение, смещение и время кеширования, только если их значения больше нуля.
Если набор полей не изменен через setSelect(), запрос выбирает поля ID, ENTITY_TYPE, ENTITY_ID, NODE_ID, ACTIVE, ADDED_BY, CREATED_AT, UPDATED_AT и ROLE.
Пример
<?php
use Bitrix\HumanResources\Builder\Structure\Filter\Column\EntityIdFilter;
use Bitrix\HumanResources\Builder\Structure\Filter\NodeMemberFilter;
use Bitrix\HumanResources\Builder\Structure\NodeMemberDataBuilder;
use Bitrix\Main\Loader;
if (!Loader::includeModule('humanresources'))
{
echo 'Модуль humanresources не установлен';
return;
}
// Идентификатор пользователя, который состоит в структуре
$userId = 1;
try
{
$builder = NodeMemberDataBuilder::createWithFilter(
new NodeMemberFilter(
entityIdFilter: EntityIdFilter::fromEntityId($userId),
),
);
$query = $builder->prepareQuery();
echo $query->getQuery();
}
catch (\Throwable $exception)
{
echo 'Не удалось подготовить запрос: ' . $exception->getMessage();
}