REST API: Сложные фильтры задач
Материал из Planfix
								Сложные фильтры в REST API ПланФикса применяются в методе «/task/list» при получении списка задач. Фильтры задач задаются следующим набором параметров:
- type — числовой идентификатор фильтра.
 - operator — оператор фильтра, одно из значений из списка (equal, notequal, gt, lt), у разных фильтров могут быть разные допустимые операторы.
 - value — значение фильтра, может быть строкой, числом или сложным объектом, в зависимости от типа фильтра.
 - field — идентификатор пользовательского поля, для фильтров по пользовательским полям.
 
{
    "type": 12,
    "operator": "equal",
    "value": {
        "dateType": "otherDate",
        "dateValue": "22-03-2022"
    }
}
Пример запроса получения списка задач с передачей нескольких фильтров (используется логика И):
{
  "fields": "name",
  "filters": [{
        "type": 2,
        "operator": "equal",
        "value": "user:5"
     },
     {
        "type": 2,
        "operator": "equal",
        "value": "contact:7"
     },
     {
        "type": 2,
        "operator": "equal",
        "value": "group:8"
     }
  ]
}
| Тип | Название | Операторы | Формат value | 
|---|---|---|---|
| 12 | Дата создания | 
  | 
 Объект :  
"value": {
    "dateType": string,
    "dateValue": string,
    "dateFrom": string,
    "dateTo": string
}
 
dateType принимает следующие значения: 
 Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос. Примеры: "value": {
    "dateType": "thisWeek"
}
"value": {
    "dateType": "otherRange",
    "dateFrom": "20-03-2022",
    "dateTo": "22-03-2022"
}
"value": {
    "dateType": "otherDate_withTime",
    "dateFrom": "20-03-2022 12:00",
}
 | 
| 13 | Дата планируемого начала | ||
| 14 | Дата планируемого завершения | ||
| 21 | Дата последней активности (последнего добавленного комментария) | ||
| 19 | Дата фактического завершения | ||
| 20 | Дата выполнения | ||
| 38 | Дата последнего изменения | ||
| 79 | Дата последнего изменения или комментария | ||
| 103 | Пользовательское поле типа Дата | ||
| 1 | Постановщик | 
  | 
string - номер сотрудника/контакта/группы с префиксом.
 Например: “user:1”, “contact:5”, “group:3”  | 
| 2 | Исполнитель | ||
| 39 | Участник | ||
| 3 | Аудитор задачи или проекта | ||
| 59 | Аудитор проекта | ||
| 60 | Аудитор задачи | ||
| 108 | Пользовательское поле типа Контакт | ||
| 109 | Пользовательское поле типа Сотрудник | ||
| 112 | Пользовательское поле типа Группа, сотрудник, контакт | ||
| 113 | Пользовательское поле типа Список сотрудников | ||
| 22 | Без даты начала | 
  | 
int - 1
 boolean - true  | 
| 23 | Без даты завершения | ||
| 25 | С датой начала | ||
| 26 | С датой завершения | ||
| 16 | Повторяющаяся | ||
| 28 | Не повторяющаяся | ||
| 17 | Просроченная | ||
| 29 | Не просроченная | ||
| 33 | Без исполнителей | ||
| 41 | Без участников | ||
| 34 | Постановщик - сотрудник | ||
| 35 | Постановщик - контакт | ||
| 71 | Исполнитель - сотрудник | ||
| 69 | Исполнитель - контакт | ||
| 72 | Участник - сотрудник | ||
| 70 | Участник - контакт | ||
| 8 | Название задачи | 
  | 
string - осуществляется фильтр содержит / не содержит | 
| 101 | Пользовательское поле типа Строка | ||
| 102 | Пользовательское поле типа Число | 
  | 
int | 
| 105 | Пользовательское поле типа Чек-бокс | 
  | 
int - 1 / 0
 boolean  | 
| 106 | Пользовательское поле типа Список | 
  | 
string | 
| 107 | Пользовательское поле типа Справочник | 
  | 
int - идентификатор записи | 
| 114 | Пользовательское поле типа Набор записей справочника | 
  | 
int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой) | 
| 152 | Содержит значение в пользовательском поле | 
  | 
int - идентификатор поля | 
| 153 | Не содержит значение в пользовательском поле | 
  | 
int - идентификатор поля | 
| 11 | Содержит аналитику | 
  | 
int - идентификатор аналитики | 
| 18 | Не содержит аналитику | 
  | 
int - идентификатор аналитики | 
| 73 | Непосредственная надзадача | 
  | 
int - номер надзадачи | 
| 57 | Номер задачи | 
  | 
int - номер задачи | 
| 115 | Пользовательское поле типа Задача | ||
| 117 | Пользовательское поле типа Проект | 
  | 
int - номер проекта | 
| 51 | Шаблон | 
  | 
int - номер шаблона | 
| 5 | Проект | 
  | 
int - номер проекта | 
| 10 | Статус | 
  | 
int - идентификатор статуса или массив идентификаторов статусов для условия по нескольким статусам (ИЛИ) | 
| 7 | Контрагент | 
  | 
int - номер контрагента
 string - номер контрагента с префиксом, пример: “contact:1”  | 
| 24 | Процесс | 
  | 
int - идентификатор процесса |