С форума битрикса взял полезный скриптик: если у элемента есть детальная картинка, но нет превьюхи, то сделаем её!
$arFilter = Array("IBLOCK_ID"=>7,"ACTIVE"=>"Y"); $ItemsList = CIBlockElement::GetList(false, $arFilter ); $el = new CIBlockElement; while($arItem = $ItemsList->Fetch()) { // если детальная картинка есть, делаем превьюху if($arItem["DETAIL_PICTURE"] == "") continue; // ресайзим под нужный размер превьюхи $preview_img = CFile::ResizeImageGet( $arItem["DETAIL_PICTURE"], array('width'=>150, 'height'=>150), BX_RESIZE_IMAGE_PROPORTIONAL, false ); $arLoadProductArray = Array( "PREVIEW_PICTURE" => CFile::MakeFileArray($preview_img["src"]), ); $res = $el->Update($arItem["ID"], $arLoadProductArray); }