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

tasks.task.list

Scope: task Права на выполнение: для всех

Описание

Возвращает массив задач, каждая из которых содержит массив полей. В отличие от 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 - дата последнего изменения;
  • ACCOMPLICE - идентификатор соисполнителя;
  • AUDITOR - идентификатор наблюдателя;
  • DEPENDS_ON - идентификатор предыдущей задачи; 
  • ONLY_ROOT_TASKS -  только задачи, которые не являются подзадачами (корневые задачи), а также подзадачи родительской задачи, к которой текущий пользователь доступа не имеет (Y|N).
  • STAGE_ID - стадия;
  • UF_CRM_TASK - элементы CRM;

Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

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

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

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 - тип единицы измерения в планируемой длительности: days, hours или minutes

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

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

limitЧисло записей. Параметр указывается, если нужно получить число записей более значения по умолчанию (50). Все записи одним запросом вернуть нет возможности, это ограничение всех методов REST API. Вы можете несколькими запросами по 50 записей в ответе получить все лиды. Для этого просто передавайте параметр start со значением, кратным 50. Пример:
start=0
start=50
start=100
startСколько первых записей пропускать в результате. В связи с техническими ограничениями значение этого параметра всегда должно быть кратно 50. Например, при значении 50 в результате будут отображаться 51-я запись и последующие, а первые 50 записей будут пропущены.

При значении -1 будет отключён подсчёт количества.

Примеры

  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",
    			},
    		}
    	]
    },
    

Пример отключения постраничной навигации:

$result = CRest::call(
	'tasks.task.list',
	[
		'filter' => [
			'>ID' => 50
		],
		'start' => -1,
	]
);

В rest-методе tasks.task.list фиксированное число выбранных элементов - 50. К сожалению, на данный момент это значение нельзя изменить. Чтобы пропустить первые N записей необходимо передать параметр start: N. Пример:

BX24.callMethod('tasks.task.list',{start: 1150})


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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Georg Gradov
Сообщение не промодерировано, возможны ошибки и неточности.
"UF_CRM_TASK":{
  • "title":"Елементи CRM",
  • "type":"crm"
},

получить список по нескольким связанным сущностям CRM  == собираются как OR, а не AND

BX24.callMethod(   'tasks.task.list',
  {
     filter:   {
        'UF_CRM_TASK':[
                                      'CO_7658',
                                      'CO_762',
                                      'CO_76',
                                      'CO_2',
                                    ]
     },
    select: [
               '*',
                'UF_*',
               ]
  },
  function(res){
     console.dir(res);
  }
);
1
Денис Валеев
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
Николай Власов пишет:
При формировании задачи, есть поле "Учет времени" - "Время для выполнения задачи".
Подскажите пожалуйста, каким методом можно получить значение этого поля?
timeEstimate (время в секундах)
0
ivan_salt
Сообщение не промодерировано, возможны ошибки и неточности.
Код
BX24.callMethod(
   'tasks.task.list', 
   {
      filter:   {
         'UF_CRM_TASK':'CO_7658'
      }
   }, 
   function(res){
      console.dir(res);
   }
);


Если нужно выбрать все задачи компании (7658 - ID компании)
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
Виталий Прудин
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
Андрей пишет:
Подскажите, пожалуйста: как в вебхуке в 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));
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх