この記事は、ハンガリー語 (hu) 言語ロケールの Microsoft Dynamics NAV に適用されます。
現象
ハンガリー語バージョンの Microsoft Dynamics NAV 2009 R2 で前払い修正プログラム TFS326659を適用することを想定しています。 外貨を使用して顧客の前払請求書を転記すると、顧客カードの前払 (LCY) 値は 0.01 になります。
Advances (LCY) の値は 0 である必要があります。
前払い修正プログラム TFS326659の詳細については、次の情報を参照してください。
TFS326659 Microsoft Dynamics NAV 2009 R2 の前払い更新プログラム - ハンガリー
解決策
修正プログラムの情報
サポートされている修正プログラムが Microsoft から入手できるようになりました。 ただし、この記事で説明されている問題を修正することのみを目的としています。 この特定の問題が発生しているシステムにのみ適用します。 この修正プログラムは、追加のテストを受け取る場合があります。 したがって、この問題の影響を大きく受けない場合は、次の Microsoft Dynamics NAV 2009 Service Pack またはこの修正プログラムを含む次の Microsoft Dynamics NAV バージョンを待つことをおすすめします。
注 特別なケースでは、Microsoft Dynamics および関連製品のテクニカル サポート プロフェッショナルが特定の更新プログラムによって問題が解決されると判断した場合、通常はサポート呼び出しに対して発生する料金が取り消されることがあります。 ただし、特定の更新プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。
インストール情報
Microsoft は、明示または黙示の保証なしで、説明のみを目的としてプログラミング例を提供しています。 これには、商品性または特定の目的への適合性に関する暗黙の保証が含まれますが、これらに限定されません。 この記事では、デモンストレーションされているプログラミング言語と、プロシージャの作成とデバッグに使用されるツールについてよく理解していることを前提としています。 Microsoft サポート エンジニアは、特定のプロシージャの機能の説明を支援できます。 ただし、これらの例を変更して、特定の要件を満たすために追加の機能を提供したりプロシージャを構築したりすることはできません。
注 この修正プログラムをインストールする前に、すべての Microsoft Dynamics NAV クライアント ユーザーがシステムからログオフされていることを確認します。 これには、Microsoft Dynamics NAV Application Server (NAS) サービスが含まれます。 この修正プログラムを実装するときにログオンする唯一のクライアント ユーザーである必要があります。
この修正プログラムを実装するには、開発者ライセンスが必要です。
[Windows ログイン] ウィンドウまたは [データベース ログイン] ウィンドウのユーザー アカウントに "SUPER" ロール ID を割り当てることをお勧めします。 ユーザー アカウントに "SUPER" ロール ID を割り当てることができない場合は、ユーザー アカウントに次のアクセス許可があることを確認する必要があります。
変更するオブジェクトの [変更] アクセス許可。
システム オブジェクト ID 5210 オブジェクトとシステム オブジェクト ID 9015 の実行アクセス許可
オブジェクト。
メモ データ修復を実行する必要がない限り、データ ストアに対する権限は必要ありません。
コードの変更
メモ 運用環境のコンピューターに修正プログラムを適用する前に、制御された環境でコード修正を常にテストします。
この問題を解決するには、次の手順を使用します。
Gen の PostCust 関数のコードを変更します。 Jnl.-Post Line Codeunit (12) を次に示します。
既存のコード 1... CustLedgEntry."Prepayment Type" := "Prepayment Type"; // Delete the following lines. IF CustLedgEntry.Prepayment AND (CustLedgEntry."Document Type" = CustLedgEntry."Document Type"::Payment) AND (CustLedgEntry."Prepayment Type" = CustLedgEntry."Prepayment Type"::Advance) // End of the deleted lines. THEN BEGIN ...置換コード 1
... CustLedgEntry."Prepayment Type" := "Prepayment Type"; // Add the following lines. IF IsAdvancePrepayment(CustLedgEntry.Prepayment,CustLedgEntry."Prepayment Type") AND (CustLedgEntry."Document Type" = CustLedgEntry."Document Type"::Payment) // End of the added lines. THEN BEGIN ...既存のコード 2
... DtldCVLedgEntryBuf.Advance := // Delete the following line. CustLedgEntry.Prepayment AND (CustLedgEntry."Prepayment Type" = CustLedgEntry."Prepayment Type"::Advance); // End of the deleted line. TransferCustLedgEntry(CVLedgEntryBuf,CustLedgEntry,TRUE); ...置換コード 2
... DtldCVLedgEntryBuf.Advance := // Add the following line. IsAdvancePrepayment(CustLedgEntry.Prepayment,CustLedgEntry."Prepayment Type"); // End of the added line. TransferCustLedgEntry(CVLedgEntryBuf,CustLedgEntry,TRUE); ...Gen の PostVend 関数のコードを変更します。 Jnl.-Post Line Codeunit (12) を次に示します。
既存のコード 1... VendLedgEntry."Prepayment Type" := "Prepayment Type"; // Delete the following lines. IF VendLedgEntry.Prepayment AND (VendLedgEntry."Document Type" = VendLedgEntry."Document Type"::Payment) AND (VendLedgEntry."Prepayment Type" = VendLedgEntry."Prepayment Type"::Advance) // End of the deleted lines. THEN BEGIN ...置換コード 1
... VendLedgEntry."Prepayment Type" := "Prepayment Type"; // Add the following lines. IF IsAdvancePrepayment(VendLedgEntry.Prepayment,VendLedgEntry."Prepayment Type") AND (VendLedgEntry."Document Type" = VendLedgEntry."Document Type"::Payment) // End of the added lines. THEN BEGIN ...既存のコード 2
... DtldCVLedgEntryBuf.Advance := // Delete the following line. VendLedgEntry.Prepayment AND (VendLedgEntry."Prepayment Type" = VendLedgEntry."Prepayment Type"::Advance); // End of the deleted line. TransferVendLedgEntry(CVLedgEntryBuf,VendLedgEntry,TRUE); ...置換コード 2
... DtldCVLedgEntryBuf.Advance := // Add the following line. IsAdvancePrepayment(VendLedgEntry.Prepayment,VendLedgEntry."Prepayment Type"); // End of the added line. TransferVendLedgEntry(CVLedgEntryBuf,VendLedgEntry,TRUE); ...Gen の CalcCurrencyRealizedGainLoss 関数のコードを変更します。 Jnl.-Post Line Codeunit (12) を次に示します。
既存のコード... DtldCVLedgEntryBuf.Advance := // Delete the following line. CVLedgEntryBuf.Prepayment AND (CVLedgEntryBuf."Prepayment Type" = CVLedgEntryBuf."Prepayment Type"::Advance); // End of the deleted line. IF RealizedGainLossLCY < 0 THEN BEGIN ...置換コード
... DtldCVLedgEntryBuf.Advance := // Add the following line. IsAdvancePrepayment(CVLedgEntryBuf.Prepayment,CVLedgEntryBuf."Prepayment Type"); // End of the added line. IF RealizedGainLossLCY < 0 THEN BEGIN ...Gen の CalcApplication 関数のコードを変更します。 Jnl.-Post Line Codeunit (12) を次に示します。
既存のコード 1... DtldCVLedgEntryBuf.Advance := // Delete the following line. OldCVLedgEntryBuf.Prepayment AND (OldCVLedgEntryBuf."Prepayment Type" = OldCVLedgEntryBuf."Prepayment Type"::Advance); // End of the deleted line. InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,OldCVLedgEntryBuf,FALSE); ...置換コード 1
... DtldCVLedgEntryBuf.Advance := // Add the following line. IsAdvancePrepayment(OldCVLedgEntryBuf.Prepayment,OldCVLedgEntryBuf."Prepayment Type"); // End of the added line. InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,OldCVLedgEntryBuf,FALSE); ...既存のコード 2
... DtldCVLedgEntryBuf.Advance := // Delete the following line. NewCVLedgEntryBuf.Prepayment AND (NewCVLedgEntryBuf."Prepayment Type" = NewCVLedgEntryBuf."Prepayment Type"::Advance); // End of the deleted line. InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,NewCVLedgEntryBuf,FALSE); ...置換コード 2
... DtldCVLedgEntryBuf.Advance := // Add the following line. IsAdvancePrepayment(NewCVLedgEntryBuf.Prepayment,NewCVLedgEntryBuf."Prepayment Type"); // End of the added line. InsertDtldCVLedgEntry(DtldCVLedgEntryBuf,NewCVLedgEntryBuf,FALSE); ...Gen の CalcAmtLCYAdjustment 関数のコードを変更します。 Jnl.-Post Line Codeunit (12) を次に示します。
既存のコード... DtldCVLedgEntryBuf."Entry Type"::"Correction of Remaining Amount"; DtldCVLedgEntryBuf."Amount (LCY)" := AdjustedAmountLCY - CVLedgEntryBuf."Remaining Amt. (LCY)"; ...置換コード
... DtldCVLedgEntryBuf."Entry Type"::"Correction of Remaining Amount"; // Add the following lines. DtldCVLedgEntryBuf.Advance := IsAdvancePrepayment(CVLedgEntryBuf.Prepayment,CVLedgEntryBuf."Prepayment Type"); // End of the added lines. DtldCVLedgEntryBuf."Amount (LCY)" := AdjustedAmountLCY - CVLedgEntryBuf."Remaining Amt. (LCY)"; ...Gen の PostDtldCustLedgEntries 関数のコードを変更します。 Jnl.-Post Line Codeunit (12) を次に示します。
既存のコード 1... GenJnlLine."Posting Group", // Delete the following lines. GenJnlLine.Prepayment AND (GenJnlLine."Prepayment Type" = GenJnlLine."Prepayment Type"::Advance)); // End of the deleted lines. IF CustLedgEntryInserted OR (TotalAmountLCY <> 0) OR ...置換コード 1
... GenJnlLine."Posting Group", // Add the following line. IsAdvancePrepayment(GenJnlLine.Prepayment,GenJnlLine."Prepayment Type")); // End of the added line. IF CustLedgEntryInserted OR (TotalAmountLCY <> 0) OR ...既存のコード 2
...GenJnlLine."Posting Group", // Delete the following lines. GenJnlLine.Prepayment AND (GenJnlLine."Prepayment Type" = GenJnlLine."Prepayment Type"::Advance)); // End of the deleted lines.IF CustLedgEntryInserted OR (TotalAmountLCY <> 0) OR ...置換コード 2
...GenJnlLine."Posting Group", // Add the following line. IsAdvancePrepayment(GenJnlLine.Prepayment,GenJnlLine."Prepayment Type")); // End of the added line.IF CustLedgEntryInserted OR (TotalAmountLCY <> 0) OR ...Gen の GetReceivablesAccNo 関数のコードを変更します。 Jnl.-Post Line Codeunit (12) を次に示します。
既存のコード... CustLedgEntry."Customer Posting Group", // Delete the following lines. CustLedgEntry.Prepayment AND (CustLedgEntry."Prepayment Type" = CustLedgEntry."Prepayment Type"::Advance))); // End of the deleted lines. END; ...置換コード
... CustLedgEntry."Customer Posting Group", // Add the following line. IsAdvancePrepayment(CustLedgEntry.Prepayment,CustLedgEntry."Prepayment Type"))); // End of the added line. END; ...Gen の GetPayablesAccNo 関数のコードを変更します。 Jnl.-Post Line Codeunit (12) を次に示します。
既存のコード... VendLedgEntry."Vendor Posting Group", // Delete the following lines. VendLedgEntry.Prepayment AND (VendLedgEntry."Prepayment Type" = VendLedgEntry."Prepayment Type"::Advance))); // End of the deleted lines. END;置換コード
... VendLedgEntry."Vendor Posting Group", // Add the following line. IsAdvancePrepayment(VendLedgEntry.Prepayment,VendLedgEntry."Prepayment Type"))); // End of the added line. END; ...
前提条件
この修正プログラムを適用するには、ハンガリー語バージョンの Microsoft Dynamics NAV 2009 R2 がインストールされている必要があります。
アンインストール情報
この修正プログラムを削除することはできません。
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
注: この資料は、"迅速な公開" を目的としてマイクロソフト サポート組織により直接作成されたものです。 ここに含まれる情報は、新しい問題に対応するため、そのままの状態で提供されます。 情報を迅速に公開するため、この資料には誤植などが含まれる可能性があり、また、予告なく改訂される場合があります。 その他の注意事項については、使用条件を参照してください。