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

GetList

Описание и параметры

CDBResult
CTasks::GetList(
 array arOrder = array(),
 array arFilter = array(),
 array arSelect = array(),
 array arParams = array()
);

Возвращает список задач по фильтру arFilter, отсортированный в порядке arOrder.

Примечание: Метод принимает массив конфигурационных параметров и генерирует скрипты, необходимые для показа файлового диалога. Метод статический.

Параметры метода

Параметр Описание С версии
arOrder Массив для сортировки результата. Массив вида array("поле сортировки"=>"направление сортировки" [, ...]).
Поле для сортировки может принимать значения:
  • TITLE - название задачи;
  • DATE_START - дата старта;
  • DEADLINE - крайний срок;
  • STATUS - статус;
  • PRIORITY - приоритет;
  • MARK - оценка;
  • CREATED_BY - постановщик; 
  • RESPONSIBLE_ID - ответственный; 
  • GROUP_ID - рабочая группа. 
Направление сортировки может принимать значения:
  • asc - по возрастанию;
  • desc - по убыванию;
  Необязательный. По умолчанию фильтруется по убыванию идентификатора задачи.

Примечание. Допускается сортировка по пользовательским полям.

arFilter Массив вида array("фильтруемое поле"=>"значение фильтра" [, ...]). Фильтруемое поле может принимать значения:
  • ID - идентификатор задачи;
  • PARENT_ID - идентификатор родительской задачи;
  • GROUP_ID - идентификатор рабочей группы;
  • CREATED_BY - постановщик;
  • STATUS_CHANGED_BY - пользователь, последним изменивший статус задачи;
  • PRIORITY - приоритет;
  • FORUM_TOPIC_ID - идентификатор темы форума;
  • RESPONSIBLE_ID - ответственный;
  • TITLE - название задачи (можно искать по шаблону [%_]) ;
  • TAG -  тэг;
  • REAL_STATUS - статус задачи. Константы отражающие статусы задач:
    • CTasks::STATE_NEW = 1;
    • CTasks::STATE_PENDING = 2;
    • CTasks::STATE_IN_PROGRESS = 3;
    • CTasks::STATE_SUPPOSEDLY_COMPLETED = 4;
    • CTasks::STATE_COMPLETED = 5;
    • CTasks::STATE_DEFERRED = 6;
    • CTasks::STATE_DECLINED = 7;
  • STATUS - статус для сортировки. Аналогичен REAL_STATUS, но имеет дополнительно два мета статуса:
    • -2 - не просмотренная задача;
    • -1 - просроченная задача.
  • MARK - оценка;
  • XML_ID - внешний код;
  • 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); 
  • SUBORDINATE_TASKS -  задачи текущего пользователя и его подчиненных (Y|N); 
  • OVERDUED -  были просрочены (Y|N); 
  • DEPARTMENT_ID - идентификатор отдела.
Перед названием фильтруемого поля может указать тип фильтрации:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно

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

Необязательный. По умолчанию записи не фильтруются.
arSelect Массив возвращаемых полей задачи.
arParams Массив дополнительных параметров. Необязательный. 12.5.0

Возвращаемое значение

Возвращается объект CDBResult

Примеры использования

<?

// Выбираем все задачи пользователя с ID = 2
if (CModule::IncludeModule("tasks"))
{
$res = CTasks::GetList(
Array("TITLE" => "ASC"),
Array("RESPONSIBLE_ID" => "2")
);

while ($arTask = $res->GetNext())
{
echo "Task name: ".$arTask["TITLE"]."<br>";
}
}

?>

<?
// Выбираем задачи, для которых пользователь является ответственным или соисполнителем

$arFilter = array(
            '::LOGIC' => 'AND',
           'CHECK_PERMISSIONS' => 'Y',
           'ONLY_ROOT_TASKS' => 'Y',
           'SAME_GROUP_PARENT' => 'Y',
           '::SUBFILTER-1' => array(
              '::LOGIC' => 'OR',
              '::SUBFILTER-1' => array(
                 'ACCOMPLICE' => array($USER->GetID()),
                 'REAL_STATUS' => array(CTasks::STATE_NEW, CTasks::STATE_PENDING, CTasks::STATE_IN_PROGRESS),
              ),
              '::SUBFILTER-2' => array(
                 'RESPONSIBLE_ID' => $USER->GetID(),
                 'REAL_STATUS' => array(CTasks::STATE_NEW, CTasks::STATE_PENDING, CTasks::STATE_IN_PROGRESS),
              ),
           ),
        );
?>

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

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

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

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
10
Иван Шум
Один из возможных параметров массива arParams - это USER_ID. Если параметр не задан, система подставит ID текущего пользователя.
Но если код выполняется агентом, то ID текущего пользователя не будет. В таком случае корректно отработает следующий код:

Код
$rsTask = CTasks::GetList(array(), array(), array("*"), array("USER_ID" => 1));
while($arTask = $rsTask->GetNext()){
    
}
© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх