Задать вопрос
@SergeyZaigraev
веб-программист

Битрикс 24. Почему не прикрепляется файл к задаче?

Доброго времени суток.

Пытаюсь используя API создать задачу и прикрепить к ней файл, делаю это так:

$arFields = Array (
     "TITLE" => "Title",
      "DESCRIPTION" => "Description",
      "RESPONSIBLE_ID" => "2",
      "PRIORITY"=> "1",
      "CREATED_BY"=>23,
      "GROUP_ID"=>14,
      "DEADLINE"=> $date,
     "UF_CRM_TASK"=>array(
     "C_".$user_id,
     "CO_".$arComp["ID"]
   )
);
$obTask = new CTasks;
$task_id = $obTask->Add($arFields); // Задача успешно создается


Пробую прикрепить файл
$arFile = $_FILES["file"];
Добавляю файл в библиотеку файлов пользователя и после:

if($ElemID) {

     try {
     
      $oTaskItem = new CTaskItem($task_id, ID_USER_TICKETS);
      $rs = $oTaskItem->Update(
                      array(
                          "UF_TASK_WEBDAV_FILES" => array($ElemID)
                       ),        
                    array(
                          "USER_ID" => ID_USER_TICKETS,
                           "CHECK_RIGHTS_ON_FILES" => false
                     )
          );
  }
       catch (TasksException $e) {

   pr($e,true);
  return;
 }
   }

Создаю задачу и добавляю файл под неавторизованным пользователем

TasksException Object
(
    [data:protected] => Array
        (
        )

    [additional:protected] => Array
        (
            [CODE] => 1048584
        )

    [errors:protected] => 
    [messageOrigin:protected] => a:1:{i:0;a:2:{s:2:"id";s:16:"WD_ERR_IBLOCK404";s:4:"text";s:35:"Инфоблок не найден.";}}
    [message:protected] => a:1:{i:0;a:2:{s:2:"id";s:16:"WD_ERR_IBLOCK404";s:4:"text";s:35:"Инфоблок не найден.";}}
    [string:Exception:private] => 
    [code:protected] => 1048584
    [file:protected] => /bitrix/modules/tasks/classes/general/taskitem.php
    [line:protected] => 2550
    [trace:Exception:private] => Array
        (
            [0] => Array
                (
                    [file] => /bitrix/modules/tasks/classes/general/taskitem.php
                    [line] => 2249
                    [function] => throwExceptionVerbose
                    [class] => CTaskItem
                    [type] => ::
                    [args] => Array
                        (
                            [0] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => WD_ERR_IBLOCK404
                                            [text] => Инфоблок не найден.
                                        )

                                )

                        )

                )

            [1] => Array
                (
                    [file] => /bitrix/modules/tasks/classes/general/taskitem.php
                    [line] => 1652
                    [function] => proceedAction
                    [class] => CTaskItem
                    [type] => ->
                    [args] => Array
                        (
                            [0] => 9
                            [1] => Array
                                (
                                    [FIELDS] => Array
                                        (
                                            [UF_TASK_WEBDAV_FILES] => Array
                                                (
                                                    [0] => 16939
                                                )

                                        )

                                    [PARAMETERS] => Array
                                        (
                                            [USER_ID] => 23
                                            [CHECK_RIGHTS_ON_FILES] => 
                                        )

                                )

                        )

                )

            [2] => Array
                (
                    [file] => /help/index.php
                    [line] => 202
                    [function] => update
                    [class] => CTaskItem
                    [type] => ->
                    [args] => Array
                        (
                            [0] => Array
                                (
                                    [UF_TASK_WEBDAV_FILES] => Array
                                        (
                                            [0] => 16939
                                        )

                                )

                            [1] => Array
                                (
                                    [USER_ID] => 23
                                    [CHECK_RIGHTS_ON_FILES] => 
                                )

                        )

                )

        )

    [previous:Exception:private] => 
)

При этом, если добавлять файл авторизовавшись на портале, проблем нет, файл через API добавляется нормально.

Что я могу упускать ?

Кто нибудь решал подобные задачи?

Буду рад любым советам.
  • Вопрос задан
  • 2219 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
@SergeyZaigraev Автор вопроса
веб-программист
Решил проблему следующим способом:

global $USER;
$USER->Authorize(ID_USER_TICKETS);

if($ElemID){

   try{

      $oTaskItem = new CTaskItem($task_id, ID_USER_TICKETS);
      $rs = $oTaskItem->Update(
         array(
            "UF_TASK_WEBDAV_FILES" => array($ElemID)
         ),
         array(
            "USER_ID" => ID_USER_TICKETS,
            "CHECK_RIGHTS_ON_FILES" => false
         )
      );
   }
   catch (TasksException $e) {
      pr($e,true);
      return;
   }
}
$USER->Logout();


т.к под авторизованным пользователем проблем с прикреплением файла нет то, собственно и решил перед добавлением, авторизовать своего пользователя и после добавления разлогинить, не знаю на сколько это правильный подход, но работает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы