DTA izveštaj o predloženom plaćanju dobavljača (3010546) i LSV izveštaj o predloženoj kolekciji (3010831) predlažu neispravne linije u švajcarskoj verziji usluge Microsoft Dynamics NAV

Primenjuje se na
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Microsoft Dynamics NAV 5.0 Service Pack 1

Ovaj članak se odnosi na Microsoft Dynamics NAV za sledeće zemlje i jezičke lokale.

  • francuski (Švajcarska) (fr-ch)
  • nemački (Švajcarska) (gr-ch)
  • italijanski (Švajcarska) (it-ch)

Simptomi

Pretpostavimo da ste knjižali kupovnu fakturu ili prodajnu fakturu u švajcarskoj verziji sistema Microsoft Dynamics NAV. Kada pokrenete izveštaj o predloženom plaćanju dobavljača (3010546) DTA u dnevniku plaćanja ili izveštaj LSV predloga kolekcije (3010831) na listi LSV dnevnika pomoću datuma knjiženja koji je pre datuma knjiženja fakture, predlažu se neispravni redovi. Zato je datum knjiženja netačan u detaljnim stavkama glavne knjige kupaca ili detaljnim stavkama radne stranice dobavljača nakon što knjižite redove. Ponekad čak nije moguće objaviti redove i primiti doslednu poruku o grešci.
Ovaj problem se javlja u sledećim proizvodima:

  • Švajcarska verzija usluge Microsoft Dynamics NAV 2009 servisni paket 1 (SP1)
  • Švajcarska verzija programa Microsoft Dynamics NAV 2009
  • Švajcarska verzija usluge Microsoft Dynamics NAV 5.0 sa servisnim paketom 1 (SP1)
  • Švajcarska verzija usluge Microsoft Dynamics NAV 5.0

      

Uzrok

Do ovog problema dolazi zato što ček nedostaje u izveštaju o DTA predlogu za plaćanje dobavljača (3010546) i u izveštaju LSV predloga kolekcije (3010831). Provera se uvodi da bi se izbeglo generisanje linije za plaćanje koja ima datum knjiženja pre datuma knjiženja od datuma knjiženja fakture.

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.
Pratite ove korake da biste rešili problem:

  1. Dodajte novu globalnu promenljivu u izveštaj DTA Suggest Vendor Payment (3010546), a zatim navedite promenljivu na sledeći način:

    • Ime: VendorLedgEntryTemp@1150058
    • Tip podataka: Zapis
    • Podtip: Stavka glavne knjige prodavca
    • Privremeno: Da
  2. Dodajte novu tekstualnu konstantu u izveštaj o DTA predlogu plaćanja dobavljača (3010546), a zatim navedite konstantu na sledeći način:

    • Ime: Text50000@1150064
    • Konstantna vrednost: ENU = Postoje neke stavke za koje nisu napravljeni predlozi za plaćanje zato što su datumi knjiženja stavki kasniji od datuma knjiženja u prozoru DTA predloga Plaćanja dobavljača batch task request. Želite li da vidite stavke?
  3. Dodajte sledeći kôd u okidaču OnPreReport u izveštaju o DTA predlogu plaćanja dobavljača (3010546):

    VendorLedgEntryTemp.DELETEALL;
    
  4. Dodajte sledeći kôd u OnPostReport okidač u izveštaju o DTA predloženom plaćanju dobavljača (3010546):

    COMMIT;
    IF NOT VendorLedgEntryTemp.ISEMPTY THEN
      IF CONFIRM(Text50000) THEN
        FORM.RUNMODAL(0,VendorLedgEntryTemp);
    
  5. Promenite kôd u okidaču "Dobavljač – OnPostDataItem" u DTA izveštaju o predloženom plaćanju dobavljača (3010546) na sledeći način:
    Postojeći kôd

    d.CLOSE;
    IF NoOfLinesInserted > 0 THEN BEGIN
      WriteBalAccountLine(ToGlLine);
      MESSAGE(Text011,NoOfLinesInserted,GlSetup."LCY Code",TotalAmtLCY);
      IF NoOfVendorsWithCM > 0 THEN
        MESSAGE(Text013 + Text014 + Text017,NoOfVendorsWithCM,VendWithCmTxt)
    END ELSE
      MESSAGE(Text018,FromDueDate,ToDueDate);
    

    Kôd za zamenu

    d.CLOSE;
    IF VendorLedgEntryTemp.ISEMPTY THEN BEGIN
      IF NoOfLinesInserted > 0 THEN BEGIN
        WriteBalAccountLine(ToGlLine);
        MESSAGE(Text011,NoOfLinesInserted,GlSetup."LCY Code",TotalAmtLCY);
        IF NoOfVendorsWithCM > 0 THEN
          MESSAGE(Text013 + Text014 + Text017,NoOfVendorsWithCM,VendWithCmTxt)
      END ELSE
        MESSAGE(Text018,FromDueDate,ToDueDate);
    END;
    
  6. Promenite kôd u funkciji WritePmtSuggestLines u DTA izveštaju o predloženom plaćanju dobavljača (3010546) na sledeći način:
    Postojeći kôd 1

    // CH2316.begin
     VendorLedgerEntryNo := VendEntry."Entry No.";
    // CH2316.end
    WITH ToGlLine DO BEGIN
      INIT;
    ...
    

    Kôd za zamenu 1

    IF VendEntry."Posting Date" <= PostDate THEN BEGIN // CH0001
      // CH2316.begin
      VendorLedgerEntryNo := VendEntry."Entry No.";
      // CH2316.end
      WITH ToGlLine DO BEGIN
        INIT;
    ...
    

    Postojeći kôd 2

    ...
    VendorLedgerEntry2.GET(VendorLedgerEntryNo);
    VendorLedgerEntry2."On Hold" := 'DTA';
    VendorLedgerEntry2."Accepted Payment Tolerance" := 0;
    VendorLedgerEntry2.MODIFY;
    // CH2316.END
    

    Kôd zamene 2

    ...
      VendorLedgerEntry2.GET(VendorLedgerEntryNo);
      VendorLedgerEntry2."On Hold" := 'DTA';
      VendorLedgerEntry2."Accepted Payment Tolerance" := 0;
      VendorLedgerEntry2.MODIFY;
    // CH2316.END
    END ELSE BEGIN
      VendorLedgEntryTemp := VendEntry;
      VendorLedgEntryTemp.INSERT;
    END;
    
  7. Dodajte novu globalnu promenljivu u izveštaj LSV predloga kolekcije (3010831), a zatim navedite promenljivu na sledeći način:

    • Ime: TempCustLedgEntry@1150042
    • Tip podataka: Zapis
    • Podtip: Stavka glavne knjige klijenta
    • Privremeno: Da
  8. Dodajte novu tekstualnu konstantu u izveštaj LSV predloga kolekcije (3010831), a zatim navedite konstantu na sledeći način:

    • Ime: Text50000@1150064
    • Konstantna vrednost: ENU=Postoje neke stavke za koje nisu napravljeni predlozi za naplatu zato što su datumi knjiženja stavki kasniji od datuma prikupljanja u prozoru zahteva za grupni zadatak LSV predloga. Želite li da vidite stavke?
  9. Promenite kôd u okidaču OnPreReport u izveštaju LSV predloga kolekcije (3010831) na sledeći način:
    Postojeći kôd

    IF LsvJournal."LSV Bank Code" = '' THEN
      ERROR(Text020);
    

    Kôd za zamenu

    IF LsvJournal."LSV Bank Code" = '' THEN
      ERROR(Text020);
    TempCustLedgEntry.DELETEALL;
    
  10. Dodajte sledeći kôd u okidač OnPostReport u izveštaju LSV predloga kolekcije (3010831):

    COMMIT;
    IF NOT TempCustLedgEntry.ISEMPTY THEN
      IF CONFIRM(Text50000) THEN
        FORM.RUNMODAL(0,TempCustLedgEntry);
    
  11. Promenite kôd u okidaču klijent – OnPostDataItem u izveštaju LSV predloga kolekcije (3010831) na sledeći način:
    Postojeći kôd

    d.CLOSE;
    IF NoOfLinesInserted > 0 THEN BEGIN
      MESSAGE(Text007,NoOfLinesInserted,LsvSetup."LSV Currency Code",TotalAmt);
      IF LsvJournal."LSV Journal Description" = '' THEN BEGIN
        LsvJournal."LSV Journal Description" :=
          FORMAT(STRSUBSTNO(Text021,LsvSetup."LSV Currency Code",FromDueDate,ToDueDate,Customer.GETFILTERS)
            ,-MAXSTRLEN(LsvJournal."LSV Journal Description"));
      END;
      LsvJournal."Credit Date" := CollectionDate;
      LsvJournal.MODIFY;
      // CH2813.BEGIN
      IF NoOfCustWithCreditMemo > 0 THEN
        IF NOT CONFIRM(Text009 + Text010 + Text012 + Text013,TRUE,NoOfCustWithCreditMemo,CustCreditMemoTxt) THEN
          ERROR(Text014);
      // CH2813.END
    END ELSE
      MESSAGE(Text015,FromDueDate,ToDueDate);
    

    Kôd za zamenu

    d.CLOSE;
    IF TempCustLedgEntry.ISEMPTY THEN BEGIN // CH0001
      IF NoOfLinesInserted > 0 THEN BEGIN
        MESSAGE(Text007,NoOfLinesInserted,LsvSetup."LSV Currency Code",TotalAmt);
        IF LsvJournal."LSV Journal Description" = '' THEN BEGIN
          LsvJournal."LSV Journal Description" :=
            FORMAT(STRSUBSTNO(Text021,LsvSetup."LSV Currency Code",FromDueDate,ToDueDate,Customer.GETFILTERS)
              ,-MAXSTRLEN(LsvJournal."LSV Journal Description"));
        END;
        LsvJournal."Credit Date" := CollectionDate;
        LsvJournal.MODIFY;
        // CH2813.BEGIN
        IF NoOfCustWithCreditMemo > 0 THEN
          IF NOT CONFIRM(Text009 + Text010 + Text012 + Text013,TRUE,NoOfCustWithCreditMemo,CustCreditMemoTxt) THEN
            ERROR(Text014);
        // CH2813.END
      END ELSE
        MESSAGE(Text015,FromDueDate,ToDueDate);
    END;
    
  12. Promenite kôd u funkciji WritePmtSuggestLines u izveštaju LSV predloga kolekcije (3010831) na sledeći način:
    Postojeći kôd 1

    // Collection amt: Cust. Entry amount - Cash disc. possible
    WITH ToLSVJourLine DO BEGIN
      // Ensure, that the Entry is only once in the LSV Journal Line
      LSVJourLineCheck.SETCURRENTKEY("Applies-to Doc. No.");
      LSVJourLineCheck.SETRANGE("Applies-to Doc. No.",ActCustLedgEntry."Document No.");
    ...
    

    Kôd za zamenu 1

    // Collection amt: Cust. Entry amount - Cash disc. possible
    WITH ToLSVJourLine DO BEGIN
      IF CustLedgEntry."Posting Date" <= CollectionDate THEN BEGIN
        // Ensure, that the Entry is only once in the LSV Journal Line
        LSVJourLineCheck.SETCURRENTKEY("Applies-to Doc. No.");
        LSVJourLineCheck.SETRANGE("Applies-to Doc. No.",ActCustLedgEntry."Document No.");
    ...
    

    Postojeći kôd 2

    ...
      TotalAmt := TotalAmt + "Collection Amount";
      d.UPDATE(3,TotalAmt);
      // CH2813.BEGIN
      EntriesPerCust := EntriesPerCust + 1;
      // CH2813.END
    END;
    

    Kôd zamene 2

    ...
        TotalAmt := TotalAmt + "Collection Amount";
        d.UPDATE(3,TotalAmt);
        // CH2813.BEGIN
        EntriesPerCust := EntriesPerCust + 1;
        // CH2813.END
    
    //Add the follong lines.
      END ELSE BEGIN
        TempCustLedgEntry := CustLedgEntry;
        TempCustLedgEntry.INSERT;
      END;
    //End of the lines.
    
    END;
    

            
          

Preduslovi

Morate da imate instaliran jedan od sledećih proizvoda da biste primenili ovu hitnu ispravku:

  • Švajcarska verzija usluge Microsoft Dynamics NAV 2009 servisni paket 1 (SP1)
  • Švajcarska verzija programa Microsoft Dynamics NAV 2009
  • Švajcarska verzija usluge Microsoft Dynamics NAV 5.0 sa servisnim paketom 1 (SP1)
  • Švajcarska verzija usluge Microsoft Dynamics NAV 5.0

              

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“.

Napomena: Ovo je članak "BRZO OBJAVLJIVANJE" koji je kreiran direktno u okviru organizacije Microsoft podrške. Informacije koje se nalaze ovde pružaju se kakve jesu kao odgovor na nove probleme. Kao rezultat brzine stavljanja na raspolaganje, materijali mogu sadržavati tipografske greške i mogu se revidirati u bilo kom trenutku bez prethodne najave. Pogledajte Uslove korišćenja za druga razmatranja.