Как проверить установленные модули в 1С-Битрикс
Существует несколько способов проверки установленных модулей на сайте 1С-Битрикс — как через административную панель, так и программно.
1. Через административную панель (визуально)
Перейдите в административном разделе сайта по пути:
«Рынок» → «Установленные решения» (бывший «Marketplace» → «Установленные решения»)
Или:
«Настройки» → «Настройки продукта» → «Модули»
На этой странице отображается полный список всех модулей с указанием, установлен ли модуль и активен ли он.
2. Программно — получение списка установленных модулей
Для программной проверки используйте статический метод класса Bitrix\Main\ModuleManager:
<?php
use Bitrix\Main\ModuleManager;
// Получить список всех установленных модулей (ключ - ID модуля)
$arInstalledModules = ModuleManager::getInstalledModules();
// Вывести массив установленных модулей
print_r($arInstalledModules);
// Проверить, установлен ли конкретный модуль
if (ModuleManager::isModuleInstalled('iblock')) {
echo "Модуль 'Инфоблоки' установлен";
}
// Проверить, установлен ли модуль и является ли он "активным"
// (то есть используется в текущей редакции)
if (ModuleManager::isModuleInstalled('sale')) {
echo "Модуль 'Интернет-магазин' установлен";
}
?>
3. Программно — получение списка активных модулей
Если нужно получить только активные модули (те, которые реально работают в системе), используйте:
<?php
// Получить список активных модулей
$arActiveModules = \Bitrix\Main\Config\Option::get('main', 'modules', '');
// Или через глобальную переменную
global $DB;
$arActiveModules = array_keys(\Bitrix\Main\ModuleManager::getActiveModules());
print_r($arActiveModules);
?>
4. Через API — класс ModuleManager
Основные методы класса \Bitrix\Main\ModuleManager:
- getInstalledModules() — возвращает массив всех установленных модулей (ключ = ID модуля, значение = информация о версии и пр.)
- isModuleInstalled($moduleId) — проверяет, установлен ли конкретный модуль (возвращает
true/false) - getActiveModules() — возвращает массив активных модулей
5. Через файловую структуру
Вы можете также проверить наличие модуля по каталогу на сервере:
<?php
// Проверить существование директории модуля
if (is_dir($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/iblock')) {
echo "Директория модуля 'Инфоблоки' существует";
}
?>
Однако этот способ не гарантирует, что модуль корректно установлен в БД — он лишь проверяет наличие файлов модуля на сервере.
Рекомендуемый способ
Лучше всего использовать \Bitrix\Main\ModuleManager::isModuleInstalled() — это надёжный и стандартный метод, используемый в ядре Битрикс.