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

Как в каталоге сделать сортировку по названию и цене?

Вопрос задан: 24 мая 2026 в 03:00 | Просмотров: 51 Использованные MCP инструменты: searchDocs, liveApiFindFunction, liveApiGetFunctionCode, liveApiGetClassCode, liveApiListComponents, liveApiFindByReflection

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

В компонентах каталога 1С-Битрикс (bitrix:catalog, bitrix:catalog.section, bitrix:catalog.top и др.) сортировка элементов управляется через группы параметров ELEMENT_SORT_*. Рассмотрим оба варианта.

1. Сортировка через настройки компонента (административный интерфейс)

При редактировании страницы или компонента в публичной части откройте параметры компонента и найдите вкладку Источник данных. Там есть следующие параметры:

  • ELEMENT_SORT_FIELD — поле для первой сортировки;
  • ELEMENT_SORT_ORDER — направление сортировки (ASC — по возрастанию, DESC — по убыванию);
  • ELEMENT_SORT_FIELD2 — поле для второй сортировки (при равенстве значений первого поля);
  • ELEMENT_SORT_ORDER2 — направление второй сортировки.

2. Допустимые значения для полей сортировки

В параметр ELEMENT_SORT_FIELD можно передавать:

  • name — сортировка по названию элемента (полю NAME инфоблока);
  • sort — сортировка по индексу сортировки (SORT);
  • id — сортировка по ID элемента;
  • active_from — по дате начала активности;
  • timestamp_x — по дате последнего изменения;
  • created — по дате создания;
  • CATALOG_PRICE_1 — сортировка по цене (где 1 — ID типа цены, например «Розничная цена»);
  • SCALED_PRICE_1 — сортировка по масштабированной цене (рекомендуется для типов цен с разным количеством знаков после запятой);
  • PROPERTY_XXX — сортировка по пользовательскому свойству с кодом XXX.

3. Примеры настройки

Сортировка по названию (по возрастанию, A→Я):

ELEMENT_SORT_FIELD = name
ELEMENT_SORT_ORDER = ASC

Сортировка по цене (сначала дешёвые):

ELEMENT_SORT_FIELD = CATALOG_PRICE_1
ELEMENT_SORT_ORDER = ASC

Сортировка по цене (сначала дорогие):

ELEMENT_SORT_FIELD = CATALOG_PRICE_1
ELEMENT_SORT_ORDER = DESC

Сначала по названию, при совпадении — по цене (от меньшей к большей):

ELEMENT_SORT_FIELD  = name
ELEMENT_SORT_ORDER  = ASC
ELEMENT_SORT_FIELD2 = CATALOG_PRICE_1
ELEMENT_SORT_ORDER2 = ASC

4. Интерактивная сортировка на странице каталога (пользовательская)

Если нужно дать возможность пользователю самому выбирать сортировку (по названию, цене, новизне), используется компонент bitrix:catalog.smart.filter в связке с сортировкой через $_REQUEST. В шаблоне компонента каталога добавляется форма переключения сортировки, а значения передаются через URL-параметры sort и order.

Типовой код переключателя сортировки в шаблоне каталога:

<?php
// Получаем текущие параметры сортировки из URL
$sortField = $_REQUEST['sort'] ?? 'sort';
$sortOrder = $_REQUEST['order'] ?? 'asc';
?>
<div class="catalog-sorter">
    <a href="?sort=name&order=asc">Название (А-Я)</a>
    <a href="?sort=name&order=desc">Название (Я-А)</a>
    <a href="?sort=CATALOG_PRICE_1&order=asc">Цена (по возрастанию)</a>
    <a href="?sort=CATALOG_PRICE_1&order=desc">Цена (по убыванию)</a>
</div>

Затем в файле result_modifier.php шаблона компонента нужно подменить параметры сортировки перед вызовом CIBlockElement::GetList:

<?php
if (isset($_REQUEST['sort']))
{
    $arParams['ELEMENT_SORT_FIELD'] = $_REQUEST['sort'];
    $arParams['ELEMENT_SORT_ORDER'] = ($_REQUEST['order'] ?? 'asc') === 'desc' ? 'DESC' : 'ASC';
}
?>

5. Программная сортировка через CIBlockElement::GetList

Если вы работаете напрямую с API (модуль iblock, класс CIBlockElement, файл /bitrix/modules/iblock/classes/mysql/iblockelement.php), сортировка задаётся первым параметром метода GetList:

<?php
$arSort = [
    'NAME'          => 'ASC',   // по названию (A→Я)
    'CATALOG_PRICE_1' => 'ASC', // затем по цене (сначала дешёвые)
];
$dbElements = CIBlockElement::GetList(
    $arSort,
    $arFilter,
    false,
    $arNavParams,
    $arSelect
);
?>

Важно: для сортировки по цене через CIBlockElement::GetList необходимо, чтобы модуль catalog был подключён (CModule::IncludeModule('catalog')).

6. Сортировка через D7 ORM (Bitrix\Iblock\ElementTable)

<?php
use Bitrix\Iblock\ElementTable;
$result = ElementTable::getList([
    'order' => [
        'NAME'            => 'ASC',
        'CATALOG_PRICE_1' => 'ASC',
    ],
    'filter' => ['IBLOCK_ID' => $iblockId],
    'select' => ['ID', 'NAME'],
]);
?>

Если у вас остались вопросы по конкретному компоненту или нестандартному кейсу — уточните, какой именно компонент вы используете и какую сортировку хотите реализовать.

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

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

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

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

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

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

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

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

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

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

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

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

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

Подробнее

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

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

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