Applies ToDynamics NAV 2009

Symptomer

Når du installerer KB3034441 i den spanske versjonen av Microsoft Dynamics NAV 2009, når du bruker en vanlig betaling og en faktura fra kunde-eller leverandørpostene, kan du se de bokførte finanspostene begge til den samme kontoen som er feil. Følg trinnene i delen kodeendringer for å løse dette problemet. Dette problemet oppstår i følgende produkter:

  • Den spanske versjonen av Microsoft Dynamics NAV 2009 R2

  • Den spanske versjonen av Microsoft Dynamics NAV 2009 SP1

Oppløsning

Informasjon om hurtigreparasjon

En støttet hurtigreparasjon er nå tilgjengelig fra Microsoft. Det er imidlertid bare ment å løse problemet som er beskrevet i denne artikkelen. Bruk den bare på systemer som har dette bestemte problemet. Denne hurtigreparasjonen kan gjennomgå ytterligere testing. Hvis du ikke er alvorlig påvirket av dette problemet, anbefaler vi derfor at du venter på neste oppdateringspakke for Microsoft Dynamics NAV 2009 eller den neste versjonen av Microsoft Dynamics NAV som inneholder denne hurtigreparasjonen.Obs! I spesielle tilfeller avgifter som vanligvis påløper for støtte samtaler kan avbrytes hvis en kundestøttemedarbeider for Microsoft Dynamics og beslektede produkter avgjør at en bestemt oppdatering løser problemet. Vanlige kundestøttekostnader gjelder for ytterligere kundestøttespørsmål og problemer som ikke dekkes av den gjeldende oppdateringen.

Installasjonsinformasjon

Microsoft bruker ment som eksempler, uten garanti, verken direkte eller indirekte. Dette inkluderer, men er ikke begrenset til, eventuelle stilltiende garantier om salgbarhet eller anvendelighet for særskilte formål. Denne artikkelen forutsetter at du er kjent med programmeringsspråket som anvendes, og verktøyene som brukes til å opprette og feilsøke prosedyrer. Microsofts kundestøtteteknikere kan hjelpe deg med å forklare funksjonaliteten til en bestemt prosedyre. De endrer imidlertid ikke disse eksemplene for å lage forbedret funksjonalitet eller lage prosedyrer som dekker dine spesifikke behov.Obs! Før du installerer denne hurtigreparasjonen, må du kontrollere at alle brukerne i Microsoft Dynamics NAV-klienten er logget av systemet. Dette inkluderer tjenester for Microsoft Dynamics NAV Application Server (NAS). Du skal bare klient-brukeren som er logget på når du implementerer denne hurtigreparasjonen.Hvis du vil implementere denne hurtigreparasjonen, må du ha en utviklerlisens.Vi anbefaler at kontoen i vinduet Windows-pålogging eller i vinduet Database-pålogging være tildelt "SUPER" rolle-ID. Hvis brukerkontoen ikke kan tilordnes "SUPER" rolle-IDen, må du kontrollere at brukerkontoen har følgende tillatelser:

  • Endre-tillatelse for objektet du vil endre.

  • Tilgangsnivået for systemet objekt-IDen til 5210 objektet og systemet objekt-ID-9015-objektet.

Obs! Du har ikke tilgangsrettigheter til datalagre med mindre du har til å utføre data reparasjon.

Kodeendringer

Obs! Alltid løser teste koden i et kontrollert miljø før du installerer hurtigreparasjoner til produksjonsdatamaskiner for.Hvis du vil løse dette problemet, gjør du følgende:

  1. Endre koden i PostDtldCustLedgEntries -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:Eksisterende kode 1

    ...LOCAL PROCEDURE PostDtldCustLedgEntries@46(GenJnlLine2@1000 : Record 81;VAR DtldCVLedgEntryBuf@1001 : Record 383;CustPostingGr@1002 : Record 92;GLSetup@1003 : Record 98;NextTransactionNo@1004 : Integer;CustLedgEntryInserted@1012 : Boolean);      VAR        DtldCustLedgEntry@1005 : Record 379;        Currency@1007 : Record 4;        GenPostingSetup@1008 : Record 252;        TotalAmountLCY@1009 : Decimal;        TotalAmountAddCurr@1010 : Decimal;        PaymentDiscAcc@1011 : Code[20];        DtldCustLedgEntryNoOffset@1006 : Integer;        PaymentTolAcc@1013 : Code[20];...

    Ny kode 1

    ...LOCAL PROCEDURE PostDtldCustLedgEntries@46(GenJnlLine2@1000 : Record 81;VAR DtldCVLedgEntryBuf@1001 : Record 383;CustPostingGr@1002 : Record 92;GLSetup@1003 : Record 98;NextTransactionNo@1004 : Integer;CustLedgEntryInserted@1012 : Boolean);      VAR        DtldCustLedgEntry@1005 : Record 379;        Currency@1007 : Record 4;        GenPostingSetup@1008 : Record 252;// Add the following line.DtldCustLedgEntry3@1100044 : Record 379;// End of the added line.        TotalAmountLCY@1009 : Decimal;        TotalAmountAddCurr@1010 : Decimal;        PaymentDiscAcc@1011 : Code[20];        DtldCustLedgEntryNoOffset@1006 : Integer;        PaymentTolAcc@1013 : Code[20];...

    Eksisterende kode 2

    ...ReceivableAccAmtLCY@1100001 : Decimal;        ReceivableAccAmtAddCurr@1100000 : Decimal;        DtldCustLedgEntry2@1100003 : TEMPORARY Record 379;        ExistDtldCVLedgEntryBuf@1000003 : Boolean;        FindBill@1100004 : Boolean;      BEGIN        TotalAmountLCY := 0;        TotalAmountAddCurr := 0;        PositiveLCYAppAmt := 0;        PositiveACYAppAmt := 0;...

    Ny kode 2

    ...ReceivableAccAmtLCY@1100001 : Decimal;        ReceivableAccAmtAddCurr@1100000 : Decimal;        DtldCustLedgEntry2@1100003 : TEMPORARY Record 379;        ExistDtldCVLedgEntryBuf@1000003 : Boolean;        FindBill@1100004 : Boolean;// Add the following line.EntryUnapplied@1100051 : Boolean;// End of the added line.      BEGIN        TotalAmountLCY := 0;        TotalAmountAddCurr := 0;        PositiveLCYAppAmt := 0;        PositiveACYAppAmt := 0;...

    Eksisterende kode 3

    ... TotalAmountAddCurr := 0;        PositiveLCYAppAmt := 0;        PositiveACYAppAmt := 0;        NegativeLCYAppAmt := 0;        NegativeACYAppAmt := 0;        IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Customer THEN BEGIN          IF DtldCustLedgEntry.FINDLAST THEN            DtldCustLedgEntryNoOffset := DtldCustLedgEntry."Entry No."          ELSE...

    Ny kode 3

    ...TotalAmountAddCurr := 0;        PositiveLCYAppAmt := 0;        PositiveACYAppAmt := 0;        NegativeLCYAppAmt := 0;        NegativeACYAppAmt := 0;// Add the following line.EntryUnapplied := FALSE;// End of the added line.        IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Customer THEN BEGIN          IF DtldCustLedgEntry.FINDLAST THEN            DtldCustLedgEntryNoOffset := DtldCustLedgEntry."Entry No."          ELSE...

    Eksisterende kode 4

    ... END;            InsertGLEntry(TRUE);            GenJnlLine."Posting Date" := OriginalPostingDate;          END;// Delete the following line.PostReceivableDocs(GenJnlLine);// End of the deleted line.          IF NOT GLEntryTmp.FINDFIRST AND ExistDtldCVLedgEntryBuf THEN BEGIN            InitGLEntry(CustPostingGr."Receivables Account",PositiveLCYAppAmt,PositiveACYAppAmt,FALSE,TRUE);            InsertGLEntry(FALSE);            InitGLEntry(CustPostingGr."Receivables Account",NegativeLCYAppAmt,NegativeACYAppAmt,FALSE,TRUE);...

    Ny kode 4

    ... END;            InsertGLEntry(TRUE);            GenJnlLine."Posting Date" := OriginalPostingDate;          END;// Add the following lines.WITH DtldCustLedgEntry3 DO BEGINSETCURRENTKEY("Cust. Ledger Entry No.");SETRANGE("Cust. Ledger Entry No.",DtldCustLedgEntry."Cust. Ledger Entry No.");SETFILTER("Applies-to Bill No.",'<>%1','');SETRANGE(Unapplied,TRUE);EntryUnapplied := NOT ISEMPTY;END;PostReceivableDocs(EntryUnapplied);// End of the added lines.          IF NOT GLEntryTmp.FINDFIRST AND ExistDtldCVLedgEntryBuf THEN BEGIN            InitGLEntry(CustPostingGr."Receivables Account",PositiveLCYAppAmt,PositiveACYAppAmt,FALSE,TRUE);            InsertGLEntry(FALSE);            InitGLEntry(CustPostingGr."Receivables Account",NegativeLCYAppAmt,NegativeACYAppAmt,FALSE,TRUE);...
  2. Endre koden i PostDtldVendLedgEntries -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:Eksisterende kode 1

    ...  PROCEDURE PostDtldVendLedgEntries@32(GenJnlLine2@1000 : Record 81;VAR DtldCVLedgEntryBuf@1001 : Record 383;VendPostingGr@1002 : Record 93;NextTransactionNo@1003 : Integer;VendLedgEntryInserted@1011 : Boolean);      VAR        DtldVendLedgEntry@1004 : Record 380;        Currency@1006 : Record 4;        GenPostingSetup@1007 : Record 252;        TotalAmountLCY@1008 : Decimal;        TotalAmountAddCurr@1009 : Decimal;        PaymentDiscAcc@1010 : Code[20];        DtldVendLedgEntryNoOffset@1005 : Integer;        PaymentTolAcc@1012 : Code[20];...

    Ny kode 1

    ...PROCEDURE PostDtldVendLedgEntries@32(GenJnlLine2@1000 : Record 81;VAR DtldCVLedgEntryBuf@1001 : Record 383;VendPostingGr@1002 : Record 93;NextTransactionNo@1003 : Integer;VendLedgEntryInserted@1011 : Boolean);      VAR        DtldVendLedgEntry@1004 : Record 380;        Currency@1006 : Record 4;        GenPostingSetup@1007 : Record 252;// Add the following line.DtldVendLedgEntry3@1100055 : Record 380;// End of the added line.        TotalAmountLCY@1008 : Decimal;        TotalAmountAddCurr@1009 : Decimal;        PaymentDiscAcc@1010 : Code[20];        DtldVendLedgEntryNoOffset@1005 : Integer;        PaymentTolAcc@1012 : Code[20];...

    Eksisterende kode 2

    ...PayableAccAmtLCY@1100002 : Decimal;        PayableAccAmtAddCurr@1100010 : Decimal;        DtldVendLedgEntry2@1100003 : Record 380;        ExistDtldCVLedgEntryBuf@1100004 : Boolean;        FindBill@1100005 : Boolean;      BEGIN        TotalAmountLCY := 0;        TotalAmountAddCurr := 0;        PositiveLCYAppAmt := 0;        PositiveACYAppAmt := 0;...

    Ny kode 2

    ...PayableAccAmtLCY@1100002 : Decimal;        PayableAccAmtAddCurr@1100010 : Decimal;        DtldVendLedgEntry2@1100003 : Record 380;        ExistDtldCVLedgEntryBuf@1100004 : Boolean;        FindBill@1100005 : Boolean;// Add the following line.EntryUnapplied@1100051 : Boolean;// End of the added line.      BEGIN        TotalAmountLCY := 0;        TotalAmountAddCurr := 0;        PositiveLCYAppAmt := 0;        PositiveACYAppAmt := 0;...

    Eksisterende kode 3

    ...TotalAmountAddCurr := 0;        PositiveLCYAppAmt := 0;        PositiveACYAppAmt := 0;        NegativeLCYAppAmt := 0;        NegativeACYAppAmt := 0;        IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Vendor THEN BEGIN          IF DtldVendLedgEntry.FINDLAST THEN            DtldVendLedgEntryNoOffset := DtldVendLedgEntry."Entry No."          ELSE...

    Ny kode 3

    ...TotalAmountAddCurr := 0;        PositiveLCYAppAmt := 0;        PositiveACYAppAmt := 0;        NegativeLCYAppAmt := 0;        NegativeACYAppAmt := 0;// Add the following line.EntryUnapplied := FALSE;// End of the added line.        IF GenJnlLine2."Account Type" = GenJnlLine2."Account Type"::Vendor THEN BEGIN          IF DtldVendLedgEntry.FINDLAST THEN            DtldVendLedgEntryNoOffset := DtldVendLedgEntry."Entry No."          ELSE...

    Eksisterende kode 4

    ...END;            InsertGLEntry(TRUE);            GenJnlLine."Posting Date" := OriginalPostingDate;          END;// Delete the following line.PostPayableDocs(GenJnlLine);// End of the deleted line.          IF NOT GLEntryTmp.FINDFIRST AND ExistDtldCVLedgEntryBuf THEN BEGIN            InitGLEntry(VendPostingGr."Payables Account",PositiveLCYAppAmt,PositiveACYAppAmt,FALSE,TRUE);            InsertGLEntry(FALSE);            InitGLEntry(VendPostingGr."Payables Account",NegativeLCYAppAmt,NegativeACYAppAmt,FALSE,TRUE);...

    Ny kode 4

    ...END;            InsertGLEntry(TRUE);            GenJnlLine."Posting Date" := OriginalPostingDate;          END;// Add the following lines.WITH DtldVendLedgEntry3 DO BEGINSETCURRENTKEY("Vendor Ledger Entry No.");SETRANGE("Vendor Ledger Entry No.",DtldVendLedgEntry."Vendor Ledger Entry No.");SETFILTER("Applies-to Bill No.",'<>%1','');SETRANGE(Unapplied,TRUE);EntryUnapplied := NOT ISEMPTY;END;PostPayableDocs(EntryUnapplied);// End of the added lines.          IF NOT GLEntryTmp.FINDFIRST AND ExistDtldCVLedgEntryBuf THEN BEGIN            InitGLEntry(VendPostingGr."Payables Account",PositiveLCYAppAmt,PositiveACYAppAmt,FALSE,TRUE);            InsertGLEntry(FALSE);            InitGLEntry(VendPostingGr."Payables Account",NegativeLCYAppAmt,NegativeACYAppAmt,FALSE,TRUE);...
  3. Endre koden i PostPayableDocs -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:Eksisterende kode 1

    ...ELSE            VATEntry."Bill-to/Pay-to No." := GenJnlLine2."Account No.";        END;      END;// Delete the following line.LOCAL PROCEDURE PostPayableDocs@1100009(VAR GenJnlLine@1100000 : Record 81);// End of the deleted line.      BEGIN        IF (DocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) THEN          IF NextEntryNo2 = NextEntryNo THEN            NextEntryNo := NextEntryNo - 1;        IF DocAmountLCY <> 0 THEN BEGIN...

    Ny kode 1

    ...ELSE            VATEntry."Bill-to/Pay-to No." := GenJnlLine2."Account No.";        END;      END;// Add the following line.LOCAL PROCEDURE PostPayableDocs@1100009(EntryUnapplied@1100001 : Boolean);// End of the added line.      BEGIN        IF (DocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) THEN          IF NextEntryNo2 = NextEntryNo THEN            NextEntryNo := NextEntryNo - 1;        IF DocAmountLCY <> 0 THEN BEGIN...

    Eksisterende kode 2

    ...BEGIN        IF (DocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) THEN          IF NextEntryNo2 = NextEntryNo THEN            NextEntryNo := NextEntryNo - 1;        IF DocAmountLCY <> 0 THEN BEGIN// Delete the following lines.// VSTF330588.begin//IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) THEN BEGINIF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) OR(GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::" ")THEN BEGIN// VSTF330588.end// End of the deleted lines.            VendPostingGr.TESTFIELD("Payables Account");            InitGLEntry(VendPostingGr."Payables Account",DocAmountLCY,DocAmtCalcAddCurrency(DocAmountLCY),TRUE,TRUE);            GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";            GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";            InsertGLEntry(TRUE);...

    Ny kode 2

    ...BEGIN        IF (DocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) THEN          IF NextEntryNo2 = NextEntryNo THEN            NextEntryNo := NextEntryNo - 1;        IF DocAmountLCY <> 0 THEN BEGIN// Add the following lines.IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) OREntryUnappliedTHEN BEGIN// End of the added lines.            VendPostingGr.TESTFIELD("Payables Account");            InitGLEntry(VendPostingGr."Payables Account",DocAmountLCY,DocAmtCalcAddCurrency(DocAmountLCY),TRUE,TRUE);            GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";            GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";            InsertGLEntry(TRUE);...
  4. Endre koden i PostReceivableDocs -funksjonen i Bokføringsgruppe varekld.-poster linje kodeenhet (12) som følger:Eksisterende kode 1

    ... GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";          InsertGLEntry(TRUE);        END;      END;// Delete the following line.LOCAL PROCEDURE PostReceivableDocs@1100003(VAR GenJnlLine@1100000 : Record 81);// End of the deleted line.      BEGIN        IF (DocAmountLCY <> 0) OR (DiscDocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) OR (RejDocAmountLCY <> 0) OR          (DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) OR (CollFactAmountLCY <> 0) THEN            IF NextEntryNo2 = NextEntryNo THEN              NextEntryNo := NextEntryNo - 1;...

    Ny kode 1

    ...GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";          InsertGLEntry(TRUE);        END;      END;// Add the following line.LOCAL PROCEDURE PostReceivableDocs@1100003(EntryUnapplied@1100001 : Boolean);// End of the added line.      BEGIN        IF (DocAmountLCY <> 0) OR (DiscDocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) OR (RejDocAmountLCY <> 0) OR          (DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) OR (CollFactAmountLCY <> 0) THEN            IF NextEntryNo2 = NextEntryNo THEN              NextEntryNo := NextEntryNo - 1;...

    Eksisterende kode 2

    ...IF (DocAmountLCY <> 0) OR (DiscDocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) OR (RejDocAmountLCY <> 0) OR          (DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) OR (CollFactAmountLCY <> 0) THEN            IF NextEntryNo2 = NextEntryNo THEN              NextEntryNo := NextEntryNo - 1;        IF DocAmountLCY <> 0 THEN BEGIN// Delete the following lines.// VSTF330588.begin//IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) THEN BEGINIF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) OR(GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::" ") THEN BEGIN// VSTF330588.end// End of the deleted lines.            CustPostingGr.TESTFIELD("Receivables Account");            InitGLEntry(CustPostingGr."Receivables Account",DocAmountLCY,DocAmtCalcAddCurrency(DocAmountLCY),TRUE,TRUE);            GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";            GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";            InsertGLEntry(TRUE);...

    Ny kode 2

    ...IF (DocAmountLCY <> 0) OR (DiscDocAmountLCY <> 0) OR (CollDocAmountLCY <> 0) OR (RejDocAmountLCY <> 0) OR          (DiscRiskFactAmountLCY <> 0) OR (DiscUnriskFactAmountLCY <> 0) OR (CollFactAmountLCY <> 0) THEN            IF NextEntryNo2 = NextEntryNo THEN              NextEntryNo := NextEntryNo - 1;        IF DocAmountLCY <> 0 THEN BEGIN// Add the following lines.IF (GenJnlLine."Applies-to Doc. Type" = GenJnlLine."Applies-to Doc. Type"::Invoice) OREntryUnappliedTHEN BEGIN// End of the added lines.            CustPostingGr.TESTFIELD("Receivables Account");            InitGLEntry(CustPostingGr."Receivables Account",DocAmountLCY,DocAmtCalcAddCurrency(DocAmountLCY),TRUE,TRUE);            GLEntry."Bal. Account Type" := GenJnlLine."Bal. Account Type";            GLEntry."Bal. Account No." := GenJnlLine."Bal. Account No.";            InsertGLEntry(TRUE);...

Forutsetninger

Du må ha én av de følgende programmene installert for å bruke denne hurtigreparasjonen:

  • Den spanske versjonen av Microsoft Dynamics NAV 2009 R2

  • Den spanske versjonen av Microsoft Dynamics NAV 2009 SP1

I tillegg må du ha installert KB3034441 .

Informasjon om fjerning

Du kan ikke fjerne denne hurtigreparasjonen.

Status

Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".

Obs! Dette er en "RASKT PUBLISERE" artikkel opprettet direkte fra innenfor organisasjonen Microsoft Kundestøtte. Informasjonen i dette dokumentet tilbys som-er som svar på nye problemer. Som et resultat av hastigheten i å gjøre den tilgjengelig materialene kan inkludere typografiske feil, og den kunne bli revidert når som helst uten varsel. Se Vilkårene for Brukfor andre hensyn.

Trenger du mer hjelp?

Vil du ha flere alternativer?

Utforsk abonnementsfordeler, bla gjennom opplæringskurs, finn ut hvordan du sikrer enheten og mer.

Fellesskap hjelper deg med å stille og svare på spørsmål, gi tilbakemelding og høre fra eksperter med stor kunnskap.