301  /  380
Справочник

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

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


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

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