• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/scrum/service/taskservice.php
  • Класс: BitrixTasksScrumServiceTaskService
  • Вызов: TaskService::getFilterInstance
public function getFilterInstance(int $groupId, string $view = 'plan'): ?Common
{
	$availableViews = [
		'plan' => 'TASKS_GRID_ROLE_ID_4096_'.$groupId.'_ADVANCED_N',
		'active' => 'TASKS_GRID_ROLE_ID_4096_'.$groupId.'_ACTIVE_N',
		'complete' => 'TASKS_GRID_ROLE_ID_4096_'.$groupId.'_COMPLETED_N',
	];

	if (!isset($availableViews[$view]))
	{
		return null;
	}

	$filterId = $availableViews[$view];

	$filterInstance = Filter::getInstance($this->executiveUserId, $groupId, $filterId);

	$presets = Filter::getPresets($filterInstance);
	if ($view === 'complete')
	{
		unset($presets['filter_tasks_scrum']);
	}

	$savedOptions = CUserOptions::getOption('main.ui.filter', $filterId, [], $this->executiveUserId);
	if (!$savedOptions)
	{
		// todo remove after fix main filter

		if ($view === 'active')
		{
			$planPresets = (Filter::getInstance($this->executiveUserId, $groupId, $availableViews['plan']))
				->getAllPresets()
			;
			if (count($planPresets) >= 5)
			{
				$presets = $planPresets;
			}
		}

		$filterOptions = new Options($filterId, $presets);
		$filterOptions->save();
	}

	return $filterInstance;
}