Версия BPMOnline 7.2
Простая задача: в зависимости от чекбокса на основной карточке разрешить или запретить добавление элементов в деталь.
1. В коде основной карточки:
добавим чекбокс на страницу
{
                                        type: Terrasoft.core.enums.ViewModelSchemaItem.ATTRIBUTE,
                                        name: 'IsProductChoose',
                                        columnPath: 'IsProductChoose',
                                        dataValueType: Terrasoft.DataValueType.BOOLEAN,
                                        visible: true,
                                        customConfig: {
                                                click: {
                                                        bindTo: "IsProductChooseClicked"
                                                }
                                        }
                                }
 
обработчик изменения чекбокса
this.methods.IsProductChooseClicked = function() {
                        
                        var args = {
                                param: this.get("IsProductChoose")
                        };
                        sandbox.publish(
                                "IsProductChooseChanged",
                                args,
                                [sandbox.id]
                        );
                };
 
2. В коде детали:
изменим конфиг выпадающего меню
this.modifyUtilsButton = function(utilsButton) {
                        var utilsMenuItems = utilsButton.menu.items;
                        
                        utilsMenuItems[1].caption = "Выбрать продукты";
                        utilsMenuItems[1].enabled = {bindTo: "isProductChooseForSelection"};
                        return utilsButton;
                };
 
обработчик "включить/выключить пункт меню"
this.methods.isProductChooseForSelection = function() {                 
                        this.sandbox.subscribe("IsProductChooseChanged", function(arg) {
                                console.log(arg);
                        }, this, [this.getSenderSandboxId()]);
                };
                
                this.methods.getSenderSandboxId = function() {
                        return this.sandbox.id.replace('_detail_SynchronizedProduct', '');
                };
 
Однако при открытии карточки получаю ошибку в консоли браузера:
Uncaught Terrasoft.UnsupportedTypeException: Message IsProductChooseChanged is not defined in undefined module
К сожалению в документации не описано как работать с событиями через sandbox.
Буду благодарен за консультацию.