1. В код страницы, на которой мы будем добавлять нашу кнопку, добавляем зависимость страницы от модуля ProcessModuleUtilities. Пример:
define("ContractPageV2", ["RightUtilities","ProcessModuleUtilities"], function(RightUtilities,ProcessModuleUtilities)
2. Добавляем в блок diff[] страницы редактирования раздела следующий код:
{
"operation": "insert",
"name": "YourButtonName", // название нашей кнопки (используется в коде, пользователь не видит)
"values": {
"itemType": 5,
"style": "green", //цвет кнопки. Выбор из наших стандартных
"classes": {
"textClass": ["actions-button-margin-right"], //чтобы при добавлении еще одной кнопки был отступ справа
"wrapperClass": ["actions-button-margin-right"]
},
"caption": { // заголовок вашей кнопки (который отображается пользователю)
"bindTo": "Resources.Strings.YourButtoncaptionLocalizableString" // можно задать явно. Например, "caption": "Красивая кнопка"
},
"click": {
"bindTo": "onYourButtonClick" // Название метода, который будет отрабатывать при клике на кнопку
},
"visible": true, //Отвечает за видимость кнопки
"enabled": true //для ознакомления, можно удалить. Отвечает за активность кнопки
},
"parentName": "LeftContainer",
"propertyName": "items",
"index": 10 //следующая кнопка будет иметь индекс 11 и т.д.
}
3. Добавляем в блок methods{} страницы редактирования раздела следующий код:
onYourButtonClick: function() { //название метода, указанное при добавлении кнопки
ProcessModuleUtilities.executeProcess({
sysProcessName: "YourProcessName", //имя вашего процесса
parameters: {
ParamName: this.get("Id"), //слева название параметра процесса, в который мы передаем то, что справа
},
callback: function(item) { //этот блок не обязательнен
this.onReloadCard(); //перезагружает страницу после окончания БП
this.hideBodyMask(); //не выводит заглушку загрузки на карточке
}.bind(this)
});
}
4. Дублируем код для кнопки из пункта 2 в блок diff[] секции раздела. Все тоже самое, кроме атрибута "click": и нового "tag" (в блоке "values"):
"click": { "bindTo": "onCardAction" },
"tag": "onYourButtonClick", //название метода, указанное при добавлении кнопки