В документации к Битркису есть пример расширения пользовательских полей описанный более 10 лет назад. В новом ядре D7 классы пользовательских полей были переписаны (старые реализации пока работают), а примера я не нашел. Здесь приведу пример добавления пользовательского свойства типа список для элементов хайлоадблока с возможность выбора склада. Добавляем минимальную реализацию класса и вешаем обработчик события. Следующий код можно разместить к примеру в файле /bitrix/php_interface/init.php $eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
"main",
"OnUserTypeBuildList",
['UserFieldStoreId','getUserTypeDescription']
);
class UserFieldStoreId extends \Bitrix\Main\UserField\Types\EnumType
{
public const USER_TYPE_ID = 'user_field_store_id';
/**
* @return array
*/
public static function getDescription(): array
{
return [
'DESCRIPTION' => 'Выбор склада',
'BASE_TYPE' => CUser