• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/binding/bindinghelper.php
  • Класс: Bitrix\Crm\Binding\BindingHelper
  • Вызов: BindingHelper::prepareMultiFields
static function prepareMultiFields(array $multiFields, $entityTypeName, $entityID, $typeID, array $formFieldNames = null)
{
	if(empty($multiFields))
	{
		return null;
	}

	$arEntityTypeInfos = \CCrmFieldMulti::GetEntityTypeInfos();
	$arEntityTypes = \CCrmFieldMulti::GetEntityTypes();
	$sipConfig =  array(
		'STUB' => GetMessage('CRM_ENTITY_QPV_MULTI_FIELD_NOT_ASSIGNED'),
		'ENABLE_SIP' => true,
		'SIP_PARAMS' => array(
			'ENTITY_TYPE' => 'CRM_'.$entityTypeName,
			'ENTITY_ID' => $entityID)
	);

	$typeInfo = isset($arEntityTypeInfos[$typeID]) ? $arEntityTypeInfos[$typeID] : array();
	$caption = isset($typeInfo['NAME']) ? $typeInfo['NAME'] : $typeID;
	if(is_array($formFieldNames) && isset($formFieldNames[$typeID]))
	{
		$caption = $formFieldNames[$typeID];
	}

	$result = array(
		'type' => 'multiField',
		'caption' => $caption,
		'data' => array('type'=> $typeID, 'items'=> array())
	);
	foreach($multiFields as $multiField)
	{
		$value = isset($multiField['VALUE']) ? $multiField['VALUE'] : '';
		$valueType = isset($multiField['VALUE_TYPE']) ? $multiField['VALUE_TYPE'] : '';

		$entityType = $arEntityTypes[$typeID];
		$valueTypeInfo = isset($entityType[$valueType]) ? $entityType[$valueType] : null;

		$params = array('VALUE' => $value, 'VALUE_TYPE_ID' => $valueType, 'VALUE_TYPE' => $valueTypeInfo);
		$result['data']['items'][] = \CCrmViewHelper::PrepareMultiFieldValueItemData($typeID, $params, $sipConfig);
	}
	return $result;
}