КНОПКИ В СОВМЕЩЕННОМ РЕЖИМЕ

Здравствуйте!

Встречал кто ни будь такой баг или фичу и как смогли обойти? 

Реализовали кнопки в совмещенном режиме, после каких-то действий в карточке, необходимо поменять перечень кнопок в совмещенном режиме. Отправляется message с помощью sandbox в Section запускается метод this.reloadGridData(). Все работает отлично, но только до одного момента. Существует стандартный боковой список, по умолчанию подтягивается вроде 30 записей (не суть), когда скролл списка крутим вниз, то срабатывает needLoadData() из схемы BaseDataView.js появляется еще 30 записей, если выбрать запись из прогруженных, запустить выше описанную логику, то после метода this.reloadGridData() теряется ActiveRow, а это влияет на логику завязанный на ActiveRow в совмещённом режиме. Даже не используя боковой список, а перейдем в запись, например, 50 по счету, то после выполнения метода this.reloadGridData() пропадает ActiveRow. У вас так же?

define("ContactSectionV2", [], function() {
	return {
		entitySchemaName: "Contact",
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		messages: {
			"buttonChanged": {
				mode: this.Terrasoft.MessageMode.PTP,
				direction: this.Terrasoft.MessageDirectionType.SUBSCRIBE 
			}
		},
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
			init: function() {
				this.callParent(arguments);  
				this.buttonVisibleToMessages();
			},
			buttonVisibleToMessages: function(){
				var subscriberId = this.sandbox.id + "_CardModuleV2";
				this.sandbox.subscribe("buttonChanged", function() {				
					//debugger
					this.reloadGridData();
				}, this, [subscriberId]);
			},
		}
	};
});
define("ContactPageV2", [], function() {
	return {
		entitySchemaName: "Contact",
		attributes: {},
		messages: {	
			"buttonChanged": {
				mode: this.Terrasoft.MessageMode.PTP,
				direction: this.Terrasoft.MessageDirectionType.PUBLISH //тут мы получаем
			}
		},
		modules: /**SCHEMA_MODULES*/{}/**SCHEMA_MODULES*/,
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/,
		methods: {
			onEntityInitialized: function() {
				this.callParent(arguments); 
			},
			onSaved: function() {
				this.callParent(arguments);
				this.sandbox.publish("buttonChanged", null, [this.sandbox.id]);
			},
		},
		dataModels: /**SCHEMA_DATA_MODELS*/{}/**SCHEMA_DATA_MODELS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
	};
});



Изображение удалено.

Нравится

2 комментария
Лучший ответ

Здраствуйте,  рекомендую обратить внимание на пример реализации описан в статье: https://academy.terrasoft.ru/docs/developer/ehlementy_interfejsa/strani…

В схеме ContactSectionV2 можно добавить метод, в котором явно будет определять activeRow = this.get("ActiveRow");

Здраствуйте,  рекомендую обратить внимание на пример реализации описан в статье: https://academy.terrasoft.ru/docs/developer/ehlementy_interfejsa/strani…

В схеме ContactSectionV2 можно добавить метод, в котором явно будет определять activeRow = this.get("ActiveRow");

Алёна Доля,

Спасибо, помогло!

Показать все комментарии