Brzo objavljeni članci pružaju informacije direktno iz organizacije Microsoft podrške. Informacije koje se nalaze u ovom dokumentu kreirane su kao odgovor na nove ili jedinstvene teme ili su namenjene kao dopuna drugim informacijama iz baze znanja.
Ovaj članak se odnosi na Microsoft Dynamics NAV za lokalni standard italijanskog (it).
Simptomi
Pretpostavimo da imate fakturu koja koristi više tarifa i da način plaćanja fakture koristi broj računa stanja iz italijanske verzije aplikacije Microsoft Dynamics NAV. Kada knjižite fakturu pomoću automatskog plaćanja, Microsoft Dynamics NAV kreira više redova za fakturu i jedan red za plaćanje. Međutim, samo prva faktura se primenjuje i zatvara. Ostale fakture su još otvorene.
Ovaj problem se javlja u sledećim proizvodima:
- Italijanska verzija servisnog paketa 1 za Microsoft Dynamics NAV 2009
- Italijanska verzija programa Microsoft Dynamics NAV 2009
- Italijanska verzija servisnog paketa Microsoft Dynamics NAV 5.0 sa servisnim paketom 1
Rešenje
Informacije o hitnim ispravkama
Podržana hitna ispravka je sada dostupna od korporacije Microsoft. Međutim, namena je samo za rešavanje problema koji je opisan u ovom članku. Primenite je samo na sisteme koji imaju ovaj određeni problem. Ova hitna ispravka može proći dodatno testiranje. Stoga, ako ovaj problem ne utiče ozbiljno, preporučujemo da sačekate sledeći servisni paket za Microsoft Dynamics NAV ili sledeću verziju programa Microsoft Dynamics NAV koja sadrži ovu hitnu ispravku.
Napomena: U posebnim slučajevima, troškovi koji se obično nastaju za pozive podršci mogu biti otkazani ako stručnjak za tehničku podršku za Microsoft Dynamics i srodne proizvode utvrdi da će određena ispravka rešiti problem. Uobičajeni troškovi podrške primenjivaće se na dodatna pitanja podrške i probleme koji ne ispunjavaju uslove za određenu ispravku u pitanju.
Informacije o instalaciji
Microsoft pruža primere programiranja samo za ilustraciju, bez izričite ili podrazumevane garancije. Ovo uključuje, ali nije ograničeno na, podrazumevane garancije o podesnosti za prodaju ili o podesnosti za određenu namenu. U ovom članku se pretpostavlja da ste upoznati sa programskim jezikom koji se demonstrira i sa alatkama koje se koriste za kreiranje procedura i otklanjanje grešaka. Inženjeri Microsoft podrške mogu da vam objasne funkcionalnost određene procedure, ali neće izmeniti ove primere da bi obezbedili dodatnu funkcionalnost ili konstruisali procedure koje ispunjavaju vaše određene zahteve.
Napomena: Pre nego što instalirate ovu hitnu ispravku, proverite da li su svi korisnici Microsoft Navision klijenta odjavljeni iz sistema. To uključuje korisnike Microsoft Navision Application Services (NAS) klijenta. Vi bi trebalo da budete jedini korisnik klijenta koji je prijavljen kada primenjujete ovu hitnu ispravku.
Da biste primenili ovu hitnu ispravku, morate imati licencu za projektante.
Preporučujemo da se korisničkom nalogu u prozoru "Prijavljivanje u operativni sistem Windows" ili u prozoru "Prijavljivanje u bazu podataka" dodeli ID uloge "SUPER". Ako korisničkom nalogu nije moguće dodeliti ID uloge "SUPER", morate da proverite da li korisnički nalog ima sledeće dozvole:
- Dozvola "Izmeni" za objekat koji ćete menjati.
- Dozvola za izvršavanje za objekat sistema ID 5210 i za objekat sistema ID 9015.
Napomena: Ne morate da imate prava na skladišta podataka osim ako ne morate da izvršite popravku podataka.
Promene kodova
Napomena: Popravke kodova uvek testirajte u kontrolisanom okruženju pre nego što ih primenite na računare proizvodnje.
Da biste primenili ovu hitnu ispravku, pratite ove korake:
Promenite ključ u tabeli Cust. Ledger Entry (21) na sledeći način:
Postojeći- Omogućeno:Da
- Ključ: Tip dokumenta, broj dokumenta, pojavljivanje dokumenta
- SumIndexFields:
Zamena jedan
- Omogućeno:Da
- Ključ: Tip dokumenta, broj dokumenta, pojavljivanje dokumenta
- SumIndexFields: preostali pmt. disk. Moguće
Promenite ključ u tabeli stavki glavne knjige prodavca (25) na sledeći način:
Postojeći- Omogućeno:Da
- Ključ: Tip dokumenta, Broj dokumenta, Pojavljivanje dokumenta, Broj prodavca
- SumIndexFields:
Zamena jedan
- Omogućeno:Da
- Ključ: Tip dokumenta, Broj dokumenta, Pojavljivanje dokumenta, Broj prodavca
- SumIndexFields: preostali pmt. disk. Moguće
Dodajte lokalnu promenljivu u funkciju ApplyCustLedgEntry u gen. Jnl.-Post Line codeunit (12), a zatim navedite promenljivu na sledeći način:
- Ime: PaymentTerms
- Tip podataka: Zapis
- Podtip: Uslovi plaćanja
Promenite kôd u funkciji ApplyCustLedgEntry u gen. Jnl.-Post Line codeunit (12) na sledeći način:
Postojeći kôd 1... END ELSE ApplnRoundingPrecision := GLSetup."Appln. Rounding Precision"; ApplyingDate := GenJnlLine."Posting Date"; IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN // Find the entry to be applied to ...Kôd za zamenu 1
... END ELSE ApplnRoundingPrecision := GLSetup."Appln. Rounding Precision"; ApplyingDate := GenJnlLine."Posting Date"; // Add the following lines. Cust.GET(GenJnlLine."Account No."); IF Cust."Payment Terms Code" <> '' THEN BEGIN PaymentTerms.GET(Cust."Payment Terms Code"); PaymentTerms.CALCFIELDS("Payment Nos."); END; // End of the added lines. IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN // Find the entry to be applied to ...Postojeći kôd 2
... (OldCustLedgEntry.COUNT=1) THEN GenJnlLine."Applies-to Occurrence No." := 1; // Delete the following line. OldCustLedgEntry.SETRANGE("Document Occurrence",GenJnlLine."Applies-to Occurrence No."); OldCustLedgEntry.SETRANGE(Open,TRUE); // Delete the following lines. OldCustLedgEntry.FINDFIRST; OldCustLedgEntry.TESTFIELD("Bank Receipt Issued", FALSE); OldCustLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive); IF OldCustLedgEntry."Posting Date" > ApplyingDate THEN ApplyingDate := OldCustLedgEntry."Posting Date"; GenJnlApply.CheckAgainstApplnCurrency( NewCVLedgEntryBuf."Currency Code", OldCustLedgEntry."Currency Code", GenJnlLine."Account Type"::Customer, TRUE); TempOldCustLedgEntry := OldCustLedgEntry; TempOldCustLedgEntry.INSERT; // End of the deleted lines. END ELSE BEGIN // Find the first old entry (Invoice) which the new entry (Payment) should apply to ...Kôd zamene 2
... (OldCustLedgEntry.COUNT=1) THEN GenJnlLine."Applies-to Occurrence No." := 1; OldCustLedgEntry.SETRANGE(Open,TRUE); // Add the following lines. IF OldCustLedgEntry.FINDSET THEN REPEAT OldCustLedgEntry.TESTFIELD("Bank Receipt Issued", FALSE); OldCustLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive); IF OldCustLedgEntry."Posting Date" > ApplyingDate THEN ApplyingDate := OldCustLedgEntry."Posting Date"; GenJnlApply.CheckAgainstApplnCurrency( NewCVLedgEntryBuf."Currency Code", OldCustLedgEntry."Currency Code", GenJnlLine."Account Type"::Customer, TRUE); TempOldCustLedgEntry := OldCustLedgEntry; TempOldCustLedgEntry.INSERT; UNTIL OldCustLedgEntry.NEXT = 0; IF NOT TempOldCustLedgEntry.FINDSET THEN EXIT; // End of the added lines. END ELSE BEGIN // Find the first old entry (Invoice) which the new entry (Payment) should apply to ...Postojeći kôd 3
... TempOldCustLedgEntry.DELETE; // Find the next old entry for application of the new entry // Delete the following line. IF GenJnlLine."Applies-to Doc. No." <> '' THEN Completed := TRUE ...Kôd za zamenu 3
... TempOldCustLedgEntry.DELETE; // Find the next old entry for application of the new entry // Add the following line. IF (GenJnlLine."Applies-to Doc. No." <> '') AND (PaymentTerms."Payment Nos." <= 1) THEN Completed := TRUE ...Dodajte lokalnu promenljivu u funkciju ApplyVendLedgEntry u funkciji Gen. Jnl.-Post Line codeunit (12), a zatim navedite promenljivu na sledeći način:
- Ime: PaymentTerms
- Tip podataka: Zapis
- Podtip: Uslovi plaćanja
Promenite kôd u funkciji ApplyVendLedgEntry u koloni Gen. Jnl.-Post Line codeunit (12) na sledeći način:
Postojeći kôd 1... ApplyingDate := GenJnlLine."Posting Date"; IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN // Find the entry to be applied to ...Kôd za zamenu 1
... ApplyingDate := GenJnlLine."Posting Date"; // Add the following lines. Vend.GET(GenJnlLine."Account No."); IF Vend."Payment Terms Code" <> '' THEN BEGIN PaymentTerms.GET(Vend."Payment Terms Code"); PaymentTerms.CALCFIELDS("Payment Nos."); END; // End of the added lines. IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN // Find the entry to be applied to ...Postojeći kôd 2
... GenJnlLine."Applies-to Occurrence No." := 1; // Delete the following line. OldVendLedgEntry.SETRANGE("Document Occurrence",GenJnlLine."Applies-to Occurrence No."); OldVendLedgEntry.SETRANGE(Open,TRUE); OldVendLedgEntry.SETRANGE("On Hold",''); // Delete the following lines. OldVendLedgEntry.FINDFIRST; OldVendLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive); IF OldVendLedgEntry."Posting Date" > ApplyingDate THEN ApplyingDate := OldVendLedgEntry."Posting Date"; GenJnlApply.CheckAgainstApplnCurrency( NewCVLedgEntryBuf."Currency Code", OldVendLedgEntry."Currency Code", GenJnlLine."Account Type"::Vendor, TRUE); TempOldVendLedgEntry := OldVendLedgEntry; TempOldVendLedgEntry.INSERT; // End of the deleted lines. END ELSE BEGIN // Find the first old entry (Invoice) which the new entry (Payment) should apply to ...Kôd zamene 2
... GenJnlLine."Applies-to Occurrence No." := 1; OldVendLedgEntry.SETRANGE(Open,TRUE); OldVendLedgEntry.SETRANGE("On Hold",''); // Add the following lines. IF OldVendLedgEntry.FINDSET THEN REPEAT OldVendLedgEntry.TESTFIELD(Positive,NOT NewCVLedgEntryBuf.Positive); IF OldVendLedgEntry."Posting Date" > ApplyingDate THEN ApplyingDate := OldVendLedgEntry."Posting Date"; GenJnlApply.CheckAgainstApplnCurrency( NewCVLedgEntryBuf."Currency Code", OldVendLedgEntry."Currency Code", GenJnlLine."Account Type"::Vendor, TRUE); TempOldVendLedgEntry := OldVendLedgEntry; TempOldVendLedgEntry.INSERT; UNTIL OldVendLedgEntry.NEXT = 0; IF NOT TempOldVendLedgEntry.FINDSET THEN EXIT; // End of the added lines. END ELSE BEGIN // Find the first old entry (Invoice) which the new entry (Payment) should apply to ...Postojeći kôd 3
... TempOldVendLedgEntry.DELETE; // Find the next old entry to apply to the new entry // Delete the following line. IF GenJnlLine."Applies-to Doc. No." <> '' THEN Completed := TRUE ...Kôd za zamenu 3
... TempOldVendLedgEntry.DELETE; // Find the next old entry to apply to the new entry // Add the following line. IF (GenJnlLine."Applies-to Doc. No." <> '') AND (PaymentTerms."Payment Nos." <= 1) THEN Completed := TRUE ...Dodajte lokalnu promenljivu u okidač OnRun u Sales-Post kodnoj jedinici (80), a zatim navedite promenljivu na sledeći način:
- Ime: TotalRemainPmtDiscPossible
- Tip podataka: Decimalni broj
Promenite kôd u okidaču OnRun u Sales-Post kodnoj jedinici (80) na sledeći način:
Postojeći kôd 1... // Balancing account IF "Bal. Account No." <> '' THEN BEGIN Window.UPDATE(5,1); CustLedgEntry.FINDLAST; GenJnlLine.INIT; ...Kôd za zamenu 1
... // Balancing account IF "Bal. Account No." <> '' THEN BEGIN Window.UPDATE(5,1); // Add the following lines. CustLedgEntry.RESET; CustLedgEntry.SETCURRENTKEY("Document Type","Document No."); CustLedgEntry.SETRANGE("Document Type","Document Type"); CustLedgEntry.SETRANGE("Document No.",GenJnlLineDocNo); CustLedgEntry.CALCSUMS("Remaining Pmt. Disc. Possible"); TotalRemainPmtDiscPossible := CustLedgEntry."Remaining Pmt. Disc. Possible"; // End of the added lines. CustLedgEntry.FINDLAST; GenJnlLine.INIT; ...Postojeći kôd 2
... GenJnlLine."Currency Code" := "Currency Code"; GenJnlLine.Amount := // Delete the following line. TotalSalesLine."Amount Including VAT" + CustLedgEntry."Remaining Pmt. Disc. Possible"; GenJnlLine."Source Currency Code" := "Currency Code"; GenJnlLine."Source Currency Amount" := GenJnlLine.Amount; ...Kôd zamene 2
... GenJnlLine."Currency Code" := "Currency Code"; GenJnlLine.Amount := // Add the following line. TotalSalesLine."Amount Including VAT" + TotalRemainPmtDiscPossible; GenJnlLine."Source Currency Code" := "Currency Code"; GenJnlLine."Source Currency Amount" := GenJnlLine.Amount; ...Dodajte lokalnu promenljivu u okidač OnRun u kodu Purch.-Post (90), a zatim navedite promenljivu na sledeći način:
- Ime: TotalRemainPmtDiscPossible
- Tip podataka: Decimalni broj
Promenite kôd u OnRun okidaču u thePurch.-Post codeunti (90) na sledeći način:
Postojeći kôd 1... GenJnlPostLine.RunWithCheck(GenJnlLine,TempJnlLineDim); // Balancing account IF "Bal. Account No." <> '' THEN BEGIN IF GUIALLOWED THEN Window.UPDATE(5,1); VendLedgEntry.FINDLAST; GenJnlLine.INIT; GenJnlLine."Posting Date" := "Posting Date"; ...Kôd za zamenu 1
... GenJnlPostLine.RunWithCheck(GenJnlLine,TempJnlLineDim); // Balancing account IF "Bal. Account No." <> '' THEN BEGIN IF GUIALLOWED THEN Window.UPDATE(5,1); // Add the following lines. VendLedgEntry.RESET; VendLedgEntry.SETCURRENTKEY("Document Type","Document No."); VendLedgEntry.SETRANGE("Document Type","Document Type"); VendLedgEntry.SETRANGE("Document No.",GenJnlLineDocNo); VendLedgEntry.CALCSUMS("Remaining Pmt. Disc. Possible"); TotalRemainPmtDiscPossible := VendLedgEntry."Remaining Pmt. Disc. Possible"; // End of the added lines. VendLedgEntry.FINDLAST; GenJnlLine.INIT; GenJnlLine."Posting Date" := "Posting Date"; ...Postojeći kôd 2
... GenJnlLine."Currency Code" := "Currency Code"; GenJnlLine.Amount := TotalPurchLine."Amount Including VAT" + // Delete the following line. VendLedgEntry."Remaining Pmt. Disc. Possible"; GenJnlLine.Correction := Correction; GenJnlLine."Source Currency Code" := "Currency Code"; ...Kôd zamene 2
... GenJnlLine."Currency Code" := "Currency Code"; GenJnlLine.Amount := TotalPurchLine."Amount Including VAT" + // Add the following line. TotalRemainPmtDiscPossible; GenJnlLine.Correction := Correction; GenJnlLine."Source Currency Code" := "Currency Code"; ...
Preduslovi
Morate da imate instaliran jedan od sledećih proizvoda da biste primenili ovu hitnu ispravku:
- Italijanska verzija servisnog paketa 1 za Microsoft Dynamics NAV 2009
- Italijanska verzija programa Microsoft Dynamics NAV 2009
- Italijanska verzija servisnog paketa Microsoft Dynamics NAV 5.0 sa servisnim paketom 1
Informacije o uklanjanju
Ne možete da uklonite ovu hitnu ispravku.
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.
KORPORACIJA MICROSOFT I/ILI NJENI DOBAVLJAČI NE DAJU NIKAKVE IZJAVE NITI GARANCIJE U VEZI SA PODESNOŠĆU, POUZDANOŠĆU ILI TAČNOŠĆU INFORMACIJA KOJE SE NALAZE U DOKUMENTIMA I SRODNOJ GRAFICI OBJAVLJENOJ NA OVOM VEB SAJTU ("MATERIJALI") U BILO KOJE SVRHE.
MATERIJALI MOGU DA SADRŽE TEHNIČKE NETAČNOSTI ILI TIPOGRAFSKE GREŠKE I MOGU SE KORIGOVATI U BILO KOM TRENUTKU BEZ PRETHODNOG OBAVEŠTENJA. U NAJVEĆOJ MERI U KOJOJ TO DOZVOLJAVA PRIMENLJIVI ZAKON, KORPORACIJA MICROSOFT I/ILI NJENI DOBAVLJAČI ODRIČU SE I ISKLJUČUJU SVE IZJAVE, GARANCIJE I USLOVE, BILO IZRIČITE, IMPLICIRANE ILI ZAKONSKE, UKLJUČUJUĆI, ALI NE OGRANIČAVAJUĆI SE NA, IZJAVE, GARANCIJE ILI USLOVE VLASNIŠTVA, NEKRŠENJA PRAVA, ZADOVOLJAVAJUĆEG STANJA ILI KVALITETA, PODESNOSTI ZA PRODAJU I PODESNOSTI ZA ODREĐENU NAMENU, U VEZI SA MATERIJALIMA.