• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/integration/crmmanager.php
  • Класс: BitrixSalesCenterIntegrationCrmManager
  • Вызов: CrmManager::getMyCompanyAddressList
public function getMyCompanyAddressList(): array
{
	$requisite = EntityRequisite::getSingleInstance()->getList(
		[
			'select' => ['ID'],
			'filter' => [
				'=ENTITY_TYPE_ID' => CCrmOwnerType::Company,
				'=ENTITY_ID' => (int)EntityLink::getDefaultMyCompanyId()
			],
		]
	)->fetch();

	if (!$requisite)
	{
		return [];
	}

	$result = [];

	$addresses = AddressTable::getList(
		[
			'filter' => [
				'ENTITY_ID' => (int)$requisite['ID'],
				'ENTITY_TYPE_ID' => CCrmOwnerType::Requisite,
				'>LOC_ADDR_ID' => 0,
			],
		]
	)->fetchAll();

	$sortingMap = [
		EntityAddressType::Primary => 10,
		EntityAddressType::Delivery => 20,
	];

	foreach ($addresses as $address)
	{
		$result[$address['TYPE_ID']] = [
			'VALUE' => (int)$address['LOC_ADDR_ID'],
			'SORT' => isset($sortingMap[$address['TYPE_ID']]) ? $sortingMap[$address['TYPE_ID']] : 100,
		];
	}

	uasort($result, function ($a, $b) {
		return $a['SORT'] < $b['SORT'] ? -1 : 1;
	});

	return array_column($result, 'VALUE');
}