• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskitem.php
  • Класс: CTaskItem
  • Вызов: CTaskItem::duplicateChildTasksLambda
protected function duplicateChildTasksLambda($parentTaskInstance, &$queue)
{
	// have to walk task tree recursively, because no tree structure is currently provided
	[$items, $res] = static::fetchList($this->getExecutiveUserId(), array(), array('PARENT_ID' => $parentTaskInstance->getId()), array(), array('*', 'UF_*'));
	unset($res);
	foreach($items as $taskInstance)
	{
		if(isset($queue[$taskInstance->getId()]))
		{
			throw new TasksException(
				'An endless loop detected when attempting to duplicate subtasks (task '.intval($parentTaskInstance->getId()).' met twice)',
				TasksException::TE_ACTION_FAILED_TO_BE_PROCESSED
			);
		}

		$queue[$taskInstance->getId()] = $taskInstance;
		$this->duplicateChildTasksLambda($taskInstance, $queue);
	}
}