Извиняюсь, выложить не получилось, так как исправления носят сугубо индивидуальный характер и для широкого использования не подойдет.
Вместо этого могу предложить описание.
Проблема:
заключается в том, что при создании записи в таблице с сылками на документ (\Data Dictionary\Tables\DocuRef) в поле RefTableId попадает значение curExt()(т.е. текущая компания, например dat), если таблица не описана в методе \Classes\smmDocuments\getDataAreaId. У таблиц же виртуальных компаний DataArealId = "All". Т.о. запись в таблице ссылок создается, но для компании dat, а в дальнейшем, при вызове поиск происходит по компании all.
Решение а(часное, как не надо, но быстро):
дописываем в методе \Classes\smmDocuments\getDataAreaId еще один Case с нашей таблицей (3 строки по образу и подобию)
Решение b(возможно еще более быстрое, но на нем я споткнулся)
по default: выполняем
common = smmDocuments::findRecId(myTable, _refRecId);
сам метод приведен ниже
--->
public static Common findRecId(Common _common,
RecId _recId,
Boolean _forUpdate = false)
{
Common Common;
;
if (_recId)
{
common.selectForUpdate(_forUpdate);
select firstonly common where common.RecId == _recId;
}
return common;
}
<---
споткнулся я на том, что не смог по идентификатору таблицы присвоить ее в myTable.
Если кто знает как, будет интересно узнать.
Удачи, надеюсь что приведенное описание поможет кому нибудь.
|