Показать сообщение отдельно
Старый 13.08.2015, 15:31   #10  
michel1971 is offline
michel1971
Участник
 
77 / 78 (3) ++++
Регистрация: 14.01.2011
если 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;
}
За это сообщение автора поблагодарили: mazzy (2).