Перейти к содержанию

Пользовательские поля

Тему урока можно изучить в новом формате — в документации по Bitrix Framework. В ней улучшена структура, описание, примеры.

Пользовательские поля

Пользовательское поле - инструмент, позволяющий добавлять к объектам системы поля, не предусмотренные штатным функционалом.

Необходимо отличать Пользовательские поля в модулях системы и свойства используемые в рамках инфоблоков, хотя в формах системы (форма создания/редактирования пользователя, форме создания/редактирования раздела инфоблока и другие) используется термин пользовательские свойства.

Пользовательские поля это сущность:

  • более универсальная, так как их можно задать для разных объектов системы, в отличие от свойств инфоблока,
  • более ограниченная по возможностям, так как имеет небольшое число типов данных.

Пользовательские поля могут создаваться в неограниченном количестве для каждого объекта. При выборе того или иного типа пользовательского поля становятся доступными дополнительные поля настройки для соответствующего типа. Детально об этом можно узнать в документации.

Применение пользовательских полей в системе к тем или иным модулям задаётся с помощью объектов, которые необходимо указать при создании поля. Не все модули имеют объекты для пользовательских полей по умолчанию. Разработчик может создавать собственные объекты, но надо понимать, что в методах GetList поддерживаются только системные объекты:

--- --- --- --- Штатные объекты пользовательских полей Модуль Объект Предназначен для Продукт Главный модуль USER пользователя БУС, КП Блоги BLOG_BLOG блога БУС, КП BLOG_POST сообщения в блоге БУС, КП BLOG_COMMENT комментария сообщения БУС, КП Задачи TASKS_TASK задач КП TASKS_SCRUM_ITEM прикрепления файлов диска КП TASKS_TASK_TEMPLATE_CHECKLIST чеклиста в шаблонах КП TASKS_TASK_CHECKLIST чеклиста в задачах КП TASKS_TASK_TEMPLATE шаблонов КП Информационные блоки IBLOCK_N_SECTION секций инфоблока с ID = N БУС, КП IBLOCK_N инфоблока с ID = N БУС, КП Календарь CALENDAR_EVENT событий календаря КП Обучение LEARN_ATTEMPT попыток теста БУС, КП Социальная сеть SONET_GROUP групп соцсети БУС, КП SONET_COMMENT комментариев БУС, КП SONET_LOG логов БУС, КП Библиотека документов WEBDAV библиотек документов КП Форум FORUM_MESSAGE сообщений форума БУС, КП Highload-блоки HLBLOCK_N highload-блока с ID=N БУС, КП Торговый каталог PRODUCT * товаров БУС, КП CAT_STORE складов БУС, КП CAT_STORE_DOCUMENT_A документов складского учёта «Приход товара на склад» БУС, КП CAT_STORE_DOCUMENT_S документов складского учёта «Оприходование товара» БУС, КП CAT_STORE_DOCUMENT_M документов складского учёта «Перемещение товара между складами» БУС, КП CAT_STORE_DOCUMENT_R документов складского учёта «Возврат товара» БУС, КП CAT_STORE_DOCUMENT_D документов складского учёта «Списание товара» БУС, КП CAT_STORE_DOCUMENT_U документов складского учёта «Отмена резервирования» БУС, КП Корзина RECYCLEBIN_DISK элементов корзины КП CRM CRM_MAIL_TEMPLATE шаблонов писем КП CRM_TIMELINE Таймлайна КП CRM_LEAD Лидов КП CRM_DEAL Сделок КП CRM_COMPANY Компаний КП CRM_CONTACT Контактов КП CRM_ORDER Заказов КП

* — поддерживаются только системные пользовательские поля.

Примечание: Модули, использующие информационные блоки, могут работать с объектами пользовательских полей модуля Информационные блоки.

Создание полей

Создание пользовательских полей из Административной части выполняется на странице Настройки > Настройки продукта > Пользовательские поля либо, что предпочтительнее, с использованием ссылки Добавить пользовательское свойство в тех формах системы, в которых предусмотрено штатное добавление пользовательских свойств:

  • форма добавления/редактирования пользователя;
  • форма добавления/редактирования раздела информационного блока;
  • форма добавления/редактирования блога;
  • форма добавления/редактирования сущности CRM;
  • форма добавления/редактирования RPA процесса.

Использовать страницу Пользовательские поля можно в случае, если разработчик точно знает, какой идентификатор типа объектов ему нужен.

Работа со списком и формой создания не должна вызвать затруднений, но есть несколько нюансов.

Установка флажка в поле Не разрешать редактирование пользователем исключит возможность редактирования свойства не только пользователем, но и администратором через административный интерфейс. Значение таких свойств нужно устанавливать используя API. Это нужно для служебных полей, которые не должны использовать пользователи.

Пользовательские поля могут создаваться с разными типами данных. По умолчанию в системе предусмотрены следующие типы:

  • Число;
  • Да/Нет;
  • Видео;
  • Деньги;
  • Шаблон;
  • Список;
  • Строка;
  • Дата;
  • Дата со временем;
  • Привязка к элементам highload-блоков (Для коробочной версии Битрикс24);
  • Привязка к разделам инф. блоков;
  • Привязка к элементам инф. блоков;
  • Привязка к элементам CRM (Для коробочной версии Битрикс24);
  • Привязка к справочникам CRM (Для коробочной версии Битрикс24);
  • Файл;
  • Целое число.
  • Документ из библиотеки документов (Для коробочной версии Битрикс24);
  • Привязка к сотруднику (Для коробочной версии Битрикс24);
  • Документ истории из библиотеки документов
  • Ссылка
  • Адрес
  • Бронирование ресурсов
  • Версия файла (Диск) (Для коробочной версии Битрикс24)
  • Письмо
  • Содержимое ссылки
  • Файл (Диск) (Для коробочной версии Битрикс24)
  • Опрос

Как правило, этих типов вполне хватает для работы. Если есть необходимость создания собственных типов данных, то это можно сделать самостоятельно. Пример добавления типов данных "Связь с элементом" и "Связь с элементом в виде списка" (блог).

Для работы с пользовательскими полями можно использовать События.

События Главного модуля при работе с пользовательскими полями:

--- --- --- Событие