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

TmpSaldo1 - не все поля заполняются

Добавлено: 09 июл 2014, 08:23
win

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

Store_Init
Store_ReInit
delete all TmpSaldo1;
  
  Store_ForceInVal(true);
  Store_TypeOstatki(false);

  Store_Run(dRep, 0, 
                  if(GetFirst Pick where ((WLIST_STORE == Pick.wList)) = tsOk, comp(-2), comp(0)),  // склад
                  if(GetFirst Pick where ((WLIST_MOL   == Pick.wList)) = tsOk, comp(-2), comp(0)),  // МОЛ
                  0, 
                  TRUE, TRUE, TRUE);
                  
  // склад
  Store_Done;
Не подскажите почему поля COBJ, CKAU, CKITKAU, CPARTY всегда заполняются нулями.

Форум полистал, подобной проблемы не нашел...

Re: TmpSaldo1 - не все поля заполняются

Добавлено: 09 июл 2014, 11:05
Zver
Несколько уточняющих вопросов:
Можно весь код, по этому фрагменту не понятно, что происходит.

Re: TmpSaldo1 - не все поля заполняются

Добавлено: 09 июл 2014, 12:46
win
Zver писал(а):Несколько уточняющих вопросов:
Можно весь код, по этому фрагменту не понятно, что происходит.
В отчете 2000 строк... Вкратце запускаем код описанный выше , делаем цикл по TmpSaldo1, и связка TmpSaldo1.cKitKau == KitKau.Nrec всегда не валидна, хотя есть кол-во, цены, суммы, молы, подразделения, а ссылка на КАУ всегда в нуле.

Re: TmpSaldo1 - не все поля заполняются

Добавлено: 10 июл 2014, 09:51
Алексей
может быть когда находите мол или склад, надо передавать pick.crec а не comp(-2) ?
как раз разрез и передаёте по которому считать.
у нас так
Store_Run(sub_day(AktDate,1), 0, cscrPodr, cscrMOL, 0, true, true, true);

Re: TmpSaldo1 - не все поля заполняются

Добавлено: 10 июл 2014, 13:53
win

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

  _LOOP TmpSaldo1_syn
  {
    _LOOP SaldTune_syn
      _LOOP SaldoRaz_syn  where ((   SaldTune_syn.nRec   == SaldoRaz_syn.cSaldTune
                                AND word(0)              == SaldoRaz_syn.wMode
                                AND TmpSaldo1_syn.cMC    == SaldoRaz_syn.cMC
                                AND TmpSaldo1_syn.cPodr  == SaldoRaz_syn.cPodr
                                AND TmpSaldo1_syn.cMol   == SaldoRaz_syn.cMol
                                AND TmpSaldo1_syn.cParty == SaldoRaz_syn.cParty  ))
             if ( getlast SaldoObj_syn where ((   SaldoRaz_syn.nRec  == SaldoObj_syn.cSaldoRaz
                                                  AND Cur_Date      >>= SaldoObj_syn.dOper      )) = tsOk )
                {
                  if ( (TmpSaldo1_syn.Kol = SaldoObj_syn.Kol) AND (TmpSaldo1_syn.cSaldTune = 0) )
                    {
                      TmpSaldo1_syn.cSaldTune := SaldoObj_syn.cSaldTune;
                      TmpSaldo1_syn.cObj      := SaldoObj_syn.cObj;
                      TmpSaldo1_syn.cKitKau   := SaldoObj_syn.cKitKau;
                      update current TmpSaldo1_syn;
                      continue;
                    }
Нарыл в исходниках такой код, это то что мне нужно

Re: TmpSaldo1 - не все поля заполняются

Добавлено: 12 окт 2016, 11:36
Алексей
Подниму тему.
Почему при использовании функции расчета остатков не заполняется поле tmpsaldo1.cobj. Проверил приходник на конкретное подразделение - там есть ЦУ по строительству, заполнено и в сопроводительном документе (внутреннее перемещение) и в ордере.

Есть подозрения, что нужно использовать объект UksStore.vih

Re: TmpSaldo1 - не все поля заполняются

Добавлено: 12 окт 2016, 13:08
edward_K
потому как объект сей только для расчета складских остатков , а не в разрезе целевого учета.

Re: TmpSaldo1 - не все поля заполняются

Добавлено: 13 окт 2016, 11:46
Алексей
UksStore.vih
Очень полезный объект для нужд целевого учёта.