Ax2009 RU6 (5.1500.4102)
В методе SalesFormLetter.recordInsertListInit происходит инициализация
X++:
recordInsertSalesParmTable = new RecordInsertList(tablenum(SalesParmTable), true);
обратите внимание на второй параметр - указывает на то, что метод insert() вызываться не должен.
Тем не менее, далее при вызове recordInsertSalesParmTable.insertDatabase() в SalesFormLetter.recordInsertListInsert этот самый вызов insert происходит и вставляет дополнительный SalesParmSubTable, который уже вставлен вручную => ошибка.
Вопрос - почему происходит вызов insert, хотя происходить не должен?
Ошибка стала возникать после переноса кастомизированных методов класса SalesFormLetter из Ax4 в Ax2009. Причем RecordInsertList там не было, соответственно никакие кастомизации его не трогают.
В одной из тем нарыл, что может влиять аудит - но база пустая и никакого аудита соответственно нет. Что еще может влиять?
UPD: удалил залитые кастомизации на классе SalesFormLetter и таблице SalesFormLetter - ошибка осталась...