В Битриксе для произведения фильтрации элементов можно использовать компонент `bitrix:news.list` с использованием параметров `FILTER`.
Пример кода для фильтрации элементов:
```php
$APPLICATION->IncludeComponent(
"bitrix:news.list",
"",
array(
"IBLOCK_TYPE" => "news",
"IBLOCK_ID" => "1",
"NEWS_COUNT" => "10",
"FILTER_NAME" => "customFilter",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"SORT_BY1" => "ID",
"SORT_ORDER1" => "DESC",
"SET_TITLE" => "N"
),
false
);
```
В данном примере параметр `FILTER_NAME` устанавливает имя переменной фильтрации, которую нужно определить перед включением компонента:
```php
$customFilter = array(
"PROPERTY_SOME_PROPERTY" => "some_value"
);
```
Таким образом, в данном примере происходит фильтрация элементов по значению свойства `SOME_PROPERTY`, равного "some_value".
Относительно вывода следующего элемента без привязки к ID, можно использовать функции `CIBlockElement::GetList` или `CIBlockElement::GetNext` из API Битрикс.
Пример кода для вывода следующего элемента:
```php
$nextElement = $APPLICATION->IncludeComponent(
"bitrix:news.list",
"",
array(
"IBLOCK_TYPE" => "news",
"IBLOCK_ID" => "1",
"NEWS_COUNT" => "1",
"FILTER_NAME" => "nextElementFilter",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"SORT_BY1" => "ID",
"SORT_ORDER1" => "ASC",
"SET_TITLE" => "N",
"PREVIEW_IBLOCK_ID" => "2" // ID инфоблока с превью элементов
),
false
);
if ($nextElement && $nextElement["ID"]) {
$nextElementID = $nextElement["ID"];
$nextElementPreview = CFile::GetPath($nextElement["PREVIEW_PICTURE"]);
// Вывод превью следующего элемента
}
```
В данном примере параметры `IBLOCK_ID` и `PREVIEW_IBLOCK_ID` указывают ID инфоблоков, где хранятся элементы и их превью соответственно. Параметр `SORT_BY1` указывает, что элементы должны быть отсортированы по ID в возрастающем порядке. Также задано, что должно быть выведено только одно следующее элемента с использованием параметра `NEWS_COUNT`. Полученные данные можно использовать для вывода превью следующего элемента.