Показать диалог выбора прав доступа BX24.selectAccess

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

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
BX24.selectAccess(value: array, callback: callable): void;
BX24.selectAccess(callback: callable): void;
BX24.selectAccess(title: string, value: array, callback: callable): void;

Метод BX24.selectAccess показывает стандартный диалог выбора прав доступа. В диалоге пользователь выбирает сотрудников, подразделения, рабочие группы и другие категории получателей, а приложение получает их коды доступа.

Диалог рисует сам Битрикс24 поверх фрейма приложения. Приложению не нужно собирать список получателей и проверять права на его просмотр: пользователь видит в диалоге только те объекты, к которым у него есть доступ. Собственный scope диалогу не нужен — он открывает интерфейс Битрикс24, а не обращается к REST API.

Вызвать метод можно только из приложения, встроенного во фрейм Битрикс24. Если страница открыта не из Битрикс24, библиотека не инициализируется и выбрасывает исключение при подключении.

Вызывайте метод внутри обработчика BX24.init. Сам диалог библиотека до инициализации не откладывает, но функции, которые обычно вызывают из callback, до нее не работают — например BX24.userOption.set.

В русской локализации заголовок диалога — «Категории пользователей».

Параметры метода

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

Название
тип

Описание

value
array

Массив строк с кодами доступа, которые нужно заблокировать. Заблокированные коды показываются в диалоге неактивными: выбрать их нельзя, и в результат они не попадут.

Коды, которых нет в Битрикс24, диалог игнорирует: на выбор они не влияют и ошибку не вызывают.

Параметр можно не передавать: вызов BX24.selectAccess(callback) открывает диалог без заблокированных кодов. Значение по умолчанию — пустой массив

callback*
callable

Функция обратного вызова, которая получает результат выбора (подробное описание)

title
string

Заголовок диалога. Библиотека принимает параметр первым, но не передает его в Битрикс24, поэтому заголовок остается системным

Примеры кода

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

Показать диалог без ограничений и вывести выбранные коды:

BX24.init(() => {
    BX24.selectAccess((selected) => {
        selected.forEach((item) => {
            console.log(item.provider, item.id, item.name);
        });
    });
});

Заблокировать часть кодов и сохранить выбор в настройках пользователя, чтобы не показывать диалог при каждом открытии приложения:

BX24.init(() => {
    // AU и U1 уже сохранены, поэтому выбрать их повторно нельзя
    BX24.selectAccess(['AU', 'U1'], (selected) => {
        const codes = selected.map((item) => item.id);

        // пустой выбор не затирает сохраненные коды
        if (codes.length === 0)
        {
            return;
        }

        BX24.userOption.set('recipients', codes.join(','));
    });
});

Обработка ответа

Диалог не возвращает данные напрямую: результат выбора приходит в функцию callback массивом объектов. Объекты сгруппированы по значению provider, внутри группы порядок совпадает с порядком выбора. На позицию элемента в массиве не опирайтесь — определяйте объект по полям provider и id.

Если пользователь закрыл диалог крестиком, кнопкой «Закрыть» или клавишей Esc, функция callback не вызывается. При нажатии «Выбрать» без отметок callback получит пустой массив — проверяйте длину массива перед тем, как сохранять результат.

[
    {
        "provider": "intranet",
        "id": "IU1",
        "name": "Иван Иванов"
    },
    {
        "provider": "socnetgroup",
        "id": "SG4_K",
        "name": "Отдел продаж: Все члены группы"
    }
]

Пользователь подтвердил пустой выбор:

[]

Возвращаемые данные

Название
тип

Описание

provider
string

Источник кода доступа. Возможные значения:

  • intranet — сотрудники и подразделения из оргструктуры, коды IU, D, DR
  • socnetgroup — рабочие группы и проекты, коды SG<id>_A, SG<id>_E, SG<id>_K
  • user — сотрудники из общего списка пользователей, код U. Такая вкладка есть в диалоге, только если у текущего пользователя есть право просматривать всех пользователей
  • other — общие категории получателей: коды AU, G2, CR и код U текущего пользователя

В ответе метода access.name поле provider_id совпадает с этими значениями для intranet и socnetgroup, а код U<id> приходит там с provider_id user

id
string

Код доступа (подробное описание)

name
string

Название права доступа, которое видит пользователь. Для сотрудников и общих категорий получателей — название как есть, например Иван Иванов. Для подразделений, рабочих групп и проектов — название с ролью через двоеточие, например Отдел продаж: Все члены группы

Коды доступа

Код

Что означает

IU1

Сотрудник с идентификатором 1 и его руководители по оргструктуре

U1

Только сотрудник с идентификатором 1, без руководителей. Так возвращается текущий пользователь

D5

Все сотрудники подразделения с идентификатором 5

DR5

Все сотрудники подразделения с идентификатором 5 и его подразделений-потомков

SG4_A

Владелец рабочей группы или проекта с идентификатором 4

SG4_E

Модераторы рабочей группы или проекта с идентификатором 4

SG4_K

Все участники рабочей группы или проекта с идентификатором 4

AU

Все авторизованные пользователи

G2

Все пользователи, включая неавторизованных. В интерфейсе такой код подписан «Все посетители»

CR

Автор объекта

Рабочую группу нельзя выбрать целиком: в диалоге выбирают роль в группе, поэтому код всегда приходит с суффиксом _A, _E или _K.

Числовая часть кода — идентификатор объекта в Битрикс24. Из IU1 и U1 получают ID = 1 для методов, которые работают с пользователем, например для user.get.

Целиком код передают в параметры методов REST API, которые принимают права доступа. Например, в параметре ACCESS метода entity.rights код становится ключом объекта, а значением — уровень права: {"U1": "W", "AU": "R"}.

Набор доступных кодов зависит от конкретного Битрикс24: в диалоге приложения нет вкладки с группами пользователей, а состав остальных вкладок определяют установленные модули и права текущего пользователя. Названия кодов возвращает метод access.name — он опрашивает провайдеры прав доступа Битрикс24 и распознает в том числе коды IU, D, DR и SG.

Обработка ошибок

Кодов ошибок диалог не возвращает. Случаи, когда результата нет, разобраны в блоке Обработка ответа.

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