Добавить в корзинуПозвонить
Найти в Дзене
Битрикс24 изнутри

Что такое пресеты?

Пресеты - это специальный термин введенный в Битрикс24 для обозначения набора предустановленных параметров. Зачастую в пресетах хранятся настройки публичного интерфейса, такие как формы редактирования или списки элементов. Какие бывают пресеты? Что из себя представляет пресет? Сам по себе пресет представляет из себя сериализованное (php) описание интерфейса. Технически, пресеты располагаются в таблице b_user_option наряду с другими пользовательскими опциями, однако не рекомендуется работать с базой данных напрямую, т.к. структура ее сложна и легко можно сломать пол системы. Рекомендуемый способ получения пресетов это использование специального класса CUserOptions в API системы. Так как пресеты это подвид пользовательских опций и хранятся в той же таблице, то и описываются они теми же параметрами: API Небольшая документация по классу CUserOptions для работы с пресетами. Обратите внимание: при установке пресета сериализация происходит на уровне api. Ничего json-кодировать не нужно! Доб
Оглавление

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

Поля в списке сделок это тоже пресет main.interface.grid
Поля в списке сделок это тоже пресет main.interface.grid

Какие бывают пресеты?

  • Глобальные пресеты которые используется по-умолчанию для всех пользователей портала.
  • Личные пресеты конкретного пользователя.

Что из себя представляет пресет?

Сам по себе пресет представляет из себя сериализованное (php) описание интерфейса. Технически, пресеты располагаются в таблице b_user_option наряду с другими пользовательскими опциями, однако не рекомендуется работать с базой данных напрямую, т.к. структура ее сложна и легко можно сломать пол системы. Рекомендуемый способ получения пресетов это использование специального класса CUserOptions в API системы.

Так как пресеты это подвид пользовательских опций и хранятся в той же таблице, то и описываются они теми же параметрами:

  • CATEGORY - категория опции (строка, до 50 символов), служит для группировки опций
  • NAME - название сохраняемой опции (строка, до 50 символов)
  • USER_ID - идентификатор пользователя (для общих и системных пресетов = 0, чисто)
  • VALUE - сохраняемое значения
  • COMMON - (true/false, а в БД: Y/N) - устаревший признак системности или пресета по-умолчанию

API

Небольшая документация по классу CUserOptions для работы с пресетами. Обратите внимание: при установке пресета сериализация происходит на уровне api. Ничего json-кодировать не нужно!

Добавление опции:

CUserOptions::SetOption($category, $name, $value, $bCommon = false, $user_id = false);

Получения опции:

CUserOptions::GetOption($category, $name, $default_value = false, $user_id = false);

Обратите внимание на $default_value - это значение которое вернется, если пресет не будет найден. Очень удобно использовать для значений по-умолчанию в коде

Удаление всех опций по связке название+категория

CUserOptions::DeleteOptionsByName($category, $name)

На данный момент существуют следующие категории пресетов:

  • main.interface.grid (списки сделок, лидов, контактов и т.д.)
  • crm.widget_panel (страница Старт в crm)
  • main.ui.filter (установленные фильтры)
  • form (формы редактирования в административной панели)
  • crm.entity.editor (для новых форм редактирования элементов)

Хотите узнать больше о пресетах? Пишите в комментариях ваши вопросы!