если 12-ка, то можно вот так
X++:
public static FieldId getMappedField(TableId _mapId,
TableId _mappedTableId,
FieldId _mapFieldId)
{
FieldId ret;
DictTable dictTable;
DictTableMap dictTableMap;
int i;
if (_mapId && _mapFieldId && _mappedTableId)
{
dictTable = new DictTable(_mapId);
if (dictTable && dictTable.isMap())
{
for (i = dictTable.mapCnt(); i >= 1; i--)
{
dictTableMap = dictTable.mapObject(i);
if (dictTableMap.table() == _mappedTableId)
{
break;
}
dictTableMap = null;
}
if (dictTableMap)
{
for (i = dictTableMap.fieldCnt(); i >= 1; i--)
{
if (dictTableMap.fieldCnt2FieldFrom(i) == _mapFieldId)
{
ret = dictTableMap.fieldCnt2FieldTo(i);
break;
}
}
}
}
}
return ret;
}