• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/integration/crm/connectors/personalize/basepersonalize.php
  • Класс: Bitrix\Sender\Integration\Crm\Connectors\Personalize\BasePersonalize
  • Вызов: BasePersonalize::getData
static function getData(
	string $entityType,
	array $entityIds,
	array $usedFields = ['*'],
	string $sortBy = 'id',
	string $sortOrder = 'asc'
)
{
	if(empty($usedFields))
	{
		return [];
	}

	\Bitrix\Main\Localization\Loc::loadMessages(
		$_SERVER['DOCUMENT_ROOT'].BX_ROOT.'/modules/crm/classes/general/crm_fields.php'
	);

	$entityType = ucfirst(strtolower($entityType));
	$className = 'CCrm'.$entityType;
	$dbDocumentList = $className::GetListEx(
		[],
		[
			"__CONDITIONS"      => [
				[
					"SQL" => "L.ID IN (".implode(",", $entityIds).")"
				]
			],
			"CHECK_PERMISSIONS" => "N"
		],
		false,
		false,
		array_merge(
			$usedFields,
			['UF_*', 'ASSIGNED_BY_ID']
		)
	);
	$data = [];
	while (($objDocument = $dbDocumentList->Fetch()) !== false)
	{
		$assignedByID = isset($objDocument['ASSIGNED_BY_ID'])? intval($objDocument['ASSIGNED_BY_ID']) : 0;

		if ($assignedByID > 0)
		{
			self::addAssignedByFieldsValue($assignedByID, $objDocument);
		}

		self::addAddressFieldsValue($entityType,  $usedFields, $objDocument);
		self::addMultiFieldsValue($usedFields, $entityType,  $objDocument);
		self::addUserFieldsValue($className, $objDocument);

		//communications
		$typeId = \CCrmOwnerType::ResolveID($entityType);
		$objDocument += static::getCommunicationFieldsValues($typeId, $objDocument['ID']);

		$data[$objDocument['ID']] = $objDocument;
	}

	return $data;
}