• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/queuemanager.php
  • Класс: BitrixImOpenLinesQueueManager
  • Вызов: QueueManager::getUsersDepartment
static function getUsersDepartment($departmentId, array $select = ['ID'], bool $excludeHead = true)
{
	$query = UserTable::query();

	$query->setSelect($select);

	$departments = self::getChildDepartments($departmentId, true, true);
	$subDepartments = [];
	$excludeUsers = [];
	foreach ($departments as $department)
	{
		$subDepartments[] = $department['id'];
		if ($excludeHead && $department['headUserId'] > 0)
		{
			$excludeUsers[] = $department['headUserId'];
		}
	}
	$filter = [
		'UF_DEPARTMENT' => $subDepartments,
		'=ACTIVE' => 'Y',
		'!=BLOCKED' => 'Y'
	];
	if ($excludeHead && !empty($excludeUsers))
	{
		$filter['!=ID'] = $excludeUsers;
	}
	$query->addFilter(null, $filter);

	$query->setCacheTtl(3600);

	$query->setOrder(['ID' => 'asc']);

	return $query->exec();
}