Можно попробовать пойти таким путем.
X++:
protected FieldId fieldIdByExtendedType(TableId _tableId, int _extendedTypeNum)
{
DictTable dictTable = new DictTable(_tableId);
DictField dictField;
ExtendedTypeId extendedTypeId;
FieldId fieldId, fieldIdRet;
int i, n;
;
fieldId = dictTable.fieldNext(0);
while (fieldId && ! isSysId(FieldId))
{
dictField = new DictField(DictTable.id(), fieldId);
extendedTypeId = dictField.typeId();
if (extendedTypeId == _extendedTypeNum)
{
fieldIdRet = fieldId;
break;
}
fieldId = dictTable.fieldNext(fieldId);
}
return fieldIdRet;
}