Скорее всего тормозит не запрос, а вставка во временную таблицу. Попробуйте закомментировать вот этот блок кода
X++:
if (qCustTrans)
{
tmpTable.clear();
tmpTable.GroupFinancName = ICLGroupsFinancTable::find(qContractTable.GroupFinancId).GroupFinancName;
tmpTable.AccountNum = qCustTrans.AccountNum;
tmpTable.AccountName = CustTable::find(qCustTrans.AccountNum).NameAlias;
tmpTable.ContractNumberDate = qContractTable.contractNumberDate;
tmpTable.Voucher = qCustTrans.Voucher;
tmpTable.Advance = NoYes::No;
tmpTable.DebtBeginPeriod = qCustTrans.AmountCur;
tmpTable.CurrentPayTotal = tmpTable.BPayCurrent + tmpTable.PayCurrent;
tmpTable.PayPeriodTotal = tmpTable.BPay + tmpTable.Pay + tmpTable.CurrentPayTotal;
tmpTable.CurrentDebt = tmpTable.AddAmount + tmpTable.CurrentPayTotal;
tmpTable.EndDebt = tmpTable.DebtBeginPeriod + tmpTable.AddAmount + tmpTable.PayPeriodTotal;
tmpTable.insert();
}
и прогнать запрос снова. Если тормоза заключаются в этом, то Вам нужно пересматривать логику построения отчета.