• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/entity/element.php
  • Класс: BitrixListsEntityElement
  • Вызов: Element::setFileValue
private function setFileValue(&$elementFields, $fieldId, array $fieldValue, array $fieldData, array $values)
{
	if (!empty($values[$fieldId."_DEL"]))
		$delete = $values[$fieldId."_DEL"];
	else
		$delete = [];

	if (!Loader::includeModule("rest"))
	{
		return;
	}

	foreach ($fieldValue as $key => $value)
	{
		if (is_array($value))
		{
			$elementFields["PROPERTY_VALUES"][$fieldData["ID"]][$key]["VALUE"] = CRestUtil::saveFile($value);
		}
		else
		{
			if (is_numeric($value))
			{
				$elementFields["PROPERTY_VALUES"][$fieldData["ID"]][$key]["VALUE"] = CFile::makeFileArray($value);
			}
			else
			{
				$elementFields["PROPERTY_VALUES"][$fieldData["ID"]][$key]["VALUE"] = CRestUtil::saveFile($fieldValue);

				break;
			}
		}
	}

	foreach ($delete as $elementPropertyId => $mark)
	{
		if (isset($elementFields["PROPERTY_VALUES"][$fieldData["ID"]][$elementPropertyId]["VALUE"]))
			$elementFields["PROPERTY_VALUES"][$fieldData["ID"]][$elementPropertyId]["VALUE"]["del"] = "Y";
		else
			$elementFields["PROPERTY_VALUES"][$fieldData["ID"]][$elementPropertyId]["del"] = "Y";

	}
}