• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
  • Класс: BitrixTasksScrumServiceTaskService
  • Вызов: TaskService::getItemsData
public function getItemsData(array $taskIds): array
{
	if (empty($taskIds))
	{
		return [];
	}

	$itemsData = [];

	$tasksInfo = $this->getTasksInfo($taskIds);

	$groupId = 0;
	$parentIdsToCheck = [];

	foreach ($tasksInfo as $taskId => $taskInfo)
	{
		$groupId = (int) $taskInfo['GROUP_ID'];

		$attachedFilesCount = (
			is_array($taskInfo['UF_TASK_WEBDAV_FILES'] ?? null)
			? count($taskInfo['UF_TASK_WEBDAV_FILES'])
			: 0
		);

		$itemsData[$taskId] = [
			'name' => $taskInfo['TITLE'],
			'groupId' => $groupId,
			'responsibleId' => ($taskInfo['RESPONSIBLE_ID'] ?? 0),
			'completed' => ((int)$taskInfo['STATUS'] === Status::COMPLETED) ? 'Y' : 'N',
			'attachedFilesCount' => $attachedFilesCount,
			'isImportant' => ((int)$taskInfo['PRIORITY'] === Priority::HIGH) ? 'Y' : 'N',
		];

		$parentId = (int) $taskInfo['PARENT_ID'];
		if ($parentId)
		{
			$parentIdsToCheck[$taskId] = $parentId;
		}
		else
		{
			$itemsData[$taskId]['parentTaskId'] = 0;
			$itemsData[$taskId]['isSubTask'] = 'N';
		}
	}

	$actualParentIds = $this->getActualParentIds($parentIdsToCheck, $groupId);
	foreach ($actualParentIds as $taskId => $parentId)
	{
		$itemsData[$taskId]['parentTaskId'] = $parentId;
		$itemsData[$taskId]['isSubTask'] = $parentId ? 'Y' : 'N';
	}

	return $itemsData;
}