Документация для разработчиков
Темная тема

Настройки полей

Пользовательские поля широко используются в продукте. До недавнего времени единственный "общий" интерфейс их настройки находился только в административном разделе.

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

В модуле RPA (Роботизация бизнеса) пользовательские поля являются основным способом хранения данных. Понадобился интерфейс настройки полей, аналогичный тому, что есть в административном разделе или CRM.

Принято решение сделать единый интерфейс доступа, а также единую точку входа для Rest.

Т.к. доступ к настройкам должен иметь ограниченный круг лиц, (а к некоторым пользовательским полям, типа UF_DEPARTMENT, доступа не должно быть вовсе), была разработана следующая схема:

  • В ядре есть абстрактный класс UserFieldAccess, который отвечает за ограничение доступа к настройкам;
  • Каждый модуль должен иметь свой наследник этого класса;
  • Указание наследника делается через файл .settings.php модуля.

Во всех запросах к настройкам пользовательских полей через публичную часть, или через Rest, указывается идентификатор модуля. По идентификатору загружаются настройки модуля и в них пытается найти путь к файлу-наследнику:

  • Если он не найден, то выводится ошибка:
  • Если найден, то наследник сам определяет, какие настройки доступны для пользователя.

Чтобы наследник был найден, в файл .settings.php необходимо добавить запись вида:


return [
    'userField' => [
        'value' => [
            'access' => 'MyModule\\UserFieldAccess', // FQN-путь к наследнику
        ],
    ],
];

Публичная часть

Компоненты

  • Компонент main.field.config.list - список полей;
  • Компонент main.field.config.detail - настройки поля.

Компоненты подключены в файлах в публичной части intranet в папке с файлами для настройки портала:

  • Облачная версия
    • /settings/configs/userfield_list.php для списка;
    • /settings/configs/userfield_detail.php для настройки.
  • Коробочная версия
    • /configs/userfield_list.php для списка;
    • /configs/userfield_detail.php для настройки.

Актуальный путь к файлу можно получить с помощью методов \Bitrix\Intranet\Util::getUserFieldListConfigUrl() и \Bitrix\Intranet\Util::getUserFieldDetailConfigUrl()



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

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

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх