Вызвать зарегистрированную команду интерфейса BX24.placement.call

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: placement

Кто может выполнять метод: любой пользователь

Метод BX24.placement.call вызывает команду интерфейса, зарегистрированную текущей точкой встраивания.

BX24.placement.call(command, parameters[, callback]);

Параметры

Обязательные параметры отмечены *

Название
тип

Описание

command*
string

Имя вызываемой команды

parameters
any

Передаваемые параметры. Тип значения зависит от команды: объект, строка, число, массив или null. Команды без параметров принимают пустой объект {}

callback
callable

Функция обратного вызова. В нее приходит результат команды

Например, команда setValue точки встраивания USERFIELD_TYPE принимает новое значение поля вторым аргументом:

BX24.placement.call('setValue', value, () => {});

Какие команды доступны

Набор команд задает точка встраивания, в которой открыт виджет. Общего списка на все точки нет: сверяйте его методом BX24.placement.getInterface.

В библиотеке b24jssdk второй аргумент необязателен: для команд без параметров его опускают.

Точка встраивания

Команды

CALL_CARD

getStatus, disableAutoClose, enableAutoClose

PAGE_BACKGROUND_WORKER

CallCardSetMute, CallCardSetHold, CallCardSetUiState, CallCardGetListUiStates, CallCardSetCardTitle, CallCardSetStatusText, CallCardStartTimer, CallCardStopTimer, CallCardClose

CALENDAR_GRIDVIEW

getEvents, viewEvent, addEvent, editEvent, deleteEvent

CRM_*_DETAIL_TAB, CRM_*_DETAIL_ACTIVITY, CRM_*_LIST_MENU

reloadData — обновляет карточку или список элементов CRM

Дело в таймлайне CRM

setLayout, setLayoutItemState, setPrimaryButtonState, setSecondaryButtonState, bindLayoutEventCallback, bindValueChangeCallback, lock, unlock, finish — отрисовка штатного интерфейса дела

Поиск клиента и автозаполнение реквизитов

crmShowFoundEntities, crmShowCreatedEntity — передают найденные варианты и созданный объект CRM

USERFIELD_TYPE

setValue, getValue. Пример вызова — в туториале Как встроить виджет в лид в виде пользовательского поля

Блок на сайте

refreshBlock — перерисовывает блок после правок приложения

Настройки robot-приложения

setPropertyValue — записывает значения свойств в форму робота

Кроме команд точки встраивания, виджету доступны общие методы — например BX24.resizeWindow. В списке BX24.placement.getInterface они не возвращаются.

Примеры кода

Как использовать примеры в документации

BX24.ready(function () {
    BX24.init(function () {
        BX24.placement.call('getStatus', {}, function (result) {
            console.log(result);
        });

        BX24.placement.call('CallCardSetCardTitle', {title: 'hello world!'}, function (result) {
            console.log(result);
        });
    });
});
// $b24 — инициализированный экземпляр SDK, см. руководство по началу работы
import type { B24Frame } from '@bitrix24/b24jssdk'

declare const $b24: B24Frame

const result = await $b24.placement.call('getStatus')

console.log(result)
<!-- Загрузка SDK в UMD-сборке, глобальный объект B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
  document.addEventListener('DOMContentLoaded', async () => {
    const $b24 = await B24Js.initializeB24Frame()

    const result = await $b24.placement.call('getStatus')

    console.log(result)
  })
</script>

Результат

Состав результата задает сама команда — он описан на ее странице. Команды, которые ничего не возвращают, передают в функцию обратного вызова пустой массив, команды чтения — объект или массив с данными.

Ошибку команда возвращает туда же, отдельного канала ошибок у js-интерфейса нет. Например, команды карточки звонка при отсутствии карточки передают массив с объектом:

[
    {
        "result": "error",
        "errorCode": "Call card is undefined"
    }
]

Ошибки

Незнакомую команду точка встраивания игнорирует молча: функция обратного вызова не вызывается, ошибка не приходит. Так же ведет себя вызов из точки, где команды нет.

Проверьте два условия:

  • виджет открыт в той точке встраивания, где команда зарегистрирована. Текущую точку показывает BX24.placement.info
  • имя команды передано без опечаток и с учетом регистра. Список доступных команд возвращает BX24.placement.getInterface

Продолжите изучение