04.04.2012, 10:36 | #1 |
Участник
|
Корреспонденция
Добрый день. Возникла такая ситуация (AX2009, RU5). Если по заказу на продажу в одной операции разносится и строка с положительной суммой и строка с отрицательной суммой (например, скидка) система "переворачивает" проводки сторно:
PHP код:
PHP код:
X++: static server void tutorialBondBatch_RU(Args _args) { LedgerVoucher ledgerVoucher; LedgerVoucherObject ledgerVoucherObject; LedgerBondClient_RU ledgerBondClient; NumberSeq numberSeq; dimension dimension; ; dimension = CustTrans::findFromInvoice('Нвт12/000916', 'К000001').Dimension; numberSeq = NumberSeq::newGetVoucher( LedgerParameters::numRefLedgerExchAdjVoucher()); ledgerVoucher = LedgerVoucher::newLedgerPost(DetailSummary::Summary, SysModule::Ledger, numberSeq.parmNumberSequenceCode(), TransactionLogType::LedgerJournal); ledgerVoucherObject = LedgerVoucherObject::newVoucher(numberSeq.voucher(), systemDateGet(), SysModule::Ledger, LedgerTransType::Sales, NoYes::No); ledgerVoucherObject.parmVoucherCheck(false); ledgerVoucher.addVoucher(ledgerVoucherObject); //ledgerVoucher.findLedgerVoucherObject().parmCorrection(true); ledgerVoucher.addTrans( //Проводка реализации по строке сторно LedgerVoucherTransObject::newCreateTrans( ledgerVoucher.findLedgerVoucherObject(), LedgerPostingType::SalesDisc, '90.01.1', // Ledger account dimension, CompanyInfo::find().currencyCode, 300, // Amount 0, 0) ); //ledgerVoucher.findLedgerVoucherObject().parmCorrection(! ledgerVoucher.findLedgerVoucherObject().parmCorrection()); ledgerVoucher.addTrans( //Проводка реализации по строке продажи LedgerVoucherTransObject::newCreateTrans( ledgerVoucher.findLedgerVoucherObject(), LedgerPostingType::SalesDisc, '90.01.1', // Ledger account dimension, CompanyInfo::find().currencyCode, -2000, // Amount 0, 0) ); ledgerVoucher.addTrans( //Итоговая сумма задолженности LedgerVoucherTransObject::newCreateTrans( ledgerVoucher.findLedgerVoucherObject(), LedgerPostingType::CustBalance, '62.01.1', // Ledger account dimension, CompanyInfo::find().currencyCode, 1700, // Amount 0, 0)); ledgerBondClient =ledgerVoucher.findLedgerVoucherObject().ledgerBondClient_RU(); if (ledgerBondClient && //корреспондируются реализация с проводкой с типом CustBalance ledgerBondClient.findVRefByPostingType(LedgerPostingType::CustBalance)) { ledgerBondClient.bondVRef2Log(ledgerBondClient.findVRefByPostingType(LedgerPostingType::CustBalance)); } ledgerVoucher.end(); Что делать? Подскажите.. Последний раз редактировалось Andrux; 04.04.2012 в 11:04. |
|
04.04.2012, 10:47 | #2 |
Участник
|
попробуйте внести изменение в splitTrans как я писал тут.
(там где упомянут метод calcCreditingBond). по идее после этого изменения, при признаке "коррекция" у сторно, корреспонденция должна пройти.
__________________
If it ain't broke, take it apart and find out why (с) |
|
04.04.2012, 11:05 | #3 |
Участник
|
В АХ2009 локализаторы уже внесли изменения в этот метод
X++: public void calcCrediting() // </GEEU> { /* <SYS> this.Crediting = (this.AmountMST < 0 && this.Correct == 0) || (this.AmountMST > 0 && this.Correct == 1); </SYS> */ // <GEEU> Amount tmpAmount = this.AmountCur ? this.AmountCur : this.AmountMST ? this.AmountMST : this.AmountMSTSecond; this.Crediting = (tmpAmount < 0 && this.Correct == 0) || (tmpAmount > 0 && this.Correct == 1); // </GEEU> } |
|
04.04.2012, 11:17 | #4 |
Участник
|
Внесли, но суть его осталась прежней и для корреспонденции он не подходит категорически.
Как раз по причине, по которой у вас она не срабатывает. Он для определения признака Crediting, который не всегда соотносится с истинным знаком проводки (как раз таки из-за наличия флага "коррекция").
__________________
If it ain't broke, take it apart and find out why (с) |
|
04.04.2012, 12:06 | #5 |
Участник
|
Внес изменения, в моем случае так и не заработало. Кроме того, перестали корреспондироваться проводки, когда разносится операция с признаком коррекция (на все операции)
|
|
05.04.2012, 18:16 | #6 |
Участник
|
Получается никак нельзя исправить разноску? Только потом, по факту, переворачивать проводки каким-нибудь Job?
|
|
13.03.2013, 09:59 | #7 |
Axapta
|
Подниму тему... Нам бухгалтера говорят, что это ошибка, такие проводки некорректны, противоречат принятой Минфином РФ методологии учета, поэтому требуется исправлять.Что скажете?
|
|
13.03.2013, 15:56 | #8 |
Участник
|
тут проблема не в корреспонденции, а в том, что надо выставить флаг коррекции при разноске этих операций
|
|
13.03.2013, 16:05 | #9 |
Axapta
|
Да, не в самой корреспонденции. Изначально проблема именно в "переворачивании" проводок. Как ты предлагаешь сделать, чтобы в заказах (и закупках) система не "переворачивала" проводки?
|
|
13.03.2013, 16:10 | #10 |
Участник
|
Вот это вот: "Проводка реализации по строке сторно" разносить с признаком коррекции и корреспондировать с дополнительным CustBalance на эту сумму которрый тоже с признаком коррекции или разбивать сторно и несторно на 2 накладных
|
|
13.03.2013, 16:13 | #11 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: oip (5). |
15.03.2013, 10:37 | #12 |
Axapta
|
Максим, спасибо. Действительно, судя по всему, данный хотфикс проблему решает.
|
|