"税詳細レコードが次のパラメーターの範囲内に見つかりませんでした:/地方税務署コード: [コード]、税 GroupCode: [コード グループ]、発効日: < = [日]"Microsoft Dynamics NAV 2009 年の北米版で売上請求書を印刷するときのエラー メッセージ


この資料は、以下の国と言語のロケールは、Microsoft Dynamics NAV に適用されます。
  • 英語 (カナダ) (en ca)
  • 英語 (米国) (en-ご)
  • スペイン語 (メキシコ) (es-mx)
  • フランス語 (カナダ) (fr-ca)

現象


Microsoft Dynamics の 2009 年の北アメリカのバージョンで指定された税の市外局番のある売上請求書を転記することを想定しています。税の市外局番には、新しい税の管轄権を追加します。このような場合は、転記済の販売請求書を印刷するとき、次のエラー メッセージが表示されます。
税詳細レコードが次のパラメーターの範囲内に見つかりませんでした:/地方税務署コード:コード、税 GroupCode:グループ コード、発効日: < =日付です。
この問題は、次の製品で発生します。
  • 北米バージョンの Microsoft Dynamics NAV 2009 の R2
  • 北米バージョンの Microsoft Dynamics NAV 2009 サービス パック 1 (SP1)

解決策


修正プログラムの情報

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

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


インストール情報

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

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

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

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


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

コードの変更

注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。
  1. 売上税計算 codeunit (398) 内のAddSalesInvoiceLines関数内のコードを次のように変更します。
    既存のコード
        PROCEDURE AddSalesInvoiceLines@1020003(DocNo@1020004 : Code[20]);    VAR
    SalesInvoiceHeader@1020000 : Record 112;
    SalesInvoiceLine@1020001 : Record 113;
    InsertRec@1020002 : Boolean;
    BEGIN
    SalesInvoiceHeader.GET(DocNo);
    SalesInvoiceHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(SalesInvoiceHeader."Tax Area Code") THEN
    EXIT;
    SetUpCurrency(SalesInvoiceHeader."Currency Code");
    ...
    置換用コード
        PROCEDURE AddSalesInvoiceLines@1020003(DocNo@1020004 : Code[20]);    VAR
    SalesInvoiceHeader@1020000 : Record 112;
    SalesInvoiceLine@1020001 : Record 113;
    InsertRec@1020002 : Boolean;
    BEGIN

    // Add the following line.
    Posted := TRUE;

    SalesInvoiceHeader.GET(DocNo);
    SalesInvoiceHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(SalesInvoiceHeader."Tax Area Code") THEN
    EXIT;
    SetUpCurrency(SalesInvoiceHeader."Currency Code");
    ...
  2. 売上税計算 codeunit (398) 内のAddSalesCrMemoLines関数内のコードを次のように変更します。
    既存のコード
        PROCEDURE AddSalesCrMemoLines@1020006(DocNo@1020000 : Code[20]);    VAR
    SalesCrMemoHeader@1020001 : Record 114;
    SalesCrMemoLine@1020002 : Record 115;
    InsertRec@1020003 : Boolean;
    BEGIN
    SalesCrMemoHeader.GET(DocNo);
    SalesCrMemoHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(SalesCrMemoHeader."Tax Area Code") THEN
    EXIT;
    ...
    置換用コード
        PROCEDURE AddSalesCrMemoLines@1020006(DocNo@1020000 : Code[20]);    VAR
    SalesCrMemoHeader@1020001 : Record 114;
    SalesCrMemoLine@1020002 : Record 115;
    InsertRec@1020003 : Boolean;
    BEGIN

    // Add the following line.
    Posted := TRUE;

    SalesCrMemoHeader.GET(DocNo);
    SalesCrMemoHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(SalesCrMemoHeader."Tax Area Code") THEN
    EXIT;
    ...
  3. 売上税計算 codeunit (398) 内のAddPurchInvoiceLines関数内のコードを次のように変更します。
    既存のコード
        PROCEDURE AddPurchInvoiceLines@1020008(DocNo@1020000 : Code[20]);    VAR
    PurchInvHeader@1020001 : Record 122;
    PurchInvLine@1020002 : Record 123;
    InsertRec@1020003 : Boolean;
    BEGIN
    PurchInvHeader.GET(DocNo);
    PurchInvHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(PurchInvHeader."Tax Area Code") THEN
    EXIT;
    ...
    置換用コード
        PROCEDURE AddPurchInvoiceLines@1020008(DocNo@1020000 : Code[20]);    VAR
    PurchInvHeader@1020001 : Record 122;
    PurchInvLine@1020002 : Record 123;
    InsertRec@1020003 : Boolean;
    BEGIN

    // Add the following line.
    Posted := TRUE;

    PurchInvHeader.GET(DocNo);
    PurchInvHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(PurchInvHeader."Tax Area Code") THEN
    EXIT;
    ...
  4. 売上税計算 codeunit (398) 内のAddPurchCrMemoLines関数内のコードを次のように変更します。
    既存のコード
        PROCEDURE AddPurchCrMemoLines@1020004(DocNo@1020000 : Code[20]);    VAR
    PurchCrMemoHeader@1020001 : Record 124;
    PurchCrMemoLine@1020002 : Record 125;
    InsertRec@1020003 : Boolean;
    BEGIN
    PurchCrMemoHeader.GET(DocNo);
    PurchCrMemoHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(PurchCrMemoHeader."Tax Area Code") THEN
    EXIT;
    ...
    置換用コード
        PROCEDURE AddPurchCrMemoLines@1020004(DocNo@1020000 : Code[20]);    VAR
    PurchCrMemoHeader@1020001 : Record 124;
    PurchCrMemoLine@1020002 : Record 125;
    InsertRec@1020003 : Boolean;
    BEGIN

    // Add the following line.
    Posted := TRUE;

    PurchCrMemoHeader.GET(DocNo);
    PurchCrMemoHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(PurchCrMemoHeader."Tax Area Code") THEN
    EXIT;
    ...
  5. 売上税計算 codeunit (398) 内のAddServInvoiceLines関数内のコードを次のように変更します。
    既存のコード
        PROCEDURE AddServInvoiceLines@1480008(DocNo@1020000 : Code[20]);    VAR
    ServInvHeader@1020001 : Record 5992;
    ServInvLine@1020002 : Record 5993;
    InsertRec@1020003 : Boolean;
    BEGIN
    ServInvHeader.GET(DocNo);
    ServInvHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(ServInvHeader."Tax Area Code") THEN
    EXIT;
    ...
    置換用コード
        PROCEDURE AddServInvoiceLines@1480008(DocNo@1020000 : Code[20]);    VAR
    ServInvHeader@1020001 : Record 5992;
    ServInvLine@1020002 : Record 5993;
    InsertRec@1020003 : Boolean;
    BEGIN

    // Add the following line.
    Posted := TRUE;

    ServInvHeader.GET(DocNo);
    ServInvHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(ServInvHeader."Tax Area Code") THEN
    EXIT;
    ...
  6. 売上税計算 codeunit (398) 内のAddServCrMemoLines関数内のコードを次のように変更します。
    既存のコード
        PROCEDURE AddServCrMemoLines@1480004(DocNo@1020000 : Code[20]);    VAR
    ServCrMemoHeader@1020001 : Record 5994;
    ServCrMemoLine@1020002 : Record 5995;
    InsertRec@1020003 : Boolean;
    BEGIN
    ServCrMemoHeader.GET(DocNo);
    ServCrMemoHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(ServCrMemoHeader."Tax Area Code") THEN
    EXIT;
    ...
    置換用コード
        PROCEDURE AddServCrMemoLines@1480004(DocNo@1020000 : Code[20]);    VAR
    ServCrMemoHeader@1020001 : Record 5994;
    ServCrMemoLine@1020002 : Record 5995;
    InsertRec@1020003 : Boolean;
    BEGIN

    // Add the following line.
    Posted := TRUE;

    ServCrMemoHeader.GET(DocNo);
    ServCrMemoHeader.TESTFIELD("Prices Including VAT",FALSE);
    IF NOT GetSalesTaxCountry(ServCrMemoHeader."Tax Area Code") THEN
    EXIT;
    ...
  7. 売上税計算 codeunit (398) 内のEndSalesTaxCalculation関数内のコードを次のように変更します。
    既存のコード
    ...            TaxDetail.SETRANGE("Tax Type",TaxDetail."Tax Type"::"Excise Tax");
    IF TaxDetail.FIND('+') THEN BEGIN
    TaxDetailFound := TRUE;
    "Tax Type" := "Tax Type"::"Excise Tax";
    INSERT;
    "Tax Type" := "Tax Type"::"Sales and Use Tax";
    END;

    // Delete the following line.
    IF NOT TaxDetailFound THEN

    ERROR(
    Text1020002,
    TaxDetail.TABLECAPTION,
    FIELDCAPTION("Tax Jurisdiction Code"),"Tax Jurisdiction Code",
    FIELDCAPTION("Tax Group Code"),"Tax Group Code",
    TaxDetail.FIELDCAPTION("Effective Date"),TaxDetail.GETFILTER("Effective Date"));
    UNTIL NEXT = 0;
    RESET;
    ...
    置換用コード
    ...            TaxDetail.SETRANGE("Tax Type",TaxDetail."Tax Type"::"Excise Tax");
    IF TaxDetail.FIND('+') THEN BEGIN
    TaxDetailFound := TRUE;
    "Tax Type" := "Tax Type"::"Excise Tax";
    INSERT;
    "Tax Type" := "Tax Type"::"Sales and Use Tax"; // NA0012
    END;

    // Add the following line.
    IF NOT TaxDetailFound AND NOT Posted THEN

    ERROR(
    Text1020002,
    TaxDetail.TABLECAPTION,
    FIELDCAPTION("Tax Jurisdiction Code"),"Tax Jurisdiction Code",
    FIELDCAPTION("Tax Group Code"),"Tax Group Code",
    TaxDetail.FIELDCAPTION("Effective Date"),TaxDetail.GETFILTER("Effective Date"));
    UNTIL NEXT = 0;
    RESET;
    ...

必要条件

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

アンインストール情報

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

状況


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