• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/catalog/contractor/provider.php
  • Класс: Bitrix\Crm\Integration\Catalog\Contractor\Provider
  • Вызов: Provider::processDocumentCardAjaxActions
static function processDocumentCardAjaxActions(string $action): void
{
	$userId = \CCrmSecurityHelper::getCurrentUserID();

	if (
		$action !== self::DETAIL_CARD_ACTION_GET_SECONDARY_ENTITY_INFOS
		|| $userId <= 0
	)
	{
		return;
	}

	$params = isset($_POST['PARAMS']) && is_array($_POST['PARAMS']) ? $_POST['PARAMS'] : [];
	if (
		(
			$params['OWNER_TYPE_NAME'] !== CCrmOwnerType::StoreDocumentName
			&& $params['OWNER_TYPE_NAME'] !== CCrmOwnerType::AgentContractDocumentName
		)
		|| $params['PRIMARY_TYPE_NAME'] !== CCrmOwnerType::CompanyName
		|| $params['SECONDARY_TYPE_NAME'] !== CCrmOwnerType::ContactName
	)
	{
		return;
	}

	$companyId = isset($params['PRIMARY_ID']) ? (int)$params['PRIMARY_ID'] : 0;
	$contactIds = ContactCompanyTable::getCompanyContactIDs($companyId);

	$contactsInfo = [];
	foreach($contactIds as $contactId)
	{
		if (!\CCrmContact::CheckReadPermission($contactId, self::getPermissions()))
		{
			continue;
		}

		$contactsInfo[]  = \CCrmEntitySelectorHelper::PrepareEntityInfo(
			CCrmOwnerType::ContactName,
			$contactId,
			[
				'ENTITY_EDITOR_FORMAT' => true,
				'REQUIRE_REQUISITE_DATA' => true,
				'REQUIRE_MULTIFIELDS' => true,
				'NAME_TEMPLATE' => PersonNameFormatter::getFormat()
			]
		);
	}

	$GLOBALS['APPLICATION']->RestartBuffer();
	header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET);
	echo \CUtil::PhpToJSObject([
		'ENTITY_INFOS' => $contactsInfo
	]);
}