Symptom
När du har installerat KB2982157, om du använder funktionen med specificerad moms tillsammans med flera partner summor summeras för varje partner utan återställs till noll i den ungerska versionen av Microsoft Dynamics NAV 2009 R2. Följ instruktionerna i avsnittet kod ändras för att lösa problemet. Det här problemet uppstår i följande produkter:
-
Den ungerska versionen av Microsoft Dynamics NAV 2009 R2
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:
-
Ändra koden i specificerade momsrapporten rapport (14522) enligt följande:
Befintlig kod...PartnerId := PartnerBuffer."Partner ID";
PartnerVatId := PartnerBuffer."VAT Registration No.";
PartnerName := GetPartnerName(PartnerType,PartnerId);
Buffer.RESET;
SetBufferFilters(PartnerType,PartnerId,PartnerVatId);
...Ersättningskod
...PartnerId := PartnerBuffer."Partner ID";
PartnerVatId := PartnerBuffer."VAT Registration No.";
PartnerName := GetPartnerName(PartnerType,PartnerId);
// Add the following line.
PartnerBufferIsSet := TRUE;
// End of the added line.
Buffer.RESET;
SetBufferFilters(PartnerType,PartnerId,PartnerVatId);
... -
Ändra koden i globala variabler i specificerade momsrapporten rapport (14522) enligt följande:
Befintlig kod 1...VAR
CompanyInfo@1170000002 : Record 79;
Buffer@1170000007 : TEMPORARY Record 14550;
PartnerBuffer@1170000008 : TEMPORARY Record 14551;
PartnerName@1170000012 : Text[250];
PartnerVatId@1170000013 : Text[30];
...Ersättningskod 1
...VAR
CompanyInfo@1170000002 : Record 79;
Buffer@1170000007 : TEMPORARY Record 14550;
// Add the following line.
TempBuffer@1170000059 : TEMPORARY Record 14550;
// End of the added line.
PartnerBuffer@1170000008 : TEMPORARY Record 14551;
PartnerName@1170000012 : Text[250];
PartnerVatId@1170000013 : Text[30];
...Befintlig kod 2
...VatAmount6@1170000050 : Decimal;
TotalOf1365Mline@1170000057 : TextConst 'ENU=Total of %1 line %2';
TotalOf1365M@1170000058 : TextConst 'ENU=Total of %1';
PROCEDURE SetBuffer@1170000000(VAR Buff@1170000000 : Record 14550;StartPeriod@1170000001 : Date;EndPeriod@1170000002 : Date;VATThresholdAmt@1170000003 : Decimal);
BEGIN
...Ersättningskod 2
...VatAmount6@1170000050 : Decimal;
TotalOf1365Mline@1170000057 : TextConst 'ENU=Total of %1 line %2';
TotalOf1365M@1170000058 : TextConst 'ENU=Total of %1';
// Add the following line.
PartnerBufferIsSet@1170000056 : Boolean;
// End of the added line.
PROCEDURE SetBuffer@1170000000(VAR Buff@1170000000 : Record 14550;StartPeriod@1170000001 : Date;EndPeriod@1170000002 : Date;VATThresholdAmt@1170000003 : Decimal);
BEGIN
... -
Ändra koden i funktionen CalcPartnerTotals i rapporten specificerade momsrapporten (14522) enligt följande:
Befintlig kod... LOCAL PROCEDURE CalcPartnerTotals@1170000006(VAR Buff@1170000003 : Record 14550;VAR NumInvoices@1170000001 : Integer;VAR VatBase@1170000002 : Decimal;VAR VatAmount@1170000004 : Decimal);
BEGIN
// Delete the following lines.
NumInvoices := Buff.COUNT;
IF Buff.FINDSET THEN
REPEAT
VatBase += ConvertToThousands(Buff."VAT Base");
VatAmount += ConvertToThousands(Buff."VAT Amount");
UNTIL Buff.NEXT = 0;
END;
LOCAL PROCEDURE CalcAllTotals@1170000015();
// End of the deleted lines.
...Ersättningskod
...LOCAL PROCEDURE CalcPartnerTotals@1170000006(VAR Buff@1170000003 : Record 14550;VAR NumInvoices@1170000001 : Integer;VAR VatBase@1170000002 : Decimal;VAR VatAmount@1170000004 : Decimal);
BEGIN
// Add the following lines.
VatBase := 0;
VatAmount := 0;
NumInvoices := Buff.COUNT;
IF Buff.FINDSET THEN BEGIN
IF Buff."1365M" THEN BEGIN
IF PartnerBufferIsSet THEN BEGIN
Buff.CALCSUMS("VAT Base", "VAT Amount");
VatBase := ConvertToThousands(Buff."VAT Base");
VatAmount := ConvertToThousands(Buff."VAT Amount");
END ELSE BEGIN
REPEAT
VatAmount += CalcPartnerSubTotal(Buff."VAT Registration No.");
UNTIL Buff.NEXT = 0;
END;
END ELSE
REPEAT
VatBase += ConvertToThousands(Buff."VAT Base");
VatAmount += ConvertToThousands(Buff."VAT Amount");
UNTIL Buff.NEXT = 0;
END;
END;
LOCAL PROCEDURE CalcPartnerSubTotal@1170000004(VATRegNo@1170000000 : Text[20]) VatAmount : Decimal;
VAR
Buffer2@1170000001 : Record 14550;
EntryNo@1170000002 : Integer;
BEGIN
TempBuffer.RESET;
TempBuffer.SETRANGE("VAT Registration No.",VATRegNo);
IF NOT TempBuffer.FINDFIRST THEN BEGIN
EntryNo := 0;
TempBuffer.RESET;
IF TempBuffer.FINDLAST THEN
EntryNo := TempBuffer.EntryNo + 1;
TempBuffer.INIT;
TempBuffer.EntryNo := EntryNo;
TempBuffer."VAT Registration No." := VATRegNo;
TempBuffer.INSERT;
Buffer2.RESET;
Buffer2.SETRANGE("1365M-01");
Buffer2.SETRANGE("1365M-01K");
Buffer2.SETRANGE("1365M-02");
Buffer2.SETRANGE("1365M-02K");
Buffer2.SETRANGE("1365M",TRUE);
Buffer2.SETRANGE("K-Correction Type");
Buffer2.SETRANGE("VAT Registration No.",VATRegNo);
IF Buffer2.FINDSET THEN
REPEAT
VatAmount += Buffer2."VAT Amount";
UNTIL Buffer2.NEXT = 0;
EXIT(ConvertToThousands(VatAmount));
END;
END;
LOCAL PROCEDURE CalcAllTotals@1170000015();
// End of the added lines.
...
Förutsättningar
Du måste ha någon av följande produkter som har installerat den här snabbkorrigeringen:
-
Den ungerska versionen av Microsoft Dynamics NAV 2009 R2
Dessutom måste du ha KB2982157 och MSDNAV2009R2ItemizedVAtHungary installerat.
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.