• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Command/SaveEntityCommand.php
  • Класс: BitrixCrmMobileCommandSaveEntityCommand
  • Вызов: SaveEntityCommand::prepareCrmField
private function prepareCrmField(Field $field, &$data): void
{
	if (!empty($data) && is_array($data))
	{
		foreach ($data as $key => $value)
		{
			if (!empty($value) && is_array($value))
			{
				[$entityTypeName, $entityId] = $value;

				if ($entityTypeName === DynamicMultipleProvider::DYNAMIC_MULTIPLE_ID)
				{
					[$entityTypeId, $entityId] = DynamicMultipleProvider::parseId($entityId);
					$entityTypeAbbr = CCrmOwnerTypeAbbr::ResolveByTypeID($entityTypeId);
				}
				else
				{
					$entityTypeAbbr = CCrmOwnerTypeAbbr::ResolveByTypeName($entityTypeName);
				}

				if ($entityTypeAbbr)
				{
					$data[$key] = "{$entityTypeAbbr}_{$entityId}";
				}
			}
			else
			{
				unset($data[$key]);
			}
		}

		if (!$field->isMultiple())
		{
			$data = $data[0] ?? null;
		}
	}
	else
	{
		$data = $field->isMultiple() ? [] : null;
	}
}