• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/matcher/fieldsynchronizer.php
  • Класс: Bitrix\Crm\Order\Matcher\FieldSynchronizer
  • Вызов: FieldSynchronizer::getFieldFullCode
static function getFieldFullCode($field)
{
	$code = '';

	if ((int)$field['CRM_ENTITY_TYPE'] === \CCrmOwnerType::Order)
	{
		return FieldSynchronizer::getOrderPropertyName($field['CODE'], $field['ID']);
	}

	if ((int)$field['CRM_ENTITY_TYPE'] === \CCrmOwnerType::Contact)
	{
		$code = \CCrmOwnerType::ContactName;
	}
	elseif ((int)$field['CRM_ENTITY_TYPE'] === \CCrmOwnerType::Company)
	{
		$code = \CCrmOwnerType::CompanyName;
	}

	switch ($field['CRM_FIELD_TYPE'])
	{
		case BaseEntityMatcher::GENERAL_FIELD_TYPE:
			$code .= '_'.$field['CRM_FIELD_CODE'];
			break;

		case BaseEntityMatcher::MULTI_FIELD_TYPE:
			$parsedName = \CCrmFieldMulti::ParseComplexName($field['CRM_FIELD_CODE'], true);

			if (!empty($parsedName))
			{
				$code .= '_'.$parsedName['TYPE'];
			}
			break;

		case BaseEntityMatcher::REQUISITE_FIELD_TYPE:
			if ($field['CRM_FIELD_CODE'] === 'RQ_ADDR')
			{
				$code .= '_'.$field['SETTINGS']['RQ_ADDR_CODE']
					.'_'.$field['SETTINGS']['RQ_PRESET_ID']
					.'_'.$field['SETTINGS']['RQ_ADDR_TYPE'];
			}
			else
			{
				$code .= '_'.$field['CRM_FIELD_CODE'].'_'.$field['SETTINGS']['RQ_PRESET_ID'];
			}

			break;

		case BaseEntityMatcher::BANK_DETAIL_FIELD_TYPE:
			$code .= '_'.$field['CRM_FIELD_CODE'].'_'.$field['SETTINGS']['RQ_PRESET_ID'];

			break;
	}

	return $code;
}