• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/control/task.php
  • Класс: BitrixTasksControlTask
  • Вызов: Task::reloadTaskData
private function reloadTaskData(array $fields): array
{
	$this->sourceTaskData = $this->getFullTaskData();
	$this->getFullTaskData(true);

	if (!$this->fullTaskData)
	{
		return $fields;
	}

	$currentStatus = (int)$this->fullTaskData['REAL_STATUS'];
	$prevStatus = (int)$this->sourceTaskData['REAL_STATUS'];
	$statusChanged =
		$currentStatus !== $prevStatus
		&& $currentStatus >= Status::NEW
		&& $currentStatus <= Status::DECLINED
	;

	if ($statusChanged)
	{
		$this->fullTaskData['STATUS_CHANGED'] = true;

		if ($currentStatus === Status::DECLINED)
		{
			$this->fullTaskData['DECLINE_REASON'] = $fields['DECLINE_REASON'];
		}
	}

	$fields['ID'] = $this->taskId;

	$this->getTask(true);
	/** @var EO_Scenario $scenarioObject */
	$scenarioObject = $this->task->getScenario();
	$fields['SCENARIO'] = is_null($scenarioObject) ? ScenarioTable::SCENARIO_DEFAULT : $scenarioObject->getScenario();

	return $fields;
}