• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/rest/controllers/task.php
  • Класс: BitrixTasksRestControllersTask
  • Вызов: Task::processFiles
private function processFiles(int $taskId = 0, array $fields = []): array
{
	$filesUfCode = DiskUserField::getMainSysUFCode();
	if (array_key_exists($filesUfCode, $fields) && $fields[$filesUfCode] === '')
	{
		$fields[$filesUfCode] = [''];
	}

	if (
		!array_key_exists('UPLOADED_FILES', $fields)
		|| !is_array($fields['UPLOADED_FILES'])
		|| empty($fields['UPLOADED_FILES'])
	)
	{
		return $fields;
	}

	if (!is_array($fields[$filesUfCode]))
	{
		$fields[$filesUfCode] = [];
	}

	$controller = new TaskController(['taskId' => $taskId]);
	$uploader = new Uploader($controller);
	$pendingFiles = $uploader->getPendingFiles($fields['UPLOADED_FILES']);

	foreach ($pendingFiles->getFileIds() as $fileId)
	{
		$addingResult = Disk::addFile($fileId);
		if ($addingResult->isSuccess())
		{
			$fields[$filesUfCode][] = $addingResult->getData()['ATTACHMENT_ID'];
		}
	}
	$pendingFiles->makePersistent();

	return $fields;
}