Ошибка "BX is not defined" указывает, что основная библиотека Bitrix Framework (BX) не была загружена к моменту выполнения вашего кода.
Это происходит потому, что Bitrix автоматически загружает ядро (bx_core) только при инициализации какого-либо из своих JavaScript-расширений. Самостоятельно подключить только ядро невозможно.
Чтобы решить проблему, инициализируйте любое необходимое расширение, например, AJAX: CUtil::InitJSCore(['ajax']).
Это приведет к загрузке как выбранного расширения, так и требуемого ядра BX.