Вопрос
Как передать идентификатор контрагента, из карточки заказа, на страницу редактирования детали "Продукт в заказе" через сообщения sandbox?
Ответ
Код замещающей схемы страницы Заказа:
define("OrderPageV2", ["OrderPageV2Resources", "GeneralDetails"], function(resources, GeneralDetails) { return { entitySchemaName: "Order", details: /**SCHEMA_DETAILS*/{ }/**SCHEMA_DETAILS*/, diff: /**SCHEMA_DIFF*/[ ]/**SCHEMA_DIFF*/, attributes: {}, methods: { onEntityInitialized: function() { this.callParent(arguments); this.sandbox.subscribe("OrderProductPageAsksForData", function(arg) { console.log("OrderProductPageV2 запрашивает данные прямо сейчас,"); console.log("по Id песочницы: " + arg.sandboxId); // Высылаем данные. this.sendDataToOrderProductPage(arg.sandboxId); }, this, [this.sandbox.id]); console.log("Мы(OrderPageV2) подписались на сообщение: OrderProductPageAsksForData."); console.log("Id песочницы в этой карточке(OrderPageV2) следующий:"); console.log(this.sandbox.id); }, sendDataToOrderProductPage: function(sandboxId) { this.sandbox.publish("DataToOrderProductPage", { accountId: this.get("Account").value }, [sandboxId]); console.log("AccountId отправлен сообщением для OrderProductPageV2 по Id: " + sandboxId); } }, rules: {}, messages: { "DataToOrderProductPage": { mode: Terrasoft.MessageMode.PTP, direction: Terrasoft.MessageDirectionType.PUBLISH }, "OrderProductPageAsksForData": { mode: Terrasoft.MessageMode.PTP, direction: Terrasoft.MessageDirectionType.SUBSCRIBE } }, userCode: {} }; });
Код замещающей схемы страницы детали Продукт в заказе:
define("OrderProductPageV2", ["BusinessRuleModule", "OrderUtilities"], function(BusinessRuleModule) { return { entitySchemaName: "OrderProduct", mixins: {}, attributes: {}, methods: { onEntityInitialized: function() { this.callParent(arguments); this.sandbox.subscribe("DataToOrderProductPage", function(arg) { console.log("OrderPageV2 передает нам данные!"); alert("accountId: " + arg.accountId); }, this, [this.sandbox.id]); console.log("Мы(OrderProductPageV2) подписались на сообщение: DataToOrderProductPage."); console.log("По нашему(OrderProductPageV2) Id песочницы:"); console.log(this.sandbox.id); this.sandbox.publish("OrderProductPageAsksForData", { sandboxId: this.sandbox.id }, [this.getOrderPageSandboxId()]); console.log("Запросили данные у OrderPageV2, по её Id песочницы: " + this.getOrderPageSandboxId()); }, getOrderPageSandboxId: function() { var index = this.sandbox.id.indexOf("_detail_ProductInProducts"); return this.sandbox.id.substring(0, index); } }, messages: { "DataToOrderProductPage": { mode: Terrasoft.MessageMode.PTP, direction: Terrasoft.MessageDirectionType.SUBSCRIBE }, "OrderProductPageAsksForData": { mode: Terrasoft.MessageMode.PTP, direction: Terrasoft.MessageDirectionType.PUBLISH } }, diff: /**SCHEMA_DIFF*/[ ]/**SCHEMA_DIFF*/, rules: { } }; } );
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать