|
![]() |
#1 |
Участник
|
Тогда приведите ваш код формирования проводок (естественно, опустив несущественные детали).
|
|
![]() |
#2 |
Постигающий
|
Код: protected void postLedgerTrans(kasRRepRepairLine _repairLine) { LedgerVoucher ledgerVoucher; LedgerVoucherObject ledgerVoucherObject; LedgerVoucherTransObject ledgerVoucherTransObject; TransactionTxt transactionTxt; LedgerBondClient_RU ledgerBondClient; NumberSeq numberSeq; Voucher voucherId; kasRRepEquipmentTable equipmentTable; kasRRepEquipmentGroup equipmentGroup; TransDate transDate = _repairLine.FinishDate; AmountMST amount = _repairLine.Rate * _repairLine.duration(); ; numberSeq = NumberSeq::newGetNum(ProdParameters::numRefProdJournalVoucherId()); voucherId = numberSeq.num(); transactionTxt = new TransactionTxt(); transactionTxt.setType(LedgerTransTxt::None); transactionTxt.setDate(transDate); transactionTxt.setVoucher(voucherId); transactionTxt.txt(_repairLine.Note); ledgerVoucherObject = LedgerVoucherObject::newVoucher(voucherId, transDate, SysModule::System, LedgerTransType::None, NoYes::No); ledgerVoucher = LedgerVoucher::newLedgerPost(DetailSummary::Summary, SysModule::System, voucherId); ledgerVoucher.parmVoucherSeriesCode(numberSeq.parmNumberSequenceCode()); ledgerVoucher.AddVoucher(ledgerVoucherObject); ledgerBondClient = ledgerVoucher.findLedgerVoucherObject().ledgerBondClient_RU(); select firstonly equipmentTable index hint EquipmentIdx join equipmentGroup index hint EquipmentGroupIDX where equipmentTable.EquipmentID == _repairLine.EquipmentID && equipmentGroup.EquipmentGroupID == equipmentTable.EquipmentGroupID; if (ledgerBondClient) { ledgerBondClient.addNewLogObject(); } ledgerVoucherTransObject = LedgerVoucherTransObject::newCreateTrans(ledgerVoucher.findLedgerVoucherObject(), LedgerPostingType::Allocation, equipmentGroup.AccountNum, Dimensions::emptyDimension(), CompanyInfo::standardCurrency(), amount, _repairLine.RecId); ledgerVoucherTransObject.parmTransTxt(transactionTxt.txt()); ledgerVoucher.addTrans(ledgerVoucherTransObject); ledgerVoucherTransObject = LedgerVoucherTransObject::newCreateTrans(ledgerVoucher.findLedgerVoucherObject(), LedgerPostingType::Allocation, kasRRepRepairType::find(_repairLine.RepairTypeID).AccountNum, Dimensions::emptyDimension(), CompanyInfo::standardCurrency(), -(amount), _repairLine.RecId); ledgerVoucherTransObject.parmTransTxt(transactionTxt.txt()); ledgerVoucher.addTrans(ledgerVoucherTransObject); if (ledgerBondClient) { if (ledgerBondClient.currentLogLength() == 2) ledgerBondClient.bondLastVRef2CurrentLog(); ledgerBondClient.removeCurrentLogObject(); } ledgerVoucher.end(); } |
|
![]() |
#3 |
Участник
|
На первый взгляд - код рабочий (если отвлечься от некоторых недочетов - например, отсутствие записи в лог). А сумма у вас случайно не нулевая? Или может в вышестоящем коде есть отмена транзакции?
Последний раз редактировалось Raven Melancholic; 17.04.2007 в 12:30. |
|
![]() |
#4 |
Постигающий
|
О какой сумме речь? (amount конечно не нулевая)
транзакции вообще не начинал в своем модуле Последний раз редактировалось Андрей К.; 17.04.2007 в 12:37. |
|
![]() |
#5 |
Постигающий
|
Стоило указать у одного из TransObject'a
LedgerPostingType::Bank и все стало разноситься ![]() |
|
|
|