• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_usertype.php
  • Класс: \CCrmUserType
  • Вызов: CCrmUserType::CopyFileFields
public function CopyFileFields(array &$fields)
{
	$userFields = $this->GetAbstractFields();
	foreach($userFields as $fieldName => $userFieldInfo)
	{
		if($userFieldInfo['USER_TYPE_ID'] === 'file')
		{
			if(isset($userFieldInfo['MULTIPLE']) && $userFieldInfo['MULTIPLE'] === 'Y')
			{
				$results = array();
				if(is_array($fields[$fieldName]))
				{
					foreach($fields[$fieldName] as $fileInfo)
					{
						//HACK: Deletion flag may contain fileID or boolean value.
						$isDeleted = isset($fileInfo['del']) && ($fileInfo['del'] === true || $fileInfo['del'] === $fileInfo['old_id']);
						if($isDeleted)
						{
							continue;
						}

						if($fileInfo['tmp_name'] !== '')
						{
							$results[] = $fileInfo;
						}
						elseif($fileInfo['old_id'] !== '')
						{
							$isResolved = \CCrmFileProxy::TryResolveFile($fileInfo['old_id'], $file, array('ENABLE_ID' => true));
							if($isResolved)
							{
								$results[] = $file;
							}
						}
					}
				}
				$fields[$fieldName] = $results;
			}
			else
			{
				$fileInfo = $fields[$fieldName];
				//HACK: Deletion flag may contain fileID or boolean value.
				$isDeleted = isset($fileInfo['del']) && ($fileInfo['del'] === true || $fileInfo['del'] === $fileInfo['old_id']);
				if(!$isDeleted  && $fileInfo['tmp_name'] === '' && $fileInfo['old_id'] !== '')
				{
					$isResolved = \CCrmFileProxy::TryResolveFile($fields[$fieldName]['old_id'], $file, array('ENABLE_ID' => true));
					if($isResolved)
					{
						$fields[$fieldName] = $file;
					}
				}
			}
		}
	}
}