Просмотров: 90620
Дата последнего изменения: 23.05.2023
Сложность урока:
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 | для товаров | БУС, КП |
CAT_STORE | для складов | БУС, КП |
Корзина | 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. |
|