REST API: Сложные фильтры сотрудников
Материал из Planfix
								
												
				Сложные фильтры в REST API ПланФикса применяются в методе «/user/list» при получении списка сотрудников. Фильтры сотрудников задаются следующим набором параметров:
- type — числовой идентификатор фильтра.
- operator — оператор фильтра, одно из значений списка (equal, notequal, gt, lt). У разных фильтров могут быть разные допустимые операторы.
- value — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом.
- field — идентификатор пользовательского поля справочника, по которому выполняется фильтр.
Пример запроса получения списка сотрудников с передачей нескольких фильтров по пользовательскому полю типа «Дата» и пользовательскому полю типа «Сотрудник» (используется логика И):
{
  "offset": 0,
  "pageSize": 100,
  "fields": "id,name,description,3,5",
  "filters": [
    {
      "type": 5103,
      "field": 3,
      "operator": "equal",
      "value": {
        "dateType": "otherRange",
        "dateFrom": "15-12-2022",
        "dateTo": "17-12-2022"
      }
    },
    {
      "type": 5109,
      "field": 5,
      "operator": "equal",
      "value": "user:50"
    }
  ]
}
| Тип | Название | Операторы | Формат value | 
|---|---|---|---|
| 9103 | Поле сотрудника типа Дата | 
 | Объект :  
"value": {
    "dateType": string,
    "dateValue": string,
    "dateFrom": string,
    "dateTo": string
}
 
 Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос. Примеры: "value": {
    "dateType": "thisWeek"
}
"value": {
    "dateType": "otherRange",
    "dateFrom": "01-12-2022",
    "dateTo": "06-12-2022"
}
"value": {
    "dateType": "otherDate_withTime",
    "dateFrom": "30-12-2022 12:00",
}
 | 
| 9120 | Дата рождения сотрудника | ||
| 9108 | Поле сотрудника типа Контакт | 
 | string — номер сотрудника/контакта/группы с префиксом. Например: “user:1”, “contact:5”, “group:3” | 
| 9109 | Поле сотрудника типа Сотрудник | ||
| 9110 | Поле сотрудника типа Контрагент | ||
| 9112 | Поле сотрудника типа Группа, сотрудник, контакт | ||
| 9113 | Поле сотрудника типа Список сотрудников | ||
| 9006 | ФИО сотрудника (поиск может выполняется по части ФИО) | 
 | string — осуществляется фильтр содержит / не содержит | 
| 9121 | Имя сотрудника | ||
| 9122 | Отчество сотрудника | ||
| 9123 | Фамилия сотрудника | ||
| 9101 | Поле сотрудника типа Строка | 
 | string - осуществляется фильтр равно / не равно / содержит / не содержит | 
| 9008 | Номер сотрудника | 
 | int | 
| 9102 | Поле сотрудника типа Число | ||
| 9105 | Поле сотрудника типа Чекбокс | 
 | int — 1/0 boolean | 
| 9106 | Поле сотрудника типа Список | 
 | string | 
| 9107 | Поле сотрудника типа Запись справочника | 
 | int — идентификатор записи | 
| 9111 | Пользовательское поле типа Набор значений | 
 | string - значение, для условия по нескольким значениям - значения через ; (точку с запятой) | 
| 9115 | Поле сотрудника типа Задача | 
 | int — номер задачи | 
| 9117 | Поле сотрудника типа Проект | 
 | int — номер проекта | 
| 9001 | Группа сотрудников | 
 | int — идентификатор группы | 
| 9002 | Номер телефона сотрудника | 
 | string — осуществляется фильтр содержит / не содержит | 
| 9004 | Короткий номер сотрудника | ||
| 9003 | Внешний email сотрудника | ||
| 9005 | Должность сотрудника | 
 | string — название должности | 
| 9124 | Язык интерфейса сотрудника | 
 | string — код языка, например: "En" | 
| 9126 | Идентификатор Telegram | 
 | int - идентификатор в Telegram |