GrabDuck

1С-Битрикс Разработчикам - Предыдущий и следующий элементы раздела

:

Немного не понял замечания. Почему выбираю все активные элементы всех инфоблоков? Подзапрос вроде бы выполняется на основе основного запроса, где указана секция. И подзапрос возвращает в любом случае только одну строку для каждого элемента освновного запроса (или подзапрос выполняется в первую очередь, а потом основной? Если да, тогда согласен). Возврат вроде как не в случайном порядке, а в порядке заполнения, т.е. по id, поэтому сортировку не ставил - всё и без неё как надо работает...Менять сортировку элементов через настройки самого компонента никто не будет, в этом нет необходимости.
Можно было бы обойтись без подзапроса, т.к. в таблице b_iblock_element есть всё необходимое

select ID from `b_iblock_element` where
ACTIVE = 'Y'
and IBLOCK_SECTION_ID = '".$arResult["IBLOCK_SECTION_ID"]."'
and WF_PARENT_ELEMENT_ID is NULL

но тогда порядок вывода будет действительно не тот, в котором вводили товары в данной секции, т.е. нужно было бы учитывать сортировку в настройках компонента (которую искать по базе нет времени), так что пока оставил:

select IBLOCK_ELEMENT_ID from `b_iblock_section_element`
where IBLOCK_SECTION_ID = '".$arResult["IBLOCK_SECTION_ID"]."' and IBLOCK_ELEMENT_ID in
(select ID from `b_iblock_element` where ACTIVE = 'Y'
and IBLOCK_SECTION_ID = '".$arResult["IBLOCK_SECTION_ID"]."'
and WF_PARENT_ELEMENT_ID is NULL)