Рецепты и примеры кода для CMS Bitrix

Установить картинку раздела по картинке одного из товаров в этом разделе


\Bitrix\Main\Loader::includeModule('iblock');
$arRes = CIBlockSection::GetList(['SORT'=>'ASC'], [
	'IBLOCK_ID'=>17,
	'PICTURE'=>false,
], true, [
	'ID',
	'IBLOCK_ID',
	'NAME',
]);
while($arSection = $arRes->GetNext()){
	var_dump($arSection);
	$res = CIBlockElement::getlist(
            ["SORT" => "ASC"],
            ["IBLOCK_ID" => 17, 'ACTIVE' => 'Y', '!PREVIEW_PICTURE' => false, 'SECTION_ID' => $arSection['ID'], 'INCLUDE_SUBSECTIONS' => 'Y'],
            false,
            false,
            ["ID", "NAME", "PREVIEW_PICTURE"]
        );
	$arElement = $res->GetNext();
	var_dump($arElement);
	$arFile = CFile::MakeFileArray($arElement["PREVIEW_PICTURE"]);
	var_dump($arFile);
	$sec = new CIBlockSection;
	$sec->Update($arSection['ID'],['PICTURE' => $arFile]);
}
	

Выбираем разделы без картинок и пытаемся найти товар в этом разделе и подразделах.
Параметр INCLUDE_SUBSECTIONS позволяет искать товар в подразделах раздела.
Бывает, что в разделе нет активных товаров, тогда после установки картинок по активным товарам, можно установить картинки по неактивным товарам поменяв фильтр ACTIVE на 'N'.