- Модуль: 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);
}
}