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

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

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

Ответить
kdm
Посетитель
Сообщения: 44
Зарегистрирован: 15 дек 2005, 08:38
Откуда: Нижний Тагил

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

Сообщение kdm »

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

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

Сообщение n0where »

Отказался от функции NalT в пользу Store_Run.

Возможно остатки поплыли изза того что нет пересчета
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
kdm
Посетитель
Сообщения: 44
Зарегистрирован: 15 дек 2005, 08:38
Откуда: Нижний Тагил

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

Сообщение kdm »

Что эта функция делает и какие у неё параметры?
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

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

Сообщение n0where »

Тоже самое. поиском пройдитесь море инфы
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
kdm
Посетитель
Сообщения: 44
Зарегистрирован: 15 дек 2005, 08:38
Откуда: Нижний Тагил

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

Сообщение 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" и результат нулевой.
oiko
Местный житель
Сообщения: 418
Зарегистрирован: 29 мар 2005, 17:49

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

Сообщение oiko »

Ни где DoneMcInfo(); не забыли?
kdm
Посетитель
Сообщения: 44
Зарегистрирован: 15 дек 2005, 08:38
Откуда: Нижний Тагил

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

Сообщение kdm »

Везде закомментировал.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение 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) или на начало - лучше вызвать чтобы быть уверенным.
Ответить