24.09.2007, 07:56 | #1 |
Участник
|
Используем Navision 3.60, есть ОС, полученное списанием товара (Товарная операция расхода через поле FA No. ссылается на данное ОС). В ОС Книга Операций имеется операция приобретения ОС, созданная при списании товара. Далее ОС вводится в эксплуатацию с помощью соответствующего Акта. В итоге в ОС Книга Оераций имеем две операции с одинаковыми суммами (приобретение и ввод). Далее запускается период. задание Коррекция Себестоимости Операций и корректирует товарную операцию списания товара - создается новая стоимостная операция на сумму коррекции. Далее отрабатывает период. задание Фин. Учет Себестоимости и приведенный ниже блок кода:
[codebox]PostInvtPostBuf [ ... IF (GlobalInvtPostBuf."FA No." <> '') AND (GlobalInvtPostBuf."FA Entry No." <> 0 ) AND (GlobalInvtPostBuf."Account Type" = GlobalInvtPostBuf."Account Type"::"Inventory Adjmt.") THEN BEGIN IF FADepreciationBook.GET(GlobalInvtPostBuf."FA No.",GlobalInvtPostBuf."Depreciation Book Code") THEN BEGIN FAPostingGroup.GET(FADepreciationBook."FA Posting Group"); GenJnlLine."Account No." := FAPostingGroup."Acquisition Cost Account"; END; FALedgerEntry.RESET; FALedgerEntry.SETRANGE("Entry No.", GlobalInvtPostBuf."FA Entry No."); IF FALedgerEntry.FIND('-') THEN BEGIN //[ACR]NasG.7 < IF GenJnlLine."Additional-Currency Posting"=GenJnlLine."Additional-Currency Posting"::None THEN FALedgerEntry.Amount := FALedgerEntry.Amount + GenJnlLine.Amount; //[ACR]NasG.7 > FALedgerEntry."Debit Amount" := FALedgerEntry.Amount; FALedgerEntry."Credit Amount" := 0; FALedgerEntry."Original Currency Code" := GenJnlLine."Currency Code"; FALedgerEntry."Original Amount" := FALedgerEntry.Amount; FALedgerEntry."Original Debit Amount" := FALedgerEntry.Amount; FALedgerEntry."Original Credit Amount" := 0; FALedgerEntry."Amount (LCY)" := FALedgerEntry.Amount; FALedgerEntry."Need Cost Posted to G/L" := FALSE; FALedgerEntry.MODIFY; FALedgerEntry2.RESET; FALedgerEntry2.SETRANGE("FA No.",GlobalInvtPostBuf."FA No."); FALedgerEntry2.SETRANGE("Need Cost Posted to G/L",TRUE); IF NOT FALedgerEntry2.FIND('-') THEN BEGIN FA.GET(FALedgerEntry."FA No."); FA.Blocked := FALSE; FA.MODIFY; END; END; END; ... ][/codebox] Данный код корректирует сумму первой операции в ОС Книга Операций (списание товара) на сумму созданной ранее корректирующей стоимостной операции, но данное ОС уже было введено в эксплуатацию и операция ввода остается с прежней суммой. В итоге имеем в ОС Книга Операций две связанные операции с разными суммами. Корректно ли это? Заранее спасибо. |
|