- Модуль: 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);
}
}