Как правильно настроить пагинацию для CIBlockElement?

Для настройки пагинации в 1C-Bitrix для работы с элементами инфоблока (CIBlockElement) необходимо выполнить несколько шагов.

1. Определите необходимые параметры пагинации.
Необходимо учесть, сколько элементов вы хотите отображать на одной странице, и сколько элементов у вас в общем. Зная эти данные, вы сможете определить сколько всего страниц будет и какая страница в данный момент отображается.

2. Подготовьте данные для пагинации.
Для этого используйте метод CIBlockElement::GetList вместе с параметрами для постраничного вывода. Необходимо передать количество элементов на странице (CIBlockElement::GetList($arOrder, $arFilter, false, array("nPageSize"=>$pageSize))) и текущую страницу (CIBlockElement::GetList($arOrder, $arFilter, false, array("iNumPage"=>$pageNumber)))

3. Выведите пагинацию.
В зависимости от версии 1C-Bitrix, есть несколько способов вывода пагинации. Однако, наиболее распространенный способ - использование класса CPagination. Вот пример как использовать этот класс:

$arNavParams = array(
    "nPageSize" => $pageSize,
    "iNumPage" => $pageNumber,
);
$arNavigation = CDBResult::GetNavParams($arNavParams);
$pagination = new BitrixMainUIPageNavigation("page-navigation");
$pagination->setPageSize($arNavigation["nPageSize"]);
$pagination->setRecordCount($totalCount);
$pagination->setCurrentPage($arNavigation["iNumPage"]);
  
$arResult["NAV_STRING"] = $pagination->getHtml();

// Выводим элементы в цикле
while($arElement = $dbElement->GetNextElement()) {
    // Вывод элемента
}

// Выводим пагинацию
echo $arResult["NAV_STRING"];

При этом, в "nPageSize" передается количество элементов на странице, "iNumPage" содержит номер текущей страницы. "totalCount" - общее количество элементов.

Также можно использовать другие методы и классы из компонентов 1C-Bitrix для работы с пагинацией, такие как CDBResult и CPagination. В документации по 1C-Bitrix вы можете найти больше информации и примеров по настройке и использованию пагинации для CIBlockElement.