Показать сообщение отдельно
Старый 09.10.2013, 15:48   #4  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,500 / 1098 (40) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Можно так попробовать, указав нужные RecId.
X++:
static void edd_clear(Args _args)
{
    LedgerBalancesPostingList   balancesPostingList;

    LedgerTrans                 ledgerTrans, ledgerTrans2;
    ;
    ttsbegin;

    balancesPostingList = LedgerBalancesList::constructPostingList();

    while select forupdate ledgerTrans
        where ledgerTrans.RecId  == 1
           || ledgerTrans.RecId  == 2
           || ledgerTrans.RecId  == 3
           || ledgerTrans.RecId  == 4
    {
        ledgerTrans2.clear();
        ledgerTrans2.data(ledgerTrans);

        ledgerTrans2.AmountCur       = -ledgerTrans2.AmountCur;
        ledgerTrans2.AmountMST       = -ledgerTrans2.AmountMST;
        ledgerTrans2.AmountMSTSecond = -ledgerTrans2.AmountMSTSecond;
        ledgerTrans2.BondBatch_RU    = ledgerTrans2.BondBatch_RU + '-';

        balancesPostingList.add(ledgerTrans2);

        //ledgerTrans.doDelete();
        ledgerTrans.insert();
    }

    balancesPostingList.post();

    ttscommit;
}
PS. Только трансляция наверно не пройдет, она наверняка по ваучерам. С ней не знаком, но наверняка можно и там пропихнуть.

PPS. Вообще в форме проводок ОС есть кнопка - Сторнировать проводку (по моему она не всегда видна, в АОТ ее видно, она привязана к классу rAssetTransactionReversal).

Последний раз редактировалось raz; 09.10.2013 в 15:55.