• Модуль: 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);
}