![]() |
#10 |
Administrator
|
Цитата:
Сообщение от mazzy
Я дополнил статью твоим особым мнением.
![]() Во-первых, в исходном примере надо писать не Код: inventJournalTrans.initFromJournalTable(); Код: journalTransData.initFromJournalTable(); Код: //Инициализируем класс для операций с записью в таблице журнала journalTableData = JournalTableData::newTable(inventJournalTable); //Очищаем поля записи inventJournalTrans.clear(); // Инициализируем класс для операций с записью в таблице строк журнала journalTransData = journalTableData.JournalStatic().newJournalTransData( inventJournalTrans, journalTableData); Код: inventJournalTrans.initFromInventJournalTable(inventJournalTable); ![]() Во-вторых, "сложная конструкция, которая считает остаток", включает в себя так же инициализацию InventDimParm, которая, честно сказать, никому не нужна. В общем, из исходного текста надо убрать Код: //Инициализируем активную аналитику из настроке журнала для расчета количества inventDimParm = InventJournalTable::journalId2inventDimParm(inventJournalTable.JournalId); //*** Специфика заполнения строки для журнала инвентаризации *** //Подсчитаем и запишем значение количества запасов в наличии на текущую дату inventJournalTrans.inventOnHand = InventSumDatePhysicalDim::onHandQty( inventJournalTrans.transDate, inventJournalTrans.itemId, inventDim, inventDimParm); Код: inventJournalTrans.inventMovement().journalSetInventDimField(); <div class='XPPtop'>X++</div><div class='XPP'>#Define.JournalNum([color=:red]"000015_061"[/color]) #Define.ItemId([color=:red]"ESB-007"[/color]) #Define.LocationId([color=:red]"MW"[/color]) #Define.QtyCounted(101) InventJournalTrans inventJournalTrans; InventJournalTable inventJournalTable; InventTable inventTable; InventDim inventDim; ; inventTable = inventTable::find(#ItemId); [color=:blue]if[/color] (!inventTable) [color=:blue]throw[/color] error(strfmt(InventTable::txtNotExist(), #ItemId)); [color=:blue]ttsbegin[/color]; inventJournalTable = inventJournalTable::find(#JournalNum, [color=:blue]true[/color]); [color=:blue]if[/color] (!inventJournalTable) [color=:blue]throw[/color] error(strfmt(InventJournalTable::txtNotExist(), #JournalNum)); inventJournalTrans.clear(); inventJournalTrans.initFromInventJournalTable(inventJournalTable); inventJournalTrans.initFromInventTable(inventTable); inventJournalTrans.transDate = systemDateGet(); inventDim = inventJournalTrans.inventDim(); inventDim.InventLocationId = #LocationId; inventJournalTrans.inventDimId = InventDim::findOrCreate(inventDim).inventDimId; inventJournalTrans.inventMovement().journalSetInventDimField(inventDim, [color=:blue]fieldNum[/color](InventDim, InventLocationId)); inventJournalTrans.Counted = #QtyCounted; inventJournalTrans.inventMovement().JournalSetCounted(); inventJournalTrans.insertFromCode(); [color=:blue]ttscommit[/color];</div>
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|