Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Быстро узнать сколько элеменов в разделе инфоблока или всем инфоблоке

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Код
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
define('NO_AGENT_STATISTIC', true);
define('DisableEventsCheck', true);
define('STOP_STATISTICS', true);

require_once $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php';

use \Bitrix\Main\Loader;

Loader::includeModule('iblock');

const IBLOCK_ID = 4;
const SOURCE_SECTION_ID = 254;

$arFilter = [
    'IBLOCK_ID' => IBLOCK_ID,
    'IBLOCK_SECTION_ID' => SOURCE_SECTION_ID,
    'ACTIVE' => 'Y'
];

$count = CIBlockElement::GetList(
    [],
    $arFilter,
    []
);

echo '<pre>';
print_r($count);
echo '</pre>';

Так как CIBlockElement::GetList это счетчик - курсор к данным в БД, он тупо возвращает количество элементов по запросу.
Дальнейшую работу обычно делаем с while ($ЭЛЕМЕНТ = $СЧЕТЧИК->Fetch())  - или GetNext в зависимости от целей.

В общем, по результату из примера будет просто число/колличество найденных элементов.
Работает с любыми ***::GetList

Таким образом, применяя разное в фильтре получаем число найденных объектов.
В примере: количество элементов в разделе 254 инфоблока 4
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
 

Блог-note Заметки по 1С-Битрикс