• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/entity/entityeditor.php
  • Класс: Bitrix\Crm\Entity\EntityEditor
  • Вызов: EntityEditor::setDataField
static function setDataField($typeName, $name, $value, array &$entityData,  array &$userFields)
{
	if(!isset(self::$allowedTypesMap[$typeName]))
	{
		return false;
	}

	if($typeName === 'crm_lead' ||
		$typeName === 'crm_company' ||
		$typeName === 'crm_contact' ||
		$typeName === 'crm_quote'
	)
	{
		$entityTypeID = \CCrmOwnerType::ResolveID(mb_substr($typeName, 4));
		if($entityTypeID === \CCrmOwnerType::Undefined)
		{
			return false;
		}

		$value = (int)$value;
		if(!Crm\Security\EntityAuthorization::checkReadPermission($entityTypeID, $value, self::getUserPermissions()))
		{
			return false;
		}
	}
	elseif($typeName === 'integer' || $typeName === 'user' || $typeName === 'enumeration')
	{
		$value = (int)$value;
	}
	elseif($typeName === 'double')
	{
		$value = (double)$value;
	}
	elseif($typeName === 'date' || $typeName === 'datetime')
	{
		$format = $typeName === 'date' ? Main\Type\Date::getFormat() : Main\Type\DateTime::getFormat();
		$time = Main\Type\DateTime::tryParse($value, $format);
		if(!$time)
		{
			return false;
		}
		$value = $time->format($format);
	}

	if(mb_strpos($name, 'UF_') !== 0)
	{
		//System Field
		$entityData[$name] = $value;
		return true;
	}
	if(isset($userFields[$name]))
	{
		//User Field (it uses custom initialization scheme).
		$userFields[$name]['VALUE'] = $value;
		return true;
	}
	return false;
}