Не работает Calc_NewSaldo :(

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
ikav
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49

Не работает Calc_NewSaldo :(

Сообщение ikav »

Не могу рассчитать бух. сальдо на дату, подскажите, плиз, в чем проблема?
Создал тестовый интерфейсик, но ничего не вижу в таблице :-?

interface pl_CalcSaldoOnDate 'Интерфейс расчета бухгалтерского сальдо на дату' Cyan, DoAccept;

var
flagQuit : boolean;

create view as
select * from SaldoNM;

browse bSaldoNM ();
fields
scheto 'Счет' :[10];
subossch 'Субсчет' :[10];
kauos[1] 'КАУ1' :[10];
datesal 'Дата сал':[10];
sums 'Сумма' :[10];
kol 'Кол' :[10];
viob 'Вид об' :[2];
end;

handleEvent
cmInit:
{
//comp(0001000000000002h)
flagQuit := Calc_NewSaldo(1,comp(0001000000000002h),coSaldoNM,60,01,comp(0001000000000D67H),0,0,0,0,0,0,date(01,07,2003),Cur_Date);
}
end;
end.
ikav
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49

Сообщение ikav »

строчка flagQuit := Calc_NewSaldo(1,comp(0001000000000002h),coSaldoNM,'60','01',comp(0001000000000D67H),0,0,0,0,0,0,date(01,07,2003),Cur_Date);
счет и субсчет с кавычками тоже пробовал, не работает
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

1. Счёт субсчет действительно должны быть в кавычках.
2. Надо указывать счет с префикосм плана счетов, с кодом. не '60' а например '460'
3. Ну и сальдо должно существовать, либо обороты.
ikav
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49

Сообщение ikav »

Мда, попробовал поставить код плана счетов.
Calc_NewSaldo(0,comp(0001000000000002h),coSaldoNM,'660','01',comp(0001000000000D67H),0,0,0,0,0,0,date(01,07,2005),date(31,07,2005));
Стала показывать окошко, что ищет проводки, но ни одной не находит. А сальдо и обороты точно есть! Делал интервал дат и в пределах одного месяца, все равно не считает сальдо и все, показывает пустую таблицу.

Эта функция вообще в галке 5.85.02 работает? :shock:
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Функция точно работает в этой версии. У меня есть отчеты.
Попробуй ввести сальдо (ФРО - ввод сальдо за месяц) например на 31.08.05 и в периодах поставь (01.09.05-30.09.05). В таблице saldonm должно появится то сальдо, которое ты ввёл. Может ты записи в таблице saldonm не обновляешь?

Учти, что если в сальдо будет заполнено подразделение, то его тоже надо указывать при вызове Calc_NewSaldo.
ikav
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49

Сообщение ikav »

а таблицу как-то по особому нужно обновлять? я делаю так, как в интерфейсе сверху.

Попробовал ввести сальдо на месяц, только на 01.08.2005. Не появилось, попробовал и сальдо на день ввести, тоже не получилось. И подразделений нет ни в сальдо ни в оборотах
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Перечитать записи в таблице - 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-е число.

А в примере ты делаешь от июля по сентябрья, а сальдо введено в августе. оно не попадёт в во входящее сальдо.
А вот если бы были обороты в этот период, то они кстати должны были бы посчитаться, и на текущее число, получил бы
входящее сальдо, состоящее из оборотов.

Удачи... :)
ikav
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49

Сообщение ikav »

Вот блин, все ведь работало :D , свежим взглядом посмотрел после выходных. Оказалось вместо подразделения КАУ ставил. Начал другой счет проверять, тут-то все и обноружилось! Извините все :?.
ikav
Постоянный гость
Сообщения: 56
Зарегистрирован: 29 мар 2005, 17:49

Сообщение ikav »

Еще вопрос, а эта функция вообще может таблицу заполнять с разными МЦ и разными счетами?
Пытаюсь добавить расчет сальдо еще и по другому счету, а в таблице только одна запись по последнему расчету.
Как сделать, чтобы предыдущий расчет не удалялся, т.е. было две, три и т.д. записей?
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

Ни как. Создаёшь временную таблицу, свою. Делаешь расчет по одному счету, запоминаешь к себе. Делаешь по другому счету, запоминаешь к себе в таблицу. Далее свою таблу наполняем оборотами.
Выводишь на печать и получаешь оборотно-салдовую ведомость.
:)
Ответить