AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.12.2009, 18:48   #1  
opusss is offline
opusss
Участник
 
28 / 10 (1) +
Регистрация: 22.12.2009
в итоге получается я так надеюсь конечный код, + надо запустить где-то и когда-то два\один пересчет.

X++:
 delete_from INVENTTRANSPOSTING where INVENTTRANSPOSTING.InventTransId == "номер лота из строк журнала";

 //!!! будет закоментарено но надо что то запустить
 delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер Документа ГК из строк журнала";

 //!!! будет закоментарено но надо что то запустить
 delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате";

 delete_from INVENTJOURNALREPORTTABLE_RU where INVENTJOURNALREPORTTABLE_RU.JournalId == "номер журнала";

 delete_from InventJournalTrans where InventJournalTrans.JournalId == "номер журнала";

 delete_from TRANSACTIONLOG where TRANSACTIONLOG.Txt == "не знаю может если повезет по юзеру и дате";

 delete_from INVENTJOURNALTABLE where INVENTJOURNALTABLE.JournalId == "номер журнала";

 delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала";

// спертый кусок из посоветанного для правки  INVENTSUM

    if (dialog.run())
    {
        itemId      = dialogItemId.value();
    }
    if (itemId)
    {
        while
            select inventTable
             where inventTable.ItemId     == itemId
        {
            reCalcItem = new InventSumReCalcItem(inventTable.ItemId, true, CheckFix::Fix);
            reCalcItem.updateNow();
        }
    }
//конец спертого куска
Старый 23.12.2009, 19:49   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от opusss Посмотреть сообщение
//!!! будет закоментарено но надо что то запустить
delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер Документа ГК из строк журнала";

//!!! будет закоментарено но надо что то запустить
delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате";
Пересчёт сальдо по периодам обновляет таблицу LEDGERBALANCESDIMTRANS на основании данных из таблицы LEDGERTRANS. Так что LEDGERBALANCESDIMTRANS действительно нужно закомментировать, а LEDGERTRANS вам всё-таки прийдётся удалить самостоятельно, после чего и запустить пересчёт


Повторюсь. Самостоятельный пересчёт InventSum можно не делать если воспользоваться параметром dropInventOnHand метода InventTrans.delete(). T.е. если
X++:
delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала";
заменить на
X++:
ttsbegin;
while select forupdate InventTrans
where 
    INVENTTRANS.InventTransId == "номер лота из строк журнала"
{
    InventTrans.delete(true);
}
ttscommit;
Старый 24.12.2009, 08:55   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,449 / 1792 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Внимание ОШИБКА !!!
Приношу свои извенения. Мой английский меня подвёл .В своём сообщении Удаление разнесенного складского журнала.
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Повторюсь. Самостоятельный пересчёт InventSum можно не делать если воспользоваться параметром dropInventOnHand метода InventTrans.delete(). T.е. если
X++:
delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала";
заменить на
X++:
ttsbegin;
while select forupdate InventTrans
where 
    INVENTTRANS.InventTransId == "номер лота из строк журнала"
{
    InventTrans.delete(true);
}
ttscommit;

я ошибся с точностью до наоборот. Параметр dropInventOnHand (название этого параметра меня и подвело, оказывается drop - в смысле пропускать) нужно оставить равным NoYes::No (значение по умолчанию), если хотите чтобы InventSum пересчитался сам. Т.е. код можно оставить ваш (он и InventTrans удалит и одновременно InventSum пересчитает):

Правильный вариант
X++:
// удаление INVENTTRANS и пересчет INVENTSUM
delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала";

Последний раз редактировалось S.Kuskov; 24.12.2009 в 08:58.
Теги
отмена операций, перепроведение, складские журналы

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Новый тип складского журнала breakpoint DAX: Функционал 5 06.06.2008 13:55
Утверждение складского журнала Andrux DAX: Администрирование 5 13.08.2007 16:00
Удаление журнала спецификаций rrkrivov DAX: Программирование 24 21.03.2006 10:33
Удаление строки журнала ATimTim DAX: Программирование 7 05.08.2004 13:49
Разноска скопированного складского журнала dn DAX: Функционал 1 06.08.2003 20:51

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:58.