Коллеги, подскажите. Мне надо при копировании записи взять Id копируемой записи и передать его на пейджу, чтобы в новой скопированной записи получить его и на onEntityInitialized поработать с ним, вытянув некоторые данные из деталей, привязанных к копируемой записи.
![]()
Нравится
Руслан Хасанов пишет:
Подскажите, пожалуйста, в какой момент происходит публикация сообщения? Или более подробный пример. Спасибо!
Публикацию сообщения делаете тогда, когда получили нужную вам Id, которую хотите куда-либо передать, например выделенную запись, можно сразу передать в isAnySelected так:
this.sandbox.publish("Название сообщения", config, ["_Подпись сообщения для однозначной идентификации"]);
this.sandbox.publish("TestMesag", config, ["_TestMesag"]);
Так же не забываем добавить сами сообщения на странице:
messages: {
"TestMesag": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.PUBLISH
}
}config - объект нужных параметров, например:
var config = {
Id: rowId,
Contract: contractId,
Type: typeId
};
Для выделенной записи реестра:
isAnySelected: function() {
this.callParent(arguments);
var row = this.getActiveRow();
}
Литвинко Павел,
Но как эту переменную row передать из Секции в пейджу?
Можно например через сообщение передать
this.sandbox.publish("RowSelectedz", { Id: rowId }, ["_RowSelectedz"]);
А на странице потом получить
onEntityInitialized: function() {
this.callParent(arguments);
this.sandbox.subscribe("RowSelectedz", function(arg) {
this.set("И например в атрибут значение установить", arg.Id);
}Либо, второй вариант, вызывать openCardInChain и туда конфиг параметров передать, но это удобно когда просто карточку открыть новую, а при копировании надо глянуть, что там вызывается и как и доработать
var config = {
sandbox: this.sandbox,
schemaName: this.getEditPageSchemaName(typeColumnValue),
operation: ConfigurationEnums.CardStateV2.COPY,
moduleId: this.getChainCardModuleSandboxId(typeColumnValue),
defaultValues: defaultValues
};
this.openCardInChain(config);
По идее может быть достаточно будет CardStateV2.COPY, поправил в коде выше это
Литвинко Павел,
благодарю за помощь, попробуем сендбоксами.
Подскажите, пожалуйста, в какой момент происходит публикация сообщения? Или более подробный пример. Спасибо!
Руслан Хасанов пишет:
Подскажите, пожалуйста, в какой момент происходит публикация сообщения? Или более подробный пример. Спасибо!
Публикацию сообщения делаете тогда, когда получили нужную вам Id, которую хотите куда-либо передать, например выделенную запись, можно сразу передать в isAnySelected так:
this.sandbox.publish("Название сообщения", config, ["_Подпись сообщения для однозначной идентификации"]);
this.sandbox.publish("TestMesag", config, ["_TestMesag"]);
Так же не забываем добавить сами сообщения на странице:
messages: {
"TestMesag": {
mode: Terrasoft.MessageMode.PTP,
direction: Terrasoft.MessageDirectionType.PUBLISH
}
}config - объект нужных параметров, например:
var config = {
Id: rowId,
Contract: contractId,
Type: typeId
};