Views: 14720
Last Modified: 23.09.2014

Custom field - is a system functionality that permits adding fields that are not included in the standard functionality to system objects.

It is important to distinguis Custom Fields in system modules and properties used in infoblocks, although the term custom fields is used in system forms (a user set up/editing form, infoblock section set up/editing form, and others).

Custom fields is an entity:

  • more multi-purposed, because the fields can be set up for various objects of the system compared to the infoblock properties,
  • more limited in options because this entity admits a small number of data types.

An unlimited number of custom fields can be created for each object. When choosing any type of a custom field, additional setup fields become available for each chosen type.

The application of custom fields in the system to any module is set up using the objects which must be indicated when creating a field. Not all modules have objects for custom fields by default. A developer can create own objects taking into account that GetList methods support only system objects:

Standard objects of customer fields
Module Object Description
Kernel USER For a user
Blogs BLOG_BLOG For a blog
BLOG_POSTFor a blog post
BLOG_COMMENTFor a blog comment
Tasks TASKS_TASK For tasks
Information blocksIBLOCK_N_SECTION For infoblock sections with ID = N
IBLOCK_N For infoblock with ID = N
Calendars CALENDAR_EVENT For calendar events
e-Learning LEARN_ATTEMPT For test attempts
Social Network SONET_GROUP For groups of a social network
Document library WEBDAV For document libraries
Forum FORUM_MESSAGE For forum messages
Highload iblocks HLBLOCK_N For Highload iblock with ID=N

Note: The modules using information blocks can work with objects of custom fields of the Information blocks module.

Creating Fields

Custom fields can often be created on the page Control Panel >Settings > System settings > Custom fields or, preferable, using the link Add user property in the system forms which provide for the standard adding of custom properties:

  • A form to add/edit a user;
  • A form to add/edit a section of an information block;
  • A form to add/edit a blog.

The page Custom fields can be used if the developer knows exactly which object type identifier they require.

Custom fields can be created with various data types. By default, the system provides for the following types:

  • Integer
  • True/False
  • Video
  • Template
  • List
  • Text
  • Date/Time
  • Bind to highload information block elements
  • Link to information block sections
  • Bind to Information block elements
  • Bind to CRM elements
  • Bind to CRM dictionaries
  • File
  • Number
  • Document from Library
  • Link to Employee
  • Revision history file in Document Library
  • Poll

Events can be used for working with custom fields.

Kernel module events used during work with custom fields:

Event Is called Method
OnUserTypeBuildList When the list of custom fields is being built CUserTypeManager::GetUserType
OnUserTypeRightsCheck When verifying the rights of access to custom fields GetRights
OnAfterFetch When the list of custom fields is being built

Courses developed by Bitrix24