• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/integration/tasks.php
  • Класс: BitrixIntranetIntegrationTasks
  • Вызов: Tasks::prepareCurrentUserList
static function prepareCurrentUserList($taskFields): array
{
	$userList = [];

	if (
		!isset($taskFields['CREATED_BY'])
		|| !isset($taskFields['RESPONSIBLE_ID'])
		|| !isset($taskFields['AUDITORS'])
		|| !isset($taskFields['ACCOMPLICES'])
	)
	{
		$query = new Query(BitrixTasksInternalsTaskTable::getEntity());
		$query->setSelect([
			'ID',
			'CREATED_BY',
			'TM_USER_ID' => 'TM.USER_ID',
		]);
		$query->setFilter([
			'=ID' => $taskFields['ID'],
		]);

		$query->registerRuntimeField('', new ReferenceField(
			'TM',
			BitrixTasksInternalsTaskMemberTable::getEntity(),
			['=ref.TASK_ID' => 'this.ID']
		));

		$res = $query->exec();

		while ($item = $res->fetch())
		{
			$userId = $item['TM_USER_ID'];

			if (!in_array($userId, $userList))
			{
				$userList[] = $userId;
			}
		}
	}
	else
	{
		$userList = self::prepareUserList($taskFields);
	}

	return $userList;
}