- Модуль: rpa
- Путь к файлу: ~/bitrix/modules/rpa/lib/components/itemdetail.php
- Класс: BitrixRpaComponentsItemDetail
- Вызов: ItemDetail::prepareFormFields
protected function prepareFormFields(): array
{
static $formFields;
if($formFields === null)
{
$formFields = [];
if($this->stage && !$this->isEmbedded() && $this->item->getId() > 0)
{
$userFields = $this->stage->getUserFieldCollection();
}
else
{
$userFields = $this->type->getUserFieldCollection();
}
$enumerationFields = [];
foreach($userFields as $userField)
{
$fieldName = $userField->getName();
$itemId = (int)$this->item->getId();
$fieldInfo = [
'USER_TYPE_ID' => $userField->getUserTypeId(),
'ENTITY_ID' => $this->type->getItemUserFieldsEntityId(),
'ENTITY_VALUE_ID' => $itemId,
'FIELD' => $fieldName,
'MULTIPLE' => $userField['MULTIPLE'],
'MANDATORY' => $userField['MANDATORY'],
'SETTINGS' => $userField['SETTINGS'] ?? null,
];
if($userField['USER_TYPE_ID'] === 'enumeration')
{
$enumerationFields[$fieldName] = $userField;
}
if($userField['USER_TYPE_ID'] === 'file')
{
$urlTemplate = Driver::getInstance()
->getUrlManager()
->getFileUrlTemplate($this->type->getId(), $itemId, $fieldName);
$fieldInfo['ADDITIONAL']['URL_TEMPLATE'] = $urlTemplate;
}
$formFields[$fieldName] = [
'name' => $fieldName,
'title' => $userField->getTitle(),
'type' => 'userField',
'data' => ['fieldInfo' => $fieldInfo],
'required' => $this->isFieldRequired($userField),
// 'editable' => $userField->isEditable(),
];
}
if(!empty($enumerationFields))
{
$enumInfos = $this->prepareEnumerationInfos($enumerationFields);
foreach($enumInfos as $fieldName => $enums)
{
if(isset($formFields[$fieldName]['data']['fieldInfo']))
{
$formFields[$fieldName]['data']['fieldInfo']['ENUM'] = $enums;
}
}
}
$formFields['ID'] = [
'name' => 'ID',
'title' => 'ID',
'type' => 'number',
'editable' => false,
];
$formFields['CREATED_BY'] = $this->getOwnUserFieldDescription('CREATED_BY');
$formFields['UPDATED_BY'] = $this->getOwnUserFieldDescription('UPDATED_BY');
$formFields['MOVED_BY'] = $this->getOwnUserFieldDescription('MOVED_BY');
$formFields['CREATED_TIME'] = $this->getOwnDateTimeFieldDescription('CREATED_TIME');
$formFields['UPDATED_TIME'] = $this->getOwnDateTimeFieldDescription('UPDATED_TIME');
$formFields['MOVED_TIME'] = $this->getOwnDateTimeFieldDescription('MOVED_TIME');
}
return $formFields;
}