Создание кастомного пользовательского свойства
AddEventHandler('main', 'OnUserTypeBuildList', [CustomPropertyUserType::class, 'getUserTypeDescription']);
Описание класса
Класс можно отнаследовать от Bitrix\Main\UserField\Types\BaseType.
const RENDER_COMPONENT = 'vendor:custom_property.field'; - имя компонента, который будет подключаться в админке для показа настроек, значений, поля редактирования и т.д.
Далее для визуала на разных страницах Битра проверяет налчичие определённых шаблонов, иначе подключает дефолтный.
Эта штука называется $mode, битра проталкивает её в additionalParameters.mode.
php файл должен называться .default.php, а не template.php.
Описание свойства
Обработчик должен вернуть массив с полями:
* USER_TYPE_ID - уникальный идентификатор поля
* DESCRIPTION - описание. Значение отображается в селекторе выбора свойств
* PROPERTY_TYPE
* E - привязка к элементу
* USER_TYPE => self::class - Зачем?
* BASE_TYPE - базовый тип на котором будут основаны операции фильтра. Выбрать из прописанных в \CUserTypeManager::class типов
* CLASS_NAME => self::class - Зачем? Походу для указания класса, который имплементирует методы
* GetPropertyFieldHtml - метод должен вернуть html для показа значения в админке
* getdbcolumntype - надо указать тип поля для БД.