Страница 1 из 1

Как считает остатки складская оборотная ведомость?

Добавлено: 02 мар 2011, 08:49
kdm
Добрый день!
Подскажите, какой функцией считает остатки оборотная ведомость по складам в складском учете?
Проблема вот в чем: смотрю в карточке МЦ остатки на дату разрезе склад\мол\партия по ctrl '+' остатки есть (правильные остатки). раскручиваю в этом же разрезе оборотную ведомость по складам (Складской учет) - ведомость пуста. Как так непонятно?
До установки декабрьских патчей использовал функцию NalT в ard-отчете, результат соответствовал оборотной ведомости. Сейчас соответствует остаткам по Ctrl '+'.
А мне нужно чтобы соответствовало оборотной ведомости.

Re: Как считает остатки складская оборотная ведомость?

Добавлено: 02 мар 2011, 09:06
n0where
Отказался от функции NalT в пользу Store_Run.

Возможно остатки поплыли изза того что нет пересчета

Re: Как считает остатки складская оборотная ведомость?

Добавлено: 02 мар 2011, 09:48
kdm
Что эта функция делает и какие у неё параметры?

Re: Как считает остатки складская оборотная ведомость?

Добавлено: 02 мар 2011, 10:26
n0where
Тоже самое. поиском пройдитесь море инфы

Re: Как считает остатки складская оборотная ведомость?

Добавлено: 02 мар 2011, 15:49
kdm
Написал вместо
InitMcInfo(d2);
TypeOstatki(false);
ost:=NalT(d2,mc_nrec,podr_nrec,mol_nrec,party_nrec);
kolost:=countMc;
cenaost:=AveragePrice;
sumost:=cenaost*kolost;
DoneMcInfo();

Вот так:
Store_Init;
Store_ReInit;
Store_TypeOstatki(False);
Store_Run(d2,mc_nrec,podr_nrec,mol_nrec,party_nrec, true, true, true);
kolost:=countMc; //количество остатков на оприходованном складе
cenaost:=AveragePrice; //средняя цена остатков по разрезу
sumost:=cenaost*kolost; //сумма остатков
Store_Done;

Компилит нормально. При выполнении ошибка "Не выпонилась функция InitMCinfo" и результат нулевой.

Re: Как считает остатки складская оборотная ведомость?

Добавлено: 02 мар 2011, 15:58
oiko
Ни где DoneMcInfo(); не забыли?

Re: Как считает остатки складская оборотная ведомость?

Добавлено: 02 мар 2011, 16:13
kdm
Везде закомментировал.

Re: Как считает остатки складская оборотная ведомость?

Добавлено: 02 мар 2011, 17:45
edward_K

Код: Выделить всё

   Store_Init ;
    Store_ReInit ;
    Store_TypeOstatki(False) ; 
    Store_ForceInVal(boGetTune('OPER.MULTICURRREG'));
    Store_SkladProizv(0);
    Mylogwrite(false,'Расчет остатков')
    Store_Run ( sub_day(DTB,1), if((filtr_type and 4)=0,comp(0),comp(-2)) 
         ,if((filtr_type and 1)=0,comp(0),comp(-2)),comp(0)
         ,if((filtr_type and 8)=0,comp(0),comp(-2)) // по партии
          ,true, true,true  ) ;
    if Store_WasStopped then
    { message('Расчет остатков прерван', mfInformation+mfOkButton);
      Store_Done;
      Exit;
    }
    Rereadrecord(#TmpSaldo1)     
    _loop  TmpSaldo1  ordered by index TmpSaldo101 
Никаких Averageprice, count использовать нельзя - эти относятся к nalt и вызывать надо только после initmcinfo и nalt
Зато Saldo_run могет работать по множественной пометке в pick МЦ, Подразделений, Партий.
TypeOstatki опеределяет способ расчета - на конец дня(false) или на начало - лучше вызвать чтобы быть уверенным.