c 2012 года нет решения... отлично! Возможно кому-то поможет:
$taskId={=A83035_24125_98990_15141:TaskId}; // получаем id созданной в БП задачи
$fileAttach = CFile::GetByID('{=Variable:budget_blank}')->Fetch(); //получаем данные приаттаченного в БП файла //у меня задача создаётся от текущего пользователя, возможно кому-то пригодится
global $USER; $USER_ID = $USER->GetID(); //берём ID текущего пользователя
//сохраняем файл, чтобы он был доступен на диске (вот так хочет битрикс - https://dev.1c-bitrix.ru/api_help/tasks/classes/ctaskitem/update.php) CModule::IncludeModule("tasks"); $storage = Bitrix\Disk\Driver::getInstance()->getStorageByUserId($USER_ID); $folder = $storage->getFolderForUploadedFiles(); $arFile = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/".$fileAttach['SUBDIR']."/".$fileAttach['FILE_NAME']); $file = $folder->uploadFile($arFile, array( 'NAME' => $arFile["name"], 'CREATED_BY' => $USER_ID ), array(), true); //конец сохранения файла
// получаем ID сохраненного файла $FILE_ID = $file->getId();
//крепим файл к задаче $oTaskItem = new CTaskItem($taskId, $USER_ID); $rs = $oTaskItem->Update(array("UF_TASK_WEBDAV_FILES" => Array("n$FILE_ID")));
//Burn, bitrix, BURN!
Комментарии из кода надо удалить, а то работать не будет =)
в настройку ssl.[yoursite].conf у nginx'a у меня заработало, автору методы - огромная благодарность, но метод имхо костыльный(подмена error page), рекомендую использовать битрикс-вмку - там нет таких проблем (если только нет возможности переезда, как у меня пока что)