- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/requisiteaddress.php
- Класс: Bitrix\Crm\RequisiteAddress
- Вызов: RequisiteAddress::getByEntities
static function getByEntities($entityTypeId, $entityIds)
{
$result = array();
if (EntityRequisite::checkEntityType($entityTypeId) && is_array($entityIds) && !empty($entityIds))
{
foreach ($entityIds as $k => $v)
$entityIds[$k] = (int)$v;
$query = new Main\Entity\Query(AddressTable::getEntity());
$query->registerRuntimeField('',
new Main\Entity\ReferenceField('REF_RQ',
RequisiteTable::getEntity(),
array('=this.ENTITY_ID' => 'ref.ID', '=this.ENTITY_TYPE_ID' => array('?', \CCrmOwnerType::Requisite)),
array('join_type' => 'INNER')
)
);
$query->setSelect(
array(
'ENTITY_ID',
'REQUISITE_ENTITY_ID' => 'REF_RQ.ENTITY_ID',
'TYPE_ID',
'ADDRESS_1',
'ADDRESS_2',
'CITY',
'POSTAL_CODE',
'REGION',
'PROVINCE',
'COUNTRY',
'COUNTRY_CODE',
'LOC_ADDR_ID'
)
);
$query->setFilter(array('=REF_RQ.ENTITY_TYPE_ID' => $entityTypeId, '@REF_RQ.ENTITY_ID' => $entityIds));
$res = $query->exec();
while ($row = $res->fetch())
{
$entityId = (int)$row['REQUISITE_ENTITY_ID'];
$requisiteId = (int)$row['ENTITY_ID'];
$typeId = (int)$row['TYPE_ID'];
$result[$entityId][$requisiteId][$typeId] = array(
'ADDRESS_1' => isset($row['ADDRESS_1']) ? $row['ADDRESS_1'] : '',
'ADDRESS_2' => isset($row['ADDRESS_2']) ? $row['ADDRESS_2'] : '',
'CITY' => isset($row['CITY']) ? $row['CITY'] : '',
'POSTAL_CODE' => isset($row['POSTAL_CODE']) ? $row['POSTAL_CODE'] : '',
'REGION' => isset($row['REGION']) ? $row['REGION'] : '',
'PROVINCE' => isset($row['PROVINCE']) ? $row['PROVINCE'] : '',
'COUNTRY' => isset($row['COUNTRY']) ? $row['COUNTRY'] : '',
'COUNTRY_CODE' => isset($row['COUNTRY_CODE']) ? $row['COUNTRY_CODE'] : '',
'LOC_ADDR_ID' => isset($row['LOC_ADDR_ID']) ? (int)$row['LOC_ADDR_ID'] : 0
);
}
}
return $result;
}