• Модуль: location
  • Путь к файлу: ~/bitrix/modules/location/lib/entity/address/converter/stringtemplateconverter.php
  • Класс: BitrixLocationEntityAddressConverterStringTemplateConverter
  • Вызов: StringTemplateConverter::getAddressFieldValue
private function getAddressFieldValue(Address $address, string $fieldName, string $fieldModifiers): string
{
	$result = '';

	if (FieldType::isTypeExist($fieldName))
	{
		$addressFieldType = constant(FieldType::class.'::'.$fieldName);

		if ($fieldName === 'ADM_LEVEL_1' || $fieldName === 'ADM_LEVEL_2')
		{
			// Scratch "Province & Region by Locality"
			$result = $this->getAlterFieldValue($address, $addressFieldType);
		}
		else
		{
			$result = $address->getFieldValue($addressFieldType);
		}

		if ($result === null)
		{
			$result = $this->getFieldValueByTemplate($fieldName, $address);
		}
	}
	if (!is_string($result))
	{
		$result = '';
	}
	if ($result !== '')
	{
		if (strpos($fieldModifiers, 'N') !== false)
		{
			$result = str_replace(["rn", "n", "r"], '#S#', $result);
		}
		if (strpos($fieldModifiers, 'U') !== false)
		{
			$result = mb_strtoupper($result);
		}
	}

	return $result;
}