Показать сообщение отдельно
Старый 24.09.2007, 08:00   #1  
DeSp is offline
DeSp
Участник
 
41 / 10 (1) +
Регистрация: 27.09.2005
Фин. учет себестоимости корректирует операции ОС
Используем 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;
...
]
Данный код корректирует сумму первой операции в ОС Книга Операций (списание товара) на сумму созданной ранее корректирующей стоимостной операции, но данное ОС уже было введено в эксплуатацию и операция ввода остается с прежней суммой. В итоге имеем в ОС Книга Операций две связанные операции с разными суммами. Корректно ли это?

Заранее спасибо.

Последний раз редактировалось DeSp; 25.09.2007 в 07:31.