А при чем здесь замена типа? У Вас повреждено описание структуры таблицы на уровне AOS.
Т.е. на уровне SQL поле имеет тип nVarChar, а на уровне Axapta поле имеет тип Integer (Enum).
В версии dax2012 и старше - это означало бы, что повреждена модель данных. Лечится копированием из "образца" (по сути, восстановление из BackUp, но попроще). В dax2009 и младше - это в каких-то файлах повреждение. Ссылку на возможные файлы я привел.
Т.е. вопрос вовсе не в изменении типа, а лишь в "синхронизации" указания типа в Axapta в соответствии с типом в SQL.
Не уверен, что получится, но попробуйте вот так
X++:
TreeNode treeNode;
str properties;
;
// Узел AOT
treeNode = TreeNode::findNode(@"\Data Dictionary\Tables\InventDim\Fields\configId");
// Свойства
properties = treeNode.AOTgetProperties();
info(properties);
// Замена значения свойства
properties = Global::setProperty(properties, 'Type', 'Enum');
info(properties);
// Запись новых свойств
//treeNode.AOTsetProperties(properties);
//treeNode.AOTsave();Global::setProperty() - это из dax2012. Есть ли такой в dax2009 не знаю. Если нет, придется самому писать. Под конкретную задачу будет не сложно.
Можно еще попробовать сделать подмену в XPO. Т.е. выгрузить XPO, в нем подменить реквизиты поля и загрузить этот измененный XPO обратно. Но, сомневаюсь, что получится...