Показать сообщение отдельно
Старый 19.06.2009, 16:37   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Проще самому написать, примерно так (тут журнал другой):
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();
    }
}
За это сообщение автора поблагодарили: tolstjak (1).