Коллеги, подскажите. Мне надо при копировании записи взять 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 };