Полезные выборки Bitrix - Сергей Житников: Web-разработчик

Полезные выборки Bitrix

Получаем список родителей для элемента инфоблока

use Bitrix\Iblock\SectionTable;
use Bitrix\Iblock\ElementTable;
use Bitrix\Main\Loader;
use Bitrix\Main\SystemException;

if (!Loader::includeModule('iblock')) {
    throw new SystemException(
        'Ошибка подключения модуля информационных блоков'
    );
}

$elementId = 100;

$element = ElementTable::getRow([
    'select' => [
        'IBLOCK_SECTION_ID',
    ],
    'filter' => [
        '=ID' => $elementId,
    ],
]);

if ($element !== null) {

    $parentSections = [];

    $parentSectionIterator = SectionTable::getList([
        'select' => [
            'SECTION_ID' => 'SECTION_SECTION.ID',
            'IBLOCK_SECTION_ID' => 'SECTION_SECTION.IBLOCK_SECTION_ID',
        ],
        'filter' => [
            '=ID' => $element['IBLOCK_SECTION_ID'],
        ],
        'runtime' => [
            'SECTION_SECTION' => [
                'data_type' => '\Bitrix\Iblock\SectionTable',
                'reference' => [
                    '=this.IBLOCK_ID' => 'ref.IBLOCK_ID',
                    '>=this.LEFT_MARGIN' => 'ref.LEFT_MARGIN',
                    '<=this.RIGHT_MARGIN' => 'ref.RIGHT_MARGIN',
                ],
                'join_type' => 'inner'
            ],
        ],
    ]);

    while ($parentSection = $parentSectionIterator->fetch()) {
        $parentSections[$parentSection['SECTION_ID']] = $parentSection;
    }

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

} else {
    throw new SystemException(
        sprintf('Элемент с ID "%d" не найден', $elementId)
    );
}

Получаем все ID элементов инфоблока

\Bitrix\Main\Loader::includeModule('iblock');

$dbItems = \Bitrix\Iblock\ElementTable::getList([
    'select' => ['ID'],
    'filter' => ['IBLOCK_ID' => IB_ID],
])->fetchAll();

$itemsId = array_column($dbItems, 'ID');
Сергей Житников
Об авторе

Сергей Житников - Веб-разработчик

Занимаюсь веб-разработкой более 5 лет. Специализируюсь на создании адаптивных сайтов и веб-приложений на HTML5, CSS3 и JavaScript. Работаю с популярными CMS и фреймворками, а также уделяю большое внимание оптимизации производительности и чистоте кода.

Есть проект или идея? Буду рад помочь!

Связаться со мной

Последние статьи

19.06.2026
В статье собрал шпаргалку по основным компонентам Bitrix: bitrix:menu, news.list, news.detail, sale.basket.basket.line, main.include и breadcrumb. Разобрал настройку меню из разделов и элементов инфоблока через файлы .menu_ext.php, показываю полные конфигурации компонентов с пояснениями ключевых параметров. Готовые примеры для быстрого копирования и использования в проектах.
19.06.2026
Купоны в Битрикс неразрывно связаны с правилами работы с корзиной — без привязки к правилу они не сработают, а правило без купонов применит скидку на все товары. Разбираю создание купонов через DiscountCouponTable::add(): обязательные и опциональные поля, типы купонов, флаги активности. Показываю примеры работы с датами через объект DateTime (прибавление дней, месяцев и минут).
19.06.2026
Разбираю готовые примеры работы с изображениями в PHP: сохранение на сервер, вывод в браузер, рисование линий и прямоугольников. Отдельно — нюансы с форматами файлов (JPEG/PNG) и поддержкой кириллицы через шрифты.