Документация для разработчиков
Темная тема

Использование

Параметры

Начиная с версии ui 21.1200.0 появилась возможность создавать на стандартной панели инструментов свои кнопки наряду со стандартными "Сохранить" и "Отменить". На эти кнопки можно назначить произвольные действия, соответствующие действиям, определённым в class.php Поддержка классов компонентов реализована в виде файла /component_name/class.php. Class.php - это зарезервированное имя файла, и этот файл автоматически подключается при вызове $APPLICATION->IncludeComponent()
Подробнее...
компонента.

В дальнейшем также планируется поддержка действий, описанных в ajax.php Обработчик контроллера запросов в файле ajax.php позволяет создать легковесный обработчик аякс-запросов, явно выделяя логику из компонента.
Подробнее...
.

За дополнительные действия отвечают следующие параметры компонента bitrix:ui.form:

ПараметрСтруктураВерсия
COMPONENT_AJAX_DATAADDITIONAL_ACTIONS - массив, описывающий дополнительные действия.
    Структура элемента массива:
  • ID - идентификатор действия.
  • ACTION - название действия в class.php компонента (без суффикса Action).
  • ACTION_TYPE - тип действия. Возможные значения:
    • \Bitrix\UI\EntityEditor\Action::ACTION_TYPE_SAVE - действие с сохранением (выполняется логика entity-editor, используемая при стандартном действии сохранения - проверка заполненности обязательных полей, вызов контроллеров и т.д.).
    • \Bitrix\UI\EntityEditor\Action::ACTION_TYPE_DIRECT - прямое действие (выполняется без вызова логики сохранения).
с ui 21.1200.0
CUSTOM_TOOL_PANEL_BUTTONSМассив, описывающий дополнительные кнопки на панели кнопок
    Структура элемента массива:
  • ID - идентификатор кнопки.
  • TEXT - текст кнопки.
  • ACTION_ID - идентификатор действия, привязанного к нажатию на кнопку.
  • CLASS - дополнительные CSS-классы для кнопки; например, ui-btn-light-border.
с ui 21.1200.0
TOOL_PANEL_BUTTONS_ORDERПараметр, позволяющий задавать порядок кнопок в режимах просмотра и редактирования сущности.
    Структура массива:
  • VIEW - массив с идентификаторами кнопок, выводимых в режиме просмотра.
  • EDIT - массив с идентификаторами кнопок, выводимых в режиме редактирования.

В качестве идентификаторов стандартых кнопок используются константы

\Bitrix\UI\EntityEditor\Action::DEFAULT_ACTION_BUTTON_ID для стандартного действия (сохранение);

\Bitrix\UI\EntityEditor\Action::CANCEL_ACTION_BUTTON_ID для кнопки отмены.

с ui 21.1200.0

Примеры использования

На примере документов складского учёта.

Описание действий:

$this->arResult['FORM']['ADDITIONAL_ACTIONS'] = [
	[
		'ID' => 'SAVE_AND_CONDUCT',
		'ACTION' => 'saveAndConduct',
		'ACTION_TYPE' => UI\EntityEditor\Action::ACTION_TYPE_SAVE,
	],
	[
		'ID' => 'CONDUCT',
		'ACTION' => 'conduct',
		'ACTION_TYPE' => UI\EntityEditor\Action::ACTION_TYPE_DIRECT,
	],
	[
		'ID' => 'CANCEL_CONDUCT',
		'ACTION' => 'cancelConduct',
		'ACTION_TYPE' => UI\EntityEditor\Action::ACTION_TYPE_DIRECT,
	],
];

Описание кнопок:

$this->arResult['FORM']['CUSTOM_TOOL_PANEL_BUTTONS'] = [
	[
		'ID' => 'SAVE_AND_CONDUCT',
		'TEXT' => Loc::getMessage('CATALOG_STORE_DOCUMENT_SAVE_AND_CONDUCT_BUTTON'),
		'ACTION_ID' => 'SAVE_AND_CONDUCT',
		'CLASS' => 'ui-btn-light-border',
	],
	[
		'ID' => 'CONDUCT',
		'TEXT' => Loc::getMessage('CATALOG_STORE_DOCUMENT_CONDUCT_BUTTON'),
		'ACTION_ID' => 'CONDUCT',
		'CLASS' => 'ui-btn-light-border',
	],
	[
		'ID' => 'CANCEL_CONDUCT',
		'TEXT' => Loc::getMessage('CATALOG_STORE_DOCUMENT_CANCEL_CONDUCT_BUTTON'),
		'ACTION_ID' => 'CANCEL_CONDUCT',
		'CLASS' => 'ui-btn-light-border',
	],
];

Описание порядка кнопок на панели:

$viewButtons = $this->document && $this->document['STATUS'] === 'Y' ? ['CANCEL_CONDUCT'] : ['CONDUCT'];

$this->arResult['FORM']['TOOL_PANEL_BUTTONS_ORDER'] = [
	'VIEW' => $viewButtons,
	'EDIT' => [
		UI\EntityEditor\Action::DEFAULT_ACTION_BUTTON_ID, 'SAVE_AND_CONDUCT', UI\EntityEditor\Action::CANCEL_ACTION_BUTTON_ID,
	],
];

При выполнении прямого действия данные с формы не передаются; для идентификации сущности можно использовать, например, подписанные параметры.

© «Битрикс», 2001-2024, «1С-Битрикс», 2024