- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_component_helper.php
- Класс: \CCrmComponentHelper
- Вызов: CCrmComponentHelper::getRequisiteAddressFieldData
static function getRequisiteAddressFieldData(int $entityTypeId, int $categoryId = 0): array
{
$featureRestriction = RestrictionManager::getAddressSearchRestriction();
$addressTypeInfos = [];
foreach (EntityAddressType::getAllDescriptions() as $id => $desc)
{
$addressTypeInfos[$id] = [
'ID' => $id,
'DESCRIPTION' => $desc
];
}
$countryAddressTypeMap = [];
foreach (EntityRequisite::getCountryAddressZoneMap() as $countryId => $addressZoneId)
{
$countryAddressTypeMap[$countryId] = EntityAddressType::getIdsByZonesOrValues([$addressZoneId]);
}
$addressZoneId = EntityAddress::getZoneId();
$result = [
'multiple' => true,
'types' => $addressTypeInfos,
'autocompleteEnabled' => $featureRestriction->hasPermission(),
'featureRestrictionCallback' => $featureRestriction->prepareInfoHelperScript(),
'addressZoneConfig' => [
'defaultAddressType' => EntityAddressType::getDefaultIdByZone($addressZoneId),
'currentZoneAddressTypes' => EntityAddressType::getIdsByZonesOrValues([$addressZoneId]),
'countryAddressTypeMap' => $countryAddressTypeMap,
],
];
if (CCrmOwnerType::IsDefined($entityTypeId) && $categoryId > 0)
{
$factory = Container::getInstance()->getFactory($entityTypeId);
if ($factory && $factory->isCategoryAvailable($categoryId))
{
$category = $factory->getCategory($categoryId);
if ($category instanceof ItemCategory)
{
$result['defaultAddressTypeByCategory'] = $category->getDefaultAddressType();
}
}
}
return $result;
}