Добрый день!

Может кто сталкивался с подобной задачей.

1) на нажатие кнопки необходимо открыть окно выбора контактов и/или контрагентов
2) выбрать несколько контактов и несколько контрагентов
3) обработать выбранные записи.

пункты 1 и 2 я сделала. с пунктом 3 проблема.
допустим, я выбираю двух контрагентов и трех контактов.
Справа указано "Выбрано записей:5". все корректно.
нажимаю Выбрать и вызывается callback функция. проблема в том, что в аргументах мне приходят только те объекты, находясь на странице которых я нажала кнопку выбрать.
Например,
если я нажала, когда была на вкладке контрагентов, то в args.selectedRows.getItems() 2 контрагента если нажала, когда была на странице контактов - то в аргументах вернуться 3 контакта.

вопрос: как я могу получить все 5 выбранных записей?


Нравится

1 комментарий

"Zaitova Liubov" написал:вопрос: как я могу получить все 5 выбранных записей?

Как и всегда - ломая стандартную логику:smile:
Вся проблема в LookupPageViewModelGenerator и методе selectButton. Он забирает 3 выбранные записи из грида текущей вкладки, в result складирует выбранные, в переменную notLoadedItems кладёт Id-шники тех 2-х, которые в соседней вкладке и дальше, тут феерия, делает esq запрос на выборку тех незагруженных элементов в entitySchema текущей вкладки.

Я вызывал мультивыбор так:

onButtonClick: function() {
	var config = {
		lookupPageName: "MultiLookupModule",
		multiLookupConfig: [{
			entitySchemaName:"Contact",
			multiLookupColumnName: "Contact",
			multiSelect: true
		}, {
			entitySchemaName:"Account",
			multiLookupColumnName: "Account",
			multiSelect: true
		}]
	};
	this.openLookup(config, this.onMyLookupResult, this);
},

Соответственно фиксил бы в таком порядке:
1) Сделал свой модуль MultiLookupExtendedModule, наследуется от "Terrasoft.MultiLookupModule"
2) Заместил бы копипастой функцию selectButton, в нужном месте надо сравнить значение активной вкладки (this.get("ActiveLookupTabName")) и вообще всей коллекции вкладок (this.get("LookupTabsCollection")). Исключаем активную, в values неактивной валяется нужная entitySchema, ну и делать запрос в нужную схему.
3) По кнопке вызывал бы свой модуль.

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