• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/entity/base.php
  • Класс: BitrixSenderEntityBase
  • Вызов: Base::copyData
protected function copyData($id, array $data = array())
{
	$loadedData = $this->loadData($id);
	if (!$loadedData)
	{
		return false;
	}
	unset($loadedData['ID']);
	$data = $data + $loadedData;

	if (isset($data['FIELDS']))
	{
		foreach ($data['FIELDS'] as $index => $field)
		{
			if ($field['TYPE'] !== 'file')
			{
				continue;
			}

			if (empty($field['VALUE']))
			{
				continue;
			}

			$values = is_array($field['VALUE']) ? $field['VALUE'] : explode(',', $field['VALUE']);
			$field['VALUE'] = array();
			foreach ($values as $fileId)
			{
				$copiedFileId = CFile::copyFile($fileId);
				if (!$copiedFileId)
				{
					continue;
				}

				$field['VALUE'][] = $copiedFileId;
			}
			$field['VALUE'] = implode(',', $field['VALUE']);
			$data['FIELDS'][$index] = $field;
		}
	}

	return $this->saveData(null, $data);
}