Используем Navision 3.60, есть ОС, полученное списанием товара (Товарная операция расхода через поле FA No. ссылается на данное ОС). В ОС Книга Операций имеется операция приобретения ОС, созданная при списании товара. Далее ОС вводится в эксплуатацию с помощью соответствующего Акта. В итоге в ОС Книга Оераций имеем две операции с одинаковыми суммами (приобретение и ввод). Далее запускается период. задание Коррекция Себестоимости Операций и корректирует товарную операцию списания товара - создается новая стоимостная операция на сумму коррекции. Далее отрабатывает период. задание Фин. Учет Себестоимости и приведенный ниже блок кода:
Код:
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
           FALedgerEntry.Amount := FALedgerEntry.Amount + GenJnlLine.Amount;
          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;
...
]Данный код корректирует сумму первой операции в ОС Книга Операций (списание товара) на сумму созданной ранее корректирующей стоимостной операции, но данное ОС уже было введено в эксплуатацию и операция ввода остается с прежней суммой. В итоге имеем в ОС Книга Операций две связанные операции с разными суммами. Корректно ли это?
Заранее спасибо.