Заметки
Loader::includeModule / CModule::IncludeModule: что использовать
В новом D7-коде модуль обычно подключают через Bitrix\Main\Loader::includeModule(). В старых проектах встречается CModule::IncludeModule() — само наличие этого вызова ещё не означает ошибку.
use Bitrix\Main\Loader;
if (!Loader::includeModule('crm')) {
throw new RuntimeException('Модуль CRM недоступен');
} Оба варианта требуют уже подключённого ядра Битрикса. use лишь сокращает имя класса и не загружает модуль.
Проверка результата здесь нужна по делу: без модуля следующий вызов CRM-класса даст другую ошибку и скроет причину. Подключайте нужный модуль до первого использования его классов.
Механическая замена всех CModule на Loader не переводит проект на D7. Важнее, какой API вызывается дальше и какие версии ядра поддерживает код.