вообщем сам разобрался
есть методы класса
function GetUserTypeDescription()
{
return array(
'USER_TYPE_ID' => 'crm_company',
'CLASS_NAME' => 'UserCompanyCrm',
'DESCRIPTION' => "Привязка к компаниям CRM",
'BASE_TYPE' => 'enum',
);
}
// // инициализация пользовательского свойства для инфоблока
function GetIBlockPropertyDescription()
{
return array(
"PROPERTY_TYPE" => "S",
"USER_TYPE" => "crm_company",
"DESCRIPTION" => "Привязка к компаниям CRM",
"GetPublicEditHTML" => array("UserCompanyCrm", "GetPublicEditHTML"),
);
}
меняя USER_TYPE_ID и USER_TYPE, тогда будет возможность создавать более одного типа данных, и не будут заменять друг друга при вызове
RegisterModuleDependences('iblock', 'OnIBlockPropertyBuildList', 'smartcreatefile', 'UserCompanyCrm', 'GetIBlockPropertyDescription');
RegisterModuleDependences('main', 'OnUserTypeBuildList', 'smartcreatefile', 'UserCompanyCrm', 'GetUserTypeDescription');
RegisterModuleDependences('iblock', 'OnIBlockPropertyBuildList', 'smartcreatefile', 'UserContactCrm', 'GetIBlockPropertyDescription');
RegisterModuleDependences('main', 'OnUserTypeBuildList', 'smartcreatefile', 'UserContactCrm', 'GetUserTypeDescription');
или
AddEventHandler("iblock", "OnIBlockPropertyBuildList", array("UserCompanyCrm", "GetIBlockPropertyDescription"));
AddEventHandler("main", "OnIBlockPropertyBuildList", array("UserCompanyCrm", "GetUserTypeDescription"));
AddEventHandler("iblock", "OnIBlockPropertyBuildList", array("UserContactCrm", "GetIBlockPropertyDescription"));
AddEventHandler("main", "OnIBlockPropertyBuildList", array("UserContactCrm", "GetUserTypeDescription"));