Доброго времени суток всем.
Версия 7.8 sales.
Задача следующая: на странице Счёта в меню "Действия" нужно добавить дополнительный пункт "Создание заказа на основе счёта", вызывающий бизнес-процесс. В целом всё по этому кейсу: https://academy.terrasoft.ru/documents/technic-sdk/7-8/dobavlenie-deystv...
Но есть одна особенность: на странице счёта есть поле "Тип счёта" и пункт должен быть доступен только при выборе определённого типа.
Сейчас в схеме InvoicePage добавлен следующий код:
getActions: function() {
                                        var actionMenuItems = this.callParent(arguments);
                                        actionMenuItems.addItem(this.getButtonMenuItem({
                             Type: "Terrasoft.MenuSeparator",
                             Caption: ""
                        }));
                        actionMenuItems.addItem(this.getButtonMenuItem({
                              "Caption": {bindTo: "Resources.Strings.CreateOrderByInvoiceCaption"},//Название пункта в Localizablestrings
                               "Tag": "CreateOrderByInvoice",//Метод
                               "Enabled": {"bindTo": "canEntityBeOperated"},
                               "Visible": {"bindTo": "FormContractVisible"}
                        }));
                                        return actionMenuItems;
                                },
                                FormContractVisible: function(){
                                        if (this.get("UsrAccountType")){
                                                var InvType = this.get("UsrAccountType").value;
                                                
                                                if (InvType == "0266a676-9801-477d-aefd-81ae4dd978bf"){
                                return true;
                            } else {
                                return false;
                            }
                                        } else {
                                                return false;
                                        }
                                },
 
Дополнительно функция FormContractVisible вызывается при изменении значения UsrAccountType.
А в схеме InvoiceSection - такой:
define("InvoiceSectionV2", ["ProcessModuleUtilities","BusinessRuleModule", "ConfigurationConstants","jQuery"], function(ProcessModuleUtilities,BusinessRuleModule, ConfigurationConstants) {
        return {
                entitySchemaName: "Invoice",
                details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
                diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
                methods: {
                        FormContractVisible: function(activeRowId) {
                activeRowId = this.get("ActiveRow");
                // Получение коллекции данных списочного представления реестра раздела [Заказы].
                var gridData = this.get("GridData");
                // Получение модели выбранного заказа по заданому значению первичной колонки.
                var selectedInvoice = gridData.get(activeRowId);
                // Получение свойства модели - статуса выбранного заказа.
                var selectedInvoiceType = selectedInvoice.get("UsrAccountType");
                // Значение статуса выбранного заказа сравнивается со значением типа "Исполнение", и в
                // зависимости от результата сравнения метод возвращает true или false.
                if (selectedInvoiceType){
                                        if (selectedInvoiceType.value == "0266a676-9801-477d-aefd-81ae4dd978bf"){
                        return true;
                    } else {
                        return false;
                    }
                                } else {
                                        return false;
                                }
            }
                }
        };
});
 
Сейчас получается так: если мы открываем страницу счёта в режиме карточки, то всё работает правильно - при изменении типа счёта пункт в меню появляется, либо исчезает в зависимости от выбранного типа.
Но если мы открываем счёт в режиме с боковым реестром (из страницы списка счетов), то видимость определяется один раз в зависимости от выставленного типа, а изменение не влияет на этот параметр.
Возможно ли сделать отслеживание изменения во втором случае?