Модули
Ресурсы и контроллеры модуля
Подключение JS/CSS и минимальное AJAX-действие с конфигурацией namespace.
Публичные JS и CSS
После установки файлов в /local/js/test.example/ и /local/css/test.example/ подключайте их через Asset. Наличие файла внутри каталога установки модуля не делает его доступным по этим URL.
<?php
use Bitrix\Main\Page\Asset;
Asset::getInstance()->addCss('/local/css/test.example/app.css');
Asset::getInstance()->addJs('/local/js/test.example/app.js'); .settings.php модуля
В /local/modules/test.example/.settings.php задайте пространство имён контроллеров. Класс находится в lib/controller/health.php; автозагрузка модуля должна быть настроена.
<?php
return [
'controllers' => [
'value' => [
'defaultNamespace' => '\Test\Example\Controller',
],
'readonly' => true,
],
]; Контроллер проверки связи
<?php
namespace Test\Example\Controller;
use Bitrix\Main\Engine\ActionFilter;
use Bitrix\Main\Engine\Controller;
class Health extends Controller {
public function configureActions(): array {
return [
'ping' => [
'prefilters' => [
new ActionFilter\Authentication(),
new ActionFilter\HttpMethod([ActionFilter\HttpMethod::METHOD_POST]),
new ActionFilter\Csrf(),
],
],
];
}
public function pingAction(): array {
return ['status' => 'ok'];
}
}Этот метод проверяет связь JS с контроллером и не читает CRM. Авторизация и CSRF не заменяют право на карточку: для будущего действия чтения или изменения CRM добавьте отдельную проверку объекта.
Вызов из интерфейса коробки
BX.ajax.runAction('test:example.Health.ping', {
data: {}
}).then(function (response) {
console.log(response.data.status);
}).catch(function (response) {
console.error(response.errors);
});Код выполняется на странице коробки с подключённым ядром JS. Это API контроллеров Bitrix Framework, а не REST-вызов через BX24.js в облачном приложении.