Messaggio di errore "Impossibile trovare un record Dettagli fiscali all'interno dei seguenti parametri:/Tax Jurisdiction Code:[code], Tax GroupCode:[group code], Effective Date:<=[date]" quando si stampa una fattura di vendita nella versione N/D di Microsoft Dynamics NAV 2009

Si applica a
Microsoft Dynamics NAV 2009 R2 Dynamics NAV 2009 Service Pack 1

Questo articolo si applica a Microsoft Dynamics NAV per i paesi e le impostazioni locali della lingua seguenti.

  • Inglese (Canada) (en-ca)
  • Inglese (Stati Uniti) (en-us)
  • Spagnolo (Messico) (es-mx)
  • Francese (Canada) (fr-ca)

Sintomi

Si supponga di registrare una fattura di vendita con un prefisso fiscale specificato nella versione nordamericana di Microsoft Dynamics 2009. Aggiungere una nuova giurisdizione fiscale al codice area fiscale. In questo caso, quando si stampa la fattura di vendita registrata, viene visualizzato il messaggio di errore seguente:

Nota

Non è stato possibile trovare un record Tax Detail all'interno dei seguenti parametri:/Tax Jurisdiction Code:code, Tax GroupCode:group code, Effective Date: <=date.

Questo problema si verifica nei prodotti seguenti:

  • Versione nordamericana di Microsoft Dynamics NAV 2009 R2
  • Versione nordamericana di Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Risoluzione

Informazioni sull'aggiornamento rapido

È ora disponibile un hotfix supportato da Microsoft. Tuttavia, è destinato solo a correggere il problema descritto in questo articolo. Applicala solo ai sistemi che stanno riscontrando questo problema specifico. Questo hotfix potrebbe ricevere ulteriori test. Pertanto, se non si è gravemente colpiti da questo problema, è consigliabile attendere il prossimo Service Pack di Microsoft Dynamics NAV o la prossima versione di Microsoft Dynamics NAV che contiene questo hotfix.

Nota In casi speciali, gli addebiti normalmente sostenuti per le chiamate al supporto tecnico possono essere annullati se un professionista del supporto tecnico per Microsoft Dynamics e i prodotti correlati determinano che un aggiornamento specifico risolverà il problema. I soliti costi del supporto verranno applicati a domande e problemi di supporto aggiuntivi che non sono idonei per l'aggiornamento specifico in questione.

            
          

Informazioni sull'installazione

Microsoft fornisce esempi di programmazione a titolo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, a titolo esemplificativo e non esaustivo, le garanzie implicite di commerciabilità o idoneità a uno scopo particolare. Questo articolo presuppone che si abbia familiarità con il linguaggio di programmazione oggetto della dimostrazione e con gli strumenti utilizzati per la creazione e il debug delle procedure. I tecnici del supporto Tecnico Microsoft possono spiegare le funzionalità di una particolare procedura, ma non modificarli per fornire funzionalità aggiuntive o creare procedure in base a specifici requisiti.

Nota Prima di installare questo hotfix, verificare che tutti gli utenti client di Microsoft Navision siano disconnessi dal sistema. Sono inclusi gli utenti client di Microsoft Navision Application Services (NAS). Dovresti essere l'unico utente client connesso quando implementi questo hotfix.

Per implementare questo hotfix, è necessario disporre di una licenza per sviluppatori.

È consigliabile assegnare l'ID ruolo "SUPER" all'account utente nella finestra Accessi di Windows o nella finestra Accessi database. Se all'account utente non è possibile assegnare l'ID ruolo "SUPER", è necessario verificare che l'account utente disponga delle autorizzazioni seguenti:

  • Autorizzazione modifica per l'oggetto che si desidera modificare.
  • Autorizzazione Execute per l'oggetto System Object ID 5210 e per l'oggetto System Object ID 9015.

                
Nota: non è necessario disporre dei diritti per gli archivi dati a meno che non sia necessario eseguire il ripristino dei dati.

Modifiche al codice

Nota Verifica sempre le correzioni del codice in un ambiente controllato prima di applicare le correzioni ai computer di produzione.
Per risolvere il problema, attenersi alla procedura seguente:

  1. Modificare il codice nella funzione AddSalesInvoiceLines nella codeunit calcolo IVA (398) come segue:
    Codice esistente

        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");
    ...
    

    Codice sostitutivo

        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. Modificare il codice nella funzione AddSalesCrMemoLines nella codeunit calcolo IVA (398) come segue:
    Codice esistente

        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;
    ...
    

    Codice sostitutivo

        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. Modificare il codice nella funzione AddPurchInvoiceLines nella codeunit calcolo IVA (398) come segue:
    Codice esistente

        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;
    ...
    

    Codice sostitutivo

        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. Modificare il codice nella funzione AddPurchCrMemoLines nella codeunit calcolo IVA (398) come segue:
    Codice esistente

        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;
    ...
    

    Codice sostitutivo

        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. Modificare il codice nella funzione AddServInvoiceLines nella codeunit calcolo IVA (398) come segue:
    Codice esistente

        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;
    ...
    

    Codice sostitutivo

        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. Modificare il codice nella funzione AddServCrMemoLines nella codeunit calcolo IVA (398) come segue:
    Codice esistente

        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;
    ...
    

    Codice sostitutivo

        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. Modificare il codice nella funzione EndSalesTaxCalculation nella codeunit calcolo IVA (398) come segue:
    Codice esistente

    ...
                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;
    ...
    

    Codice sostitutivo

    ...
                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;
    ...
    

Prerequisiti

Per applicare questo hotfix, è necessario che sia installato uno dei prodotti seguenti:

  • Versione nordamericana di Microsoft Dynamics NAV 2009 R2
  • Versione nordamericana di Microsoft Dynamics NAV 2009 Service Pack 1

Informazioni sulla rimozione

Non è possibile rimuovere questo hotfix.

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Nota Questo è un articolo "FAST PUBLISH" creato direttamente dall'organizzazione di supporto Microsoft. Le informazioni contenute nel presente documento vengono fornite così come sono in risposta ai problemi emergenti. A causa della velocità di reso disponibile, i materiali possono includere errori tipografici e possono essere modificati in qualsiasi momento senza preavviso. Per altre considerazioni, vedere Condizioni per l'utilizzo .