Articolele publicate rapid furnizează informații direct din cadrul organizației de asistență Microsoft. Informațiile conținute aici sunt create ca răspuns la subiecte emergente sau unice sau sunt menite să completeze alte informații din baza de cunoștințe.
Acest articol se aplică la Microsoft Dynamics NAV pentru setările regionale de limbă italiană (it).
Simptome
Să presupunem că aveți o factură care include impozitul reținut la sursă în versiunea italiană de Microsoft Dynamics NAV. Atunci când înregistrați plata pentru factură fără a utiliza comanda Cu. Tax-Soc. Funcția Sec. pentru a calcula impozitul reținut la sursă, Microsoft Dynamics NAV înregistrează plata. Cu toate acestea, această postare este incorectă. Ar trebui să primiți un mesaj de avertizare care vă informează să utilizați Withh. Tax-Soc. Funcția Sec. dacă atunci când înregistrați o plată pentru o factură cu impozit reținut la sursă fără a calcula impozitul reținut la sursă.
Această problemă apare în cazul următoarelor produse:
- Versiunea italiană de Microsoft Dynamics NAV 2009 SP1
- Versiunea italiană de Microsoft Dynamics NAV 5.0 SP1
- Versiunea italiană de Microsoft Dynamics NAV 5.0
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ă problema nu vă afectează grav, vă recomandăm să așteptați următorul pachet Service Pack Microsoft Dynamics NAV sau versiunea următoare 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 instala această remediere rapidă, modificați codul din din generație. Unitatea de cod Jnl.-Post Line (12), după cum urmează.
Pentru a face acest lucru, urmați acești pași:
În meniul Vizualizare , faceți clic pe C/AL globals, apoi adăugați următoarele pe fila Constante test :
- Nume: Text1130023
- ConstValue: Factura include Impozitul reținut la sursă nu ar trebui aplicat direct. Vă rugăm să utilizați funcția Jurnale de plăți -> Plăți -> Withh.Tax-Soc.Sec.
Modificați codul în declanșatorul ApplyVendLedgEntry după cum urmează:
Cod existent 1... IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN // Find the entry to be applied to OldVendLedgEntry.RESET; OldVendLedgEntry.SETCURRENTKEY("Document Type","Document No.","Document Occurrence","Vendor No."); ...Cod de înlocuire 1
... IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN CheckWithholdTax(GenJnlLine."Applies-to Doc. Type",GenJnlLine."Applies-to Doc. No.",GenJnlLine,TRUE); // Add this line. // Find the entry to be applied to OldVendLedgEntry.RESET; OldVendLedgEntry.SETCURRENTKEY("Document Type","Document No.","Document Occurrence","Vendor No."); ...Cod existent 2
... OldVendLedgEntry.SETFILTER("Amount to Apply",'<>%1',0); //Check and Move Ledger Entries to Temp IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code"); IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN REPEAT IF GenJnlApply.CheckAgainstApplnCurrency( ....Codul de înlocuire 2
... OldVendLedgEntry.SETFILTER("Amount to Apply",'<>%1',0); //Check and Move Ledger Entries to Temp IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code"); IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN REPEAT CheckWithholdTax(OldVendLedgEntry."Document Type",OldVendLedgEntry."Document No.",GenJnlLine,FALSE); // Add this line. IF GenJnlApply.CheckAgainstApplnCurrency( ...În meniul Vizualizare , faceți clic pe C/AL Globals, apoi adăugați informațiile următoare pe fila Funcție :
În caseta Nume , tastați CheckWithholdTax.
Faceți clic pe Local.
Pe fila Parametri , specificați următoarele setări:
Pentru primul parametru:- Var: Nu
- Nume: DocType
- Tip de date: Opțiune
- În meniul Vizualizare , faceți clic pe Proprietăți, adăugați valoarea pentru proprietatea OptionString: ,,Factură,Memo credit
Pentru al doilea parametru:
- Var: Nu
- Nume: DocNo
- Tip de date: Cod
- Lungime: 20
Pentru al treilea parametru:
- Var: Nu
- Nume: GenJnlLine
- Tip de date: Înregistrare
- Subtip: Gen. Linie de jurnal
Pentru al patrulea parametru:
- Var: Nu
- Nume: ApplyInGenJnlLine
- Tip de date: Boolean
Pe fila Variabile , specificați următoarele setări:
Pentru prima variabilă:- Nume : ComputedWithholdTax
- Tip de date : Înregistrare
- Subtip : Impozit reținut la sursă calculat
Pentru a doua variabilă:
- Nume : TmpWithholdingContribution
- Tip de date : Înregistrare
- Subtip : Contribuție de reținere TMP
Pentru a treia variabilă:
- Nume : WithholdCode
- Tip de date : Înregistrare
- Subtip : Cod de reținere
Adăugați un nou declanșator, "CheckWithholdTax", după cum urmează:
CheckWithholdTax(DocType : ',,Invoice,Credit Memo';DocNo : Code[20];GenJnlLine : Record "Gen. Journal Line";ApplyInGenJnlLine : Boolean ) IF DocType IN [DocType::Invoice,DocType::"Credit Memo"] THEN BEGIN ComputedWithholdTax.RESET; ComputedWithholdTax.SETRANGE("Document No.",DocNo); IF ComputedWithholdTax.FINDFIRST THEN BEGIN IF NOT ApplyInGenJnlLine THEN ERROR(Text1130023) ELSE BEGIN TmpWithholdingContribution.RESET; TmpWithholdingContribution.SETRANGE("Invoice No.",DocNo); IF NOT TmpWithholdingContribution.FINDFIRST THEN BEGIN WithholdCode.GET(ComputedWithholdTax."Withholding Tax Code"); WithholdCode.TESTFIELD("Withholding Taxes Payable Acc."); IF NOT((GenJnlLine."Bal. Account Type" = GenJnlLine."Bal. Account Type"::"G/L Account") AND (GenJnlLine."Bal. Account No." = WithholdCode."Withholding Taxes Payable Acc.")) THEN ERROR(Text1130023); END; END; END; END;
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 SP1
- Versiunea italiană de Microsoft Dynamics NAV 5.0 SP1
- Versiunea italiană de Microsoft Dynamics NAV 5.0
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”.
MICROSOFT ȘI/SAU FURNIZORII SĂI NU FAC NICIO DECLARAȚIE SAU GARANȚIE CU PRIVIRE LA ADECVAREA, FIABILITATEA SAU ACURATEȚEA INFORMAȚIILOR CONȚINUTE ÎN DOCUMENTELE ȘI GRAFICELE ASOCIATE PUBLICATE PE ACEST SITE WEB ("MATERIALELE") ÎN NICIUN SCOP.
MATERIALELE POT INCLUDE INEXACTITĂȚI TEHNICE SAU ERORI TIPOGRAFICE ȘI POT FI REVIZUITE ÎN ORICE MOMENT, FĂRĂ NOTIFICARE PREALABILĂ. ÎN MĂSURA MAXIMĂ PERMISĂ DE LEGISLAȚIA APLICABILĂ, MICROSOFT ȘI/SAU FURNIZORII SĂI EXCLUD TOATE REPREZENTĂRILE, GARANȚIILE ȘI CONDIȚIILE, EXPRESE, IMPLICITE SAU LEGALE, INCLUSIV, DAR FĂRĂ A SE LIMITA LA, DECLARAȚII, GARANȚII SAU CONDIȚII DE TITLU, NEÎNCĂLCARE A DREPTURILOR, CONDIȚII SAU CALITĂȚI SATISFĂCĂTOARE, VANDABILITATE ȘI ADECVARE PENTRU UN ANUMIT SCOP, ÎN CEEA CE PRIVEȘTE MATERIALELE.