REST API: Сложные фильтры справочников
Материал из Planfix
Сложные фильтры в REST API ПланФикса применяются в методе «/directory/{id}/entry/list» при получении записей справочников. Фильтры справочников задаются следующим набором параметров:
- type — числовой идентификатор фильтра.
- operator — оператор фильтра, одно из значений списка (equal, notequal, gt, lt). У разных фильтров могут быть разные допустимые операторы.
- value — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом.
- field — идентификатор пользовательского поля аналитики, по которому выполняется фильтр.
Пример запроса получения списка записей справочника с передачей нескольких фильтров, по пользовательскому полю типа «Дата» и пользовательскому полю типа «Список сотрудников» (используется логика И):
{
"offset": 0,
"pageSize": 100,
"fields": "directory,parentKey,key,3,5",
"filters": [
{
"type": 6103,
"field": 3,
"operator": "equal",
"value": {
"dateType": "otherRange",
"dateFrom": "15-12-2022",
"dateTo": "17-12-2022"
}
},
{
"type": 6109,
"field": 5,
"operator": "equal",
"value": "user:50"
}
]
}
| Тип | Название | Операторы | Формат value |
|---|---|---|---|
| 6103 | Поле справочника типа Дата |
|
Объект :
"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",
}
|
| 6108 | Поле справочника типа Контакт | ||
|
string - номер сотрудника/контакта/группы с префиксом.
Например: “user:1”, “contact:5”, “group:3” | ||
| 6109 | Поле справочника типа Сотрудник | ||
| 6110 | Поле справочника типа Контрагент | ||
| 6112 | Поле справочника типа Группа, сотрудник, контакт | ||
| 6113 | Поле справочника типа Список сотрудников |
| Тип | Название | Операторы | Формат value |
|---|---|---|---|
| 2 | Ответственный | ||
| 47 | Доступен пользователю | ||
| 48 | Может редактироваться пользователем | ||
| 4108 | Пользовательское поле типа Контакт | ||
| 4109 | Пользовательское поле типа Сотрудник | ||
| 4112 | Пользовательское поле типа Группа, сотрудник, контакт | ||
| 4113 | Пользовательское поле типа Список сотрудников | ||
| 4006 | Является компанией |
|
int - 1
boolean - true |
| 4007 | Является контактом | ||
| 4010 | С доступом в ПланФикс | ||
| 4012 | Может быть участником задач | ||
| 4017 | Не может быть участником задач | ||
| 4013 | Может быть контрагентом задач | ||
| 4018 | Не может быть контрагентом задач | ||
| 4201 | Контрагент без активных задач | ||
| 4202 | Не участвует в активных задачах | ||
| 4203 | Контрагент с активными задачами | ||
| 4204 | Участвует в активных задачах | ||
| 4205 | Контрагент в просроченных задачах | ||
| 4206 | Участвует в просроченных задачах | ||
| 4001 | Имя или фамилия контакта / название компании |
|
string - осуществляется фильтр содержит / не содержит |
| 4002 | Должность | ||
| 4003 | Телефон | ||
| 4004 | Адрес | ||
| 4005 | |||
| 4221 | Дополнительный email | ||
| 4014 | Имя контакта / Название компании | ||
| 4015 | Фамилия контакта | ||
| 4101 | Пользовательское поле типа Строка | ||
| 4102 | Пользовательское поле типа Число |
|
int |
| 4105 | Пользовательское поле типа Чек-бокс |
|
int - 1 / 0
boolean |
| 4106 | Пользовательское поле типа Список |
|
string |
| 4107 | Пользовательское поле типа Справочник |
|
int - идентификатор записи |
| 4114 | Пользовательское поле типа Набор записей справочника |
|
int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой) |
| 4111 | Пользовательское поле типа Набор значений |
|
string - значение, для условия по нескольким значениям - значения через ; (точку с запятой) |
| 4008 | Группа контактов |
|
int - идентификатор группы, можно получить методом /contact/groups |
| 4016 | Шаблон контакта |
|
int - номер шаблона, список шаблонов контактов можно получить методом /contact/templates |