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