Столкнулись с похожей проблемой. Победили так. Запустите следующий джоб (ногами не пинать – писали начинающие стажеры), если джоб найдет ошибки, то надо будет написать ещё один джобик, который удалить "испорченные" объекты.
X++:
// Поиск дубликатов объектов с различными ID
static void findDuplicateJob_LRA(Args _args)
{
Dictionary dict1 = new Dictionary();
Dictionary dict2 = new Dictionary();
DictTable dictTable1;
DictTable dictTable2;
DictEnum dictEnum;
DictType dictType;
int i1, i2, num;
;
// Обработка таблиц
for (i1 = 1; i1 <= dict1.tableCnt(); i1++)
{
dictTable1 = new DictTable(dict1.tableCnt2Id(i1));
if (dictTable1)
{
print strFmt("%1 из %2 %3", i1, dict1.tableCnt(), dictTable1.name());
for (i2 = i1+1; i2 <= dict2.tableCnt(); i2++)
{
dictTable2 = new DictTable(dict2.tableCnt2Id(i2));
if (dictTable2)
{
if (dictTable1.name() == dictTable2.name() && dictTable1.id() != dictTable2.id())
{
// Здесь собственно и есть ошибка
error(strFmt("Ошибка в объекте %1 %2 %3", dictTable1.name(), dictTable1.id(), dictTable2.id()));
num++;
}
}
else
{
info(strFmt("Ошибка при инициализации Table %1", dict2.tableCnt2Id(i2)));
}
}
}
else
{
info(strFmt("Ошибка при инициализации Table %1", dict2.tableCnt2Id(i2)));
}
}
info(strFmt("Готово! Ошибок %1", num));
}
Внедряли у нас Dynamics AX кстати, тоже АНД-проджект, и такая же байда была не только с таблицами, больше всего траболов всплыло на енумах и EDT. Кажется, ещё и на классах.
«Сервис \ Средства разработки \ Объекты приложения \ Переиндексация» у нас безвозвратно подвисала Dynamics AX.