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 Поле справочника типа Дата
  • equal
  • notequal
  • gt
  • lt
Объект :
 
"value": {
    "dateType": string,
    "dateValue": string,
    "dateFrom": string,
    "dateTo": string
}


dateType принимает следующие значения:

  • today - сегодня
  • yesterday - вчера
  • tomorrow - завтра
  • thisWeek - текущая неделя
  • lastWeek
  • nextWeek
  • thisMonth
  • lastMonth
  • nextMonth
  • last - последние n дней, n передается в dateValue
  • next - следующие n дней, n передается в dateValue
  • in - через n дней, n передается в dateValue
  • otherDate - точная дата, дата передается в формате дд-мм-гггг в dateFrom
  • otherRange - точный период, даты передаются в формате дд-мм-гггг в dateFrom и dateTo
  • otherDate_withTime - точная дата-время, дата передается в формате "дд-мм-гггг чч:мм" в dateFrom
  • otherRange_withTime - точный период с заданным временем, даты передаются в формате "дд-мм-гггг чч:мм" в dateFrom и dateTo

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

Примеры:

"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 Поле справочника типа Контакт
6109 Поле справочника типа Сотрудник
6110 Поле справочника типа Контрагент
6112 Поле справочника типа Группа, сотрудник, контакт
6113 Поле справочника типа Список сотрудников
*equal
  • notequal
string - номер сотрудника/контакта/группы с префиксом.

Например: “user:1”, “contact:5”, “group:3”




|2 || Ответственный |- |47 || Доступен пользователю |- |48 || Может редактироваться пользователем |- |4108 || Пользовательское поле типа Контакт |- |4109 || Пользовательское поле типа Сотрудник |- |4112 || Пользовательское поле типа Группа, сотрудник, контакт |- |4113 || Пользовательское поле типа Список сотрудников |- |4006 || Является компанией | rowspan="8" |

  • equal

| rowspan="8" | int - 1 boolean - true |- |4007 || Является контактом |- |4010 || С доступом в ПланФикс |- |4012 || Может быть участником задач |- |4017 || Не может быть участником задач |- |4013 || Может быть контрагентом задач |- |4018 || Не может быть контрагентом задач |- |4201 || Контрагент без активных задач |- |4202 || Не участвует в активных задачах |- |4203 || Контрагент с активными задачами |- |4204 || Участвует в активных задачах |- |4205 || Контрагент в просроченных задачах |- |4206 || Участвует в просроченных задачах |- |4001 || Имя или фамилия контакта / название компании | rowspan="13" |

  • equal
  • notequal

| rowspan="13" | string - осуществляется фильтр содержит / не содержит |- |4002 || Должность |- |4003 || Телефон |- |4004 || Адрес |- |4005 || Email |- |4221 || Дополнительный email |- |4014 || Имя контакта / Название компании |- |4015 || Фамилия контакта |- |4101 || Пользовательское поле типа Строка |- |4102 || Пользовательское поле типа Число |

  • equal
  • notequal
  • gt
  • lt

| int |- |4105 || Пользовательское поле типа Чек-бокс |

  • equal
  • notequal

| int - 1 / 0 boolean |- |4106 || Пользовательское поле типа Список |

  • equal
  • notequal

| string |- |4107 || Пользовательское поле типа Справочник |

  • equal
  • notequal

| int - идентификатор записи |- |4114 || Пользовательское поле типа Набор записей справочника |

  • equal
  • notequal

| int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой) |- |4111 || Пользовательское поле типа Набор значений |

  • equal
  • notequal

| string - значение, для условия по нескольким значениям - значения через ; (точку с запятой) |- |4008 || Группа контактов |

  • equal
  • notequal

| int - идентификатор группы, можно получить методом /contact/groups |- |4016 || Шаблон контакта |

  • equal
  • notequal

| int - номер шаблона, список шаблонов контактов можно получить методом /contact/templates |- |}


Перейти