• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/integration/bizproc/document/task.php
  • Класс: BitrixTasksIntegrationBizprocDocumentTask
  • Вызов: Task::getUsersFromUserGroup
static function getUsersFromUserGroup($group, $documentId)
{
	if ($group === 'responsible')
	{
		$member = MemberTable::getList([
			'filter' => ['=TASK_ID' => $documentId, '=TYPE' => MemberTable::MEMBER_TYPE_RESPONSIBLE],
			'select' => ['USER_ID']
		])->fetch();

		return $member ? [$member['USER_ID']] : [];
	}
	elseif (strpos($group, 'scrum_') === 0)
	{
		$projectId = static::getProjectId($documentId);

		if ($projectId && MainLoader::includeModule('socialnetwork'))
		{
			$workGroup = SocialnetworkItemWorkgroup::getById($projectId);
			$scrumMaster = (int)$workGroup->getScrumMaster();

			if ($group === 'scrum_master')
			{
				return [$scrumMaster];
			}

			if ($group === 'scrum_owner')
			{
				$owner = SocialnetworkUserToGroupTable::getList([
					'filter' => [
						'=ROLE' => SocialnetworkUserToGroupTable::ROLE_OWNER,
						'=GROUP_ID' => $projectId,
					],
					'cache' => [
						'ttl' => 3600
					],
				])->fetch();

				return $owner ? [$owner['USER_ID']] : [];
			}

			//else ($group === 'scrum_team')
			$teamRows = SocialnetworkUserToGroupTable::getList([
				'filter' => [
					'=ROLE' => SocialnetworkUserToGroupTable::ROLE_MODERATOR,
					'=GROUP_ID' => $projectId,
				],
				'cache' => [
					'ttl' => 3600
				],
			])->fetchAll();

			$team = array_column($teamRows, 'USER_ID');
			$team = array_map(fn($user) => (int)$user, $team);

			return array_filter($team, fn($user) => $user !== $scrumMaster);
		}
	}

	return [];
}