Создание превьюшки из PDF и запись картинки в PREVIEW_PICTURE на лету по событию создания элемента

// проверить включено ли расширение Imagick (зайти через putty, в меню битрикс env, и там 8 -> 2 -> 7).
AddEventHandler("iblock", "OnAfterIBlockElementAdd", Array("Preview_PDF", "OnAfterIBlockElementAddHandler")); // вызываем функцию при событии "после добавления элемента в инфоблок

class Preview_PDF{

 // создаем обработчик события "OnAfterIBlockElementAdd"
 function OnAfterIBlockElementAddHandler(&$arFields){
 if(CModule::IncludeModule("iblock")) // подключаем модуль для работы с инфоблоком
 {
 $arFile = ''; // создаем переменную в которой будет записан путь к файлу
 $res = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $arFields["ID"], array("sort" => "asc"), Array("CODE"=>"FILE"));
 if ($ob = $res->GetNext()){
 $arFile = CFile::GetFileArray($ob['VALUE']); // получаем массив данных по файлу
 }
 }
 //генерация превью
 $pdf = $_SERVER["DOCUMENT_ROOT"].$arFile['SRC'];
 $image = new Imagick($pdf.'[0]');
 $image->setImageFormat( "jpg" );
 $image->writeImage($_SERVER["DOCUMENT_ROOT"]. "/include/picture/".str_replace('pdf', 'jpg', $arFile["ORIGINAL_NAME"]));

 // запись превью в массив arFields
 $el = new CIBlockElement;
 $arLoadProductArray = Array(
 "PREVIEW_PICTURE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]. "/include/picture/".str_replace('pdf', 'jpg', $arFile["ORIGINAL_NAME"]))
 );
 $res = $el->Update($arFields["ID"], $arLoadProductArray);

 }
}