Перечитать записи в таблице -  rereadrecord;
if (Calc_NewSaldo( word(0), // Перерасчет сальдо на начало месяца - для вызова из Vip
                  myPlan,
                  integer(coSaldoNM),
                  '4020',
                  '',
                  pick.crec,
                  mySpKauNrec,
                  comp(0),
                  comp(0),
                  comp(0),
                  comp(0),
                  comp(0),
                  if((getlast saldmoun WHERE (('4020'        == saldmoun.scheto AND
                                               ''            == saldmoun.subossch and
                                               mySpKauNrec   == saldmoun.kauos[1] and 
                                               pick.crec     == saldmoun.kodspo  (noindex) //?
                                            )) and myPlan     = saldmoun.cplanssch
                                               and saldmoun.datesal<=dbeg) =tsOK,
                      saldmoun.datesal,date(1,month(dbeg),year(dbeg))),sub_day(dbeg,1))) 
Что она делает:
1. Внизу, в датах ищет существующее сальдо в таблице сальдо за месяц и если находит,
то в качестве первой даты берёт ту дату. Если не находит сальдо вообще, то ставит 
начало отчетного периода (первое число месяца).
2. Вторая дата это начальная минус одни.
Например ты ввёл сальдо на 1.08.05   
если в функции задашь даты, например от 5 до 15 то увидишь во входящем сальдо сальдо на 1-е число.
А в примере ты делаешь от июля по сентябрья, а сальдо введено в августе. оно не попадёт в во входящее сальдо.
А вот если бы были обороты в этот период, то они кстати должны были бы посчитаться, и на текущее число, получил бы 
входящее сальдо, состоящее из оборотов.
Удачи... 
