295  /  391
Справочник

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

Просмотров: 65513
Дата последнего изменения: 02.08.2021
Роберт Басыров
Сложность урока:
3 уровень - средняя сложность. Необходимо внимание и немного подумать.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

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

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

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

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

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

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

Применение пользовательских полей в системе к тем или иным модулям задаётся с помощью объектов, которые необходимо указать при создании поля. Не все модули имеют объекты для пользовательских полей по умолчанию. Разработчик может создавать собственные объекты, но надо понимать, что в методах 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 для товаров БУС, КП
Корзина RECYCLEBIN_DISK для элементов корзины КП
CRM CRM_MAIL_TEMPLATE для шаблонов писем КП
CRM_TIMELINE для Таймлайна КП
CRM_LEAD для Лидов КП
CRM_DEAL для Сделок КП
CRM_COMPANY для Компаний КП
CRM_CONTACT для Контактов КП
CRM_ORDER для Заказов КП
CRM_INVOICE для Счетов КП
CRM_(смарт-процесс) для Смарт-процессов КП
CRM_ACTIVITY для действий бизнес-процессов КП
CRM_QUOTE для Коммерческих предложений КП
CRM_LEAD_SPD для Лидов с привязкой к элементам корзины КП
CRM_DEAL_SPD для Сделок с привязкой к элементам корзины КП
CRM_COMPANY_SPD для Компаний с привязкой к элементам корзины КП
CRM_CONTACT_SPD для Контактов с привязкой к элементам корзины КП
CRM_ORDER_SPD для Заказов с привязкой к элементам корзины КП
CRM_INVOICE_SPD для счетов с привязкой к элементам корзины КП
CRM_(смарт-процесс)_SPD для Смарт-процессов с привязкой к элементам корзины КП
CRM_ACTIVITY_SPD для дейтсвий БП с привязкой к элементам корзины КП
CRM_QUOTE_SPD для Коммерческих предложений с привязкой к элементам корзины КП
Роботизация бизнеса (RPA) RPA_(id процесса) для робота. КП
RPA_COMMENT для комментария к роботу КП

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

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

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

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

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

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

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

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

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

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

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

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

Событие Вызывается Метод
OnUserTypeBuildList при построении списка пользовательских полей CUserTypeManager::GetUserType
OnUserTypeRightsCheck при проверке прав доступа на пользовательские поля GetRights.


24
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии