Просмотрев различные формы и классы, решил написать свои функции по расчету сальдо.
Вышло примерно так:
X++:
Amount getBalanceCred(CustTrans _custTrans)
{
CustTrans custTransCursor;
LedgerTrans ledgerTransCursor;
str 100 accountNum;
;
select sum(AmountCur) from ledgerTransCursor
where ledgerTransCursor.Dimension[7] == _custTrans.Dimension[7]
&& ledgerTransCursor.Dimension[8] == _custTrans.Dimension[8]
&& ledgerTransCursor.Dimension[9] == _custTrans.Dimension[9]
&& ledgerTransCursor.AccountNum == "62.02.1"
&& ledgerTransCursor.TransDate <= TransDate
&& ledgerTransCursor.Crediting == true;
// && ledgerTransCursor.TransType == 15
return ledgerTransCursor.AmountCur;
}
И так:
X++:
Amount getBalanceDeb(CustTrans _custTrans)
{
CustTrans custTransCursor;
LedgerTrans ledgerTransCursor;
str 100 accountNum;
;
select sum(AmountCur) from ledgerTransCursor
where ledgerTransCursor.Dimension[7] == _custTrans.Dimension[7]
&& ledgerTransCursor.Dimension[8] == _custTrans.Dimension[8]
&& ledgerTransCursor.Dimension[9] == _custTrans.Dimension[9]
&& ledgerTransCursor.AccountNum == "76.АВ"
&& ledgerTransCursor.TransDate <= TransDate
&& ledgerTransCursor.Crediting == false;
// && ledgerTransCursor.TransType == 15
return ledgerTransCursor.AmountCur;
}
Считал сальдо по аналитикам. Понимаю, что с точки зрения системы это не правильно.
Но, всё же, возникают ошибки в выводе. По моим предположениям я не учёл что-либо..