• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/elapseditem.php
  • Класс: CTaskElapsedItem
  • Вызов: CTaskElapsedItem::add
static function add(CTaskItemInterface $task, array $fields)
{
	if (!$task->checkAccess(ActionDictionary::ACTION_TASK_ELAPSED_TIME))
	{
		throw new TasksException('', TasksException::TE_ACTION_NOT_ALLOWED);
	}

	if (!isset($fields['USER_ID']) || (int)$fields['USER_ID'] === 0)
	{
		$fields['USER_ID'] = $task->getExecutiveUserId();
	}
	$fields['TASK_ID'] = $task->getId();
	$fields['COMMENT_TEXT'] = (string)$fields['COMMENT_TEXT'];
	$fields['MINUTES'] = (isset($fields['MINUTES']) ? (int)$fields['MINUTES'] : null);
	$fields['SECONDS'] = (isset($fields['SECONDS']) ? (int)$fields['SECONDS'] : null);

	/** @noinspection PhpDeprecationInspection */
	$id = (new CTaskElapsedTime())->Add($fields);

	// Reset tagged system cache by tag 'tasks_user_' . $userId for each task member
	try
	{
		self::__resetSystemWideTasksCacheByTag($task->getData(false));
	}
	catch (TasksException $e)
	{
		throw new TasksException('', TasksException::TE_ACTION_FAILED_TO_BE_PROCESSED);
	}

	if ($id === false)
	{
		throw new TasksException('', TasksException::TE_ACTION_FAILED_TO_BE_PROCESSED);
	}

	return (new self($task, (int)$id));
}