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