• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/grid/task/row/action.php
  • Класс: BitrixTasksGridTaskRowAction
  • Вызов: Action::checkCanUpdatePlan
private function checkCanUpdatePlan(): string
{
	static $tasksInPlan = null;

	$can = 'N';

	$userId = User::getId();
	$isResponsible = (int)$this->rowData['RESPONSIBLE_ID'] === $userId;
	$isAccomplice = isset($this->rowData['ACCOMPLICES']) && in_array($userId, $this->rowData['ACCOMPLICES'], true);
	$isIntranet = MainLoader::includeModule('intranet');
	$isExtranet = MainLoader::includeModule('extranet') && CExtranet::IsExtranetSite();

	if (($isResponsible || $isAccomplice) && $isIntranet && !$isExtranet)
	{
		$can = 'Y';

		if ($tasksInPlan === null)
		{
			$tasksInPlan = array_map('intval', CTaskPlannerMaintance::getCurrentTasksList());
		}

		if (is_array($tasksInPlan) && in_array((int)$this->rowData['ID'], $tasksInPlan, true))
		{
			$can = 'N';
		}
	}

	return $can;
}