Программирование на Атлантисе (VIP, FCOM, ARD), FastReport
Модераторы: m0p3e , edward_K , Модераторы
win
Новичок
Сообщения: 26 Зарегистрирован: 24 ноя 2010, 13:10
Сообщение
win » 09 июл 2014, 08:23
Код: Выделить всё
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 всегда заполняются нулями.
Форум полистал, подобной проблемы не нашел...
Zver
Местный житель
Сообщения: 204 Зарегистрирован: 13 ноя 2012, 12:47
Откуда: СПб
Контактная информация:
Сообщение
Zver » 09 июл 2014, 11:05
Несколько уточняющих вопросов:
Можно весь код, по этому фрагменту не понятно, что происходит.
Программист-самоучка
win
Новичок
Сообщения: 26 Зарегистрирован: 24 ноя 2010, 13:10
Сообщение
win » 09 июл 2014, 12:46
Zver писал(а): Несколько уточняющих вопросов:
Можно весь код, по этому фрагменту не понятно, что происходит.
В отчете 2000 строк... Вкратце запускаем код описанный выше , делаем цикл по TmpSaldo1, и связка TmpSaldo1.cKitKau == KitKau.Nrec всегда не валидна, хотя есть кол-во, цены, суммы, молы, подразделения, а ссылка на КАУ всегда в нуле.
Алексей
Местный житель
Сообщения: 2896 Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область
Сообщение
Алексей » 10 июл 2014, 09:51
может быть когда находите мол или склад, надо передавать pick.crec а не comp(-2) ?
как раз разрез и передаёте по которому считать.
у нас так
Store_Run(sub_day(AktDate,1), 0, cscrPodr, cscrMOL, 0, true, true, true);
win
Новичок
Сообщения: 26 Зарегистрирован: 24 ноя 2010, 13:10
Сообщение
win » 10 июл 2014, 13:53
Код: Выделить всё
_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;
}
Нарыл в исходниках такой код, это то что мне нужно
Алексей
Местный житель
Сообщения: 2896 Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область
Сообщение
Алексей » 12 окт 2016, 11:36
Подниму тему.
Почему при использовании функции расчета остатков не заполняется поле tmpsaldo1.cobj. Проверил приходник на конкретное подразделение - там есть ЦУ по строительству, заполнено и в сопроводительном документе (внутреннее перемещение) и в ордере.
Есть подозрения, что нужно использовать объект UksStore.vih
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188 Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb
Сообщение
edward_K » 12 окт 2016, 13:08
потому как объект сей только для расчета складских остатков , а не в разрезе целевого учета.
Алексей
Местный житель
Сообщения: 2896 Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область
Сообщение
Алексей » 13 окт 2016, 11:46
UksStore.vih
Очень полезный объект для нужд целевого учёта.