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

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

Параметры

Начиная с версии 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
Наверх