- Модуль: 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;
}