- Модуль: 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,
];
}