Форум 1С-Битрикс

Автоматическая установка изображения раздела из товара в 1С-Битрикс

Внимание! Работает режим премодерации. Все сообщения публикуются после проверки!
Страницы: 1
Ответить
RSS
Автоматическая установка изображения раздела из товара в 1С-Битрикс
Как автоматически установить картинку раздела на основе товара из этого раздела в CMS 1С-Битрикс. Разбор кода

В этой статье мы рассмотрим, как автоматически установить картинку  раздела на основе товара в CMS 1С-Битрикс. Это полезно, если нужно  связать разделы с изображениями товаров и автоматически их обновлять.
Изменено: Валерий Макеев - 29.09.2025 11:34:40
Код устанавливает картинку раздела на основе изображения первого активного товара с детальной картинкой (DETAIL_PICTURE) в этом разделе, игнорируя PREVIEW_PICTURE и обрабатывая только корневые разделы без подразделов.

Код
<?php
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

\Bitrix\Main\Loader::includeModule('iblock');

$sections = CIBlockSection::GetList(
    ['ID' => 'ASC'],
    [
        'IBLOCK_ID' => 17,
        'PICTURE' => false,
        'SECTION_ID' => false // только корневые разделы
    ],
    false,
    ['ID']
);

while ($section = $sections->GetNext()) {
    $element = CIBlockElement::GetList(
        ['SORT' => 'ASC'],
        [
            'IBLOCK_ID' => 17,
            'ACTIVE' => 'Y',
            '!DETAIL_PICTURE' => false,
            'SECTION_ID' => $section['ID'],
            'INCLUDE_SUBSECTIONS' => 'N' // не искать в подразделах
        ],
        false,
        ['nTopCount' => 1],
        ['DETAIL_PICTURE']
    )->Fetch();

    if ($element && !empty($element['DETAIL_PICTURE'])) {
        $fileArray = CFile::MakeFileArray($element['DETAIL_PICTURE']);
        $sectionUpdater = new CIBlockSection;
        $sectionUpdater->Update($section['ID'], ['PICTURE' => $fileArray]);
    }
}
?>
Страницы: 1
Ответить
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки
 

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Аутсорсинг

готов помочь, если нет времени

договорная

Могу взять на себя работы по full-stack

* на основе готовой верстки

Разработка корпоративного сайта

от 7 дней

от 40 000 рублей

Разработка сайта без системы оплаты заказов через корзину

* стоимость зависит от наличия верстки, использования готового решения и т.д.

Разработка интернет-магазина с готовой версткой

от 4 недель

от 90 000 рублей

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.