• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/item/fieldimplementation/file.php
  • Класс: Bitrix\Crm\Item\FieldImplementation\File
  • Вызов: File::internalizeSingleField
private function internalizeSingleField(Field $field, array $externalValues): void
{
	$isNewValueProvided = false;
	$newValue = null;

	$toDelete = $this->extractFileIdsMarkedToBeDeleted($field, $externalValues);

	if (array_key_exists($field->getName(), $externalValues))
	{
		$isNewValueProvided = true;
		$newValue = $externalValues[$field->getName()];

		if (is_array($newValue))
		{
			$fileId = $this->fileArrayToFileId($field, $newValue);
			if ($fileId > 0)
			{
				$newValue = $fileId;
			}
			else
			{
				$isNewValueProvided = false;
				$newValue = null;
			}
		}
	}

	if ($isNewValueProvided)
	{
		if (in_array($newValue, $toDelete, true))
		{
			$newValue = 0;
		}

		$this->set($field->getName(), $newValue);
	}
	elseif (!empty($toDelete))
	{
		$this->set($field->getName(), 0);
	}
}