05.03.2003, 17:20 | #1 |
Участник
|
Журнал инвентаризации
Ситуация - программно заполняю журнал инвентарицаций (InventJournalTrans, InventTrans, InventSum, InventDim)
Если дату инвентаризации указываем сегодняшнюю системную, то разноска проходит успешно. Если нет - ошибка с датой проводки. Создаю запись в журнале инвентаризаций вручную для более ранней даты. не наблюдаю отличий по датам с записями созданными программно в (InventJournalTrans, InventTrans, InventSum) куда копать? Резервирование номенклатуры выключено. |
|
06.03.2003, 05:51 | #2 |
сибиряк
|
1) напиши сообщение об ошибке
2) покажи код которым добавляешь строки
__________________
С уважением, Вячеслав. |
|
06.03.2003, 07:06 | #3 |
Участник
|
Создаю журнал инвентаризации №40.
Создаю вручную строку с номенклатурой 0959429900 Пытаюсь сдублировать запись с помощью нижеприведенного фрагмента. ===================================================== InventJournalTrans IJT ; InventJournalTrans IJT1 ; InventTrans InventTrans ; InventSum InventSum ; InventDim InventDim ; ; select firstonly IJT1 where IJT1.JournalID == '38' ; // InventJournalTrans IJT.JournalId = IJT1.JournalId ; IJT.TransDate = str2date('01.01.03',123) ; //На другую дату IJT.Voucher = IJT1.Voucher ; IJT.JournalType = IJT1.JournalType ; IJT.ItemId = IJT1.ItemId ; IJT.CostAmount = IJT1.CostAmount ; IJT.Counted = IJT1.Counted ; IJT.Qty = IJT1.Qty ; IJT.CostPrice = IJT1.CostPrice ; IJT.PriceUnit = IJT1.PriceUnit ; IJT.InventDimId = IJT1.InventDimId ; IJT.insert() ; select InventDim where InventDim.inventDimId == IJT1.InventDimId ; ttsbegin; IJT.inventDimId = InventDim::findOrCreate(inventDim).inventDimId; ttscommit; InventMovement::setAutoReserving(IJT); if (IJT.inventDimId != inventDim.inventDimId) { inventDim.data(InventDim::find(IJT.inventDimId)); inventDim.write(); } // InventTrans InventTrans.ItemId = IJT.ItemId ; InventTrans.Qty = IJT.Qty ; InventTrans.TransType = InventTransType::InventCounting ; // Инвентаризация InventTrans.TransRefId = IJT.JournalId ; InventTrans.InventTransId = IJT.InventTransId ; InventTrans.StatusReceipt = StatusReceipt::Ordered ; // Заказано InventTrans.DateExpected = IJT.TransDate ; InventTrans.ValueOpen = InventTransOpen::Yes ; InventTrans.Direction = InventDirection::Receipt ; InventTrans.DateStatus = IJT.TransDate ; InventTrans.inventDimId = IJT.InventDimId ; InventTrans.ValueOpenSecCur_RU = InventTransOpen::Yes ; InventTrans.InventTransId = IJT.InventTransId ; InventTrans.insert(); // добавляем суммы select InventSum where InventSum.ItemId == IJT.ItemId && InventSum.InventDimId == IJT.InventDimId ; if (InventSum.RecId == 0) { InventSum.ItemId = IJT.ItemId ; InventSum.Ordered = IJT.Counted ; InventSum.InventDimId = IJT.InventDimId ; InventSum.LastUpdDateExpected = IJT.TransDate ; } else { InventSum.LastUpdDateExpected = IJT.TransDate ; InventSum.Ordered += IJT.Counted ; // суммируем } InventSum.write() ; ===================================================== сообщение об ошибке ===================================================== Error Разноска - Журнал\Номер журнала: 40\Документ ГК: Inv000035\Дата: 06.03.2003\Номенклатура: 0959429900 Дата выполнения проводки неправильна Info Разноска - Журнал Журнал не был проведен ====================================================== |
|
06.03.2003, 09:36 | #4 |
----------------
|
Странно
Странно, что это вообще работает..
1. Так как insert на InventJournalTrans должен сам создавать InventTrans и уж тем более insert на InventTrans сам обновляет InventSum 2. Каждый журнал должен иметь свой 1 или несколько Voucher-ов (и записей InventJournalVoucher). Следовательно копирование поля Voucher из другого журнала неверно. 3. Voucher + TransDate + JournalId - связь InventJournalTrans и InventJournalVoucher И именно по этой связи производится разноска |
|
06.03.2003, 09:56 | #5 |
Участник
|
Спасибо за ответ.
Я имел ввиду создание запией внутри одного журнала. Т.е. с JournalId, Voucher проблем нет. С insert понятно, а вот связь InventJournalTrans и InventJournalVoucher я не учел. |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Глюки SP3. Журнал инвентаризации | 2 | |||
Номер документа в ГК. Журнал инвентаризации. | 1 | |||
Мультипользовательский ввод в журнал инвентаризации | 11 | |||
Журнал спецификаций | 13 | |||
Журнал инвентаризации | 4 |
|