Вызов БП из кнопки

Доброго времени суток!
Тема связна с вот этой
Хочу вызвать БП из новосозданной кнопки вот так:

define('SFPropertySection', ['GridUtilitiesV2'],
function() {
        return {
                entitySchemaName: 'SFProperty',
                contextHelpId: '1001',
                diff: /**SCHEMA_DIFF*/[
                                        {
                                                "operation": "insert",
                                                "parentName": "CombinedModeActionButtonsCardLeftContainer",
                                                "propertyName": "items",
                                                "name": "TestButton",
                                                "values": {
                                                        "itemType": Terrasoft.ViewItemType.BUTTON,
                                                        "caption": "test method сombined",
                                                        "click": {
                                                                "bindTo": "showInfo"
                                                        }
                                                }
                                        }              
                ]/**SCHEMA_DIFF*/,
                messages: {},
                methods: {
           showInfo: function() {
                                        var test = this.get("ActiveRow");;
                                        this.showInformationDialog(test);
                                                                                var processArgs = {
                                                                                    sysProcessName: 'Process2',
                                                                                    parameters: {
                                                                                        RecordId: test
                                                                                    }
                                                                                };
                                                                                this.runProcess(processArgs.sysProcessName, processArgs.parameters, this);                                                                             
                                }              
                }
        };
});

При сохранении видим вот такие ошибки(прикрепил)
Может вызывать процесс из раздела надо по другому?

Нравится

1 комментарий

Виктор, добрый день!

В присоединённом Вами логе я не вижу каких-либо критических ошибок. В основном они касаются стилей кодирования, которые приняты в нашей системе, но на логику это влиять не должно. Если заменить код на такой:

define("SFPropertySection", ["GridUtilitiesV2"], function() {
	return {
		entitySchemaName: "SFProperty",
		contextHelpId: "1001",
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"parentName": "CombinedModeActionButtonsCardLeftContainer",
				"propertyName": "items",
				"name": "TestButton",
				"values": {
					"itemType": Terrasoft.ViewItemType.BUTTON,
					"caption": "test method сombined",
					"click": {"bindTo": "showInfo"}
				}
			}
		]/**SCHEMA_DIFF*/,
		messages: {},
		methods: {
			showInfo: function() {
				var test = this.get("ActiveRow");
				this.showInformationDialog(test);
				var processArgs = {
					sysProcessName: "Process2",
					parameters: {
						RecordId: test
					}
				};
				this.runProcess(processArgs.sysProcessName, processArgs.parameters, this);
			}
		}
	};
});

то большинство из этих сообщений должны устраниться.

А вот с самим вызовом this.runProcess могут быть нюансы в зависимости от версии. Насколько я вижу в версии 7.6.0, вызов this.runProcess из базового раздела или страницы должен принимать всего один параметр tag, который равен идентификатору процесса:

runProcess: function(tag) {
	ProcessModuleUtilities.executeProcess({
		sysProcessId: tag
	});
}

Если же Вам необходимо при запуске процесса передать в него параметры, попробуйте подключить в свой раздел модуль ProcessModuleUtilities и вызвать метод executeProcess этого модуля (как в примере выше). Тогда Ваш код можно будет переписать примерно так:

define("SFPropertySection", ["ProcessModuleUtilities", "GridUtilitiesV2"], function(ProcessModuleUtilities) {
......................................
				var processArgs = {
					sysProcessName: "Process2",
					parameters: {
						RecordId: test
					}
				};
				ProcessModuleUtilities.executeProcess(processArgs);
......................................
});

В случае, если Вы используете другую версию, необходим дополнительный анализ.

Показать все комментарии