• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/taskfiles.php
  • Класс: CTaskFiles
  • Вызов: CTaskFiles::DeleteByTaskID
static function DeleteByTaskID($TASK_ID, $SAVE_FILES = array())
{
	global $DB;

	$rsTaskFiles = CTaskFiles::GetList(array(), array("TASK_ID" => $TASK_ID));

	$sqrWhereAdditional = '';
	if (is_array($SAVE_FILES) && count($SAVE_FILES))
		$sqrWhereAdditional .= 'AND FILE_ID NOT IN (' . implode(',', array_map('intval', $SAVE_FILES)) . ')';

	$TASK_ID = intval($TASK_ID);
	$strSql = "DELETE FROM b_tasks_file WHERE TASK_ID = " . $TASK_ID . ' ' . $sqrWhereAdditional;
	$result = $DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__); if ($result) { $arFilesToDelete = array(); while ($arTaskFiles = $rsTaskFiles->Fetch()) { // Skip files, that attached to some existing tasks $rsFiles = CTaskFiles::GetList(array(), array("FILE_ID" => $arTaskFiles["FILE_ID"])); if (!$arFile = $rsFiles->Fetch()) { if (!in_array($arTaskFiles["FILE_ID"], $SAVE_FILES)) { $arFilesToDelete[] = $arTaskFiles["FILE_ID"]; } } } foreach ($arFilesToDelete as $file) { CFile::Delete($file); } } return $result; }