• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/fieldmultitable.php
  • Класс: Bitrix\Crm\FieldMultiTable
  • Вызов: FieldMultiTable::prepareItemData
static function prepareItemData(array $row): ?array
{
	$value = $row['VALUE'] ?? '';
	if(empty($value))
	{
		return null;
	}

	$valueType = $row['VALUE_TYPE'];
	$multiFieldComplexID = $row['COMPLEX_ID'];
	$typeID = $row['TYPE_ID'];

	if(
		$typeID === 'PHONE'
		|| $typeID === 'EMAIL'
		|| ($typeID === 'IM' && static::isImOpenLinesValue($value))
	)
	{
		$formattedValue = $typeID === 'PHONE'
			? Parser::getInstance()->parse($value)->format()
			: $value;

		// keys are a mess, made to fit data from old api.
		return [
			'ID' => $row['ID'],
			'TYPE_ID' => $typeID,
			'ENTITY_ID' => $row['ELEMENT_ID'],
			'ELEMENT_ID' => $row['ELEMENT_ID'],
			'ENTITY_TYPE_NAME' => \CCrmOwnerType::ResolveName($row['ENTITY_ID']),
			'ENTITY_TYPE_ID' => $row['ENTITY_ID'],
			'VALUE' => $value,
			'VALUE_TYPE' => $valueType,
			'VALUE_FORMATTED' => $formattedValue,
			'COMPLEX_ID' => $multiFieldComplexID,
			'COMPLEX_NAME' => \CCrmFieldMulti::GetEntityNameByComplex($multiFieldComplexID, false),
		];
	}

	return null;
}