Logga in med Microsoft
Logga in eller skapa ett konto.
Hej,
Välj ett annat konto.
Du har flera konton
Välj det konto som du vill logga in med.

Bokförda transaktioner är felaktig i tabellen återföring (179) när du återför en betalning som har tagits bort i den italienska versionen av Microsoft Dynamics NAV 2009. Det här problemet kvarstår efter att snabbkorrigeringen 2802054. Följ instruktionerna i avsnittet kod ändras för att lösa problemet. Det här problemet uppstår i följande produkter:

  • Den italienska versionen av Microsoft Dynamics NAV 2009 R2

  • Den italienska versionen av Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Lösning

Information om snabbkorrigeringen

En snabbkorrigering är nu tillgänglig från Microsoft. Den är endast avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på Nästa service pack-versionen för Microsoft Dynamics NAV 2009 eller nästa Microsoft Dynamics NAV-version som innehåller den här snabbkorrigeringen.

Obs! I särskilda fall, de avgifter som är normalt för support vara avgiftsfri om en supporttekniker för Microsoft Dynamics och relaterade produkter som bestämmer att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.

Installationsinformation

Microsoft tillhandahåller programmeringsexempel endast utan garanti varken uttryckliga eller underförstådda. Detta inkluderar men är inte begränsat till, underförstådda garantier om säljbarhet eller lämplighet för ett särskilt ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till att förklara funktionen hos en viss procedur. De kommer inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov.

Obs! Innan du installerar den här snabbkorrigeringen måste du kontrollera att alla användare i Microsoft Dynamics NAV-klienten har loggat ut. Detta omfattar tjänster för Microsoft Dynamics NAV Application Server (NAS). Du ska endast klientanvändare som är inloggad när du implementerar den här snabbkorrigeringen.

Om du vill genomföra den här snabbkorrigeringen måste du ha en utvecklarlicens.

Vi rekommenderar att tilldelas användarkontot i fönstret Windows-inloggningar eller i fönstret databasinloggningar "SUPER" roll-ID. Om användarkontot inte kan tilldelas "SUPER" roll-ID måste du kontrollera att användarkontot har följande behörigheter:

  • Ändra behörighet för objektet ändras.

  • Körbehörighet för systemet objektet ID 5210 objekt och System objektet ID 9015

    objektet.

Obs! Du har inte behörighet för datalager inte data reparation.

Kod ändras

Obs! Alltid åtgärdas testa koden i en kontrollerad miljö innan du installerar korrigeringar för produktionsdatorer.

Lös problemet så här:

  1. Ändra koden i globala variabler i tabellen återföring (179) enligt följande:
    Befintlig kod

    ...PostApplied@1029 : Boolean;
    Text012@1028 : TextConst 'ENU=You cannot reverse register No. %1 because it contains customer or vendor ledger entries that have been posted and applied in the same transaction.\\You must reverse each transaction in register No. %1 separately.;ITA=Impossibile stornare il registro Nr. %1 perch‚ contiene movimenti contabili clienti o fornitori che sono stati registrati e collegati nella stessa transazione.\\Ô necessario stornare separatamente ogni transazione nel registro Nr. %1.';

    PROCEDURE ReverseTransaction@8(TransactionNo@1000 : Integer);
    ...

    Ersättningskod

    ...PostApplied@1029 : Boolean;
    Text012@1028 : TextConst 'ENU=You cannot reverse register No. %1 because it contains customer or vendor ledger entries that have been posted and applied in the same transaction.\\You must reverse each transaction in register No. %1 separately.;ITA=Impossibile stornare il registro Nr. %1 perch‚ contiene movimenti contabili clienti o fornitori che sono stati registrati e collegati nella stessa transazione.\\Ô necessario stornare separatamente ogni transazione nel registro Nr. %1.';

    // Add the following line.
    Text013@1039 : TextConst 'ENU=You cannot reverse %1 No. %2 because the entry has an associated Realized Gain/Loss entry.';

    PROCEDURE ReverseTransaction@8(TransactionNo@1000 : Integer);
    ...
  2. Ändra koden i funktionen InsertReversalEntry i tabellen återföring (179) enligt följande:
    Befintlig kod 1

    ...DtldCustLedgEntry.SETFILTER(
    DtldCustLedgEntry."Entry Type",'<>%1',DtldCustLedgEntry."Entry Type"::"Initial Entry");

    // Delete the following lines.
    IF DtldCustLedgEntry.FIND('-') THEN BEGIN
    IF RevType = RevType::Register THEN
    ERROR(Text012,Number);
    CLEAR(DtldCustLedgEntry);
    DtldCustLedgEntry.SETCURRENTKEY("Cust. Ledger Entry No.");
    DtldCustLedgEntry.SETRANGE("Cust. Ledger Entry No.",CustLedgEntry."Entry No.");
    DtldCustLedgEntry.SETRANGE(Unapplied,TRUE);
    IF DtldCustLedgEntry.FIND('-') THEN BEGIN
    REPEAT
    TempRevertTransactionNo.Number := DtldCustLedgEntry."Transaction No.";
    IF TempRevertTransactionNo.INSERT THEN;
    UNTIL DtldCustLedgEntry.NEXT = 0;
    END;
    END;
    // End of the deleted lines.

    UNTIL CustLedgEntry.NEXT = 0;
    ...

    Ersättningskod 1

    ...DtldCustLedgEntry.SETFILTER(
    DtldCustLedgEntry."Entry Type",'<>%1',DtldCustLedgEntry."Entry Type"::"Initial Entry");

    // Add the following lines.
    IF NOT DtldCustLedgEntry.ISEMPTY THEN
    IF RevType = RevType::Register THEN
    ERROR(Text012,Number);
    CheckDtldCustLedgEntry(CustLedgEntry);
    // End of the added lines.

    UNTIL CustLedgEntry.NEXT = 0;
    ...

    Befintlig kod 2

    ...DtldVendLedgEntry.SETFILTER(
    DtldVendLedgEntry."Entry Type",'<>%1',DtldVendLedgEntry."Entry Type"::"Initial Entry");

    // Delete the following lines.
    IF DtldVendLedgEntry.FIND('-') THEN BEGIN
    IF RevType = RevType::Register THEN
    ERROR(Text012,Number);
    CLEAR(DtldVendLedgEntry);
    DtldVendLedgEntry.SETCURRENTKEY("Vendor Ledger Entry No.");
    DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",VendLedgEntry."Entry No.");
    DtldVendLedgEntry.SETRANGE(Unapplied,TRUE);
    IF DtldVendLedgEntry.FIND('-') THEN BEGIN
    REPEAT
    TempRevertTransactionNo.Number := DtldVendLedgEntry."Transaction No.";
    IF TempRevertTransactionNo.INSERT THEN;
    UNTIL DtldVendLedgEntry.NEXT = 0;
    END;
    END;
    // End of the deleted lines.

    UNTIL VendLedgEntry.NEXT = 0;
    ...

    Ersättningskod 2

    ...DtldVendLedgEntry.SETFILTER(
    DtldVendLedgEntry."Entry Type",'<>%1',DtldVendLedgEntry."Entry Type"::"Initial Entry");

    // Add the following lines.
    IF NOT DtldVendLedgEntry.ISEMPTY THEN
    IF RevType = RevType::Register THEN
    ERROR(Text012,Number);
    CheckDtldVendLedgEntry(VendLedgEntry);
    // End of the added lines.

    UNTIL VendLedgEntry.NEXT = 0;
    ...
  3. Ändra koden i funktionen CheckDtldCustLedgEntry i tabellen återföring (179) enligt följande:
    Befintlig kod

    ...DtldCustLedgEntry@1001 : Record 379;
    BEGIN

    // Delete the following lines.
    DtldCustLedgEntry.SETCURRENTKEY("Cust. Ledger Entry No.");
    DtldCustLedgEntry.SETRANGE("Cust. Ledger Entry No.",CustLedgEntry."Entry No.");
    IF DtldCustLedgEntry.FIND('-') THEN
    REPEAT
    IF (DtldCustLedgEntry."Entry Type" <> DtldCustLedgEntry."Entry Type"::"Initial Entry") AND
    (NOT DtldCustLedgEntry.Unapplied)
    THEN
    ERROR(
    Text000,CustLedgEntry.TABLECAPTION,CustLedgEntry."Entry No.");
    UNTIL DtldCustLedgEntry.NEXT = 0;
    // End of the deleted lines.

    END;
    ...

    Ersättningskod

    ...DtldCustLedgEntry@1001 : Record 379;
    BEGIN

    // Add the following lines.
    DtldCustLedgEntry.SETCURRENTKEY("Cust. Ledger Entry No.","Entry Type");
    DtldCustLedgEntry.SETRANGE("Cust. Ledger Entry No.",CustLedgEntry."Entry No.");
    DtldCustLedgEntry.SETFILTER("Entry Type",'<>%1',DtldCustLedgEntry."Entry Type"::"Initial Entry");
    DtldCustLedgEntry.SETRANGE(Unapplied,FALSE);
    IF NOT DtldCustLedgEntry.ISEMPTY THEN
    ERROR(Text000,CustLedgEntry.TABLECAPTION,CustLedgEntry."Entry No.");

    DtldCustLedgEntry.SETRANGE(Unapplied);
    DtldCustLedgEntry.SETFILTER("Entry Type",'%1|%2',
    DtldCustLedgEntry."Entry Type"::"Realized Gain",DtldCustLedgEntry."Entry Type"::"Realized Loss");
    IF NOT DtldCustLedgEntry.ISEMPTY THEN
    ERROR(Text013,CustLedgEntry.TABLECAPTION,CustLedgEntry."Entry No.");
    // End of the added lines.

    END;
    ...
  4. Ändra koden i funktionen CheckDtldVendLedgEntry i tabellen återföring (179) enligt följande:
    Befintlig kod

    ...DtldVendLedgEntry@1001 : Record 380;
    BEGIN

    // Delete the following lines.
    DtldVendLedgEntry.SETCURRENTKEY("Vendor Ledger Entry No.");
    DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",VendLedgEntry."Entry No.");
    IF DtldVendLedgEntry.FIND('-') THEN
    REPEAT
    IF (DtldVendLedgEntry."Entry Type" <> DtldVendLedgEntry."Entry Type"::"Initial Entry") AND
    (NOT DtldVendLedgEntry.Unapplied)
    THEN
    ERROR(
    Text000,VendLedgEntry.TABLECAPTION,VendLedgEntry."Entry No.");
    UNTIL DtldVendLedgEntry.NEXT = 0;
    // End of the deleted lines.

    END;
    ...

    Ersättningskod

    ...DtldVendLedgEntry@1001 : Record 380;
    BEGIN

    // Add the following lines.
    DtldVendLedgEntry.SETCURRENTKEY("Vendor Ledger Entry No.","Entry Type");
    DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",VendLedgEntry."Entry No.");
    DtldVendLedgEntry.SETFILTER("Entry Type",'<>%1',DtldVendLedgEntry."Entry Type"::"Initial Entry");
    DtldVendLedgEntry.SETRANGE(Unapplied,FALSE);
    IF NOT DtldVendLedgEntry.ISEMPTY THEN
    ERROR(Text000,VendLedgEntry.TABLECAPTION,VendLedgEntry."Entry No.");

    DtldVendLedgEntry.SETRANGE(Unapplied);
    DtldVendLedgEntry.SETFILTER("Entry Type",'%1|%2',
    DtldVendLedgEntry."Entry Type"::"Realized Gain",DtldVendLedgEntry."Entry Type"::"Realized Loss");
    IF NOT DtldVendLedgEntry.ISEMPTY THEN
    ERROR(Text013,VendLedgEntry.TABLECAPTION,VendLedgEntry."Entry No.");
    // End of the added lines.

    END;
    ...


Förutsättningar

Du måste ha någon av följande produkter som har installerat den här snabbkorrigeringen:

  • Den italienska versionen av Microsoft Dynamics NAV 2009 R2

  • Den italienska versionen av Microsoft Dynamics NAV 2009 SP1

Information om borttagning

Du kan inte ta bort den här snabbkorrigeringen.

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Obs! Detta är en "SNABBPUBLICERING"-artikel skapad direkt från Microsoft support-organisationen. Informationen häri tillhandahålls i befintligt skick som svar på nya problem. Till följd av hastigheten för att göra det tillgängligt kan materialet innehålla typografiska fel och kan ändras när som helst utan föregående meddelande. Se Villkoren för användningför andra överväganden.

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.

Hade du nytta av den här informationen?

Hur nöjd är du med språkkvaliteten?
Vad påverkade din upplevelse?
Genom att trycka på skicka, kommer din feedback att användas för att förbättra Microsofts produkter och tjänster. IT-administratören kan samla in denna data. Sekretesspolicy.

Tack för din feedback!

×