Создаю журнал инвентаризации №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 Разноска - Журнал Журнал не был проведен
======================================================
|