Intrarea TVA este creată incorect când postați o comandă de vânzări utilizând "Nr." ca valoare "Facturare/Vânzare către TVA" din caseta de dialog Configurare registru general din Microsoft Dynamics NAV 2009

Se aplică la
Dynamics NAV 2009

Acest articol se aplică la Microsoft Dynamics NAV pentru toate țările și setările regionale de limbă.

Simptome

Să presupunem că faceți clic pe Nu. Vânzare-către/Cumpărare de la în lista Calculare TVA facturare/vânzare către din caseta de dialog Configurare registru general din Microsoft Dynamics 2009. Atunci când postați o comandă de vânzări în care clientul Vânzări către este din Uniunea Europeană (UE), iar clientul Facturat este un client NAȚIONAL, informațiile despre intrarea TVA care sunt relevante pentru raportarea TVA, în special raportarea TVA, nu sunt completate în mod consecvent. Informațiile despre câmpul Cod țară TVA și informațiile despre câmpul Nr. înregistrare TVA provin întotdeauna de la clientul facturat.
Această problemă apare în cazul următoarelor produse:

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

      

Rezolvare

Informații despre remedierea rapidă

O remediere rapidă acceptată este acum disponibilă de la Microsoft. Însă, scopul său este doar să corecteze problema descrisă în acest articol. Aplicați-o doar sistemelor care se confruntă cu această problemă specifică. Această remediere rapidă poate fi testată suplimentar. De aceea, dacă această problemă nu vă afectează grav, vă recomandăm să așteptați următorul pachet Service Pack Microsoft Dynamics NAV 2009 sau versiunea următoare Microsoft Dynamics NAV care conține această remediere rapidă.

Notă În cazuri speciale, costurile implicate de obicei pentru apelurile de asistență pot fi revocate dacă un specialist în asistență tehnică pentru Microsoft Dynamics și produsele asociate stabilește că o anumită actualizare va rezolva problema. Costurile uzuale de suport se vor aplica pentru întrebări suplimentare de suport și pentru probleme ce nu fac obiectul actualizării în chestiune.

            
          

Informații despre instalare

Microsoft oferă exemple de programare numai în scop ilustrativ, fără nicio garanție explicită sau implicită. Aceasta include, dar nu se limitează la, garanțiile implicite de vandabilitate sau adecvare pentru un anumit scop. Acest articol presupune că sunteți familiarizat cu limbajul de programare prezentat și cu instrumentele utilizate pentru a crea și a depana proceduri. Inginerii de asistență Microsoft vă pot ajuta să explicați funcționalitatea unei anumite proceduri. Totuși, nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară și nu vor construi proceduri pentru a răspunde cerințelor dvs. specifice.

Notă Înainte de a instala această remediere rapidă, verificați dacă toți utilizatorii clientului Microsoft Dynamics NAV sunt deconectați de la sistem. Printre acestea se numără serviciile Microsoft Dynamics NAV Application Server (NAS). Ar trebui să fiți singurul utilizator client conectat atunci când implementați această remediere rapidă.

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

Recomandăm ca contului de utilizator din fereastra Conectări Windows sau din fereastra Conectări bază de date să primească ID-ul de rol "SUPER". În cazul în care contului de utilizator nu i se poate atribui ID-ul de rol "SUPER", trebuie să verificați dacă acel cont de utilizator are următoarele permisiuni:

  • Permisiunea Modificare pentru obiectul pe care îl veți modifica.
  • Permisiunea de executare pentru obiectul cu ID obiect de sistem 5210 și pentru obiectul ID obiect de sistem 9015.

                
Notă: nu trebuie să aveți drepturi asupra depozitelor de date decât dacă trebuie să efectuați repararea datelor.

Modificări de cod

Notă: testați întotdeauna remedierile de cod într-un mediu controlat înainte de a aplica remedierile la computerele de producție.
Pentru a rezolva această problemă, urmați acești pași:

  1. Modificați codul din funcția InsertVAT din generație. Unitatea de cod Jnl.-Post Line (12), după cum urmează:
    Cod existent

    ...
    VATEntry."Sales Tax Connection No." := NextConnectionNo;
    VATEntry."User ID" := USERID;
    VATEntry."No. Series" := "Posting No. Series";
    VATEntry."VAT Base Discount %" := "VAT Base Discount %";
    VATEntry."Bill-to/Pay-to No." := "Bill-to/Pay-to No.";
    
    // Delete the following lines. 
    IF "Bill-to/Pay-to No." <> '' THEN
    CASE VATEntry.Type OF
    VATEntry.Type::Purchase:
    BEGIN
    IF Vend."No." <> "Bill-to/Pay-to No." THEN
    Vend.GET("Bill-to/Pay-to No.");
    VATEntry."Country/Region Code" := Vend."Country/Region Code";
    VATEntry."VAT Registration No." := Vend."VAT Registration No.";
    END;
    VATEntry.Type::Sale:
    BEGIN
    IF Cust."No." <> "Bill-to/Pay-to No." THEN
    Cust.GET("Bill-to/Pay-to No.");
    VATEntry."Country/Region Code" := Cust."Country/Region Code";
    VATEntry."VAT Registration No." := Cust."VAT Registration No.";
    END;
    END;
    // End of the deleted lines.
    ...
    

    Codul de înlocuire

    ...
    VATEntry."Sales Tax Connection No." := NextConnectionNo;
    VATEntry."User ID" := USERID;
    VATEntry."No. Series" := "Posting No. Series";
    VATEntry."VAT Base Discount %" := "VAT Base Discount %";
    VATEntry."Bill-to/Pay-to No." := "Bill-to/Pay-to No.";
    
    // Add the following lines.
    VATEntry."Country/Region Code" := "Country/Region Code";
    VATEntry."VAT Registration No." := "VAT Registration No.";
    // End of the added lines. 
    ...
    
  2. Modificați codul din Nr. - Trigger OnValidate în tabelul Antet vânzări (36), după cum urmează:
    Cod existent

    ...
    "Sell-to Contact" := Cust.Contact;
    "Gen. Bus. Posting Group" := Cust."Gen. Bus. Posting Group";
    "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
    "Tax Area Code" := Cust."Tax Area Code";
    "Tax Liable" := Cust."Tax Liable";
    
    // Delete the following line. 
    "VAT Registration No." := Cust."VAT Registration No.";
    ...
    

    Codul de înlocuire

    ...
    "Sell-to Contact" := Cust.Contact;
    "Gen. Bus. Posting Group" := Cust."Gen. Bus. Posting Group";
    "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
    "Tax Area Code" := Cust."Tax Area Code";
    "Tax Liable" := Cust."Tax Liable";
    
    // Add the following lines.
    GLSetup.GET;
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Sell-to/Buy-from No." THEN BEGIN
    "VAT Registration No." := Cust."VAT Registration No.";
    "VAT Country/Region Code" := Cust."Country/Region Code";
    END;
    // End of the added lines.
    ...
    
  3. Modificați codul din Nr. - Trigger OnValidate în tabelul Antet vânzări (36), după cum urmează:
    Cod existent 1

    ...
    "Bill-to Address 2" := Cust."Address 2";
    "Bill-to City" := Cust.City;
    "Bill-to Post Code" := Cust."Post Code";
    "Bill-to County" := Cust.County;
    "Bill-to Country/Region Code" := Cust."Country/Region Code";
    
    // Delete the following line. 
    "VAT Country/Region Code" := Cust."Country/Region Code";
    ...
    

    Cod de înlocuire 1

    ...
    "Bill-to Address 2" := Cust."Address 2";
    "Bill-to City" := Cust.City;
    "Bill-to Post Code" := Cust."Post Code";
    "Bill-to County" := Cust.County;
    "Bill-to Country/Region Code" := Cust."Country/Region Code";
    ...
    

    Cod existent 2

    ...
    // Delete the following line. 
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN
    
    "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group"; 
    ...
    

    Codul de înlocuire 2

    ...
    // Add the following line. 
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN BEGIN
    
    "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
    
    // Add the following lines. 
    "VAT Registration No." := Cust."VAT Registration No.";
    "VAT Country/Region Code" := Cust."Country/Region Code";
    END; 
    // End of the added lines. 
    ...
    

    Cod existent 3

    ...
    "Language Code" := Cust."Language Code";
    "Salesperson Code" := Cust."Salesperson Code";
    "Combine Shipments" := Cust."Combine Shipments";
    Reserve := Cust.Reserve;
    
    // Delete the following line. 
    "VAT Registration No." := Cust."VAT Registration No.";
    ...
    

    Codul de înlocuire 3

    ...
    "Language Code" := Cust."Language Code";
    "Salesperson Code" := Cust."Salesperson Code";
    "Combine Shipments" := Cust."Combine Shipments";
    Reserve := Cust.Reserve;
    ...
    
  4. Modificați codul în Nr. client - Trigger OnValidate în tabelul de antet serviciu (5900), după cum urmează:
    Cod existent

    ...
    END;
    "Gen. Bus. Posting Group" := Cust."Gen. Bus. Posting Group";
    "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
    "Tax Area Code" := Cust."Tax Area Code";
    "Tax Liable" := Cust."Tax Liable";
    
    // Delete the following line. 
    "VAT Registration No." := Cust."VAT Registration No.";
    ...
    

    Codul de înlocuire

    ...
    END;
    "Gen. Bus. Posting Group" := Cust."Gen. Bus. Posting Group";
    "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
    "Tax Area Code" := Cust."Tax Area Code";
    "Tax Liable" := Cust."Tax Liable";
    
    // Add the following lines.
    GLSetup.GET;
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Sell-to/Buy-from No." THEN BEGIN
    "VAT Registration No." := Cust."VAT Registration No.";
    "VAT Country/Region Code" := Cust."Country/Region Code";
    END;
    // End of the added lines. 
    ...
    
  5. Modificați codul din Nr. - Trigger OnValidate în tabelul de antet serviciu (5900), după cum urmează:
    Cod existent 1

    ...
    // Delete the following line.
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN
    
    "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
    ...
    

    Cod de înlocuire 1

    ...
    // Add the following line.
    IF GLSetup."Bill-to/Sell-to VAT Calc." = GLSetup."Bill-to/Sell-to VAT Calc."::"Bill-to/Pay-to No." THEN BEGIN
    
    "VAT Bus. Posting Group" := Cust."VAT Bus. Posting Group";
    
    // Add the following lines. 
    "VAT Registration No." := Cust."VAT Registration No.";
    "VAT Country/Region Code" := Cust."Country/Region Code";
    END;
    // End of the added lines. 
    ...
    

    Cod existent 2

    ...
    "Invoice Disc. Code" := Cust."Invoice Disc. Code";
    "Customer Disc. Group" := Cust."Customer Disc. Group";
    "Language Code" := Cust."Language Code";
    "Salesperson Code" := Cust."Salesperson Code";
    Reserve := Cust.Reserve;
    
    // Delete the following line.
    "VAT Registration No." := Cust."VAT Registration No.";
    ...
    

    Codul de înlocuire 2

    ...
    "Invoice Disc. Code" := Cust."Invoice Disc. Code";
    "Customer Disc. Group" := Cust."Customer Disc. Group";
    "Language Code" := Cust."Language Code";
    "Salesperson Code" := Cust."Salesperson Code";
    Reserve := Cust.Reserve;
    ...
    
  6. Ștergeți codul din triggerul Cod țară/regiune livrare - OnValidate din tabelul Antet serviciu (5900), după cum urmează:

    ...
    // Delete the following lines.
    IF "Ship-to Country/Region Code" <> '' THEN
    "VAT Country/Region Code" := "Country/Region Code"
    ELSE
    "VAT Country/Region Code" := "Country/Region Code"
    // End of the deleted lines. 
    ...
    
  7. Modificați codul din procedura locală UpdateShipToAddress din tabelul Antet serviciu (5900), după cum urmează:
    Cod existent

    ...
    "Ship-to County" := CompanyInfo."Ship-to County";
    "Ship-to Country/Region Code" := CompanyInfo."Ship-to Country/Region Code";
    "Ship-to Contact" := CompanyInfo."Ship-to Contact";
    END;
    
    // Delete the following line. 
    "VAT Country/Region Code" := "Country/Region Code";
    
    END;
    ...
    

    Codul de înlocuire

    ...
    "Ship-to County" := CompanyInfo."Ship-to County";
    "Ship-to Country/Region Code" := CompanyInfo."Ship-to Country/Region Code";
    "Ship-to Contact" := CompanyInfo."Ship-to Contact";
    END; 
    END;
    ...
    

          

Cerințe preliminare

Trebuie să aveți instalat unul dintre următoarele produse pentru a aplica această remediere rapidă:

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

              

Eliminarea informațiilor

Nu puteți elimina această remediere rapidă.

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.

Notă: Acesta este un articol "PUBLICARE RAPIDĂ" creat direct din cadrul organizației de asistență Microsoft. Informațiile din acest document sunt furnizate ca atare ca răspuns la problemele apărute. Ca urmare a vitezei de punere la dispoziție, materialele pot include erori tipografice și pot fi revizuite în orice moment fără preaviz. Consultați Condițiile de utilizare pentru alte considerente.