• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasknotifications.php
  • Класс: CTaskNotifications
  • Вызов: CTaskNotifications::GetRecipientsIDs
static function GetRecipientsIDs($arFields, $bExcludeCurrent = true, $bExcludeAdditionalRecipients = false, $currentUserId = false)
{
	$currentUserIDFound = null;
	if ($bExcludeAdditionalRecipients)
	{
		$arFields['ADDITIONAL_RECIPIENTS'] = [];
	}

	if ( ! isset($arFields['ADDITIONAL_RECIPIENTS']) )
	{
		$arFields['ADDITIONAL_RECIPIENTS'] = [];
	}

	if ( ! isset($arFields['IGNORE_RECIPIENTS']) || ! is_array($arFields['IGNORE_RECIPIENTS']) )
	{
		$arFields['IGNORE_RECIPIENTS'] = [];
	}

	$arRecipientsIDs = array_unique(
		array_filter(
			array_merge(
				array($arFields["CREATED_BY"], $arFields["RESPONSIBLE_ID"]),
				(array) ($arFields["ACCOMPLICES"] ?? []),
				(array) ($arFields["AUDITORS"] ?? []),
				(array) ($arFields['ADDITIONAL_RECIPIENTS'] ?? [])
				)));

	if (!empty($arFields['IGNORE_RECIPIENTS']))
	{
		foreach ($arRecipientsIDs as $key => $value)
		{
			if (in_array($value, $arFields['IGNORE_RECIPIENTS']))
			{
				unset($arRecipientsIDs[$key]);
			}
		}
	}

	if ($bExcludeCurrent)
	{
		if($currentUserId !== false)
		{
			$currentUserIDFound = $currentUserId;
		}
		elseif(User::getId())
		{
			$currentUserIDFound = User::getId();
		}

		if($currentUserIDFound)
		{
			$currentUserPos = array_search($currentUserIDFound, $arRecipientsIDs);
			if ($currentUserPos !== false)
			{
				unset($arRecipientsIDs[$currentUserPos]);
			}
		}
	}

	return $arRecipientsIDs;
}