• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/entityaddresstype.php
  • Класс: Bitrix\Crm\EntityAddressType
  • Вызов: EntityAddressType::getIdsByZonesOrValues
static function getIdsByZonesOrValues(array $addressZoneIds = [], array $values = []) : array
{
	$ids = [];

	$addressTypeMap = array_fill_keys(EntityAddressType::getAllIDs(), 0);
	$zoneMap = self::getZoneMap();

	$addressZoneIds = array_unique($addressZoneIds);

	$typeIndex = 1;
	foreach ($addressZoneIds as $addressZoneId)
	{
		if (isset($zoneMap[$addressZoneId]))
		{
			foreach ($zoneMap[$addressZoneId]['types'] as $typeId)
			{
				if (isset($addressTypeMap[$typeId]) && $addressTypeMap[$typeId] <= 0)
				{
					$addressTypeMap[$typeId] = $typeIndex++;
				}
			}
		}
	}

	foreach ($values as $typeId)
	{
		if (isset($addressTypeMap[$typeId]) && $addressTypeMap[$typeId] <= 0)
		{
			$addressTypeMap[$typeId] = $typeIndex++;
		}
	}

	asort($addressTypeMap);

	foreach ($addressTypeMap as $typeId => $index)
	{
		if ($index > 0)
		{
			$ids[] = $typeId;
		}
	}

	return $ids;
}