Bitrix Help
Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Главная » Разработка Битрикс » D7 » Loader::includeModule в Битрикс: что это такое и как использовать

Loader::includeModule в Битрикс: что это такое и как использовать

Обновлено: 2026 • Раздел: D7
При разработке сайтов и модулей на 1С-Битрикс разработчики регулярно работают с различными модулями системы: инфоблоками, интернет-магазином, CRM, почтовыми сервисами и другими компонентами платформы. Перед использованием классов и методов любого модуля его необходимо подключить. Для этого в D7 API используется метод Loader::includeModule(). В этой статье подробно рассмотрим, что такое Loader::includeModule, как он работает, когда его использовать и приведем множество практических примеров кода.

Что такое Loader::includeModule

Loader::includeModule() — это метод класса Loader, предназначенный для подключения модулей Битрикс. Класс находится в пространстве имен:
Bitrix\Main\Loader
Подключение выполняется следующим образом:
use Bitrix\Main\Loader;

Loader::includeModule('iblock');
После успешного подключения становятся доступны классы, методы и ORM-сущности соответствующего модуля.

Зачем подключать модули

Архитектура Битрикс построена на независимых модулях. Например: До подключения модуля многие его классы недоступны. Например:
use Bitrix\Iblock\ElementTable;
будет работать только после подключения модуля:
Loader::includeModule('iblock');

Подключение класса Loader

Перед использованием необходимо импортировать класс.
use Bitrix\Main\Loader;
Либо использовать полное имя:
\Bitrix\Main\Loader::includeModule('iblock');
Первый вариант считается более удобным и соответствует стандартам D7.

Базовый пример подключения модуля

Самый простой пример:
use Bitrix\Main\Loader;

Loader::includeModule('iblock');
После этого можно работать с классами инфоблоков. Например:
use Bitrix\Iblock\ElementTable;

$list = ElementTable::getList();

Проверка успешного подключения

Метод возвращает логическое значение.
$result = Loader::includeModule('iblock');
Если модуль найден:
true
Если отсутствует:
false
Пример проверки:
if (Loader::includeModule('iblock'))
{
    echo 'Модуль подключен';
}
else
{
    echo 'Модуль не найден';
}
Такой подход считается обязательным при разработке модулей и компонентов.

Подключение нескольких модулей

Очень часто требуется использовать несколько модулей одновременно. Пример:
Loader::includeModule('iblock');
Loader::includeModule('catalog');
Loader::includeModule('sale');
Более безопасный вариант:
if (
    Loader::includeModule('iblock')
    && Loader::includeModule('catalog')
    && Loader::includeModule('sale')
)
{
    // работа с каталогом
}
Это исключает ошибки при отсутствии одного из модулей.

Работа с инфоблоками

Наиболее распространенный пример связан с модулем инфоблоков. Подключение:
Loader::includeModule('iblock');
Получение элементов:
use Bitrix\Iblock\ElementTable;

$items = ElementTable::getList([
    'select' => ['ID', 'NAME']
]);
Без подключения модуля код завершится ошибкой.

Работа с интернет-магазином

Для использования заказов необходимо подключить модуль sale.
Loader::includeModule('sale');
Получение заказа:
use Bitrix\Sale\Order;

$order = Order::load(1);
Это стандартный подход при разработке интернет-магазинов.

Работа с каталогом товаров

Для доступа к товарам используется модуль catalog.
Loader::includeModule('catalog');
Пример:
use Bitrix\Catalog\ProductTable;

$list = ProductTable::getList();
После подключения становятся доступны все ORM-классы каталога.

Работа с Highload-блоками

Для работы с Highload-блоками необходимо подключить отдельный модуль.
Loader::includeModule('highloadblock');
Получение данных:
use Bitrix\Highloadblock\HighloadBlockTable;
Без подключения класса HighloadBlockTable не будут найдены.

Исключения при подключении модулей

В большинстве случаев достаточно обычной проверки через if. Однако иногда используется исключение:
if (!Loader::includeModule('crm'))
{
    throw new Exception('Модуль CRM не установлен');
}
Такой подход удобен в сервисах и интеграциях.

includeModule и автозагрузка классов

После подключения модуля автоматически активируется механизм автозагрузки классов. Например:
Loader::includeModule('sale');

use Bitrix\Sale\Order;
Не требуется вручную подключать файлы через:
require_once
include
Это одна из ключевых особенностей D7.

Где размещать includeModule

Обычно подключение выполняется непосредственно перед использованием функционала модуля. Например:
use Bitrix\Main\Loader;

if (!Loader::includeModule('iblock'))
{
    return;
}
Часто метод используется:

Старый способ подключения модулей

До появления D7 использовался метод:
CModule::IncludeModule('iblock');
Пример:
CModule::IncludeModule('sale');
Сегодня рекомендуется использовать:
Loader::includeModule('sale');
Так как Loader относится к современному API D7.

Различия между Loader и CModule

Loader::includeModule CModule::IncludeModule
D7 API Legacy API
Namespace Без namespace
Современный подход Устаревший подход
Поддержка автозагрузки Ограниченная поддержка
Рекомендуется использовать Только для старого кода
Для новых проектов следует выбирать Loader.

Типичные ошибки

Class not found

Ошибка возникает, если модуль не подключен. Пример:
use Bitrix\Iblock\ElementTable;
Без:
Loader::includeModule('iblock');
система не сможет найти класс.

Модуль отсутствует

Метод возвращает:
false
Необходимо проверить установку модуля через административную панель.

Подключение внутри цикла

Плохой пример:
foreach ($items as $item)
{
    Loader::includeModule('iblock');
}
Подключать модуль нужно один раз до начала цикла.

Практический пример

Получение последних новостей через ORM.
use Bitrix\Main\Loader;
use Bitrix\Iblock\ElementTable;

if (!Loader::includeModule('iblock'))
{
    return;
}

$result = ElementTable::getList([
    'select' => ['ID', 'NAME'],
    'order' => ['ID' => 'DESC'],
    'limit' => 10
]);

while ($item = $result->fetch())
{
    echo $item['NAME'] . '<br>';
}
Такой код полностью соответствует стандартам D7.

Рекомендации по использованию

При работе с Loader рекомендуется: Это делает код более надежным и удобным для поддержки.

Заключение

Loader::includeModule() — один из базовых методов разработки на Битрикс D7. Он позволяет подключать системные и пользовательские модули, активировать автозагрузку классов и получать доступ к функционалу платформы. Правильное использование Loader делает код безопаснее, упрощает поддержку проекта и соответствует современным стандартам разработки на 1С-Битрикс.
База знаний