Acest articol se aplică la Microsoft Dynamics NAV pentru setările regionale de limbă italiană (it).
Simptome
Să presupunem că aveți un mijloc fix în versiunea italiană de Microsoft Dynamics NAV. Valoarea taxei pe valoarea adăugată (TVA) pentru achiziționarea activului fix este parțial dedusă. În această situație, dacă vindeți mijlocul fix tranzacție, tranzacția pentru factura de vânzări corespunzătoare creează două tranzacții de câștig sau pierdere în locul uneia singure.
Această problemă apare în cazul următoarelor produse:
- Versiunea italiană de Microsoft Dynamics NAV 2009 R2
- Versiunea italiană de Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Versiunea italiană de Microsoft Dynamics NAV 5.0 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ă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următorul pachet Service Pack Microsoft Dynamics NAV sau următoarea versiune 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 pot ajuta la explicarea funcționalității unei anumite proceduri, însă 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 Navision sunt deconectați de la sistem. Printre aceștia se numără utilizatorii clienților Microsoft Navision Application Services (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:
Modificați codul din elementul de date numărul 3 din Foaie registru contabil - Imprimare raport (12109) după cum urmează:
Cod existent... CurrReport.CREATETOTALS(Amount,IcreasesAmnt,DecreasesAmnt,"Additional-Currency Amount"); END; // Delete the following lines. OnAfterGetRecord=BEGIN CALCFIELDS(Amount,"Debit Amount","Credit Amount","Additional-Currency Amount"); IF NOT UseAmtsInAddCurr THEN BEGIN Amnt := Amnt + Amount; IF Amount > 0 THEN IcreasesAmnt := Amount ELSE DecreasesAmnt := ABS(Amount); END ELSE BEGIN Amnt := Amnt + "Additional-Currency Amount"; IF "Additional-Currency Amount" > 0 THEN IcreasesAmnt := "Additional-Currency Amount" ELSE DecreasesAmnt := ABS("Additional-Currency Amount"); END; // End of the lines. END; DataItemLinkReference=G/L Account; ...Codul de înlocuire
... CurrReport.CREATETOTALS(Amount,IcreasesAmnt,DecreasesAmnt,"Additional-Currency Amount"); END; // Add the following lines. OnAfterGetRecord=VAR GroupAmount@1130001 : Decimal; BEGIN CALCFIELDS(Amount,"Debit Amount","Credit Amount","Additional-Currency Amount"); IF TempGLBookEntry.GET("Entry No.") THEN CurrReport.SKIP ELSE BEGIN GroupAmount := GroupBookEntry("GL Book Entry",UseAmtsInAddCurr); Amnt += GroupAmount; IF GroupAmount > 0 THEN BEGIN IcreasesAmnt := ABS(GroupAmount); DecreasesAmnt := 0; END ELSE BEGIN IcreasesAmnt := 0; DecreasesAmnt := ABS(GroupAmount); END; END; // End of the lines. END; DataItemLinkReference=G/L Account; ...Modificați codul în secțiunile Element de date numărul 3 din Foaie registru contabil - Imprimare raport (12109), după cum urmează:
Cod existent... { 1130104;TextBox ;18000;423 ;1800 ;423 ;SourceExpr=Amnt; AutoFormatType=1; DataSetFieldName=Amnt_Control1130104 } // Delete the following line. { 1130105;TextBox ;18000;846 ;1800 ;423 ;SourceExpr=StartOnHand + Amount; AutoFormatType=1; DataSetFieldName=StartOnHand___Amount_Control1130105 } ...Codul de înlocuire
... { 1130104;TextBox ;18000;423 ;1800 ;423 ;SourceExpr=Amnt; AutoFormatType=1; DataSetFieldName=Amnt_Control1130104 } // Add the following line. { 1130105;TextBox ;18000;846 ;1800 ;423 ;SourceExpr=StartOnHand + IcreasesAmnt - DecreasesAmnt; AutoFormatType=1; DataSetFieldName=StartOnHand___Amount_Control1130105 } { 1130111;TextBox ;0 ;846 ;150 ;423 ;Name=TotalAmount; ...Adăugați o nouă variabilă globală în registrul contabil Foaie - Imprimare raport (12109), apoi specificați variabila după cum urmează:
- Nume: TempGLBookEntry
- Tip de date: Înregistrare TEMPORARĂ
- Subtip: Intrare în cărți GL (12144)
Adăugați o funcție locală în registrul contabil Foaie - imprimare raport (12109), după cum urmează:
LOCAL PROCEDURE GroupBookEntry@1130001(GLBookEntry@1130001 : Record 12144;UseAmtsInAddCurr@1130002 : Boolean) GroupAmount@1130003 : Decimal; VAR GLBookEntry1@1130004 : Record 12144; BEGIN GLBookEntry1.SETRANGE("G/L Account No.",GLBookEntry."G/L Account No."); GLBookEntry1.SETRANGE("Transaction No.",GLBookEntry."Transaction No."); IF GLBookEntry1.FINDSET THEN REPEAT TempGLBookEntry."Entry No." := GLBookEntry1."Entry No."; TempGLBookEntry.INSERT; GLBookEntry1.CALCFIELDS(Amount,"Additional-Currency Amount"); IF UseAmtsInAddCurr THEN GroupAmount := GroupAmount + GLBookEntry1."Additional-Currency Amount" ELSE GroupAmount := GroupAmount + GLBookEntry1.Amount; UNTIL GLBookEntry1.NEXT = 0; EXIT(GroupAmount); END;Modificați codul din Elementul de date numărul 2 din raportul Carte limită - Imprimare (12121) după cum urmează:
Cod existent 1... END; END; // Delete the following lines. OnAfterGetRecord=BEGIN IF ReportType = ReportType::Reprint THEN LastNo := "Progressive No." ELSE LastNo := LastNo + 1; // End of the lines. TotalDebit := TotalDebit + "Debit Amount"; TotalCredit := TotalCredit + "Credit Amount"; ...Cod de înlocuire 1
... END; END; // Add the following lines. OnAfterGetRecord=VAR GroupAmount@1130001 : Decimal; BEGIN // End of the lines. TotalDebit := TotalDebit + "Debit Amount"; TotalCredit := TotalCredit + "Credit Amount"; ...Cod existent 2
... END; "Source Type" :: "Fixed Asset": BEGIN FA.GET("Source No."); Descr := FA.Description; END; ...Codul de înlocuire 2
... END; "Source Type" :: "Fixed Asset": BEGIN // Add the following lines. IF TempGLBookEntry.GET("Entry No.") THEN CurrReport.SKIP ELSE BEGIN GroupAmount := GroupBookEntry("GL Book Entry"); IF GroupAmount > 0 THEN BEGIN "Debit Amount" := GroupAmount; "Credit Amount" := 0; END ELSE BEGIN "Debit Amount" := 0; "Credit Amount" := GroupAmount; END; END; // End of the lines. FA.GET("Source No."); Descr := FA.Description; END; ...Cod existent 3
... ELSE Descr := ''; END; IF (NOT CurrReport.PREVIEW) AND (ReportType = ReportType::"Final Print") THEN BEGIN ...Codul de înlocuire 3
... ELSE Descr := ''; END; // Add the following lines. IF ReportType = ReportType::Reprint THEN LastNo := "Progressive No." ELSE LastNo := LastNo + 1; // End of the lines. IF (NOT CurrReport.PREVIEW) AND (ReportType = ReportType::"Final Print") THEN BEGIN ...Adăugați o nouă variabilă globală în raportul Registru general - Imprimare (12121), apoi specificați variabila după cum urmează:
- Nume: TempGLBookEntry
- Tip de date: Înregistrare TEMPORARĂ
- Subtip: Intrare în cărți GL (12144)
Modificați codul din Documentația din Registrul de doar - Raport de imprimare (12121) după cum urmează:
Cod existent... EndDate := Date."Period Start" - 1; END; ...Codul de înlocuire
... EndDate := Date."Period Start" - 1; END; // Add the following lines. LOCAL PROCEDURE GroupBookEntry@1130002(GLBookEntry@1130001 : Record 12144) GroupAmount@1130002 : Decimal; VAR GLBookEntry1@1130003 : Record 12144; BEGIN GLBookEntry1.SETRANGE("G/L Account No.",GLBookEntry."G/L Account No."); GLBookEntry1.SETRANGE("Transaction No.",GLBookEntry."Transaction No."); IF GLBookEntry1.FINDSET THEN REPEAT TempGLBookEntry."Entry No." := GLBookEntry1."Entry No."; TempGLBookEntry.INSERT; GLBookEntry1.CALCFIELDS(Amount); GroupAmount := GroupAmount + GLBookEntry1.Amount; UNTIL GLBookEntry1.NEXT = 0; EXIT(GroupAmount); END; // End of the lines. ...
Cerințe preliminare
Trebuie să aveți instalat unul dintre următoarele produse pentru a aplica această remediere rapidă:
- Versiunea italiană de Microsoft Dynamics NAV 2009 R2
- Versiunea italiană de Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Versiunea italiană de Microsoft Dynamics NAV 5.0 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.