• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/copy/implement/element.php
  • Класс: BitrixIblockCopyImplementElement
  • Вызов: Element::getPropertyFieldValue
private function getPropertyFieldValue(Container $container, $fieldId, $fieldValue)
{
	$propertyId = mb_substr($fieldId, mb_strlen("PROPERTY_"));
	$fieldValue = (is_array($fieldValue) ? $fieldValue : [$fieldValue]);

	$queryObject = CIBlockProperty::getList([], ["ID" => $propertyId]);
	if ($property = $queryObject->fetch())
	{
		if (!empty($property["USER_TYPE"]))
		{
			$userType = CIBlockProperty::getUserType($property["USER_TYPE"]);
			if ($userType["ConvertFromDB"] && is_callable($userType["ConvertFromDB"]))
			{
				$fieldValue = $this->getValueFromPropertyClass($fieldValue, $userType["ConvertFromDB"]);
			}
			else
			{
				$fieldValue = $this->getPropertyValue($fieldValue);
			}
		}
		else
		{
			switch ($property["PROPERTY_TYPE"])
			{
				case "F":
					$fieldValue = $this->getFileValue($fieldValue);
					break;
				case "N":
					$fieldValue = $this->getIntegerValue($fieldValue);
					break;
				case "L":
					$fieldValue = $this->getListValue($container, $fieldValue);
					break;
				default:
					$fieldValue = $this->getPropertyValue($fieldValue);
			}
		}
	}

	return $fieldValue;
}