• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
  • Класс: CTasks
  • Вызов: CTasks::Update
public function Update($taskId, $arFields, $arParams = [
	'CORRECT_DATE_PLAN_DEPENDENT_TASKS' => true,
	'CORRECT_DATE_PLAN' => true,
	'THROTTLE_MESSAGES' => false,
])
{
	$taskId = (int)$taskId;
	if ($taskId < 1)
	{
		return false;
	}

	$userId = null;
	if (
		isset($arParams['USER_ID'])
		&& ($arParams['USER_ID'] > 0)
	)
	{
		$userId = (int)$arParams['USER_ID'];
	}
	if ($userId === null)
	{
		$userId = User::getId();
		if (!$userId)
		{
			$userId = 1;
		}
	}

	if (!isset($arParams['THROTTLE_MESSAGES']))
	{
		$arParams['THROTTLE_MESSAGES'] = false;
	}

	$handler = new Task($userId);
	$handler->setByPassParams($arParams);

	if (isset($arFields['META::EVENT_GUID']))
	{
		$handler->setEventGuid($arFields['META::EVENT_GUID']);
		unset($arFields['META::EVENT_GUID']);
	}

	if (
		!isset($arParams['CORRECT_DATE_PLAN'])
		|| (
			$arParams['CORRECT_DATE_PLAN'] !== false
			&& $arParams['CORRECT_DATE_PLAN'] !== 'N'
		)
	)
	{
		$handler->withCorrectDatePlan();
	}

	if (
		!isset($arParams['CORRECT_DATE_PLAN_DEPENDENT_TASKS'])
		|| (
			$arParams['CORRECT_DATE_PLAN_DEPENDENT_TASKS'] !== false
			&& $arParams['CORRECT_DATE_PLAN_DEPENDENT_TASKS'] !== 'N'
		)
	)
	{
		$handler->withCorrectDatePlanDependent();
	}
	if (
		!array_key_exists('AUTO_CLOSE', $arParams)
		|| $arParams['AUTO_CLOSE'] !== false
	)
	{
		$handler->withAutoclose();
	}
	if (
		isset($arParams['SKIP_NOTIFICATION'])
		&& $arParams['SKIP_NOTIFICATION']
	)
	{
		$handler->withSkipNotifications();
	}
	if (array_key_exists('FIELDS_FOR_COMMENTS', $arParams))
	{
		$handler->withSkipComments();
	}
	if (
		array_key_exists('SEND_UPDATE_PULL_EVENT', $arParams)
		&& !$arParams['SEND_UPDATE_PULL_EVENT']
	)
	{
		$handler->withSkipPush();
	}

	try
	{
		$handler->update($taskId, $arFields);
		$this->lastOperationResultData = $handler->getLegacyOperationResultData();
	}
	catch (BitrixTasksControlExceptionTaskUpdateException $e)
	{
		$this->_errors[] = [
			"text" => $e->getMessage(),
			"id" => "ERROR_UNKNOWN_UPDATE_TASK_ERROR",
		];

		return false;
	}
	catch (Exception $e)
	{
		$this->_errors[] = [
			"text" => GetMessage("TASKS_UNKNOWN_UPDATE_ERROR"),
			"id" => "ERROR_UNKNOWN_UPDATE_TASK_ERROR",
		];

		return false;
	}

	return true;
}