попробуй на основе этого чегонить слепить... должно получиться
X++:
static void Job56(Args _args)
{
numberSeq numberSeq;
ledgerVoucher ledgerVoucher;
voucher voucher;
ledgerVoucherObject ledgerVoucherObject;
ledgerBondClient_RU ledgerBondClient;
ledgerTrans ledgerTrans;
transDate _transDate;
voucher _ExchAdjVoucher;
currencyCode currencyCodeMST;
ledgerVoucherTransObject transObject;
;
numberSeq = NumberSeq::newGetVoucher(VendParameters::numRefVendExchAdjVoucher());
ledgerVoucher = ledgerVoucher::newLedgerPost(DetailSummary::Summary,
SysModule::Vend,
numberSeq.parmVoucherSequenceCode());
voucher = numberSeq.voucher();
ledgerVoucherObject = LedgerVoucherObject::newVoucher(
voucher,
systemDateget(),
SysModule::Vend,
LedgerTransType::ExchAdjustment);
ledgerVoucher.addVoucher(ledgerVoucherObject);
ledgerVoucher.findLedgerVoucherObject().parmCorrection(true);
ledgerBondClient = ledgerVoucher.findLedgerVoucherObject().ledgerBondClient_RU();
while select ledgerTrans index hint VoucherDateIdx
where ledgerTrans.TransDate == _transDate &&
ledgerTrans.Voucher == _exchAdjVoucher &&
!ledgerTrans.crediting
{
if(ledgerBondClient)
ledgerBondClient.addNewLogObject();
transObject = ledgerVoucherTransObject::newCreateTrans(ledgerVoucherObject,
ledgerTrans.Posting,
ledgerTrans.AccountNum,
ledgerTrans.Dimension,
currencyCodeMST,
-ledgerTrans.AmountMST, // тут минус так как сторно
0);
ledgerVoucher.addTrans(transObject);
transObject = ledgerVoucherTransObject::newCreateTrans(ledgerVoucherObject,
ledgerTrans.Posting,
ledgerTrans.bondedLedgerTrans_RU().AccountNum,
ledgerTrans.bondedLedgerTrans_RU().Dimension,
currencyCodeMST,
ledgerTrans.AmountMST,
0);
ledgerVoucher.addTrans(transObject);
if(ledgerBondClient)
{
ledgerBondClient.bondLastVRef2CurrentLog();
ledgerBondClient.removeCurrentLogObject();
}
}
ledgerVoucher.end();
}
это не работающий джоб, это пример, вроде ничего тут не упустил.