Доброго времени суток.
И снова глобальная адресная книга в студии!
Попробую зайти с фланга: существует настроенный справочник "глобальная адресная книга", расшареный на несколько компаний через вируальную. Необходимо создать адрес для конкретного клиента через форму CustTable. При этом, как известно, адрес будет связан с клиентом через ту же глобальную адресную книгу (DirPartyTable) следующим образом (вернее 2-мя):
X++:
...
Address.RecId == DirPartyAddressRelationshipMapping.AddressRecId
Address.DataAreaId == DirPartyAddressRelationshipMapping.RefCompanyId
DirPartyAddressRelationshipMapping.PartyAddressRelationshipRecId == DirPartyAddressRelationship.RecId
DirPartyAddressRelationship.PartyId == DirPartyTable.PartyId
...
или
X++:
...
Address.AddrTableId == tableNum(DirPartyTable)
Address.AddrRecId == DirPartyTable.RecId
...
создаем адрес через форму клиентов и тут выясняется, что ОООЧЕНЬ редко (никому из наших не удалось воспроизвести) вторая ссылка не заполняется. Как результат: адрес видно из глобальной адресной книги и не видно из клиента. (это связанно с тем, что запросы к таблице Address из 2-х форм по-разному строятся)
как вариант поставил такую заглушку в Address.insert(), Address.update()
X++:
if (this.isFormDataSource() && ! this.AddrTableId && ! this.AddrRecId)
{
if (this.<DirPartyAddressRelationship>().PartyId)
{
this.AddrTableId = tableNum(DirPartyTable);
this.AddrRecId = DirPartyTable::find(this<DirPartyAddressRelationship>().PartyId).RecId;
}
}
(в угловых скобках метод, достающий связь)
Не встречалась ли кому такая бага? Если встречалась, то как лечили?
Заранее спасибо!
DAX 2009 RU5