Заметки
Откуда берутся отрицательные статусы задач
В классе обычных статусов задачи есть «выполняется» и «завершена», а полученные данные внезапно содержат -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; Поля задачи.