- Модуль: mobile
- Путь к файлу: ~/bitrix/modules/mobile/lib/UI/EntityEditor/FormWrapper.php
- Класс: BitrixMobileUIEntityEditorFormWrapper
- Вызов: FormWrapper::getRequiredFields
public function getRequiredFields(array $fieldCodes = null): array
{
if (empty($fieldCodes) && is_array($fieldCodes))
{
return [];
}
$requiredFieldsToFill = [];
$formParams = $this->provider->getFields();
if (!empty($formParams['ENTITY_FIELDS']) && is_array($formParams['ENTITY_FIELDS']))
{
foreach ($formParams['ENTITY_FIELDS'] as &$field)
{
if ($fieldCodes === null)
{
$isRequiredField = $field['required'] && empty($formParams['ENTITY_DATA'][$field['name']]);
}
else
{
$isRequiredField = in_array($field['name'], $fieldCodes, true);
}
if ($isRequiredField)
{
$field['required'] = true;
$requiredFieldsToFill[] = ['name' => $field['name']];
}
else
{
// to remove additional section for required fields without sections
$field['required'] = false;
}
}
}
unset($field);
if (empty($requiredFieldsToFill))
{
return [];
}
$formParams['GUID'] .= '_required_fields';
$formParams['ENABLE_COMMON_CONFIGURATION_UPDATE'] = false;
$formParams['ENABLE_CONFIGURATION_UPDATE'] = false;
$formParams['FORCE_DEFAULT_CONFIG'] = true;
$formParams['INITIAL_MODE'] = 'edit';
$formParams['ENABLE_MODE_TOGGLE'] = false;
$formParams['ENTITY_CONFIG'] = [
[
'name' => 'main',
'type' => 'section',
'elements' => $requiredFieldsToFill,
'data' => [
'showButtonPanel' => false,
'isChangeable' => false,
'isRemovable' => false,
],
],
];
return $this->executeFormComponent($formParams);
}