Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Как используя news вывести бренды? создать страницу брендов и при переходе на бренд попадаем на страницу бренда с его товарами

Вопрос задан: 28 июня 2026 в 07:00 | Просмотров: 9 Использованные MCP инструменты: searchDocs, liveApiListComponents

Задайте свой вопрос — Работает AI в связке с MCP сервером. Перепроверяйте важную информацию.

В 1С-Битрикс компонент bitrix:news — это комплексный компонент, который изначально задуман для новостей, но благодаря гибкой архитектуре может быть кастомизирован для вывода любых сущностей, включая бренды.

Ниже — пошаговая инструкция, как организовать страницу списка брендов и детальную страницу бренда с его товарами.

1. Структура данных

Создаётся два инфоблока:

  • Инфоблок «Бренды» (например, API_CODE = Brands) — каждый элемент это бренд. Поля: название, логотип (файл), описание, символьный код.
  • Инфоблок «Товары» (каталог, API_CODE = Products) — у товаров создаётся свойство типа «Привязка к элементам» с кодом BRAND, которое ссылается на инфоблок «Бренды».

2. Страница списка брендов

Создаётся страница (например, /brands/index.php), на которой размещается комплексный компонент:

<?$APPLICATION->IncludeComponent(
    "bitrix:news",
    "brands",
    array(
        "IBLOCK_TYPE" => "content",
        "IBLOCK_ID" => "ID_ИНФОБЛОКА_БРЕНДОВ",
        "NEWS_COUNT" => "20",
        "USE_SEARCH" => "N",
        "USE_RSS" => "N",
        "USE_RATING" => "N",
        "USE_CATEGORIES" => "N",
        "USE_REVIEW" => "N",
        "USE_FILTER" => "N",
        "SORT_BY1" => "SORT",
        "SORT_ORDER1" => "ASC",
        "SORT_BY2" => "NAME",
        "SORT_ORDER2" => "ASC",
        "CHECK_DATES" => "Y",
        "SEF_MODE" => "Y",
        "SEF_FOLDER" => "/brands/",
        "SEF_URL_TEMPLATES" => array(
            "news" => "",
            "section" => "",
            "detail" => "#ELEMENT_CODE#/",
        ),
        "FIELD_CODE" => array("ID", "NAME", "PREVIEW_PICTURE", "DETAIL_TEXT"),
        "PROPERTY_CODE" => array(),
        "SET_TITLE" => "Y",
        "SET_STATUS_404" => "Y",
        "INCLUDE_IBLOCK_INTO_CHAIN" => "N",
        "ADD_SECTIONS_CHAIN" => "N",
    )
);?>

Шаблон .default копируется в /bitrix/templates/ваш_шаблон/components/bitrix/news/brands/. В файле list.php меняется вывод под карточки брендов.

3. Детальная страница бренда с товарами

В скопированном шаблоне detail.php вызывается стандартный bitrix:news.detail. Чтобы на этой странице вывести товары конкретного бренда, используется файл result_modifier.php шаблона детальной страницы.

Файл: /bitrix/templates/ваш_шаблон/components/bitrix/news/brands/bitrix/news.detail/.default/result_modifier.php

<?php
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();

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

$brandId = $arResult['ID'];
$brandName = $arResult['NAME'];

// ID инфоблока товаров
$productsIblockId = XX; // замените на ID инфоблока товаров

// Получаем товары, у которых свойство BRAND = ID текущего бренда
$arResult['BRAND_PRODUCTS'] = array();

$arFilter = array(
    'IBLOCK_ID' => $productsIblockId,
    'ACTIVE' => 'Y',
    'PROPERTY_BRAND' => $brandId,
);

$arSelect = array('ID', 'NAME', 'PREVIEW_PICTURE', 'DETAIL_PAGE_URL', 'CATALOG_GROUP_1');

$res = CIBlockElement::GetList(
    array('SORT' => 'ASC', 'NAME' => 'ASC'),
    $arFilter,
    false,
    false, // можно передать array("nTopCount" => 50),
    $arSelect
);

while ($ob = $res->GetNextElement())
{
    $fields = $ob->GetFields();
    // Получаем минимальную цену
    $price = CCatalogProduct::GetOptimalPrice($fields['ID']);
    $fields['PRICE'] = $price['PRICE']['PRICE'] ?? 0;
    $fields['CURRENCY'] = $price['PRICE']['CURRENCY'] ?? 'RUB';

    // Картинка товара
    if ($fields['PREVIEW_PICTURE'])
    {
        $fields['PREVIEW_PICTURE_SRC'] = CFile::GetPath($fields['PREVIEW_PICTURE']);
    }

    $arResult['BRAND_PRODUCTS'][] = $fields;
}

Файл: template.php (детальной страницы) использует полученные данные:

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?>

<h1><?=$arResult['NAME']?></h1>

<?if ($arResult['DETAIL_PICTURE']):?>
    <img src="<?=$arResult['DETAIL_PICTURE']['SRC']?>" alt="<?=$arResult['NAME']?>">
<?endif;?>

<?=$arResult['DETAIL_TEXT'];?>

<h3>Товары бренда <?=$arResult['NAME']?></h3>

<?if (!empty($arResult['BRAND_PRODUCTS'])):?>
    <div class="brand-products">
        <?foreach ($arResult['BRAND_PRODUCTS'] as $product):?>
            <div class="product-item">
                <?if ($product['PREVIEW_PICTURE_SRC']):?>
                    <img src="<?=$product['PREVIEW_PICTURE_SRC']?>" alt="<?=$product['NAME']?>">
                <?endif;?>
                <a href="<?=$product['DETAIL_PAGE_URL']?>">
                    <?=$product['NAME']?>
                </a>
                <?if ($product['PRICE'] > 0):?>
                    <span><?=number_format($product['PRICE'], 0, '.', ' ')?> <?=$product['CURRENCY']?></span>
                <?endif;?>
            </div>
        <?endforeach;?>
    </div>
<?else:?>
    <p>Нет товаров этого бренда.</p>
<?endif;?>

4. Альтернативный подход: бренды как разделы

Если бренды — это разделы инфоблока товаров, можно использовать компонент bitrix:news в режиме вывода разделов. Для этого в настройках инфоблока «Бренды» включите разделы, а в элементе каждого раздела разместите описание бренда. На детальной странице раздела (через шаблон section.php) штатно выведутся все товары из этого раздела.

Параметры для такого режима:

"DISPLAY_PANEL" => "N",
"ADD_SECTIONS_CHAIN" => "Y",
"USE_PERMISSIONS" => "N",
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Товары",
"PAGER_SHOW_ALWAYS" => "N",
"PAGER_TEMPLATE" => ".default",
"CATALOG_ACTIVE" => "Y"

В этом случае используется стандартная механика компонента bitrix:news: страница со списком разделов — section.php, страница с элементами раздела — section.php с выводом элементов (товаров) через bitrix:news.list.

5. Важные замечания

  • Не забудьте скопировать шаблоны компонента в папку шаблона сайта, иначе изменения потеряются при обновлении.
  • Для кеширования используйте $this->SetResultCacheKeys() в result_modifier.php, если данные товаров должны попадать в кеш.
  • Если у товаров включён торговый каталог, для получения цен используйте CCatalogProduct::GetOptimalPrice() или CPrice::GetList().
  • Для SEO настройте шаблоны URL в настройках инфоблока: DETAIL_PAGE_URL для брендов — /brands/#ELEMENT_CODE#/.

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее
Сайт на готовом решении 1С-Битрикс
от 70 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Индивидуальная разработка магазина
от 300 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Инфоресурс
от 170 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Сайт компании
от 150 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс