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