Как добавить списочное UF-свойство
Перейдем сразу к практическому примеру. Следующий код создает новое UF-свойство с помощью класса CUserTypeEntity.
<?php
$oUserTypeEntity = new \CUserTypeEntity();
$aUserFields = [
'ENTITY_ID' => 'HLBLOCK_31', // объект, в котором создаем UF-свойство
'FIELD_NAME' => 'UF_TEST',
'USER_TYPE_ID' => 'enumeration',
'XML_ID' => 'test_xml_id',
'MULTIPLE' => 'N', // множественность
'MANDATORY' => 'N', // обязательность
'IS_SEARCHABLE' => 'N',
'EDIT_FORM_LABEL' => [
'ru' => 'Test',
],
'LIST_COLUMN_LABEL' => [
'ru' => 'Test',
],
'LIST_FILTER_LABEL' => [
'ru' => 'Test',
],
];
$propUfId = $oUserTypeEntity->Add($aUserFields);
if (!$propUfId)
{
echo $oUserTypeEntity->LAST_ERROR;
}
Вторая часть код добавляет списочные значения для UF-свойства с помощью класса CUserFieldEnum.
<?
if ($propUfId)
{
$oUserFieldEnum = new \CUserFieldEnum();
$pgEnumValues = [
[
'XML_ID' => 'test_value_1',
'VALUE' => 'Значение 1',
],
[
'XML_ID' => 'test_value_2',
'VALUE' => 'Значение 1',
],
];
$enumId = $oUserFieldEnum->SetEnumValues($propUfId, $pgEnumValues);
if ($enumId)
{
echo $oUserFieldEnum->LAST_ERROR;
}
}