Показать сообщение отдельно
Старый 30.03.2006, 12:08   #20  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
:( changeCompany() не работает?..
Цитата:
Сообщение от gl00mie
Представляется обновление InventTableModule сделать примерно так:
  • определить, через какую виртуальную компанию в данной компании доступна таблица InventTable
  • пройтись по списку других компаний в этой виртуальной компании
  • в каждой из них создать/удалить соотв.записи для InventTable.ItemId
Все же что-то у меня последний пункт не выходит Я наивно полагал, что сработает просто это
X++:
changeCompany(virtualDataAreaList.id) {
    super();
}
ан - фигу! Компания, конечно, сменяется (если в блоке распечатать curext(), то он показывает то, что нужно), только вот this.dataAreaId у InventTableModule как был в старой компании, так и остался, и вызываемый super() ессно ругается, что запись уже есть. xApplication.setDefaultCompany() дает тот же результат... Если в контексте другой компании (внутри блока changeCompany) сделать новый InventTableModule и скопировать в него this, то он тоже получает dataAreaId из исходонй компании, а не из той, куда делается changeCompany Что делать, как побороть? Неужто вместо простого вызова super() в InventTableModule в контексте другой компании придется "плясать с бубном", создавать новый экземпляр объекта и копировать в него нужные данные?..