Как посчитать количество задач у пользователя на платформе Битрикс с использованием фильтров?

Как подсчитать количество задач у пользователя в Битриксе по каждому фильтру и получить массив с результатом в нужном формате?
  • 14 сентября 2023 г. 7:47
Ответы на вопрос 1
Для подсчета количества задач у пользователя с использованием фильтров в Битрикс, вы можете воспользоваться следующим кодом:

```php
use Bitrix\Main\Loader;
use Bitrix\Tasks\Internals\TaskTable;

Loader::includeModule('tasks');

$userId = 1; // ID пользователя

$filters = array(
    'STATUS' => array(
        '!=Completed'
    ),
    'GROUP_ID' => 2, // ID группы задач
    'RESPONSIBLE_ID' => $userId // ID ответственного пользователя
);

$result = TaskTable::getList(array(
    'select' => array('ID'), // Выбираем только ID задачи
    'filter' => $filters,
    'count_total' => true // Включаем подсчет общего количества задач
));

$count = $result->getCount(); // Общее количество задач

// Получаем массив с количеством задач по каждому фильтру
$tasksCount = array();

foreach ($filters as $filterName => $filterValue) {
    $filter = array_merge($filters, array($filterName => $filterValue));
    
    $filterResult = TaskTable::getList(array(
        'select' => array('ID'), // Выбираем только ID задачи
        'filter' => $filter,
        'count_total' => true // Включаем подсчет общего количества задач
    ));
    
    $tasksCount[$filterName] = $filterResult->getCount();
}

// Выводим результат в нужном формате
print_r($tasksCount);
```

В данном примере мы подсчитываем количество задач у пользователя с использованием фильтров, таких как статус задачи ("STATUS"), ID группы задач ("GROUP_ID") и ID ответственного пользователя ("RESPONSIBLE_ID"). В первом запросе мы получаем общее количество задач, а затем в цикле проходим по каждому фильтру и получаем количество задач соответствующих фильтру. Результат выводится в виде массива, где ключом является имя фильтра, а значением - количество задач у пользователя по этому фильтру.
Похожие вопросы