Документация для разработчиков
Темная тема

Типы пользовательских полей и их настройки

В ядре есть основной набор базовых типов полей. В некоторых модулях есть дополнительные типы полей.

  • string - строка;
  • integer - целое число;
  • double - число;
  • date - дата;
  • datetime - дата со временем;
  • boolean - Да / Нет;
  • file - файл;
  • enumeration - список;
  • url - ссылка;
  • address - адрес;
  • iblock_section - раздел инфоблока;
  • iblock_element - элемент инфоблока;
  • employee - сотрудник;
  • crm - элемент CRM;
  • crm_status - привязка к справочнику CRM.

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
1
Валерий Чебан
Сообщение не промодерировано, возможны ошибки и неточности.
Собрал вроде как полный список стандартных на данный момент:

Код
$arUserFieldTypes = [
   'string', // строка;
   'string_formatted', // Шаблон
   'integer', // целое число;
   'double', // число;
   'date', // дата;
   'datetime', // дата со временем;
   'boolean', // Да / Нет;
   'file', // файл;
   'enumeration', //список;
   'url', // ссылка;
   'address', // адрес;
   'video', // Видео
   'iblock_section', // раздел инфоблока;
   'iblock_element', // элемент инфоблока;
   'hlblock', // привязка к HL-блоку
   'employee', // сотрудник;
   'crm', // элемент CRM;
   'crm_status', // привязка к справочнику CRM.
   'crm', // Привязка к элементам CRM
   'crm_status' // Привязка к справочникам CRM
];
1
Валерий Чебан
Сообщение не промодерировано, возможны ошибки и неточности.
А тут еще парочка типов написана: https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=3496&LESSON_PATH=3913.3516.4804.3496

Код
video - Видео
string_formatted - Шаблон
hlblock - привязка к HL-блоку
1
Александр Ермолаев
Сообщение не промодерировано, возможны ошибки и неточности.
При очередном обновлении, видимо следую новой политике "no legacy" (без наследования), пропал пользовательский тип "HTML/Визуальный редактор". Соответственно при экспорте/импорте данных из инфоблока  в XML появится ошибка. Ну или, возможно, кому-то всё таки один и столпов ООП "наследование" не по боку ...

Решение - идём в /bitrix/php_interface/init.php и добавляем

AddEventHandler('main', 'OnUserTypeBuildList', array('CUserTypeSectionsHtmlField', 'GetUserTypeDescription'), 5000);
class CUserTypeSectionsHtmlField {

   public static function GetUserTypeDescription() {
       return array(
           // уникальный идентификатор
           'USER_TYPE_ID' => 'customhtml',
           // имя класса, методы которого формируют поведение типа
           'CLASS_NAME' => 'CUserTypeSectionsHtmlField',
           // название для показа в списке типов пользовательских свойств
           'DESCRIPTION' => 'HTML/Визуальный редактор',
           // базовый тип на котором будут основаны операции фильтра
           'BASE_TYPE' => 'string',
       );
   }

   public static function GetDBColumnType($arUserField) {
       switch (strtolower($GLOBALS['DB']->type)) {
           case 'mysql':
               return 'text';
               break;
       }
   }

   public static function GetSettingsHTML($arUserField = false, $arHtmlControl, $bVarsFromForm) {
       $result = '';

       return $result;
   }

   public static function CheckFields($arUserField, $value) {
       $aMsg = array();
       return $aMsg;
   }

   public static function GetEditFormHTML($arUserField, $arHtmlControl) {
       if ($arUserField["ENTITY_VALUE_ID"] < 1 && strlen($arUserField["SETTINGS"]["DEFAULT_VALUE"]) > 0)
           $arHtmlControl["VALUE"] = htmlspecialchars($arUserField["SETTINGS"]["DEFAULT_VALUE"]);
       ob_start();
       CFileMan::AddHTMLEditorFrame($arHtmlControl["NAME"], $arHtmlControl["VALUE"], "html", "html", 200, "N", 0, "", "", "s1");
       $b = ob_get_clean();
       return $b;
   }

   public static function GetEditFormHTMLMulty($arUserField, $arHtmlControl) {
       $html = 'Поле не может быть множественным!';
       return $html;
   }

   public static function GetFilterHTML($arUserField, $arHtmlControl) {
       $sVal = intval($arHtmlControl['VALUE']);
       $sVal = $sVal > 0 ? $sVal : '';

       return CUserTypeSectionsHtmlField::GetEditFormHTML($arUserField, $arHtmlControl);
   }

   public static function GetAdminListViewHTML($arUserField, $arHtmlControl) {
       return '';
   }

   public static function GetAdminListViewHTMLMulty($arUserField, $arHtmlControl) {
       return '';
   }

   public static function GetAdminListEditHTML($arUserField, $arHtmlControl) {
       return '';
   }

   public static function GetAdminListEditHTMLMulty($arUserField, $arHtmlControl) {
       return '';
   }

   public static function onsearchIndex($arUserField) {
       return '';
   }

   public static function OnBeforeSave($arUserField, $value) {
       return $value;
   }
}


Постскриптум.
Перенос конкретно в нашем случае был связан с обновлением версии битрикса, стандартное обновление вешало сайт, разбираться и переписываться с поддержкой желания не было, поэтому - раскатали новый битрикс и перенесли всё в него - файлы, шаблоны, инфоблоки плюс ручная настройка.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх