Обвновление грида детали после добавления записи
Добрый день!
На кастомной странице редактирования в БП разместил обычную деталь с карточкой редактирования (наследует от Базовая схема детали с реестром). На onRender карточки повесил метод updateDetails(). Однако при добавлении записи в деталь обновления не происходит. Добавленная запись отображается в гриде только после настройки колонок. Подскажите, пожалуйста, как решить проблему обновления грида детали.
Нравится
Зверев Александр,
Александр, добрый день!
С способами по ссылкам ознакомился до того, как задавать этот вопрос. В моем случае они не помогли. Собственно вопрос к поддержке, обновление детали по добавлении записи не является базовым функционалом? Обязательно нужно дописывать какие-либо костыли, чтобы штатный функционал работал?
В обычном разделе, созданном в мастере, обновление деталей при сохранении карточки есть штатно, ничего специально делать не нужно. Возможно, Ваши раздел и деталь чем-то отличаются.
Данила, добрый день!
Пробовал, не попадает в отладчике в метод, указанный в subscriber.
Вот код добавления детали, методы filterMethod и subscriber. Подскажите пожалуйста, возможно, есть идеи что не так.
"DepositInFinApplicationDetail": { "schemaName": "snGoldDepositDetail", "filter": { "masterColumn": "Id", "detailColumn": "Id" }, "filterMethod": "goldDetailFilter", "subscriber": { "methodName": "updateGoldDetail" } }, goldDetailFilter: function() { var finApplication = this.get("Id"); var goldType = "" var filterGroup = new this.Terrasoft.createFilterGroup(); filterGroup.logicalOperation = this.Terrasoft.LogicalOperatorType.AND; filterGroup.add("DepositFilter", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.EQUAL, "[snDepositInFinApplication:Deposit:Id].FinApplication.Id", finApplication)); filterGroup.add("DepositTypeFilter", this.Terrasoft.createColumnFilterWithParameter( this.Terrasoft.ComparisonType.EQUAL, "[snDepositInFinApplication:Deposit:Id].Deposit.Type.Id", this.goldTypeId)); return filterGroup; }, updateGoldDetail: function() { var detailId = this.getDetailId("DepositInFinApplicationDetail"); this.sandbox.publish("UpdateDetail", { reloadAll: true }, [detailId]); },
Может, вообще убрать дополнительный код, оставить только стандартную логику. В обычных разделах всё ведь работает.
Зверев Александр,
Александр, дополнительная логика нужна для реализации бизнес-логики.
Бизнес-логику можно реализовать и на уровне объекта, серверной логикой.