Сортировка по свойству, когда «пустых» нужно отправить ниже активных элементов
Разбор задачи
Предположим, что на нашем сайте есть список товаров, у который есть поле цена. Мы хотим добавить новую цену товара и указать, что цена снизилась, указав еще старую цену. Для этого можно добавить еще одно поле OLD_PRICE, где будет старая цена.
При этом мы хотим сделать так, чтобы уцененные товары были в начале списка. Для этого можно сделать сортировку по полю OLD_PRICE по возрастанию, но при этом в начале будут товары без уценки, так как у них нет значения в поле OLD_PRICE. Для этого в 1С-Битрикс есть сортировка с указанием в каком порядке будут идти пустые значения:
Практический смысл
Отдельное булево свойство «акция активна» и явный порядок колонок в $arSort обычно проще, чем пытаться угадать позицию пустых полей только одним свойством с NULL.
<?php
// Пример: отделяем элементы без старого прайса вниз набора вторым ключом сортировки
$arSort = [
'PROPERTY_ACTION_FLAG' => 'DESC', // Y раньше N
'PROPERTY_OLD_PRICE' => 'ASC',
'TIMESTAMP_X' => 'DESC',
];Замечания перед выкладкой
Правки через контролируемую среду и с версионированием. Для статей-бэкенда проверяйте включённые модули и права; для чистых CSS-сниппетов — консоль браузера и отсутствие конфликтов с утилитарными классами основного шаблона проекта на Битрикс.
Не хотите копаться сами?
Починю за 1-3 дня. Без предоплаты — оплата по результату.
15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии