チェコ語バージョンの Microsoft Dynamics NAV 2009 R2 で修正プログラム 2550292を適用した後、[VAT を含む金額] フィールドが [売上請求書統計] フォーム (576) で正しく計算されない

適用先
Microsoft Dynamics NAV 2009 R2

この記事は、チェコ語 (cz) リージョンの Microsoft Dynamics NAV に適用されます。

現象

Microsoft Dynamics NAV 2009 R2 のチェコ語バージョンでは、次のシナリオを検討してください。

  • 修正プログラム 2550292を適用します。
      修正プログラム 2550292の詳細については、Microsoft サポート技術情報の記事を表示するには、次の資料番号をクリックしてください。
    2550292 VAT の丸めは、チェコ語バージョンの Microsoft Dynamics NAV 2009 R2 の販売/購入ドキュメントの修正エントリに対して正しく機能しない
  • [総勘定元帳の設定] ダイアログ ボックスで、[ 請求書の丸め精度 (LCY)] フィールドを 1.00 に設定します。
  • [総勘定元帳の設定] ダイアログ ボックスで、[ 丸め VAT (LCY)] フィールドを 1.00 に設定します。
  • 売上請求書を作成します。

このシナリオでは、[ VAT を含む金額 ] フィールドが [売上請求書統計] フォーム (576) で正しく計算されません。

解決策

修正プログラムの情報

サポートされている修正プログラムが Microsoft から入手できるようになりました。 ただし、この記事で説明されている問題を修正することのみを目的としています。 この特定の問題が発生しているシステムにのみ適用します。 この修正プログラムは、追加のテストを受け取る場合があります。 したがって、この問題の影響を大きく受けない場合は、次の Microsoft Dynamics NAV 2009 Service Pack またはこの修正プログラムを含む次の Microsoft Dynamics NAV バージョンを待つことをおすすめします。

注 特別なケースでは、Microsoft Dynamics および関連製品のテクニカル サポート プロフェッショナルが特定の更新プログラムによって問題が解決されると判断した場合、通常はサポート呼び出しに対して発生する料金が取り消されることがあります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。

            
          

インストール情報

Microsoft は、明示または黙示の保証なしで、説明のみを目的としてプログラミング例を提供しています。 これには、商品性または特定の目的への適合性に関する暗黙の保証が含まれますが、これらに限定されません。 この記事では、デモンストレーションされているプログラミング言語と、プロシージャの作成とデバッグに使用されるツールについてよく理解していることを前提としています。 マイクロソフト サポート窓口では、特定のプロシージャの機能説明に関するご質問に対して支援いたしますが、本例を特定の目的を満たすために機能を追加したり、プロシージャを構築することは行いません。

注 この修正プログラムをインストールする前に、すべての Microsoft Navision クライアント ユーザーがシステムからログオフされていることを確認します。 これには、Microsoft Navision Application Services (NAS) クライアント ユーザーが含まれます。 この修正プログラムを実装するときにログオンする唯一のクライアント ユーザーである必要があります。

この修正プログラムを実装するには、開発者ライセンスが必要です。

[Windows ログイン] ウィンドウまたは [データベース ログイン] ウィンドウのユーザー アカウントに "SUPER" ロール ID を割り当てることをお勧めします。 ユーザー アカウントに "SUPER" ロール ID を割り当てることができない場合は、ユーザー アカウントに次のアクセス許可があることを確認する必要があります。

  • 変更するオブジェクトの [変更] アクセス許可。
  • システム オブジェクト ID 5210 オブジェクトとシステム オブジェクト ID 9015 オブジェクトの Execute アクセス許可。

                
メモ データ修復を実行する必要がない限り、データ ストアに対する権限は必要ありません。

コードの変更

メモ 運用環境のコンピューターに修正プログラムを適用する前に、制御された環境でコード修正を常にテストします。
この問題を解決するには、次の手順を実行します。

  1. Sales Line テーブル (37) の CalcVATAmountLines 関数のコードを次のように変更します。
    既存のコード 1

    ...
    "VAT Amount (LCY)" := "Calculated VAT Amount" + "VAT Difference (LCY)";
    "Calculated VAT Amount (LCY)" := "Calculated VAT Amount";
    IF VATAmountLine."VAT %" <> 0 THEN BEGIN
    
    // Delete the following line. 
    "Amount Including VAT (LCY)" := "Amount Including VAT";
    
    IF "VAT Amount (LCY)" <> 0 THEN
    VALIDATE("VAT Amount","VAT Amount (LCY)");
    
    IF SalesHeader."Prices Including VAT" THEN
    IF ("VAT Calculation Type" = "VAT Calculation Type"::"Normal VAT") OR
    ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT")
    THEN
    IF GLSetup."Round VAT Coeff." THEN BEGIN
    ...
    

    置換コード 1

    ...
    "VAT Amount (LCY)" := "Calculated VAT Amount" + "VAT Difference (LCY)";
    "Calculated VAT Amount (LCY)" := "Calculated VAT Amount";
    IF VATAmountLine."VAT %" <> 0 THEN BEGIN 
    IF "VAT Amount (LCY)" <> 0 THEN
    VALIDATE("VAT Amount","VAT Amount (LCY)");
    
    IF SalesHeader."Prices Including VAT" THEN
    
    // Add the following lines.
    "VAT Base" := "Amount Including VAT" - "VAT Amount"
    ELSE
    "Amount Including VAT" := "VAT Base" + "VAT Amount";
    "Amount Including VAT (LCY)" := "Amount Including VAT";
    IF SalesHeader."Prices Including VAT" THEN
    //End of the lines. 
    
    IF ("VAT Calculation Type" = "VAT Calculation Type"::"Normal VAT") OR
    ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT")
    THEN
    IF GLSetup."Round VAT Coeff." THEN BEGIN
    ...
    

    既存のコード 2

    ...
    "VAT Difference (LCY)" :=
    "VAT Amount (LCY)" - "Amount Including VAT (LCY)" *
    ROUND("VAT %" / (100 + "VAT %"),GLSetup."VAT Coeff. Rounding Precision");
    END;
    
    // Delete the following line.
    "Amount Including VAT" := "Amount Including VAT (LCY)";
    
    END;
    END ELSE BEGIN
    "VAT Difference (LCY)" := 0;
    ...
    

    置換コード 2

    ...
    "VAT Difference (LCY)" :=
    "VAT Amount (LCY)" - "Amount Including VAT (LCY)" *
    ROUND("VAT %" / (100 + "VAT %"),GLSetup."VAT Coeff. Rounding Precision");
    END;
    END;
    END ELSE BEGIN
    "VAT Difference (LCY)" := 0;
    ...
    
  2. 購入明細行テーブル (39) の CalcVATAmountLines 関数のコードを次のように変更します。
    既存のコード 1

    ...
    "Calculated VAT Amount (LCY)" := "Calculated VAT Amount";
    
    IF VATAmountLine."VAT %" <> 0 THEN BEGIN
    
    // Delete the following line. 
    "Amount Including VAT (LCY)" := "Amount Including VAT";
    
    IF "VAT Amount (LCY)" <> 0 THEN
    VALIDATE("VAT Amount","VAT Amount (LCY)");
    
    IF PurchHeader."Prices Including VAT" THEN
    IF ("VAT Calculation Type" = "VAT Calculation Type"::"Normal VAT") OR
    ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT")
    THEN
    IF GLSetup."Round VAT Coeff." THEN BEGIN
    ...
    

    置換コード 1

    ...
    "Calculated VAT Amount (LCY)" := "Calculated VAT Amount";
    
    IF VATAmountLine."VAT %" <> 0 THEN BEGIN
    "Amount Including VAT (LCY)" := "Amount Including VAT";
    
    IF "VAT Amount (LCY)" <> 0 THEN
    VALIDATE("VAT Amount","VAT Amount (LCY)");
    
    IF PurchHeader."Prices Including VAT" THEN
    
    // Add the following lines.
    "VAT Base" := "Amount Including VAT" - "VAT Amount"
    ELSE
    "Amount Including VAT" := "VAT Base" + "VAT Amount";
    "Amount Including VAT (LCY)" := "Amount Including VAT";
    IF PurchHeader."Prices Including VAT" THEN
    //End of the lines. 
    
    IF ("VAT Calculation Type" = "VAT Calculation Type"::"Normal VAT") OR
    ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT")
    THEN
    IF GLSetup."Round VAT Coeff." THEN BEGIN
    ...
    

    既存のコード 2

    ...
    "VAT Amount (LCY)" - "Amount Including VAT (LCY)" *
    ROUND("VAT %" / (100 + "VAT %"),GLSetup."VAT Coeff. Rounding Precision");
    END;
    
    // Delete the following line.
    "Amount Including VAT" := "Amount Including VAT (LCY)";
    
    END;
    "VAT Amount (Non Deductible)" := RoundVAT("VAT Amount (Non Deductible)");
    END ELSE BEGIN
    ...
    

    置換コード 2

    ...
    "VAT Amount (LCY)" - "Amount Including VAT (LCY)" *
    ROUND("VAT %" / (100 + "VAT %"),GLSetup."VAT Coeff. Rounding Precision");
    END;
    
    END;
    "VAT Amount (Non Deductible)" := RoundVAT("VAT Amount (Non Deductible)");
    END ELSE BEGIN
    ...
    

前提条件

この修正プログラムを適用するには、チェコ語バージョンの Microsoft Dynamics NAV 2009 R2 がインストールされている必要があります。

アンインストール情報

この修正プログラムを削除することはできません。

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。

注: この資料は、"迅速な公開" を目的としてマイクロソフト サポート組織により直接作成されたものです。 ここに含まれる情報は、新しい問題に対応するため、そのままの状態で提供されます。 情報を迅速に公開するため、この資料には誤植などが含まれる可能性があり、また、予告なく改訂される場合があります。 その他の注意事項については、使用条件を参照してください。