Использование
Параметры
Начиная с версии ui 21.1200.0 появилась возможность создавать на стандартной панели инструментов свои кнопки наряду со стандартными "Сохранить" и "Отменить". На эти кнопки можно назначить произвольные действия, соответствующие действиям, определённым в
class.php
Поддержка классов компонентов реализована в виде файла /component_name/class.php. Class.php - это зарезервированное имя файла, и этот файл автоматически подключается при вызове $APPLICATION->IncludeComponent()
Подробнее...
компонента.
В дальнейшем также планируется поддержка действий, описанных в
ajax.php
Обработчик контроллера запросов в файле ajax.php позволяет создать легковесный обработчик аякс-запросов, явно выделяя логику из компонента.
Подробнее...
.
За дополнительные действия отвечают следующие параметры компонента bitrix:ui.form:
Параметр | Структура | Версия |
---|---|---|
COMPONENT_AJAX_DATA | ADDITIONAL_ACTIONS - массив, описывающий дополнительные действия.
| с ui 21.1200.0 |
CUSTOM_TOOL_PANEL_BUTTONS | Массив, описывающий дополнительные кнопки на панели кнопок
| с ui 21.1200.0 |
TOOL_PANEL_BUTTONS_ORDER | Параметр, позволяющий задавать порядок кнопок в режимах просмотра и редактирования сущности.
В качестве идентификаторов стандартых кнопок используются константы
| с 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, ], ];
При выполнении прямого действия данные с формы не передаются; для идентификации сущности можно использовать, например, подписанные параметры.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.