shopkod
4/5/2020 - 3:50 PM

Экспорт задач в csv файл

<?
Bitrix\Main\Loader::includeModule('tasks');

header("Cache-control: private");
header("Content-type: application/force-download; charset=windows-1251");
header("Content-Disposition: attachment; filename=tasks.csv");

$str = "Номер задачи;Название задачи;Дата;Email клиента SOCOCO;Имя клиента SOCOCO;From;Email;Phone;Company;plan;space";
echo $str, PHP_EOL;

$arFilter = array(
  'UF_SOCOCO_TASK' => 1, // признак автозадачи по SOCOCO
  // '<PRIORITY' => 2, //не важные
  '>=CREATED_DATE' => ConvertTimeStamp(AddToTimeStamp(array('YYYY' => -1)), 'SHORT'), // старше 14 дней
  // 'REAL_STATUS' => array(CTasks::STATE_NEW, CTasks::STATE_PENDING, CTasks::STATE_IN_PROGRESS), // не закрытые
);

$res = CTasks::GetList(
  Array('CREATED_DATE' => 'desc'), 
  $arFilter,
  Array('ID', 'PRIORITY', 'CREATED_DATE', 'TITLE', 'REAL_STATUS', 'UF_SOCOCO_TASK_EMAIL', 'UF_SOCOCO_TASK_UNAME', 'DESCRIPTION'),
  Array('USER_ID' => 1622) // для обеспечения достаточности прав доступа
);
while ($arTask = $res->fetch())
{
  $arData = [
    $arTask['ID'],
    $arTask['TITLE'],
    $arTask['CREATED_DATE'],
    $arTask['UF_SOCOCO_TASK_EMAIL'],
    $arTask['UF_SOCOCO_TASK_UNAME'],
  ];

  if(preg_match_all('/From:\s*(.*)\s*\nEmail:\s*(.*)\s*\nPhone:\s*(.*)\s*\nCompany:\s*(.*)\s*\nplan:\s*(.*)\s*\n.*\nspace:\s*(.*)/', $arTask['DESCRIPTION'], $output_array, PREG_SET_ORDER))
  {
    $output_array = $output_array[0];
    array_shift($output_array);
    $arData = array_merge($arData, $output_array);
  }

  echo implode(';', $arData), PHP_EOL;
}