• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/item/task/template.php
  • Класс: BitrixTasksItemTaskTemplate
  • Вызов: Template::findMembers
static function findMembers(array $parameters, array $ids): array
{
	if (
		array_key_exists('select', $parameters)
		&& is_array($parameters['select'])
		&& !empty($parameters['select'])
		&& !in_array('RESPONSIBLES', $parameters['select'])
		&& !in_array('ACCOMPLICES', $parameters['select'])
		&& !in_array('AUDITORS', $parameters['select'])
		&& $parameters['select'][0] !== '*'
	)
	{
		return [];
	}

	$res = TemplateMemberTable::getList([
		'filter' => [
			'@TEMPLATE_ID' => $ids,
		]
	]);

	$memberTypes = [
		TemplateMemberTable::MEMBER_TYPE_RESPONSIBLE => 'RESPONSIBLES',
		TemplateMemberTable::MEMBER_TYPE_ACCOMPLICE => 'ACCOMPLICES',
		TemplateMemberTable::MEMBER_TYPE_AUDITOR => 'AUDITORS',
	];

	$members = [];
	while ($row = $res->fetch())
	{
		if (!array_key_exists($row['TYPE'], $memberTypes))
		{
			continue;
		}
		$members[$row['TEMPLATE_ID']][$memberTypes[$row['TYPE']]][] = (int) $row['USER_ID'];
	}

	foreach ($members as $templateId => $templateMembers)
	{
		foreach ($templateMembers as $type => $users)
		{
			$members[$templateId][$type] = serialize($users);
		}
	}

	return $members;
}