R
R
Rickkk2016-08-18 18:54:13
1C-Bitrix
Rickkk, 2016-08-18 18:54:13

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

2 answer(s)
O
Oleg Maksimenko, 2016-08-29
@olegprof

https://www.olegpro.ru/post/skripty_migraciy_dlya_... use

A
Andrey Nikolaev, 2017-01-17
@gromdron

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 question

Ask a Question

731 491 924 answers to any question