Документация для разработчиков
Темная тема

update

Описание и параметры

bool
CTaskItem::Update(
	array arFields
);

Нестатический метод изменяет параметры задачи с идентификатором ID.

Параметры метода

Параметр Описание С версии
arFields Массив Array("поле"=>"значение", ...). Содержит значения всех полей задачи. Обязательные поля должны быть заполнены. 16.0.0

Возвращаемое значение

При возникновении ошибки в исключениях будет содержаться текст ошибки.

Примеры использования

// смена ответственного в задаче

CModule::IncludeModule('tasks');

global $USER;

$userId = $USER->GetID();
$taskId = 85;

$oTaskItem = new CTaskItem($taskId, $userId);

try
{
	$rs = $oTaskItem->Update(array("RESPONSIBLE_ID" => 480));
}
catch(Exception $e)
{
	print('Error');
}



// прикрепление файла к задаче

CModule::IncludeModule('tasks');

$storage = Bitrix\Disk\Driver::getInstance()->getStorageByUserId($USER_ID);
$folder = $storage->getFolderForUploadedFiles();
$arFile = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/upload/wlog.txt");
$file = $folder->uploadFile($arFile, array(
	'NAME' => $arFile["name"],
	'CREATED_BY' => $USER_ID
), array(), true);
$FILE_ID = $file->getId();

$oTaskItem = new CTaskItem($taskId, $userId);
$rs = $oTaskItem->Update(array("UF_TASK_WEBDAV_FILES" => Array("n$FILE_ID")));

Добавление файла к задаче, где уже есть добавленные файлы. В примере выше добавляемый файл перезаписывается.

$taskId = 183; //Id задачи
$userId = 1; // Id пользователя, от которого изменяем задачу
$newFileId = 324; //Id нового файла из таблицы b_disk_object
$task = new CTaskItem($taskId, $userId);
$taskData = $task->getData(false);

$task->update(['UF_TASK_WEBDAV_FILES' => array_merge($taskData['UF_TASK_WEBDAV_FILES'], ["n{$newFileId}"])]); 


Пользовательские комментарии

Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
3
Рушан Зарипов
Если стоит задача прикрепления не одного, а нескольких файлов, то подойдет такой пример:
$oTask = CTaskItem::add($arNewTaskData, $responsible);
                           
Код
    //Текущая задача
                $cur_task = $oTask->getData(); 
                
                //Определеяем класс для работы с Bitrix диском
                $USER_ID = $USER->GetID(); 
                $storage = Bitrix\Disk\Driver::getInstance()->getStorageByUserId($USER_ID);
                $folder = $storage->getFolderForUploadedFiles();
                
                //Массив с файлами
                $newFiles = array();
                
                //копируем файлы в Bitrix диск
                foreach($linked_files_array as $k=>$val){
                    $arFile = CFile::MakeFileArray($val);
                    $file = $folder->uploadFile($arFile, array(
                       'NAME' => $arFile["name"],
                       'CREATED_BY' => $USER_ID
                    ), array(), true);
                    
                    //Добавляем id файлов в массив с префиксом n
                    $newFiles[] = "n".$file->getId();
                     
                }
                //Прикрепляем файлы к задаче
                if(!empty($newFiles)){
                    $oTaskItem = new CTaskItem($cur_task["ID"], $responsible);
                    try
                    {
                       $rs = $oTaskItem->Update(array("UF_TASK_WEBDAV_FILES" => $newFiles));
                    }
                    catch(Exception $e)
                    {
                       print(GetMessage("TASK_FILES_LINKED_ERROR"));
                    }
                     
                }
© «Битрикс», 2001-2025, «1С-Битрикс», 2025
Наверх