Показать сообщение отдельно
Старый 05.07.2005, 11:29   #1  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Ошибка при разноске журналов Перенос с копированием ошибок в новый журнал.
При выполнении Subj в одной из 2-х складских проводок по строке журнала ссылка на журнал указывает на исходный журнал.

Возможно никто не замечал, т.к. не очень критично, но у нас есть отчет, благодаря которому было замечено.

Хочу посоветоваться с методом исправления бага. Думаю в классе JournalCheckPost в методе createJournalTransfer можно исправить так:
было
PHP код:
protected void createJournalTransfer()
{
    
JournalTableData    toJournalTableData;
    
JournalTableMap     fromJournalTable;
    
JournalTableMap     toJournalTable;
    
JournalTransMap     journalTrans;

    
JournalError        journalError;

    
JournalInfoAction   journalInfoAction;

    
Integer             x;

    if (
transferErrors && this.journalErrorListCount() > 0)
    {
        
fromJournalTable    journalTableData.journalTable();

        
toJournalTable      fromJournalTable.data();                                  // copy
        
toJournalTableData  JournalTableData::newTable(journalTableData.JournalStatic().JournalTable());
        
toJournalTableData.copyTotalTo(toJournalTable);                                 // clear total fields
        
toJournalTableData.journalTable(toJournalTable);

        
toJournalTable.journalId  toJournalTableData.nextJournalId();

        if (
journalTableData.journalTransList().first())
        do
        {
            
journalTrans journalTableData.journalTransList().item();
            if (
this.hasTransError(journalTrans))
            {
                
journalTableData.addTotal(journalTrans,true);

                
journalTrans.journalId toJournalTable.journalId;
                
journalTrans.doUpdate(); 
стало
PHP код:
protected void createJournalTransfer()
{
    
JournalTableData    toJournalTableData;
    
JournalTableMap     fromJournalTable;
    
JournalTableMap     toJournalTable;
    
JournalTransMap     journalTrans;

    
JournalError        journalError;

    
JournalInfoAction   journalInfoAction;

    
Integer             x;

    if (
transferErrors && this.journalErrorListCount() > 0)
    {
        
fromJournalTable    journalTableData.journalTable();

        
toJournalTable      fromJournalTable.data();                                  // copy
        
toJournalTableData  JournalTableData::newTable(journalTableData.JournalStatic().JournalTable());
        
toJournalTableData.copyTotalTo(toJournalTable);                                 // clear total fields
        
toJournalTableData.journalTable(toJournalTable);

        
toJournalTable.journalId  toJournalTableData.nextJournalId();

        if (
journalTableData.journalTransList().first())
        do
        {
            
journalTrans journalTableData.journalTransList().item();
            if (
this.hasTransError(journalTrans))
            {
                
journalTableData.addTotal(journalTrans,true);

                
journalTrans.journalId toJournalTable.journalId;
                
// Проект RO_InventTransErrorFix_edd -->
                //journalTrans.doUpdate();
                
journalTrans.Update();
                
// <-- Проект RO_InventTransErrorFix_edd 
Как вы думаете, не критично doUpdate заменить на Update в данном случае? Т.к. в неразнесенном журнале любого типа нажатие на кнопку сохранить (т.е. в итоге вызов Update) штатная ситуация.

PS. Axapta 3.0 sp3.