С форума битрикса взял полезный скриптик: если у элемента есть детальная картинка, но нет превьюхи, то сделаем её!
$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);
}