"Imposibil de găsit o înregistrare TVA detaliu în următorii parametri: / cod de competență impozitare: [cod], taxe GroupCode: [cod de grup], data intrării în vigoare: < = [data]" mesaj de eroare atunci când imprimați o factură de vânzare în versiunea Microsoft Dynamics NAV 2009 NA


Acest articol se aplică la Microsoft Dynamics NAV pentru următoarele țări și limbi regionale.
  • Engleză (Canada) (en-ca)
  • Engleză (Statele Unite) (en-us)
  • Spaniolă (Mexic) (es-mx)
  • Franceză (Canada) (fr-ca)

Simptome


Să presupunem că publicați o factură vânzări, care are prefixul taxe specificat în America de Nord versiunea de Microsoft Dynamics 2009. Adăugați un nou impozit jurisdicția la zona Codul fiscal. În această situație, atunci când imprimați postat factură vânzări, primiţi următorul mesaj de eroare:
Imposibil de găsit o înregistrare TVA detaliu în următorii parametri: / cod de competență impozitare:codfiscal GroupCode:codul de grup, data intrării în vigoare: < =data.
Această problemă se produce în următoarele produse:
  • Versiunea de Microsoft Dynamics NAV 2009 R2 din America de Nord
  • Din America de Nord versiunea de Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Rezolvare


Informații despre remedierea rapidă

Un hotfix acceptat este acum disponibil de la Microsoft. Cu toate acestea, acesta este destinat numai corectării problemei descrise în acest articol. Aplicați-o numai pe sistemele care întâmpină această problemă anume. Această remediere rapidă poate să necesite testare suplimentară. De aceea, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următorul pachet service pack Microsoft Dynamics NAV sau versiunea Microsoft Dynamics NAV următoare, care conține această remediere rapidă.

Notă În cazuri speciale, costurile implicate de obicei pentru asistență apeluri pot fi anulate dacă un specialist în asistență tehnică pentru Microsoft Dynamics și produse asociate stabilește că o anumită actualizare va rezolva problema. Se vor aplica costurile uzuale de asistenţă pentru întrebări suplimentare de asistență și pentru probleme ce nu fac obiectul actualizării în cauză.


Informaţii despre instalare

Microsoft furnizează exemple de programare scop ilustrativ, fără nicio garanţie explicită sau implicită. Aceasta include, dar nu se limitează la, garanţiile implicite de vandabilitate sau de potrivire pentru un anumit scop. Acest articol presupune că sunteţi familiarizat cu limbajul de programare care este prezentat şi cu instrumentele utilizate pentru a crea şi a depana proceduri. Specialiștii în asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri, dar nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară sau pentru a construi proceduri pentru a răspunde cerințelor dvs. specifice.

Notă Înainte de a instala această remediere rapidă, Verificați că toate Microsoft Navision client utilizatorii au făcut Log off sistemul. Aceasta include utilizatorii de client Microsoft Navision Application Services (NAS). Ar trebui să fie singurul client utilizatorului care este conectat când implementați această remediere rapidă.

Pentru a implementa această remediere rapidă, trebuie să aveți o licență de dezvoltare.

Vă recomandăm că contul de utilizator în fereastra Conectări Windows sau în fereastra Conectări bază de date se atribuie "SUPER" rolul ID-ul. În cazul în care contul de utilizator nu poate fi atribuit ID-ul "SUPER" rolul, trebuie să verificați că contul de utilizator are următoarele permisiuni:
  • Modify permisiunea pentru obiectul care se va schimba.
  • Permisiunea de executare pentru obiectul de sistem obiect ID 5210 și pentru obiectul de sistem obiect ID 9015 .


Notă Nu trebuie să aveți drepturi de la magazine de date decât dacă trebuie să efectuați o reparare de date.

Modificări de cod

Notă Întotdeauna test cod remediază într-un mediu controlat înainte de a aplica remedieri pentru computerele de producție.
Pentru a rezolva această problemă, urmați acești pași:
  1. Modificați codul din funcția AddSalesInvoiceLines în codeunit taxă vânzări calcula (398) după cum urmează:
    Cod existent
        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");
    ...
    Cod de înlocuire
        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. Modificați codul din funcția AddSalesCrMemoLines în codeunit taxă vânzări calcula (398) după cum urmează:
    Cod existent
        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;
    ...
    Cod de înlocuire
        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. Modificați codul din funcția AddPurchInvoiceLines în codeunit taxă vânzări calcula (398) după cum urmează:
    Cod existent
        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;
    ...
    Cod de înlocuire
        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. Modificați codul din funcția AddPurchCrMemoLines în codeunit taxă vânzări calcula (398) după cum urmează:
    Cod existent
        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;
    ...
    Cod de înlocuire
        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. Modificați codul din funcția AddServInvoiceLines în codeunit taxă vânzări calcula (398) după cum urmează:
    Cod existent
        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;
    ...
    Cod de înlocuire
        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. Modificați codul din funcția AddServCrMemoLines în codeunit taxă vânzări calcula (398) după cum urmează:
    Cod existent
        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;
    ...
    Cod de înlocuire
        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. Modificați codul din funcția EndSalesTaxCalculation în codeunit taxă vânzări calcula (398) după cum urmează:
    Cod existent
    ...            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;
    ...
    Cod de înlocuire
    ...            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;
    ...

Cerințe preliminare

Trebuie să aveți unul dintre următoarele produse instalate pentru a aplica această remediere rapidă:
  • Versiunea de Microsoft Dynamics NAV 2009 R2 din America de Nord
  • Din America de Nord versiunea de Microsoft Dynamics NAV 2009 Service Pack 1

Eliminare informaţii

Nu se poate elimina această remediere rapidă.

Stare


Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".
Notă Acesta este un articol "rapid publicat" creat direct în cadrul organizației de asistență Microsoft. Informațiile conținute în acest document sunt furnizate ca răspuns la problemele care apar. Ca rezultat al vitezei în a-l face disponibil, materialele pot include erori tipografice și pot fi revizuite în orice moment, fără notificare. Consultați Termenii de utilizare pentru alte considerații.