29.03.2006, 18:54
|
#6
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Цитата:
Сообщение от Maxim Gorbunov
X++: select firstonly DataArea
where DataArea.id == new DictTable(tableId).makeRecord().dataAreaId;
А можно поподробней относительно смысловой нагрузки этого выражения с DictTable? А то я такой класс в AOT не нашел... Там делается какая-то запись в таблицу tableId? Я просто пока что написал вспомогательный класс для определения, через какую компанию таблица "виртуализируется", он выглядит, конечно, коряво в сравнении с этим select'ом, правда, по идее позволяет получать данные для любой компании, а не только текущейX++: static str getVirtualCompanyId(TableId _tableId, CompanyId _companyId = curExt())
{
VirtualDataAreaList virtDataAreaLst;
TableCollectionList tableColList;
SysDictTableCollection dictTableCol;
;
while select virtDataAreaLst
where virtDataAreaLst.id == _companyId
join tableCollection from tableColList
where tableColList.virtualDataArea == virtDataAreaLst.virtualDataArea
{
dictTableCol = new SysDictTableCollection(tableColList.tableCollection);
do
{
if (tablename2id(dictTableCol.nextTable()) == _tableId)
return virtDataAreaLst.virtualDataArea;
}
while (tableName);
}
return '';
}
|
|