Pārdošanas rēķina transakcija, kas izveidota pamatlīdzeklim, izveido divas peļņas vai zaudējumu transakcijas, kas nav pareizas, ja PVN summa par pamatlīdzekļa iegādi tiek daļēji atskaitīta Microsoft Dynamics NAV itāļu versijā

Attiecas uz
Microsoft Dynamics NAV 2009 R2 Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 5.0 Service Pack 1

Šis raksts attiecas uz Microsoft Dynamics NAV itāļu valodas (IT) valodas lokalizācijai.

Pazīmes

Pieņemsim, ka jums ir pamatlīdzekļi Microsoft Dynamics NAV itāļu versijā. Pievienotās vērtības nodokļa (PVN) summa par pamatlīdzekļa iegādi tiek daļēji atskaitīta. Šajā situācijā, ja pārdodat pamatlīdzekli, attiecīgā pārdošanas rēķina transakcija izveido divas peļņas vai zaudējumu transakcijas, nevis vienu transakciju.
Šī problēma rodas šādos produktos:

  • Microsoft Dynamics NAV 2009 R2 itāļu valodas versija
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) itāļu valodas versija
  • Microsoft Dynamics NAV 5.0 1. servisa pakotnes (SP1) itāļu versija

Risinājums

Informācija par labojumfailu

Atbalstīts labojumfails tagad ir pieejams no Microsoft. Tomēr tas ir paredzēts tikai šajā rakstā aprakstītās problēmas novēršanai. Lietojiet to tikai sistēmām, kurās rodas šī konkrētā problēma. Šim labojumfailam var tikt veiktas papildu pārbaudes. Tāpēc, ja šī problēma jūs nopietni neietekmē, ieteicams gaidīt nākamo Microsoft Dynamics NAV servisa pakotni vai nākamo Microsoft Dynamics NAV versiju, kurā ir šis labojumfails.

Piezīme Īpašos gadījumos maksa, kas parasti tiek piemērota par atbalsta zvaniem, var tikt atcelta, ja Microsoft Dynamics un saistīto produktu tehniskā atbalsta speciālists nosaka, ka problēma tiks novērsta, instalējot noteiktu atjauninājumu. Parasti atbalsta izmaksas attiecas uz jautājumiem par papildu atbalstu un problēmām, kas neskar specifisko atjauninājumu apspriešanu.

            
          

Informācija par instalāciju

Microsoft sniedz programmēšanas piemērus tikai ilustrācijai, bez tiešas vai netiešas garantijas. Tas ietver, bet neaprobežojas ar netiešām garantijām par piemērotību pārdošanai vai piemērotībai noteiktam mērķim. Šajā rakstā tiek pieņemts, ka pārzināt demonstrējamo programmēšanas valodu un rīkus, kas tiek izmantoti procedūru izveidei un atkļūdošanai. Microsoft atbalsta inženieri var palīdzēt izskaidrot konkrētās procedūras funkcionalitāti, bet viņi šos piemērus nemodificēs, lai nodrošinātu papildu funkcionalitāti vai veidotu procedūras, kas atbilst jūsu specifiskajām prasībām.

Piezīme Pirms šī labojumfaila instalēšanas pārliecinieties, vai visi Microsoft Navision klienta lietotāji ir atteikušies no sistēmas. Tas ietver Microsoft Navision lietojumprogrammu pakalpojumu (NAS) klienta lietotājus. Jūs esat vienīgais klienta lietotājs, kurš ir pieteicies, ieviešot šo labojumfailu.

Lai ieviestu šo labojumfailu, ir nepieciešama izstrādātāja licence.

Iesakām lietotāja kontam logā Windows pieteikšanās vai datu bāzes pieteikšanās logā piešķirt lomas ID "SUPER". Ja lietotāja kontam nevar piešķirt "SUPER" lomas ID, jums ir jāpārbauda, vai lietotāja kontam ir šādas atļaujas:

  • Modificēt objektu, kuru mainīsit.
  • Izpildes atļauja sistēmas objekta ID 5210 un sistēmas objekta ID 9015.

                
Piezīme. Jums nav tiesību uz datu krātuvēm, ja vien jums nav jāveic datu labošana.

Koda izmaiņas

Piezīme Pirms labojumu lietošanas ražošanas datoros vienmēr pārbaudiet koda labojumus kontrolētā vidē.
Lai atrisinātu šo problēmu, veiciet tālāk norādītās darbības.

  1. Mainiet kodu datu posteņa numurā 3 kontu grāmatas lapā - drukāt atskaiti (12109) šādi:
    Esošais kods

    ...
    CurrReport.CREATETOTALS(Amount,IcreasesAmnt,DecreasesAmnt,"Additional-Currency Amount");
    END;
    
    // Delete the following lines.
    OnAfterGetRecord=BEGIN
    CALCFIELDS(Amount,"Debit Amount","Credit Amount","Additional-Currency Amount");
    
    IF NOT UseAmtsInAddCurr THEN BEGIN
    Amnt := Amnt + Amount;
    IF Amount > 0 THEN
    IcreasesAmnt := Amount
    ELSE
    DecreasesAmnt := ABS(Amount);
    END ELSE BEGIN
    Amnt := Amnt + "Additional-Currency Amount";
    IF "Additional-Currency Amount" > 0 THEN
    IcreasesAmnt := "Additional-Currency Amount"
    ELSE
    DecreasesAmnt := ABS("Additional-Currency Amount");
    END;
    // End of the lines.
    
    END;
    
    DataItemLinkReference=G/L Account;
    ...
    

    Aizstāšanas kods

    ...
    CurrReport.CREATETOTALS(Amount,IcreasesAmnt,DecreasesAmnt,"Additional-Currency Amount");
    END;
    
    // Add the following lines.
    OnAfterGetRecord=VAR
    GroupAmount@1130001 : Decimal;
    BEGIN
    CALCFIELDS(Amount,"Debit Amount","Credit Amount","Additional-Currency Amount");
    IF TempGLBookEntry.GET("Entry No.") THEN
    CurrReport.SKIP
    ELSE BEGIN
    GroupAmount := GroupBookEntry("GL Book Entry",UseAmtsInAddCurr);
    Amnt += GroupAmount;
    IF GroupAmount > 0 THEN BEGIN
    IcreasesAmnt := ABS(GroupAmount);
    DecreasesAmnt := 0;
    END ELSE BEGIN
    IcreasesAmnt := 0;
    DecreasesAmnt := ABS(GroupAmount);
    END;
    END;
    // End of the lines.
    
    END;
    
    DataItemLinkReference=G/L Account;
    ...
    
  2. Mainiet kodu datu posteņa numura 3 sadaļās kontu grāmatas lapā - drukāt atskaiti (12109) šādi:
    Esošais kods

    ...
    { 1130104;TextBox ;18000;423 ;1800 ;423 ;SourceExpr=Amnt;
    AutoFormatType=1;
    DataSetFieldName=Amnt_Control1130104 }
    
    // Delete the following line.
    { 1130105;TextBox ;18000;846 ;1800 ;423 ;SourceExpr=StartOnHand + Amount;
    
    AutoFormatType=1;
    DataSetFieldName=StartOnHand___Amount_Control1130105 }
    ...
    

    Aizstāšanas kods

    ...
    { 1130104;TextBox ;18000;423 ;1800 ;423 ;SourceExpr=Amnt;
    AutoFormatType=1;
    DataSetFieldName=Amnt_Control1130104 }
    
    // Add the following line.
    { 1130105;TextBox ;18000;846 ;1800 ;423 ;SourceExpr=StartOnHand + IcreasesAmnt - DecreasesAmnt;
    
    AutoFormatType=1;
    DataSetFieldName=StartOnHand___Amount_Control1130105 }
    { 1130111;TextBox ;0 ;846 ;150 ;423 ;Name=TotalAmount;
    ...
    
  3. Pievienojiet jaunu globālo mainīgo lodziņā Grāmata Lapa — drukāt atskaiti (12109) un pēc tam norādiet mainīgo šādi:

    • Nosaukums: TempGLBookEntry
    • DataType: TEMPORARY Record
    • Apakštips: GL grāmatas ieraksts (12144)
  4. Pievienojiet lokālu funkciju kontu grāmatas lapā — drukāt atskaiti (12109), kā norādīts tālāk:

    LOCAL PROCEDURE GroupBookEntry@1130001(GLBookEntry@1130001 : Record 12144;UseAmtsInAddCurr@1130002 : Boolean) GroupAmount@1130003 : Decimal;
    VAR
    GLBookEntry1@1130004 : Record 12144;
    BEGIN
    GLBookEntry1.SETRANGE("G/L Account No.",GLBookEntry."G/L Account No.");
    GLBookEntry1.SETRANGE("Transaction No.",GLBookEntry."Transaction No.");
    IF GLBookEntry1.FINDSET THEN
    REPEAT
    TempGLBookEntry."Entry No." := GLBookEntry1."Entry No.";
    TempGLBookEntry.INSERT;
    GLBookEntry1.CALCFIELDS(Amount,"Additional-Currency Amount");
    IF UseAmtsInAddCurr THEN
    GroupAmount := GroupAmount + GLBookEntry1."Additional-Currency Amount"
    ELSE
    GroupAmount := GroupAmount + GLBookEntry1.Amount;
    UNTIL GLBookEntry1.NEXT = 0;
    EXIT(GroupAmount);
    END;
    
  5. Mainiet kodu datu postenī Nr. 2 DK grāmata — drukāt atskaiti (12121) šādi:
    Esošs kods 1

    ...
    END;
    END;
    
    // Delete the following lines.
    OnAfterGetRecord=BEGIN
    IF ReportType = ReportType::Reprint THEN
    LastNo := "Progressive No."
    ELSE
    LastNo := LastNo + 1;
    // End of the lines.
    
    TotalDebit := TotalDebit + "Debit Amount";
    TotalCredit := TotalCredit + "Credit Amount";
    ...
    

    Nomaiņas kods 1

    ...
    END;
    END;
    
    // Add the following lines.
    OnAfterGetRecord=VAR
    GroupAmount@1130001 : Decimal;
    BEGIN
    // End of the lines.
    
    TotalDebit := TotalDebit + "Debit Amount";
    TotalCredit := TotalCredit + "Credit Amount";
    ...
    

    Esošs kods 2

    ...
    END;
    "Source Type" :: "Fixed Asset":
    BEGIN
    FA.GET("Source No.");
    Descr := FA.Description;
    END;
    ...
    

    Nomaiņas kods 2

    ...
    END;
    "Source Type" :: "Fixed Asset":
    BEGIN
    
    // Add the following lines.
    IF TempGLBookEntry.GET("Entry No.") THEN
    CurrReport.SKIP
    ELSE BEGIN
    GroupAmount := GroupBookEntry("GL Book Entry");
    IF GroupAmount > 0 THEN BEGIN
    "Debit Amount" := GroupAmount;
    "Credit Amount" := 0;
    END ELSE BEGIN
    "Debit Amount" := 0;
    "Credit Amount" := GroupAmount;
    END;
    END;
    // End of the lines.
    
    FA.GET("Source No.");
    Descr := FA.Description;
    END;
    ...
    

    Esošais kods 3

    ...
    ELSE
    Descr := '';
    END;
    
    
    IF (NOT CurrReport.PREVIEW) AND
    (ReportType = ReportType::"Final Print")
    THEN BEGIN
    ...
    

    Nomaiņas kods 3

    ...
    ELSE
    Descr := '';
    END;
    
    // Add the following lines.
    IF ReportType = ReportType::Reprint THEN
    LastNo := "Progressive No."
    ELSE
    LastNo := LastNo + 1;
    // End of the lines.
    
    IF (NOT CurrReport.PREVIEW) AND
    (ReportType = ReportType::"Final Print")
    THEN BEGIN
    ...
    
  6. Pievienojiet jaunu globālo mainīgo DK grāmatas drukāšanas atskaitē (12121) un pēc tam mainīgo norādiet šādi:

    • Nosaukums: TempGLBookEntry
    • DataType: TEMPORARY Record
    • Apakštips: GL grāmatas ieraksts (12144)
  7. Mainiet kodu DK grāmatas drukāšanas atskaitē (12121) šādi:
    Esošais kods

    ...
    EndDate := Date."Period Start" - 1;
    END;
    ...
    

    Aizstāšanas kods

    ...
    EndDate := Date."Period Start" - 1;
    END;
    
    // Add the following lines.
    LOCAL PROCEDURE GroupBookEntry@1130002(GLBookEntry@1130001 : Record 12144) GroupAmount@1130002 : Decimal;
    VAR
    GLBookEntry1@1130003 : Record 12144;
    BEGIN
    GLBookEntry1.SETRANGE("G/L Account No.",GLBookEntry."G/L Account No.");
    GLBookEntry1.SETRANGE("Transaction No.",GLBookEntry."Transaction No.");
    IF GLBookEntry1.FINDSET THEN
    REPEAT
    TempGLBookEntry."Entry No." := GLBookEntry1."Entry No.";
    TempGLBookEntry.INSERT;
    GLBookEntry1.CALCFIELDS(Amount);
    GroupAmount := GroupAmount + GLBookEntry1.Amount;
    UNTIL GLBookEntry1.NEXT = 0;
    EXIT(GroupAmount);
    END;
    // End of the lines.
    ...
    

Priekšnosacījumi

Lai lietotu šo labojumfailu, jābūt instalētam vienam no tālāk norādītajiem produktiem:

  • Microsoft Dynamics NAV 2009 R2 itāļu valodas versija
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) itāļu valodas versija
  • Microsoft Dynamics NAV 5.0 1. servisa pakotnes (SP1) itāļu versija

Noņemšanas informācija

Šo labojumfailu nevar noņemt.

Statuss

Microsoft apstiprināja, ka šī ir problēma Microsoft produktos, kas norādīti sadaļā "attiecas uz".

Piezīme Šis ir "ĀTRĀS PUBLICĒŠANAS" raksts, kas izveidots tieši Microsoft atbalsta organizācijā. Šeit ietvertā informācija tiek sniegta tāda, kāda tā ir, reaģējot uz jauniem jautājumiem. Ātrās pieejamības rezultātā materiālos var būt drukas kļūdas, un tos var pārskatīt jebkurā laikā bez iepriekšēja brīdinājuma. Citus apsvērumus skatiet lietošanas nosacījumos .