Aruanne "Hankija raamatupidamiskaart" (12445) kuvab valed tulemid pärast seda, kui olete tasunud ettemaksu, mis kasutab välisvaluutat Microsoft Dynamics NAV 2009 vene versioonis

Rakenduskoht
Dynamics NAV 2009

See artikkel kehtib Microsoft Dynamics NAV vene keele (ru) lokaadi kohta.

Sümptomid

Oletame, et teil on ettemaksu tööleht, mis kasutab välisvaluuta hankija Microsoft Dynamics NAV 2009 vene versioonis. Ettemaksu saate tasuda arvega, mis kasutab valuuta jaoks mõnda muud vahetuskurssi. Sellises olukorras, kui käivitate "Hankija raamatupidamise kaart" aruande (12445) ettemaksu, kuvatakse valed tulemid. See probleem ilmneb ka aruandes "Customer Accounting Card" (12441) pärast seda, kui olete tasunud ettemaksu kliendi välisvaluutas. See probleem ilmneb järgmistes toodetes:

  • Microsoft Dynamics NAV 2009 R2 venekeelne versioon
  • Microsoft Dynamics NAV 2009 hoolduspaketi Service Pack 1 venekeelne versioon

      

Lahendus

Kiirparanduse teave

Microsoftilt on nüüd saadaval toetatud kiirparandus. Siiski on see mõeldud ainult selles artiklis kirjeldatud probleemi lahendamiseks. Rakendage see ainult süsteemidele, kus esineb see konkreetne probleem. See kiirparandus võib saada täiendavaid katseid. Seega, kui see probleem ei mõjuta teid tõsiselt, soovitame oodata järgmist Microsoft Dynamics NAV 2009 hoolduspaketti või järgmist Microsoft Dynamics NAV versiooni, mis sisaldab seda kiirparandust.

Märkus. Erijuhtudel võidakse tavaliselt tugiteenuse kõnede eest tehtud tasud tühistada, kui Microsoft Dynamicsi ja seotud toodete tehniline tugitöötaja leiab, et konkreetne värskendus lahendab teie probleemi. Tavapärased toetuskulud kehtivad täiendavatele tugiteenustega seotud küsimustele ja probleemidele, mis ei vasta kõnealuse värskenduse tingimustele.

            
          

Installiteave

Microsoft pakub programmeerimise näiteid ainult illustreerimiseks, ilma et garantii oleks väljendatud või kaudselt. See hõlmab kaubastatavuse või kindlaks otstarbeks sobivuse kaudseid garantiisid, kuid mitte ainult. Selles artiklis eeldatakse, et olete tuttav kuvatava programmeerimiskeelega ja tööriistadega, mida kasutatakse protseduuride loomiseks ja silumiseks. Microsofti tugiteenuste insenerid saavad aidata selgitada konkreetse protseduuri funktsionaalsust, kuid nad ei muuda neid näiteid selleks, et pakkuda teie vajadustele vastavaid lisafunktsioone või koostada protseduure.

Märkus. Enne selle kiirparanduse installimist veenduge, et kõik Microsoft Navisioni klientrakenduse kasutajad oleksid süsteemist välja logitud. See hõlmab ka Microsoft Navision Application Servicesi (NAS) klientkasutajaid. Peaksite olema ainus klientkasutaja, kes on sisse logitud, kui rakendate selle kiirparanduse.

Selle kiirparanduse rakendamiseks peab teil olema arendaja litsents.

Soovitame, et aknas Windowsi sisselogimised või aknas Andmebaasi sisselogimised olevale kasutajakontole määrataks "SUPER" rolli ID. Kui kasutajakontole ei saa superrolli ID-d määrata, peate kontrollima, kas kasutajakontol on järgmised õigused.

  • Muudetava objekti muutmisõigus.
  • Süsteemiobjekti ID 5210 ja süsteemiobjekti ID 9015 täitmisõigus.

                
Märkus. Teil pole andmesalvede jaoks õigusi, kui te ei pea tegema andmete parandamist.

Koodi muudatused

Märkus. Enne paranduste rakendamist tööarvutitele testige koodiparandusi alati kontrollitud keskkonnas.
Probleemi lahendamiseks tehke järgmist.

  1. Muutke kliendi raamatupidamiskaardi aruande (12441) globaalmuutujate koodi järgmiselt:
    Olemasolev kood

    ...
    AdjBalance@1210001 : Decimal;
    RowNumber@1210017 : Integer;
    ...
    

    Asenduskood

    ...
    AdjBalance@1210001 : Decimal;
    
    // Add the following lines.
    DebitPrepmtDiff@1210021 : Decimal;
    CreditPrepmtDiff@1210020 : Decimal;
    // End of the lines.
    
    RowNumber@1210017 : Integer;
    ...
    
  2. Muutke kliendi raamatupidamiskaardi aruande (12441) jaotises Andmeüksuse number 1 kuvatavat koodi järgmiselt.
    Olemasolev kood

    ...
    CurrReport.SKIP;
    END;
    ...
    

    Asenduskood

    ...
    CurrReport.SKIP;
    
    // Add the following lines.
    DebitPrepmtDiff := 0; 
    CreditPrepmtDiff := 0; 
    // End of the lines.
    
    END;
    ...
    
  3. Muutke kliendi raamatupidamiskaardi aruande (12441) jaotises Andmeüksuse number 2 kuvatavat koodi järgmiselt.
    Olemasolev kood 1

    ..
    BlankZero=Yes;
    
    // Delete the following line.
    SourceExpr="Cust. Ledger Entry"."Debit Amount (LCY)" + AdjBalance;
    
    DataSetFieldName=Cust__Ledger_Entry___Debit_Amount__LCY_____AdjBalance }
    ...
    

    Asenduskood 1

    ...
    BlankZero=Yes;
    
    // Add the following line.
    SourceExpr="Cust. Ledger Entry"."Debit Amount (LCY)" + AdjBalance + DebitPrepmtDiff; 
    
    DataSetFieldName=Cust__Ledger_Entry___Debit_Amount__LCY_____AdjBalance }
    ...
    

    Olemasolev kood 2

    ...
    BlankZero=Yes;
    
    // Delete the following line.
    SourceExpr="Cust. Ledger Entry"."Credit Amount (LCY)" + AdjBalance;
    
    DataSetFieldName=Cust__Ledger_Entry___Credit_Amount__LCY_____AdjBalance }
    ...
    

    Asenduskood 2

    ...
    BlankZero=Yes;
    
    // Add the following line.
    SourceExpr="Cust. Ledger Entry"."Credit Amount (LCY)" + AdjBalance + CreditPrepmtDiff; 
    
    DataSetFieldName=Cust__Ledger_Entry___Credit_Amount__LCY_____AdjBalance }
    ...
    
  4. Muutke kliendi raamatupidamiskaardi aruande (12441) jaotises Andmeüksuse number 4 kuvatavat koodi järgmiselt.
    Olemasolev kood 1

    ...
    DataItemTable=Table379;
    DataItemTableView=SORTING(Cust. Ledger Entry No.,Entry Type,Posting Date)
    
    // Delete the following line.
    WHERE(Entry Type=FILTER(<>Application));
    
    OnPreDataItem=BEGIN
    ...
    

    Asenduskood 1

    ...
    DataItemTable=Table379;
    DataItemTableView=SORTING(Cust. Ledger Entry No.,Entry Type,Posting Date); 
    OnPreDataItem=BEGIN
    ...
    

    Olemasolev kood 2

    ...
    OnAfterGetRecord=BEGIN
    CASE "Entry Type" OF
    ...
    

    Asenduskood 2

    ...
    OnAfterGetRecord=BEGIN
    
    // Add the following lines.
    IF "Entry Type" = "Entry Type"::Application THEN BEGIN
    IF "Prepmt. Diff." THEN BEGIN
    DebitPrepmtDiff += "Debit Amount (LCY)";
    CreditPrepmtDiff += "Credit Amount (LCY)";
    IF HasRelatedRealizedEntry("Transaction No.") OR (NOT IsCurrencyAdjEntry) THEN
    CurrReport.SKIP;
    END ELSE
    CurrReport.SKIP;
    END;
    // End of the lines.
    
    CASE "Entry Type" OF
    ...
    
  5. Looge kliendi raamatupidamiskaardi aruandes (12441) uus kohalik protseduur HasRelatedRealizedEntry järgmiselt.

    LOCAL PROCEDURE HasRelatedRealizedEntry@1210000(TransactionNo@1210000 : Integer) : Boolean;
    VAR
    DtldCustLedgEntry@1210001 : Record 379;
    BEGIN
    WITH DtldCustLedgEntry DO BEGIN
    SETFILTER("Entry Type",'%1|%2',"Entry Type"::"Realized Gain","Entry Type"::"Realized Loss");
    SETRANGE("Transaction No.",TransactionNo);
    EXIT(NOT ISEMPTY);
    END;
    END;
    
  6. Looge kliendi raamatupidamiskaardi aruandes (12441) uus kohalik protseduur IsCurrencyAdjEntry järgmiselt.

    LOCAL PROCEDURE IsCurrencyAdjEntry@1210001() : Boolean;
    BEGIN
    WITH "Detailed Cust. Ledg. Entry" DO
    EXIT((Amount = 0) AND ("Amount (LCY)" <> 0));
    END;
    
  7. Muutke hankija raamatupidamiskaardi aruande (12445) globaalmuutujate koodi järgmiselt.
    Exising code

    ...
    AdjBalance@1210001 : Decimal;
    RowNumber@1470000 : Integer;
    ...
    

    Asenduskood

    ...
    AdjBalance@1210001 : Decimal;
    
    // Add the following lines.
    DebitPrepmtDiff@1210018 : Decimal;
    CreditPrepmtDiff@1210019 : Decimal;
    // End of the lines.
    
    RowNumber@1470000 : Integer;
    ...
    
  8. Muutke koodi hankija raamatupidamiskaardi aruande (12445) jaotises Andmeüksuse number 1 järgmiselt.
    Olemasolev kood

    ...
    CurrReport.SKIP;
    END;
    ...
    

    Asenduskood

    ..
    CurrReport.SKIP;
    
    // Add the following lines.
    DebitPrepmtDiff := 0; 
    CreditPrepmtDiff := 0; 
    // End of the lines.
    
    END;
    ..
    
  9. Muutke koodi hankija raamatupidamiskaardi aruande (12445) jaotises Andmeüksuse number 2 järgmiselt.
    Olemasolev kood 1

    ...
    BlankZero=Yes;
    
    // Delete the following line.
    SourceExpr="Vendor Ledger Entry"."Debit Amount (LCY)" + AdjBalance;
    
    DataSetFieldName=Vendor__Ledger_Entry___Debit_Amount__LCY_____AdjBalance }
    ...
    

    Asenduskood 1

    ...
    BlankZero=Yes;
    
    // Add the following line.
    SourceExpr="Vendor Ledger Entry"."Debit Amount (LCY)" + AdjBalance + DebitPrepmtDiff; 
    
    DataSetFieldName=Vendor__Ledger_Entry___Debit_Amount__LCY_____AdjBalance }
    ...
    

    Olemasolev kood 2

    ...
    BlankZero=Yes;
    
    // Delete the following line.
    SourceExpr="Vendor Ledger Entry"."Credit Amount (LCY)" + AdjBalance;
    
    DataSetFieldName=Vendor__Ledger_Entry___Credit_Amount__LCY_____AdjBalance }
    ...
    

    Asenduskood 2

    ...
    BlankZero=Yes;
    
    // Add the following line.
    SourceExpr="Vendor Ledger Entry"."Credit Amount (LCY)" + AdjBalance + CreditPrepmtDiff;
    
    DataSetFieldName=Vendor__Ledger_Entry___Credit_Amount__LCY_____AdjBalance }
    ...
    
  10. Muutke koodi hankija raamatupidamiskaardi aruande (12445) jaotises Andmeüksuse number 4 järgmiselt.
    Olemasolev kood 1

    ...
    DataItemTable=Table380;
    DataItemTableView=SORTING(Vendor Ledger Entry No.,Entry Type,Posting Date)
    
    // Delete the following line.
    WHERE(Entry Type=FILTER(<>Application));
    
    OnPreDataItem=BEGIN
    ...
    

    Asenduskood 1

    ...
    DataItemTable=Table380;
    DataItemTableView=SORTING(Vendor Ledger Entry No.,Entry Type,Posting Date);
    OnPreDataItem=BEGIN
    ...
    

    Olemasolev kood 2

    ...
    OnAfterGetRecord=BEGIN
    CASE "Entry Type" OF
    ..
    

    Asenduskood 2

    ...
    OnAfterGetRecord=BEGIN
    
    // Add the following lines.
    IF "Entry Type" = "Entry Type"::Application THEN BEGIN
    IF "Prepmt. Diff." THEN BEGIN
    DebitPrepmtDiff += "Debit Amount (LCY)";
    CreditPrepmtDiff += "Credit Amount (LCY)";
    IF HasRelatedRealizedEntry("Transaction No.") OR (NOT IsCurrencyAdjEntry) THEN
    CurrReport.SKIP;
    END ELSE
    CurrReport.SKIP;
    END;
    // End of the lines.
    
    CASE "Entry Type" OF
    ...
    
  11. Looge hankija raamatupidamiskaardi aruandes (12445) uus kohalik protseduur HasRelatedRealizedEntry järgmiste toimingutena:

    LOCAL PROCEDURE HasRelatedRealizedEntry@1210000(TransactionNo@1210000 : Integer) : Boolean;
    VAR
    DtldVendLedgEntry@1210001 : Record 380;
    BEGIN
    WITH DtldVendLedgEntry DO BEGIN
    SETFILTER("Entry Type",'%1|%2',"Entry Type"::"Realized Gain","Entry Type"::"Realized Loss");
    SETRANGE("Transaction No.",TransactionNo);
    EXIT(NOT ISEMPTY);
    END;
    END;
    
  12. Looge hankija raamatupidamiskaardi aruandes (12445) uus kohalik protseduur IsCurrencyAdjEntry järgmiselt.

    LOCAL PROCEDURE IsCurrencyAdjEntry@1210001() : Boolean;
    BEGIN
    WITH "Detailed Vendor Ledg. Entry" DO
    EXIT((Amount = 0) AND ("Amount (LCY)" <> 0));
    END;
    

          

Eeltingimused

Selle kiirparanduse rakendamiseks peab teil olema installitud üks järgmistest toodetest:

  • Microsoft Dynamics NAV 2009 R2 venekeelne versioon
  • Microsoft Dynamics NAV 2009 hoolduspaketi Service Pack 1 venekeelne versioon

Eemaldamisteave

Seda kiirparandust ei saa eemaldada.

Olek

Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.

Märkus. See on otse Microsofti tugiteenuste organisatsioonist loodud FAST PUBLISH-artikkel. Käesolevas artiklis sisalduv teave on esitatud kujul, mis on seotud tekkivate küsimustega. Materjali kättesaadavaks tegemise kiiruse tõttu võivad materjalid sisaldada kirjavigu ja neid võib igal ajal ette teatamata läbi vaadata. Muid kaalutlusi leiate teemast Kasutustingimused .