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

user.search

Scope: user Права на выполнение: для всех

Перечень полей пользователей Битрикс24, который будет получен в результате выполнения метода, зависит от скоупа приложения/вебхука. Подробности о доступе к данным пользователей можно узнать в статье.

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

Параметры

Параметр Описание С версии
FILTER Массив может содержать поля в любом сочетании:
  • NAME - имя
  • LAST_NAME - фамилия
  • WORK_POSITION - должность
  • UF_DEPARTMENT_NAME - название подразделения
  • USER_TYPE - тип пользователя. Может принимать следующие значения:
    employee - сотрудник,
    extranet - пользователь экстранета,
    email - почтовый пользователь

Или FIND - поле которое будет искать во всех перечисленных полях (Это аналог режима старого CUser::GetList в котором можно было задать фильтр NAME_SEARCH и получить результат)

Метод может работать либо с фильтрацией с помощью ключа FIND или со всеми другими полями. Одновременно использовать FIND и любое другое поле - нельзя.

Метод наследует поведение метода user.get все параметры из этой функции так же доступны.

Пример

Результат:

{
	"result": [
		{
			"ID": "2",
			"ACTIVE": true,
			"EMAIL": "m.ivshina@example.com",
			"NAME": "Мария",
			"LAST_NAME": "Ившина",
			"SECOND_NAME": "",
			"PERSONAL_GENDER": "F",
			"PERSONAL_PROFESSION": "",
			"PERSONAL_WWW": "http://shelenkov.com/horse/events.html",
			"PERSONAL_BIRTHDAY": "1984-04-29T02:00:00+04:00",
			"PERSONAL_PHOTO": "http://www.hazz/upload/main/982/42-17082203.gif",
			"PERSONAL_ICQ": "431-874-61",
			"PERSONAL_PHONE": "",
			"PERSONAL_FAX": "",
			"PERSONAL_MOBILE": "",
			"PERSONAL_PAGER": "",
			"PERSONAL_STREET": "",
			"PERSONAL_CITY": "",
			"PERSONAL_STATE": "",
			"PERSONAL_ZIP": "",
			"PERSONAL_COUNTRY": "0",
			"WORK_COMPANY": "",
			"WORK_POSITION": "IT-\"специалист\"",
			"WORK_PHONE": "+7 495 188 46 29",
			"UF_DEPARTMENT": [
				51,
				55,
				84
			],
			"UF_INTERESTS": null,
			"UF_SKILLS": null,
			"UF_WEB_SITES": null,
			"UF_XING": null,
			"UF_LINKEDIN": null,
			"UF_FACEBOOK": null,
			"UF_TWITTER": null,
			"UF_SKYPE": null,
			"UF_DISTRICT": null,
			"UF_PHONE_INNER": "4629"
		}
	],
	"total": 1
}

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Леонид Захаров
Сообщение не промодерировано, возможны ошибки и неточности.
Как получить не уволенных сотрудников:
       'FILTER' => [
           'UF_DEPARTMENT' => [5, 13, 15, 17, 19, 21, 23, 9], // фильтр по департаментам
           'ACTIVE' => 'Y' // используйте эту конструкцию чтобы получить не уволенных сотрудников
       ]
0
Данис Зарипов
Сообщение не промодерировано, возможны ошибки и неточности.
А почему отчество не испозуется в запросе? Расчёт на то, что среди пользователей не будет тех, у кого ФИО отличается только отчеством?

Или предполагается доп обработка массива полученных данных?
1
Вячеслав Докукин
Сообщение не промодерировано, возможны ошибки и неточности.
Вот пример, поиска пользователя по ФИО, только в вебхуке или приложении надо выдать права на user иначе будет ошибка



$result_user = CRest::call(
'user.search',
array("FILTER" => array("FIND" => "Пирожков Роман"))
);




//result
Array
(
   [result] => Array
       (
           [0] => Array
               (
                   [ID] => 1
                   [XML_ID] => 46738392
                   [ACTIVE] => 1
                   [NAME] => Роман
                   [LAST_NAME] => Пирожков
                   [SECOND_NAME] =>
                   [EMAIL] => crm@calit.ru
                   [LAST_LOGIN] => 2023-02-15T09:52:49+03:00
                   [DATE_REGISTER] => 2022-12-28T03:00:00+03:00
                   [TIME_ZONE] =>
                   [IS_ONLINE] => Y
                   [TIME_ZONE_OFFSET] => 0
                   [TIMESTAMP_X] => Array
                       (
                       )

                   [LAST_ACTIVITY_DATE] => Array
                       (
                       )

                   [PERSONAL_GENDER] =>
                   [PERSONAL_WWW] =>
                   [PERSONAL_BIRTHDAY] =>
                   [PERSONAL_MOBILE] =>
                   [PERSONAL_CITY] =>
                   [WORK_PHONE] =>
                   [WORK_POSITION] => Исполнительный Директор
                   [UF_EMPLOYMENT_DATE] =>
                   [UF_DEPARTMENT] => Array
                       (
                           [0] => 1
                       )

                   [UF_USR_1673511597012] => +7 888 085-48-86
                   [USER_TYPE] => employee
               )

       )

   [total] => 1
   [time] => Array
       (
           [start] => 1676497622.4253
           [finish] => 1676497622.4831
           [duration] => 0.057794094085693
           [processing] => 0.014718055725098
           [date_start] => 2023-02-16T00:47:02+03:00
           [date_finish] => 2023-02-16T00:47:02+03:00
           [operating_reset_at] => 1676498222
           [operating] => 0
       )

)
1
Игорь Матвеев
Сообщение не промодерировано, возможны ошибки и неточности.
Код
["FILTER"=> ["USER_TYPE"=>"extranet"]] 

Не работает. Получение пользователей экстранет возможно только по конкретному ID.

Код
["FILTER"=> ["ID"=>"extranet_user_id"]]
2
Олег Степанов
'ADMIN_MODE': 'True' - только используя этот дополнительный параметр (например, так (это php): ["FILTER"=> ["USER_TYPE"=>"employee"],"ADMIN_MODE"=>"True"] ) Вы получите всех пользователей, включая Экстранет.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024