Answer the question
In order to leave comments, you need to log in
Why doesn't it create and return an error when creating a property in Bitrix?
Hello!
I am finalizing the site on Bitrix Corporate Portal. To update the database, I create entity properties using scripts. It was necessary to add a new property to the "TASKS_TASK" task entity. Other properties were previously created for it. I execute this code in the PHP console in the Bitrix admin panel. The $iUserFieldId field is not populated with a new id and unfortunately no errors are thrown. Prompt please - why the property is not created?
$oUserTypeEntity = new CUserTypeEntity();
$aUserFields = array(
/*
* Идентификатор сущности, к которой будет привязано свойство.
* Для секция формат следующий - IBLOCK_{IBLOCK_ID}_SECTION
*/
'ENTITY_ID' => 'TASKS_TASK', //IBLOCK_3_SECTION
/* Код поля. Всегда должно начинаться с UF_ */
'FIELD_NAME' => 'UF_FIRST_DEADLINE_DATE',
/* Указываем, что тип нового пользовательского свойства строка */
'USER_TYPE_ID' => 'datetime',
/*
* XML_ID пользовательского свойства.
* Используется при выгрузке в качестве названия поля
*/
'XML_ID' => 'XML_ID_FIRST_DEADLINE_DATE',
/* Сортировка */
'SORT' => 100,
/* Является поле множественным или нет */
'MULTIPLE' => 'N',
/* Обязательное или нет свойство */
'MANDATORY' => 'N',
/*
* Показывать в фильтре списка. Возможные значения:
* не показывать = N, точное совпадение = I,
* поиск по маске = E, поиск по подстроке = S
*/
'SHOW_FILTER' => 'N',
/*
* Не показывать в списке. Если передать какое-либо значение,
* то будет считаться, что флаг выставлен.
*/
'SHOW_IN_LIST' => '',
/*
* Не разрешать редактирование пользователем.
* Если передать какое-либо значение, то будет считаться,
* что флаг выставлен.
*/
'EDIT_IN_LIST' => 'N',
/* Значения поля участвуют в поиске */
'IS_SEARCHABLE' => 'N',
/*
* Дополнительные настройки поля (зависят от типа).
* В нашем случае для типа string
*/
'SETTINGS' => array(
/* Значение по умолчанию */
'DEFAULT_VALUE' => '',
/* Размер поля ввода для отображения */
'SIZE' => '20',
/* Количество строчек поля ввода */
'ROWS' => '1',
/* Минимальная длина строки (0 - не проверять) */
'MIN_LENGTH' => '0',
/* Максимальная длина строки (0 - не проверять) */
'MAX_LENGTH' => '0',
/* Регулярное выражение для проверки */
'REGEXP' => '',
),
/* Подпись в форме редактирования */
'EDIT_FORM_LABEL' => array(
'ru' => 'Дата первого крайнего срока по сложной задаче',
'en' => 'User field',
),
/* Заголовок в списке */
'LIST_COLUMN_LABEL' => array(
'ru' => 'Дата первого крайнего срока по сложной задаче',
'en' => 'User field',
),
/* Подпись фильтра в списке */
'LIST_FILTER_LABEL' => array(
'ru' => 'Дата первого крайнего срока по сложной задаче',
'en' => 'User field',
),
/* Сообщение об ошибке (не обязательное) */
'ERROR_MESSAGE' => array(
'ru' => 'Ошибка при заполнении пользовательского свойства',
'en' => 'An error in completing the user field',
),
/* Помощь */
'HELP_MESSAGE' => array(
'ru' => '',
'en' => '',
),
);
$iUserFieldId = $oUserTypeEntity->Add( $aUserFields ); // int
echo $iUserFieldId;
Answer the question
In order to leave comments, you need to log in
If it returned false, you can get an error with the function:$error = $APPLICATION->GetException();
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question