user.search
Scope: user Права на выполнение: для всех
Перечень полей пользователей Битрикс24, который будет получен в результате выполнения метода, зависит от скоупа приложения/вебхука. Подробности о доступе к данным пользователей можно узнать в статье.
Метод для получения списка пользователей с ускоренным поиском по персональным данным (имя, фамилия, отчество, название подразделения, должность). Работает в двух режимах: быстро с помощью Fulltext Index и более медленный вариант через правый LIKE USER_NAME LIKE "Текст%" - это называется правый лайк, когда поиск осуществляется только по тексту который начинается на заданную фразу, но может содержать разные окончания - такой поиск существенно быстрее чем у двухстороннего лайка "%текст%" или левостороннего "%текст" - за счет архитектуры хранения идексированных полей в БД (поддержка определяется автоматически).
Параметры
Параметр | Описание | С версии |
---|---|---|
FILTER | Массив может содержать поля в любом сочетании:
Или 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 }
Сообщение не промодерировано, возможны ошибки и неточности.
|
Как получить не уволенных сотрудников:
'FILTER' => [ 'UF_DEPARTMENT' => [5, 13, 15, 17, 19, 21, 23, 9], // фильтр по департаментам 'ACTIVE' => 'Y' // используйте эту конструкцию чтобы получить не уволенных сотрудников ] |
Сообщение не промодерировано, возможны ошибки и неточности.
|
А почему отчество не испозуется в запросе? Расчёт на то, что среди пользователей не будет тех, у кого ФИО отличается только отчеством?
Или предполагается доп обработка массива полученных данных? |
Сообщение не промодерировано, возможны ошибки и неточности.
|
Вот пример, поиска пользователя по ФИО, только в вебхуке или приложении надо выдать права на 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] => [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 ) ) |
Сообщение не промодерировано, возможны ошибки и неточности.
|
||||
Не работает. Получение пользователей экстранет возможно только по конкретному ID.
| ||||
Олег Степанов
|
'ADMIN_MODE': 'True' - только используя этот дополнительный параметр (например, так (это php): ["FILTER"=> ["USER_TYPE"=>"employee"],"ADMIN_MODE"=>"True"] ) Вы получите всех пользователей, включая Экстранет.
|
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.