Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!
Возможно, я не совсем понятно описал проблему.
На страницу выведен компонент bitrix:catalog
Список bitrix:catalog.section.list при этом сортирутся в рандомном порядке (не по id, не по алфавиту).
Т.е. например, идет список:
Программное обеспечение (4) - При клике на любой из разделов, внутри него с сортировкой все впорядке.
Сканеры (8)
Жесткие диски (5)
Вопрос: как осортировать основной список bitrix:catalog.section.list?
Так все-таки, это глюк что основной список не сортируется? Или надо задавать какие-то дополнительные правила сортировки? Или вопрос совем не корректен и нужны еще подробности?
Вот основной список, так, как его выводит компонент, сортировки нет
Но, например при клике на "Кабели и переходники" внутри раздела сортировка нормально работает.
Есть пара совпадающих номеров, остальные отличаются. Откуда берется цифра "Индекс сортировки" при экспорте из 1С? И что будет с экспортом, если я вручную эти индексы расставлю?
ну у меня похожая проблема, при разборе работы выяснилось, что при экспорте из 1С сортировка назначается по возрастанию с шагом 10, а компонент дерево разделов строит по сортирофке left_margin. а Left_margin сортируется сначала по полю Sort.
Я решил проблему в лоб. Создал файл sort.php со следующим содержанием
$strSql = "UPDATE b_iblock_section SET SORT='500' WHERE `IBLOCK_ID`='код блока'";
$res = $DB->Query($strSql, false, $err_mess.__LINE__);
if(CModule::IncludeModule("iblock"))
{
$obSect = new CIBlockSection;
CIBlockSection::Resort(код блока);
}
Где выделено красным надо заменить на свой код инфоблока.
После окончания экспорта я вызываю этот файл http://сайт/sort.php и он меняет у всех разделов инфоблока индекс сортировки и пересчитывает Left_margin после этого разделы выводятся отсортированными по алфавиту.