Прочитал и испробовал массу примеров загрузки и прикрепления файла к задаче из документации, но результата так и не достиг.
При помощи метода CFile::SaveFile файл загружается, ему присваивается ID и, по документации при помощи
if (CModule::IncludeModule("tasks"))
{
$ID = 1;
$arFiles = array(102, 34, 5);
CTasks::AddFiles($ID, $arFiles);
}
он должен прикрепляться к задаче. Этот вариант у меня не отработал, т.к., видимо, не тот ID получается при CFile::SaveFile.
Попробовал загрузить руками файл на Диск, взять оттуда ID и тогда таким способом:
if (CModule::IncludeModule('disk') && CModule::IncludeModule('tasks')){
$oTask = new CTaskItem($task_id, $user_id);
$arFields = array(
"UF_TASK_WEBDAV_FILES" => array("n".$disk_file_id)
);
try
{
if ( ! $oTask->update($arFields) )
throw new TasksException();
}
catch (TasksException $e)
{
print_r($e);
return;
}
}
файл благополучно прикрепился.
Теперь осталось решить задачу, как при помощи API загрузить файл на Диск.