Насколько я понимаю, проблема в том, что раньше было два типа таблиц - постоянные и временные (Regular и InMemory в терминологии AX 2012), и в куче мест проверка !buf.IsTmp() означала по сути проверку на то, является ли таблица постоянной. Потом добавили новый тип таблиц - TempDB, а кучу кода, который знал лишь про два прежних типа таблиц, не поменяли, вот этот код и сломался, поскольку теперь !buf.isTmp() не тождественно проверке на то, что "актуальный" тип таблицы - Regular.
Лежащий на поверхности способ подправить ситуацию - это приделать костылик в метод Company::createParameter(), который бы перед попыткой вставить запись проверял, какой у таблицы тип в AOT (Regular/InMemory/TempDB) и какой "актуальный" тип (isTmp(), isTempDB()), и пытался создать запись лишь в том случае, если таблица и задумана, и по факту является постоянной. Ну и, возможно, кэшировать результата этой проверки...
|