Можно так попробовать, указав нужные 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).