Здравствуйте.
Система версии 7.10.1.1161
Есть карточка заказа и есть кастомная страница подборщика продуктов, которая открывается из карточки заказа по нажатию на специально созданную кнопку. Кастомная страница унаследована от BasePageV2 и привязана к entitySchema Order (то есть к тому же объекту, что и карточка заказа). На ней используется стандартная кнопка Закрыть. Все прекрасно работает, кроме случая когда подборщик открываем из карточки ново создаваемого заказа(add). В этом случае при нажатии Закрыть на кастомной странице выбрасывает обратно в раздел, а должно бы в карточку заказа.
Обратил внимание, что при добавлении нового заказа когда открывается карточка редактирования, то хеш все равно остается от раздела - SectionModuleV2/OrderSection (аналогично и во всех остальных разделах). Вероятно, в этом и есть причина, так как при нажатии Закрыть публикуется BackHistoryState. Ниже код, который используем для открытия карточки подборщика. Подскажите как добиться нужного эффекта, так как кейс с открытием подборщика из нового заказа и есть самый основной.
openProductSelector: function() {
var orderId = this.get("PrimaryColumnValue") || this.get("Id");
var defaultValues = [
{
name: "PrimaryColumnValue",
value: orderId
},
{
name: "UseSeparatedPageHeader",
value: true
}
];
stateObj = {
isSeparateMode: true,
schemaName: "SelectProductInOrderPage",
moduleId: "CardModuleV2_SelectProductInOrderPage",
valuePairs: defaultValues,
operation: "open",
isInChain: false
};
requestUrl = "CardModuleV2/SelectProductInOrderPage/";
this.sandbox.publish("PushHistoryState", {
hash: requestUrl,
stateObj: stateObj
});
},
onProductSelectionButtonClick: function() {
this.set("OpenselectProductPage", true);
this.save({isSilent: true});
},
onSaved: function (response, config) {
this.hideBodyMask();
if (!this.get("NextPrcElReady")) {
this.set("NextPrcElReady", response.nextPrcElReady);
}
if (config && config.isSilent) {
this.onSilentSaved(response, config);
} else {
var updateConfig = this.getUpdateDetailOnSavedConfig();
this.sandbox.publish("UpdateDetail", updateConfig, [this.sandbox.id]);
this.sendSaveCardModuleResponse(response.success);
if (this.get("IsInChain")) {
this.onProcessCardSaved();
return;
}
if (this.isNewMode()) {
this.onCloseCardButtonClick();
} else {
this.onProcessCardSaved(true);
}
}
this.set("Operation", Terrasoft.ConfigurationEnums.CardOperation.EDIT);
if (!this.destroyed) {
this.updateButtonsVisibility(false, { force: true });
}
this.set("IsChanged", this.isChanged());
this.subscribeOwner(config);
if (config && config.isSilent) {
if(this.get("OpenselectProductPage")) {
this.set("OpenselectProductPage", false);
this.openProductSelector();
}
return;
}
this.updateAmountAfterSave("ProductInProductsTab",
function () {
this.updateDetail({ detail: "ProductInResultsTab" });
this.updateOrderProductSummary();
},
this
);
},