← К заметкам

Заметки

Откуда берутся отрицательные статусы задач

В классе обычных статусов задачи есть «выполняется» и «завершена», а полученные данные внезапно содержат -1 или -2. Это не новые стадии и не испорченная запись: у задач есть ещё и метастатусы.

В параметрах tasks.task.list поле REAL_STATUS обозначает состояние выполнения. Поле STATUS используется для расчётного статуса и включает дополнительные значения:

  • -1 — задача просрочена;
  • -2 — задача не просмотрена;
  • -3 — задача почти просрочена.

Например, такой запрос к обычному tasks.task.list выбирает просроченные задачи, которые находятся в работе:

{
  "filter": {
    "REAL_STATUS": 3,
    "STATUS": -1
  },
  "select": ["ID", "TITLE", "DEADLINE"]
}

Фильтры описывают две разные характеристики одной задачи. Для отчёта «сколько завершено» нужен статус выполнения, а для «сколько просрочено» — срок или метастатус.

Имена параметров фильтра не стоит автоматически считать именами полей ответа. В актуальном описании метода STATUS сопоставлен полю subStatus. При разборе legacy PHP API встречаются константы CTasks::METASTATE_*; это отдельный набор относительно обычных состояний задачи.

Документация: tasks.task.list; Поля задачи.