Показать сообщение отдельно
Старый 30.07.2013, 08:49   #6  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Попробуйте также улучшить код.
Например конструкцию
X++:
    while select forupdate tmpInventJournalTrans
    {
        tmpInventJournalTrans.delete();
    }
замените на
X++:
    delete_from tmpInventJournalTrans;
Помимо удаления select forupdate используется, когда вы хотите обновить запись через метод update(). Используя вставку записей через метод insert(), вам незачем что-либо выбирать оператором select.
Поэтому в этом куске кода выборка для обновлений будет лишней.
X++:
    while select ITrans
      where iTrans.JournalId == ijourTo.JournalId
    {
       select forupdate tmpInventJournalTrans; // <- лишний код
       ttsbegin;
       
       tmpInventJournalTrans.clear();
       tmpInventJournalTrans.ItemId = itrans.ItemId;
       tmpInventJournalTrans.Qty    = abs(itrans.Qty);
       tmpInventJournalTrans.InventDimId                = itrans.inventDimId;
       tmpInventJournaltrans.LedgerAccountIdOffset = itrans.LedgerAccountIdOffset;

       tmpInventJournaltrans.insert();

       ttscommit;
//info(tmpInventJournalTrans.ItemId);
    }
__________________
// no comments

Последний раз редактировалось dech; 30.07.2013 в 08:56.