Документация для разработчиков
Темная тема

getUserSearchFilter

\Bitrix\Main\UserUtils::getUserSearchFilter (
	$fields
)

Статический метод позволяет получить специально сформированный массив для фильтрации в Main\UserTable::getList по полям с персональными данными (имя, фамилия, отчество, название подразделения, должность).Работает в двух режимах: быстро с помощью Fulltext Index и более медленный вариант через правый LIKE USER_NAME LIKE "Текст%" - это называется правый лайк, когда поиск осуществляется только по тексту который начинается на заданную фразу, но может содержать разные окончания - такой поиск существенно быстрее чем у двухстороннего лайка "%текст%" или левостороенного "%текст" - за счет архитектуры хранения индексированных полей в БД (поддержка определяется автоматически).

Параметры

Параметр Описание С версии
fields Массив может содержать поля в любом сочетании:
  • NAME - имя
  • LAST_NAME - фамилия
  • SECOND_NAME - отчество
  • WORK_POSITION - должность
  • UF_DEPARTMENT_NAME - название подразделения
Или FIND - поле которое будет искать во всех перечисленных полях (Это аналог режима старого CUser::GetList в котором можно было задать фильтр NAME_SEARCH и получить результат)

Пример

$filter = \Bitrix\Main\UserUtils::getUserSearchFilter(Array(
	'FIND' => 'Мария Ившина'
));
$filter['IS_REAL_USER'] = 'Y'; 

$record = \Bitrix\Main\UserTable::getList(Array(
	'select' => Array('ID', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'WORK_POSITION', 'UF_DEPARTMENT'),
	'filter' => $filter
))->fetchAll();

print_r($record);


© «Битрикс», 2001-2024, «1С-Битрикс», 2024