• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
  • Класс: CTasks
  • Вызов: CTasks::getTaskSubTree
static function getTaskSubTree($taskId)
{
	$taskId = intval($taskId);
	if (!$taskId)
	{
		return [];
	}

	$queue = [$taskId];
	$met = [];
	$limit = 1000;
	$result = [];

	$i = 0;
	while (true)
	{
		if ($i > $limit)
		{
			break;
		}

		$next = array_shift($queue);
		if (isset($met[$next]))
		{
			break;
		}
		if (!intval($next))
		{
			break;
		}

		$subTasks = self::getSubTaskIdsForTask($next);
		foreach ($subTasks as $sTId)
		{
			$result[] = $sTId;
			$queue[] = $sTId;
		}

		$met[$next] = true;
		$i++;
	}

	return $result;
}