Проще самому написать, примерно так (тут журнал другой):
X++:
protected JournalTableMap reverseJournal(ProdJournalTable _journalTable)
{
ProdJournalTable journalTableReverse;
;
journalTableReverse.data(_journalTable);
journalTableReverse.journalId = '';
journalTableReverse.Posted = NoYes::No;
journalTableReverse.RouteAutoPickList = NoYes::No;
journalTableReverse.EndJob = NoYes::No;
journalTableReverse.insert();
setPrefix(journalTableReverse.JournalId);
switch (journalTableReverse.JournalType)
{
case ProdJournalType::ReportFinished :
this.reverseTransRAF(_journalTable, journalTableReverse);
break;
default :
throw error(strFmt("@SYS18917", _journalTable.JournalType));
}
return journalTableReverse;
}
X++:
protected void reverseTransRAF(
ProdJournalTable _journalTable,
ProdJournalTable _journalTableReverse)
{
ProdJournalProd journalTrans;
ProdJournalProd journalTransReverse;
ProdJournalTableData journalTableData;
ProdJournalTransData journalTransData;
Voucher voucher;
;
journalTableData = ProdJournalTableData::newTable(_journalTableReverse);
while select journalTrans
where journalTrans.JournalId == _journalTable.JournalId
{
journalTransReverse.data(journalTrans);
journalTransReverse.JournalId = _journalTableReverse.JournalId;
if (! voucher)
{
journalTransData = ProdJournalTransData::newTransTable(journalTransReverse, journalTableData);
journalTransData.initVoucher('', false);
voucher = journalTransReverse.Voucher;
}
journalTransReverse.Voucher = voucher;
journalTransReverse.TransDate = this.transDate(journalTransReverse);
...
journalTransReverse.ProdFinished = NoYes::No;
journalTransReverse.ProdPickList = NoYes::No;
journalTransReverse.insert();
}
}