• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/task.php
  • Класс: CTasks
  • Вызов: CTasks::getFilterOptionsFromProblemField
static function getFilterOptionsFromProblemField($problem, $parameters)
{
	$fields = [];
	$filters = [];

	if (array_key_exists('VIEWED', $problem))
	{
		$userId = ($problem['VIEWED_BY'] ?: $parameters['USER_ID']);
		$filterKey = 'PROBLEM_NOT_VIEWED';

		$fields[$filterKey] = new EntityReferenceField(
			'TV',
			ViewedTable::class,
			Join::on('ref.TASK_ID', 'this.ID')
				->where('ref.USER_ID', $userId)
		);
		$filters[$filterKey] = Query::filter()
			->where('TV.USER_ID', null)
			->where('STATUS', 'in', [1, 2]);
	}
	elseif ($problemFilter = static::parseLogicProblemFilter($problem))
	{
		$filters['PROBLEM'] = $problemFilter;
	}

	return [
		'FIELDS' => $fields,
		'FILTERS' => $filters,
	];
}