Документация для разработчиков
Темная тема

tasks.task.list

Описание

Возвращает массив задач, каждая из которых содержит массив полей. В отличие от task.item.list параметры в запросе tasks.task.list можно указывать в любом порядке, а также можно не указывать ненужные параметры.

Для получения данных по всем задачам пользователь должен обладать админскими правами. Руководитель подразделения получит доступ только к задачам в своей ветке иерархии.

Также можно получить задачи в "Избранном", установив фильтрацию по параметру $filter[::SUBFILTER-PARAMS][FAVORITE]=Y.

Внимание! Необходимо указать поля в select, т.к. поля по умолчанию могут быть изменены в будущем.

Параметры

ПараметрОписание
orderМассив для сортировки результата. Массив вида {"поле_сортировки": 'направление сортировки' [, ...]}.
Поле для сортировки может принимать значения:
  • ID - идентификатор задачи;
  • TITLE - название задачи;
  • TIME_SPENT_IN_LOGS - затраченное время из истории изменений;
  • DATE_START - дата старта;
  • CREATED_DATE - дата создания;
  • CHANGED_DATE - дата последнего изменения;
  • CLOSED_DATE - дата завершения;
  • START_DATE_PLAN - плановое начало;
  • END_DATE_PLAN - плановое завершение;
  • DEADLINE - крайний срок;
  • REAL_STATUS - статус задачи. Константы отражающие статусы задач:
    • STATE_NEW = 1;
    • STATE_PENDING = 2;
    • STATE_IN_PROGRESS = 3;
    • STATE_SUPPOSEDLY_COMPLETED = 4;
    • STATE_COMPLETED = 5;
    • STATE_DEFERRED = 6;
    • STATE_DECLINED = 7;
  • STATUS_COMPLETE - флаг завершенности задачи;
  • PRIORITY - приоритет;
  • MARK - оценка;
  • CREATED_BY_LAST_NAME - постановщик; 
  • RESPONSIBLE_LAST_NAME - ответственный; 
  • GROUP_ID - рабочая группа. 
  • TIME_ESTIMATE - затраченное время;
  • ALLOW_CHANGE_DEADLINE - флаг "Разрешить ответственному менять крайний срок";
  • ALLOW_TIME_TRACKING - флаг включения учета затраченного времени по задаче;
  • MATCH_WORK_TIME - пропустить выходные дни;
  • FAVORITE - Избранное;
  • SORTING - индекс сортировки;
  • MESSAGE_ID - идентификатор поискового индекса;

Примечание: В коробочной версии этот список полей для сортировки можно вернуть методом CTasks::getAvailableOrderFields().

Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
 Необязательный. По умолчанию фильтруется по убыванию идентификатора задачи.
filterМассив вида {"фильтруемое_поле": "значение фильтра" [, ...]}. Фильтруемое поле может принимать значения:
  • ID - идентификатор задачи;
  • PARENT_ID - идентификатор родительской задачи;
  • GROUP_ID - идентификатор рабочей группы;
  • CREATED_BY - постановщик;
  • STATUS_CHANGED_BY - пользователь, последним изменивший статус задачи;
  • PRIORITY - приоритет;
  • FORUM_TOPIC_ID - идентификатор темы форума;
  • RESPONSIBLE_ID - ответственный;
  • TITLE - название задачи (можно искать по шаблону [%_]) ;
  • TAG -  тэг;
  • REAL_STATUS - статус задачи. Константы отражающие статусы задач:
    • STATE_NEW = 1;
    • STATE_PENDING = 2;
    • STATE_IN_PROGRESS = 3;
    • STATE_SUPPOSEDLY_COMPLETED = 4;
    • STATE_COMPLETED = 5;
    • STATE_DEFERRED = 6;
    • STATE_DECLINED = 7;
  • STATUS - статус для сортировки. Аналогичен REAL_STATUS, но имеет дополнительно три мета-статуса:
    • -3 - задача почти просрочена;
    • -2 - не просмотренная задача;
    • -1 - просроченная задача.
  • MARK - оценка;
  • SITE_ID - идентификатор сайта;
  • ADD_IN_REPORT - задача в отчете (Y|N);
  • DATE_START - дата начала выполнения;
  • DEADLINE - крайний срок;
  • CREATED_DATE - дата создания;
  • CLOSED_DATE - дата завершения;
  • CHANGED_DATE - дата последнего изменения;
  • ACCOMPLICES - идентификатор соисполнителя;
  • AUDITOR - идентификатор наблюдателя;
  • DEPENDS_ON - идентификатор предыдущей задачи; 
  • ONLY_ROOT_TASKS -  только задачи, которые не являются подзадачами (корневые задачи), а также подзадачи родительской задачи, к которой текущий пользователь доступа не имеет (Y|N).
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

"значения фильтра" - одиночное значение или массив.

Необязательный. По умолчанию записи не фильтруются.

selectМассив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы.

Поле сортировки может принимать значения:

  • ID - идентификатор задачи;
  • PARENT_ID - идентификатор родительской задачи;
  • TITLE - название задачи;
  • DESCRIPTION - описание;
  • MARK - оценка;
  • PRIORITY - приоритет:
    • 0 - низкий;
    • 1 - средний;
    • 2 - высокий.
  • STATUS - статус;
  • MULTITASK - множественная задача;
  • NOT_VIEWED - непросмотренная задача;
  • REPLICATE - повторяемая задача;
  • GROUP_ID - рабочая группа. 
  • STAGE_ID - стадия;
  • CREATED_BY - постановщик;
  • CREATED_DATE - дата создания;
  • RESPONSIBLE_ID - исполнитель;
  • ACCOMPLICES - идентификатор соисполнителя;
  • AUDITORS - идентификатор аудитора;
  • CHANGED_BY - кем изменена задача;
  • CHANGED_DATE - дата изменения;
  • STATUS_CHANGED_DATE - кто изменил статус;
  • CLOSED_BY - кто закрыл задачу;
  • CLOSED_DATE - дата закрытия задачи;
  • DATE_START - дата начала;
  • DEADLINE - крайний срок;
  • START_DATE_PLAN - плановое начало;
  • END_DATE_PLAN - плановое завершение;
  • GUID - GUID (статистически уникальный 128-битный идентификатор);
  • XML_ID - внешний код;
  • COMMENTS_COUNT - количество комментариев;
  • NEW_COMMENTS_COUNT - количество новых комментариев;
  • TASK_CONTROL - принять в работу;
  • ADD_IN_REPORT - добавить в отчет;
  • FORKED_BY_TEMPLATE_ID - создано из шаблона;
  • TIME_ESTIMATE - затраченное время;
  • TIME_SPENT_IN_LOGS - затраченное время из истории изменений;
  • MATCH_WORK_TIME - пропустить выходные дни;
  • FORUM_TOPIC_ID - идентификатор темы форума;
  • FORUM_ID - идентификатор форума;
  • SITE_ID - идентификатор сайта;
  • SUBORDINATE - задача подчиненного;
  • FAVORITE - Избранное;
  • VIEWED_DATE - дата последнего просмотра;
  • SORTING - индекс сортировки;
  • DURATION_PLAN - затрачено (план);
  • DURATION_FACT - затрачено (фактически);
  • DURATION_TYPE - привязка к элементам CRM;

По умолчанию будут возвращены все невычисляемые поля основной таблицы запроса.

Список полей можно уточнить, отправив запрос tasks.task.getFields.

limitЧисло записей. Параметр указывается, если нужно получить число записей более значения по умолчанию (50).

Примеры

  1. Вывод всех задач с названием "task for test", отбор по полям ID, TITLE, STATUS, сортировка по полю ID (сортировка по возрастанию):
    BX24.callMethod(
    	'tasks.task.list', 
    	{filter:{TITLE:'task for test'}, select: ['ID','TITLE','STATUS'], order:{ID:'asc'}}, 
    	function(res){console.log(res.answer.result);}
    );
    

    Результат:


  2. Вывод всех неповторяющихся задач, добавленных в "Избранное", у которых статус больше 2:
    BX24.callMethod(
    	'tasks.task.list', 
    	{filter:{'>STATUS':2, REPLICATE:'N', '::SUBFILTER-PARAMS':{FAVORITE:'Y'}}}, 
    	function(res){console.log(res.answer.result);}
    );
    

    Результат:

    result: {
    	tasks: [
    		{
    			id: "117",
    			parentId: null,
    			title: "123",
    			description: "Opisanie.   Ghhhhh",
    			mark: null,
    			priority: "0",
    			status: "6",
    			multitask: "N",
    			notViewed: "N",
    			replicate: "N",
    			groupId: "0",
    			stageId: "0",
    			createdBy: "1",
    			createdDate: "2019-03-15T15:41:27+02:00",
    			responsibleId: "1",
    			changedBy: "1",
    			changedDate: "2019-03-18T14:06:18+02:00",
    			statusChangedBy: "1",
    			statusChangedDate: "2019-03-18T14:05:54+02:00",
    			closedBy: null,
    			closedDate: null,
    			dateStart: null,
    			deadline: null,
    			startDatePlan: null,
    			endDatePlan: null,
    			guid: "{aef54f9d-8157-464b-9069-6ded9745e26d}",
    			xmlId: null,
    			commentsCount: null,
    			taskControl: "Y",
    			addInReport: "N",
    			forkedByTemplateId: null,
    			timeEstimate: "0",
    			timeSpentInLogs: null,
    			matchWorkTime: "N",
    			forumTopicId: null,
    			forumId: null,
    			siteId: "s1",
    			subordinate: "Y",
    			favorite: "Y",
    			exchangeModified: null,
    			exchangeId: null,
    			outlookVersion: "7",
    			viewedDate: "2019-03-18T14:07:08+02:00",
    			sorting: "2564.0000000",
    			durationPlan: "0",
    			durationFact: null,
    			durationType: "days",
    			descriptionInBbcode: "Y",
    			ufCrmTask: [ ],
    			ufTaskWebdavFiles: [
    				22
    			],
    			ufAuto915658270214: null,
    			ufAuto244510721805: null,
    			ufAuto637823431651: "0",
    			ufMailMessage: null,
    			ufAuto226929532613: "",
    			ufAuto187628303463: null,
    			auditors: [ ],
    			accomplices: [ ],
    			newCommentsCount: 0,
    			subStatus: "6",
    			creator: {
    				id: "1",
    				name: "Гречушников Максим",
    				link: "/company/personal/user/1/",
    				icon: "/upload/resize_cache/main/9b0/58_58_2/p2dVDwA46Nw.png",
    			},
    			responsible: {
    				id: "1",
    				name: "Гречушников Максим",
    				link: "/company/personal/user/1/",
    				icon: "/upload/resize_cache/main/9b0/58_58_2/p2dVDwA46Nw.png",
    			},
    		}
    	]
    },
    


Пользовательские комментарии

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

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Сергей Ильин
Сообщение непромодерировано, возможны ошибки и неточности.
Как достать просроченные задачи?
в PHP
Код
'FILTER' => array('STATUS' => '-1',),
и в адресной строке браузера
Код
filter[STATUS]=-1
не работают :-(
0
Сергей Иванилов
Сообщение непромодерировано, возможны ошибки и неточности.
вот что мне ответила техподдержка по поводу лимита
Цитата
Все записи одним запросом вернуть нет возможности, это ограничение всех методов REST API.

Вы можете несколькими запросами по 50 записей в ответе получить все лиды.
Для этого просто передавайте параметр start со значением, кратным 50. Пример:
start=0
start=50
start=100
0
Сергей Пономарев
Сообщение непромодерировано, возможны ошибки и неточности.
Цитата
Сергей Коваленко пишет:
как реализовать вывод больше 50

Надо получить все порции, вот пример на JS:

Код
export const getTasks = async (
  startDate = null,
  endDate = null,
) => {
  const params = {  
    filter: {">=CHANGED_DATE": startDate, "<=CHANGED_DATE": endDate},
    select: ["SUBORDINATE", "ID", "TITLE", "GROUP_ID", "RESPONSIBLE_ID", "ACCOMPLICES", "CHANGED_DATE",  "DURATION_PLAN", "DURATION_PLAN", "TIME_ESTIMATE", "TIME_SPENT_IN_LOGS"]
  };
  let tasksData = [];
  return new Promise((resolve, reject) => {
    BX24.callMethod(
      'tasks.task.list',
      params,
      result => {
        if (result.error()) return reject(result.error());
        const tasks = (result.data() && result.data().tasks && Array.isArray(result.data().tasks)) ? result.data().tasks : [];
        tasksData = tasksData.concat(tasks);
        if (result.more()) {
          result.next();
        } else {
          return resolve(
            Array.isArray(tasksData) && tasksData.length ? tasksData : []
          );
        }
      }
    );
  });

};
0
Сергей Коваленко
Сообщение непромодерировано, возможны ошибки и неточности.
Как получить больше 50?
все перепробовал 50 и все

 $method = 'tasks.task.list';    $queryUrl = 'https://'.$_REQUEST['DOMAIN'].'/rest/'.$method.'.json';
   $params = [
       'select' => ['ID', 'TITLE'],
   ];

как реализовать вывод больше 50
0
Виталий Прудин
Сообщение непромодерировано, возможны ошибки и неточности.
Цитата
Андрей пишет:
Подскажите, пожалуйста: как в вебхуке в GET-запросе указать фильтрацию по дате?
$appParams = array(
"filter" => array('>=CREATED_DATE' => '01.09.2019')
);

$appRequestUrl = 'https://blast-bit.bitrix24.ru/rest/19/3x3pf7i7nvxmng5t/tasks.task.list/?' . http_build_query($appParams);

print(urldecode($appRequestUrl));
0
Андрей
Сообщение непромодерировано, возможны ошибки и неточности.
Подскажите, пожалуйста: как в вебхуке в GET-запросе указать фильтрацию по дате?
При "Дата больше ..." что-то типа такого:
Код
https://domain.bitrix24.ru/rest/1/fw3ef9fjnfer4/tasks.task.list?filter=">CHANGED_DATE=2019-09-22"
0
Андрей
Сообщение непромодерировано, возможны ошибки и неточности.
Цитата
Андрей Тимофеев пишет:
Метод пока не работает корректно. Отображаются только задачи в которых участвует админ.
По заявлением тех. поддержки, пока в разработке.
Сейчас отдаёт все задачи. Только не работает limit.

Вопрос к разработчикам: верно ли я понимаю, что при использовании limit можем отказаться от batch?
0
Андрей Тимофеев
Сообщение непромодерировано, возможны ошибки и неточности.
Метод пока не работает корректно. Отображаются только задачи в которых участвует админ.
По заявлением тех. поддержки, пока в разработке.
0
Сергей Ильин
Сообщение непромодерировано, возможны ошибки и неточности.
limit не работает. REST игнорирует его присутствие. Сколько бы не указывалось, отдается 50 :(
© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх