Попробуйте разбить Join CustTrans и RСontractTable на два разных запроса, т.е. сначала идем по проводкам, потом, внутри, по договорам.
upd: И еще вот эта строка насторожила:
X++:
queryRun.query().addDataSource(tableNum(TmpGroupFinancingTable));
Только мы закончили проход по QueryRun, как начинаем модифицировать его запрос, что бы, по всей вероятности, потом снова запустить. Не знаю каков будет эффект от такого фокуса, т.к. не приходило такого в голову, но вообще это и листинг в целом оставляют впечатление типичного bad design.