В поддержку моей теории попробуйте выполнить следующий джоб.
Видно, что если таблица CustTrans непоследняя, и к ней приджойнить другие таблицы, то Аксапта генерирует неправильный запрос.
X++:
static void Job782(Args _args)
{
Query query = new Query();
QueryRun queryRun;
QueryBuildDatasource qbdsCustTable;
QueryBuildDatasource qbdsCustTrans;
QueryBuildDatasource qbdsCustTransOpen;
QueryBuildDatasource qbdsLedgerTrans;
QueryBuildDatasource qbdsLedgerTable;
;
//-->правильно работает
query = new Query();
qbdsCustTable = query.addDataSource(tableNum(CustTable));
qbdsCustTransOpen = qbdsCustTable.addDataSource(tableNum(CustTransOpen));
qbdsCustTrans = qbdsCustTransOpen.addDataSource(tableNum(CustTrans));
qbdsLedgerTrans = qbdsCustTrans.addDataSource(tableNum(LedgerTrans));
qbdsLedgerTable = qbdsLedgerTrans.addDataSource(tableNum(LedgerTable));
queryRun = new QueryRun(query);
info(queryRun.query().dataSourceNo(1).toString());
//<--правильно работает
//-->неправильно работает
query = new Query();
qbdsCustTable = query.addDataSource(tableNum(CustTable));
qbdsCustTrans = qbdsCustTable.addDataSource(tableNum(CustTrans));
qbdsCustTransOpen = qbdsCustTrans.addDataSource(tableNum(CustTransOpen));
qbdsLedgerTrans = qbdsCustTrans.addDataSource(tableNum(LedgerTrans));
qbdsLedgerTable = qbdsLedgerTrans.addDataSource(tableNum(LedgerTable));
queryRun = new QueryRun(query);
info(queryRun.query().dataSourceNo(1).toString());
//<--неправильно работает
}