Microsoft Dynamics NAV 2009 年のインドのバージョンで指定されている GTA 仕入先の転記済の購買の請求書のエントリを反映しない関数を実行するとエラー メッセージ「ドキュメントはできませんが適用されていない税クレジットのサービスを既に利用されていると」

適用対象: Dynamics NAV 2009

この資料は、(言語のロケールで)、インドは、Microsoft Dynamics NAV に適用されます。

現象


GTA ベンダーが Microsoft Dynamics NAV 2009 サービス パック 1 (SP1) および Microsoft Dynamics NAV 2009 の R2 のインドのバージョンで指定されたサービス税が含まれる転記された発注請求書のエントリを反映しない関数を実行すると、次のエラー メッセージが表示されます。
ドキュメントは、サービス税クレジットは、既に利用されていると適用されていないことはできません。

解決策


修正プログラムの情報

サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV 2009 サービス パックまたは修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。

注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。


インストール情報

マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、機能の追加またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。

注: この修正プログラムをインストールする前に、Microsoft Navision のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Navision アプリケーション サービス (NAS) クライアントのユーザーが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。

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

ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。
  • 変更するオブジェクトの変更のアクセス許可。
  • システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015オブジェクトの実行が許可されます。


注: データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。

コードの変更

注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。
  1. 次のグローバル変数を追加で、Gen. Jnl。-投稿の行の codeunit (12)。
    • TempServiceTaxEntry3@1500076: 一時レコード 16473
  2. UnApplyVendSTEntries関数で、Gen. Jnl。 で、次のローカル変数を追加する-投稿の行の codeunit (12)。
    • STEntryDetail2@1500000: レコード 16474
  3. UnApplyVendSTEntries関数で、Gen. Jnl。 内のコードを変更する-次のように Post 行 codeunit (12)。
    既存のコード 1
    ...        STaxApplBuffer[1].DELETEALL;
    WITH DtldVendLedgEntry2 DO BEGIN
    ...

    置換用コード 1
    ...        STaxApplBuffer[1].DELETEALL;

    // Add the following line.
    TempServiceTaxEntry3.DELETEALL;
    // End of the line.

    WITH DtldVendLedgEntry2 DO BEGIN
    ...

    既存のコード 2
    ...              ServiceTaxMgt.UnApplyVendPmtEntries(STEntryDetail,NextTransactionNo);

    // Delete the following line.
    Sign := -1;
    FillSvcTaxApplication4(STEntryDetail,Sign);
    Sign := 1;
    FillSvcTaxApplication4(STEntryDetail,Sign);
    ServiceTaxEntry.GET(STEntryDetail."Service Tax Entry No.");
    IF ServiceTaxEntry."Serv. Tax on Advance Payment" THEN BEGIN
    // End of the line.
    ...

    置換用コード 2
    ...              ServiceTaxMgt.UnApplyVendPmtEntries(STEntryDetail,NextTransactionNo);

    // Add the following lines.
    ServiceTaxEntry.GET(STEntryDetail."Service Tax Entry No.");
    ServiceTaxSetup.RESET;
    ServiceTaxSetup.SETRANGE(Code,STEntryDetail."Service Tax Group Code");
    ServiceTaxSetup.SETRANGE("From Date",0D,STEntryDetail."Posting Date");
    TempServiceTaxEntry3.TRANSFERFIELDS(ServiceTaxEntry);
    IF NOT STEntryDetail.GTA THEN BEGIN
    TempServiceTaxEntry3.INSERT;
    Sign := -1;
    END ELSE BEGIN
    TempServiceTaxEntry3."G/L Account" := STEntryDetail."GL Account";
    TempServiceTaxEntry3.INSERT;
    Sign := 1;
    END;

    FillSvcTaxApplication4(STEntryDetail,Sign);

    STEntryDetail2 := STEntryDetail;
    IF NOT STEntryDetail.GTA THEN
    Sign := 1
    ELSE BEGIN
    IF ServiceTaxSetup.FINDLAST THEN
    STEntryDetail2."GL Account" := ServiceTaxSetup."Payables Account (Interim)";
    Sign := -1;
    END;

    FillSvcTaxApplication4(STEntryDetail2,Sign);
    IF ServiceTaxEntry."Serv. Tax on Advance Payment" THEN BEGIN
    // End of the lines.
    ...

    既存のコード 3
    ...                  ServiceTaxEntry."From Excise" := STEntryDetail."From Excise";

    // Delete the following lines.
    ServiceTaxSetup.RESET;
    ServiceTaxSetup.SETRANGE(Code,STEntryDetail."Service Tax Group Code");
    ServiceTaxSetup.SETRANGE("From Date",0D,STEntryDetail."Posting Date");
    // End of the lines.

    IF ServiceTaxSetup.FINDLAST THEN BEGIN
    ...

    置換用コード 3
    ...                  ServiceTaxEntry."From Excise" := STEntryDetail."From Excise";
    IF ServiceTaxSetup.FINDLAST THEN BEGIN
    ...

  4. FillSvcTaxApplication4関数で、Gen. Jnl。 で次のローカル変数を削除-投稿の行の codeunit (12)。
    • VAR ServiceTaxEntry@1002: レコード 16473
  5. FillSvcTaxApplication4関数で、Gen. Jnl。 内のコードを変更する-次のように Post 行 codeunit (12)。
    既存のコード
    ...          IF Sign < 0 THEN

    // Delete the following lines.
    STaxApplBuffer[1]."G/L Account" := "GL Account"
    ELSE BEGIN
    ServiceTaxEntry.GET("Service Tax Entry No.");
    STaxApplBuffer[1]."G/L Account" := ServiceTaxEntry."G/L Account";
    END;
    // End of the lines.

    STaxApplBuffer[1]."Amount to Apply (LCY)" := Sign * ("Service Tax Amount" + "Service Tax eCess Amount" +
    ...

    置換用コード
    ...IF Sign < 0 THEN

    // Add the following lines.
    STaxApplBuffer[1]."G/L Account" := "GL Account"
    ELSE
    STaxApplBuffer[1]."G/L Account" := TempServiceTaxEntry3."G/L Account";
    // End of the lines.

    STaxApplBuffer[1]."Amount to Apply (LCY)" := Sign * ("Service Tax Amount" + "Service Tax eCess Amount" +
    ...

  6. サービス税の管理 codeunit (16471) 内のUnApplyVendPmtEntries関数内のコードを次のように変更します。
    既存のコード 1
    ...        WITH STEntryDetail DO BEGIN

    // Delete the following lines.
    IF ("Service Tax Amount" <> "Remaining Credit") OR ("Service Tax eCess Amount" <> "Remaining Credit (eCess)") OR
    ("Service Tax SHE Cess Amount" <> "Remaining Credit (SHECess)")
    THEN
    ERROR(Text16535,"Document No.");
    // End of the lines.

    STEntryDetail2.RESET;
    ...

    置換用コード 1
    ...        WITH STEntryDetail DO BEGIN

    // Add the following lines.
    IF GTA THEN BEGIN
    IF ("Service Tax Amount" <> "GTA Remaining Credit") OR ("Service Tax eCess Amount" <> "GTA Remaining Credit (eCess)") OR
    ("Service Tax SHE Cess Amount" <> "GTA Remaining Credit (SHECess)")
    THEN
    ERROR(Text16535,"Document No.");
    END ELSE BEGIN
    IF ("Service Tax Amount" <> "Remaining Credit") OR ("Service Tax eCess Amount" <> "Remaining Credit (eCess)") OR
    ("Service Tax SHE Cess Amount" <> "Remaining Credit (SHECess)")
    THEN
    ERROR(Text16535,"Document No.");
    END;
    // End of the lines.

    STEntryDetail2.RESET;
    ...

    既存のコード 2
    ...          STEntryDetail2."Remaining S.T. Base Amount" := - STEntryDetail2."Remaining S.T. Base Amount";
    STEntryDetail2.INSERT;
    ...

    置換用コード 2
    ...          STEntryDetail2."Remaining S.T. Base Amount" := - STEntryDetail2."Remaining S.T. Base Amount";

    // Add the following lines.
    STEntryDetail2."GTA Remaining Credit" := - STEntryDetail2."GTA Remaining Credit";
    STEntryDetail2."GTA Remaining Credit (eCess)" := - STEntryDetail2."GTA Remaining Credit (eCess)";
    STEntryDetail2."GTA Remaining Credit (SHECess)" := - STEntryDetail2."GTA Remaining Credit (SHECess)";
    // End of the lines.

    STEntryDetail2.INSERT;
    ...

必要条件

この修正プログラムを適用するのにはインストールされている製品は次のいずれかが必要です。
  • インドのバージョンの Microsoft Dynamics NAV 2009 の R2
  • インドのバージョンの Microsoft Dynamics NAV 2009 サービス パック 1

アンインストール情報

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

状況


マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。