• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/helper/filter.php
  • Класс: BitrixTasksHelperFilter
  • Вызов: Filter::getDefaultRoleId
public function getDefaultRoleId()
{
	static $roleId = null;

	if (!$roleId)
	{
		$request = Context::getCurrent()->getRequest();
		if ($request->isAjaxRequest())
		{
			return false;
		}

		$filterOptions = $this->getOptions();
		$filter = $filterOptions->getFilter();

		$fState = $request->get('F_STATE');
		if ($fState && !is_array($fState) && mb_strpos($fState, 'sR') === 0)
		{
			switch ($fState)
			{
				case 'sR400':
					$roleId = CounterRole::RESPONSIBLE;
					break;

				case 'sR800':
					$roleId = CounterRole::ACCOMPLICE;
					break;

				case 'sRc00':
					$roleId = CounterRole::AUDITOR;
					break;

				case 'sRg00':
					$roleId = CounterRole::ORIGINATOR;
					break;

				default: // all
					$roleId = '';
					break;
			}

			$currentPresetId = $filterOptions->getCurrentFilterId();
			$filterSettings = $filterOptions->getFilterSettings($currentPresetId);

			if (
				is_array($filterSettings['fields'])
				&& (
					!array_key_exists('ROLEID', $filterSettings['fields'])
					|| !$filterSettings['fields']['ROLEID']
				)
			)
			{
				if ($roleId)
				{
					$filterSettings['additional']['ROLEID'] = $roleId;
				}
				else
				{
					unset($filterSettings['additional']['ROLEID']);
				}
			}

			$filterOptions->setFilterSettings($currentPresetId, $filterSettings, true, false);
			$filterOptions->save();
		}
		else
		{
			$roleId = ($filter['ROLEID'] ?? null);
		}
	}

	return $roleId;
}