Не знаю, в чью "светлую" голову пришло так выводить данные о платеже, но ...
(ниже выдержка из метода FactureJour_RU.getPaymentInfo())
X++:
while (rst.next(custVendInvoiceJour))
{
custVendTrans = custVendInvoiceJour.CustVendInvoiceJour::custVendTrans(custVendTrans);
infolog.clear();
while select DocumentNum, TransDate from custVendTransPayment
order by custVendTransPayment.DocumentNum
where custVendTransPayment.DocumentNum
exists join custVendSettlement
where custVendSettlement.AccountNum == custVendTransPayment.AccountNum
&& custVendSettlement.OffsetTransVoucher == custVendTransPayment.Voucher
&& custVendSettlement.OffsetRecid == custVendTransPayment.Recid
&& custVendSettlement.TransCompany == custVendTrans.DataAreaId
&& custVendSettlement.TransRecId == custVendTrans.RecId
&& custVendSettlement.AccountNum == custVendTrans.AccountNum
{
docuNumSet.add(custVendTransPayment.DocumentNum);
docDate = max(docDate, custVendTransPayment.TransDate);
}
}
Мало того, что DocumentDate не выбирается из map и не присваивается переменной, так еще и сравнение идет по максимальной дате.
Т.е. вместо того, чтобы сравнить с пустой датой (забыли указать в платеже), и только в этом случае взять дату проводки, всегда берут максимальную. Клиент оплатил в пятницу, в выписке компании платеж прошел в понедельник, но пятничную дату в печатных формах я не получу.