• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/entity/element.php
  • Класс: BitrixListsEntityElement
  • Вызов: Element::getElementFields
private function getElementFields($elementId, array $values)
{
	$elementFields = [
		"IBLOCK_ID" => $this->iblockId,
		"CODE" => $this->params["ELEMENT_CODE"],
		"ID" => $elementId,
		"PROPERTY_VALUES" => []
	];

	$fields = $this->listObject->getFields();
	foreach ($fields as $fieldId => $fieldData)
	{
		$fieldValue = $values[$fieldId];

		if ($this->listObject->is_field($fieldId))
		{
			if ($fieldId == "PREVIEW_PICTURE" || $fieldId == "DETAIL_PICTURE")
			{
				$this->setPictureValue($elementFields, $fieldId, $fieldValue, $values);
			}
			elseif ($fieldId == "PREVIEW_TEXT" || $fieldId == "DETAIL_TEXT")
			{
				$this->setTextValue($elementFields, $fieldId, $fieldValue, $fieldData);
			}
			else
			{
				$this->setBaseValue($elementFields, $fieldId, $fieldValue);
			}
		}
		else
		{
			if (!is_array($fieldValue))
			{
				$fieldValue = [$fieldValue];
			}

			switch ($fieldData["TYPE"])
			{
				case "F":
					$this->setFileValue($elementFields, $fieldId, $fieldValue, $fieldData, $values);
					break;
				case "N":
					$this->setIntegerValue($elementFields, $fieldValue, $fieldData);
					break;
				case "S:DiskFile":
					$this->setFileDiskValue($elementFields, $fieldValue, $fieldData);
					break;
				case "S:Date":
					$this->setDateValue($elementFields, $fieldValue, $fieldData);
					break;
				case "S:DateTime":
					$this->setDateTimeValue($elementFields, $fieldValue, $fieldData);
					break;
				case "S:HTML":
					$this->setHtmlValue($elementFields, $fieldValue, $fieldData);
					break;
				default:
					$this->setPropertyValue($elementFields, $fieldValue, $fieldData);
			}
		}
	}

	global $USER;
	if (empty($values["MODIFIED_BY"]) && isset($USER) && is_object($USER))
	{
		$userId = $USER->getID();
		$elementFields["MODIFIED_BY"] = $userId;
	}
	unset($elementFields["TIMESTAMP_X"]);

	$elementFields["IBLOCK_SECTION_ID"] = (
		is_numeric($values['IBLOCK_SECTION_ID'])
		? (int) $values['IBLOCK_SECTION_ID'] : 0
	);

	return $elementFields;
}