Mokėjimo, kuris naudoja užsienio valiutos lieka atviras, pritaikius mokėjimo sąskaita, kurioje naudojama valiuta Microsoft Dynamics NAV 2009


Šis straipsnis taikomas Microsoft Dynamics NAV visose šalyse ir visų kalbų aplinkos.

Požymiai


Tarkime, kad mokėjimo nuokrypio parametrus Microsoft Dynamics NAV 2009. Pritaikius mokėjimą, kuris naudoja užsienio valiutos į sąskaita, kurioje naudojama valiuta, mokėjimo lieka atidaryti naudojant likusi suma, net jei priimama mokėjimo nuokrypis.
Ši problema iškyla faile šiems produktams:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 1 pakeitimų paketas (SP1)

Sprendimas


Karštųjų pataisų informacija

Palaikomą naujausią pataisą dabar yra Microsoft. Tačiau jos skirtos tik šiame straipsnyje aprašytai problemai spręsti. Taikyti ją tik sistemoms, kuriose kyla ši konkreti problema. Šios karštosios pataisos gali būti papildomai išbandoma. Todėl, jei jums nelabai trukdo Ši problema, rekomenduojame palaukti kito "Microsoft Dynamics NAV" pakeitimų paketo arba kitos Microsoft Dynamics NAV versijos, kuriame bus šios karštosios pataisos.

Pastaba. Konkrečiais atvejais už palaikymo skambučius gali būti atšaukti, jei techninės pagalbos specialistas Microsoft Dynamics ir susijusių produktų taikomi įprasti mokesčiai nustato, kad jūsų problemą galima išspręsti naudojant konkretų naujinimą. Į įprastos kainos už palaikymą taikomos papildomos palaikymo klausimams ir problemoms, kurių negalima išspręsti naudojant minėtą naujinimą.


Diegimo informacija

"Microsoft" pateikia programavimo pavyzdžius tik, tačiau nesuteikia jokių aiškių arba numanomų garantijų. Tai apima, bet neapsiribojant, numanomas garantijas dėl perkamumo ir tinkamumo konkrečiam tikslui. Šis straipsnis parašytas galvojant, kad esate susipažinę su pateikta programavimo kalba ir įrankiais, kurie yra naudojami procedūroms kurti ir derinti. "Microsoft" palaikymo inžinieriai gali padėti paaiškindami tam tikros procedūros funkcinę galimybę, tačiau jie nekeis šių pavyzdžių, kad numatytų papildomą funkcinę galimybę arba sukurtų konkrečius jūsų reikalavimus atitinkančias procedūras.

Pastaba. Prieš diegdami šias karštąsias pataisas, patikrinkite, kad visi Microsoft Navision klientas vartotojai išsiregistravę sistema. Tai reiškia, kad Microsoft Navision programos paslaugos (NAS) kliento naudotojai. Jums turėtų būti tik kliento vartotojo, kuris yra prisijungęs, kai atliekate šias karštąsias pataisas.

Norint pritaikyti šią karštąją pataisą, turite programų kūrėjo licencijos.

Rekomenduojame, kad vartotojo abonemento Windows registravimosi lange arba duomenų bazės prisijungimų langas būti priskirta "SUPER" vaidmenį ID. Jei vartotojo abonementas negali būti priskirta "SUPER" ID., turi patikrinti, kad vartotojo abonementas turi šias teises:
  • Keisti teisės objektas, kuris bus pakeisti.
  • Teisės vykdyti sistemos objekto ID 5210 objekto ir sistemos objekto ID 9015 objekto.


Pastaba. Jūs neturite turėti teisių į duomenų saugyklų, nebent jūs turite atlikti duomenų atkūrimo.

Pastaba.

Pastaba. Visada bandymas kodas nustato kontroliuojamoje aplinkoje prieš taikydami nustato savo gamybos kompiuteriams.
Norėdami išspręsti šią problemą, atlikite šiuos veiksmus:
  1. Pakeisti ApplyCustLedgEntry funkcija, kad bendr.-pašto linijos Kodinys (12), išvardyti toliau:
    Esamas kodas 1
    ...NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    TempOldCustLedgEntry."Remaining Pmt. Disc. Possible" :=
    ExchAmount(
    TempOldCustLedgEntry."Remaining Pmt. Disc. Possible",TempOldCustLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");

    // Delete the following lines.
    TempOldCustLedgEntry."Accepted Payment Tolerance" :=
    ExchAmount(
    TempOldCustLedgEntry."Accepted Payment Tolerance",TempOldCustLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    // End of the lines.

    TempOldCustLedgEntry."Amount to Apply" :=
    ExchAmount(
    TempOldCustLedgEntry."Amount to Apply",TempOldCustLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    ...
    Atsarginis kodas 1
    ...NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    TempOldCustLedgEntry."Remaining Pmt. Disc. Possible" :=
    ExchAmount(
    TempOldCustLedgEntry."Remaining Pmt. Disc. Possible",TempOldCustLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    TempOldCustLedgEntry."Amount to Apply" :=
    ExchAmount(
    TempOldCustLedgEntry."Amount to Apply",TempOldCustLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    ...
    Esamas kodas 2
    ...NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    OldCVLedgEntryBuf2."Remaining Pmt. Disc. Possible" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Remaining Pmt. Disc. Possible",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");

    // Delete the following lines.
    OldCVLedgEntryBuf2."Accepted Payment Tolerance" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Accepted Payment Tolerance",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    // End of the lines.

    OldCVLedgEntryBuf2."Amount to Apply" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Amount to Apply",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    ...
    Atsarginis kodas 2
    ...NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    OldCVLedgEntryBuf2."Remaining Pmt. Disc. Possible" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Remaining Pmt. Disc. Possible",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    OldCVLedgEntryBuf2."Amount to Apply" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Amount to Apply",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    ...
  2. Pakeisti ApplyVendLedgEntry funkcija, kad bendr.-pašto linijos Kodinys (12), išvardyti toliau:
    Esamas kodas 1
    ...NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    TempOldVendLedgEntry."Remaining Pmt. Disc. Possible" :=
    ExchAmount(
    TempOldVendLedgEntry."Remaining Pmt. Disc. Possible",TempOldVendLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");

    // Delete the following lines.
    TempOldVendLedgEntry."Accepted Payment Tolerance" :=
    ExchAmount(
    TempOldVendLedgEntry."Accepted Payment Tolerance",TempOldVendLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    // End of the lines.

    TempOldVendLedgEntry."Amount to Apply" :=
    ExchAmount(
    TempOldVendLedgEntry."Amount to Apply",TempOldVendLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    ...
    Atsarginis kodas 1
    ...NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    TempOldVendLedgEntry."Remaining Pmt. Disc. Possible" :=
    ExchAmount(
    TempOldVendLedgEntry."Remaining Pmt. Disc. Possible",TempOldVendLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    TempOldVendLedgEntry."Amount to Apply" :=
    ExchAmount(
    TempOldVendLedgEntry."Amount to Apply",TempOldVendLedgEntry."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    ...
    Esamas kodas 2
    ...NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    OldCVLedgEntryBuf2."Remaining Pmt. Disc. Possible" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Remaining Pmt. Disc. Possible",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");

    // Delete the following lines.
    OldCVLedgEntryBuf2."Accepted Payment Tolerance" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Accepted Payment Tolerance",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    // End of the lines.

    OldCVLedgEntryBuf2."Amount to Apply" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Amount to Apply",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    ...
    Atsarginis kodas 2
    ...NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    OldCVLedgEntryBuf2."Remaining Pmt. Disc. Possible" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Remaining Pmt. Disc. Possible",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    OldCVLedgEntryBuf2."Amount to Apply" :=
    ExchAmount(
    OldCVLedgEntryBuf2."Amount to Apply",OldCVLedgEntryBuf2."Currency Code",
    NewCVLedgEntryBuf."Currency Code",NewCVLedgEntryBuf."Posting Date");
    ...
  3. Pakeisti PutCustPmtTolAmount funkcija – mokėjimo nuokrypio valdymo Kodinys (426):
    Esamas kodas
    ...AcceptedEntryTolAmount := ROUND((AppliedCustLedgEntry.Amount / TotalAmount) * AcceptedTolAmount);
    TotalAmount := TotalAmount - AppliedCustLedgEntry.Amount;

    // Delete the following lines.
    IF CustledgEntry."Currency Code" <> AppliedCustLedgEntry."Currency Code" THEN BEGIN
    AcceptedEntryTolAmount :=
    GenJnlPostLine.ExchAmount(
    AcceptedEntryTolAmount,CustledgEntry."Currency Code",AppliedCustLedgEntry."Currency Code",
    CustledgEntry."Posting Date");
    AcceptedTolAmount := AcceptedTolAmount -
    GenJnlPostLine.ExchAmount(
    AcceptedEntryTolAmount,AppliedCustLedgEntry."Currency Code",CustledgEntry."Currency Code",
    CustledgEntry."Posting Date");
    END ELSE
    AcceptedTolAmount := AcceptedTolAmount - AcceptedEntryTolAmount;
    AppliedCustLedgEntry."Accepted Payment Tolerance" := AcceptedEntryTolAmount;
    END ELSE BEGIN
    AcceptedEntryTolAmount := AcceptedTolAmount;
    IF CustledgEntry."Currency Code" <> AppliedCustLedgEntry."Currency Code" THEN
    AcceptedEntryTolAmount :=
    GenJnlPostLine.ExchAmount(
    AcceptedEntryTolAmount,CustledgEntry."Currency Code",AppliedCustLedgEntry."Currency Code",
    CustledgEntry."Posting Date");
    // End of the lines.

    AppliedCustLedgEntry."Accepted Payment Tolerance" := AcceptedEntryTolAmount;
    END;
    AppliedCustLedgEntry."Max. Payment Tolerance" := AppliedCustLedgEntryTemp."Max. Payment Tolerance";
    AppliedCustLedgEntry."Amount to Apply" := AppliedCustLedgEntryTemp."Remaining Amount";
    AppliedCustLedgEntry.MODIFY;
    ...
    Pastaba.
    ...AcceptedEntryTolAmount := ROUND((AppliedCustLedgEntry.Amount / TotalAmount) * AcceptedTolAmount);
    TotalAmount := TotalAmount - AppliedCustLedgEntry.Amount;

    // Add the following lines.
    AcceptedTolAmount := AcceptedTolAmount - AcceptedEntryTolAmount;
    AppliedCustLedgEntry."Accepted Payment Tolerance" := AcceptedEntryTolAmount;
    END ELSE BEGIN
    AcceptedEntryTolAmount := AcceptedTolAmount;
    //End of the lines.

    AppliedCustLedgEntry."Accepted Payment Tolerance" := AcceptedEntryTolAmount;
    END;
    AppliedCustLedgEntry."Max. Payment Tolerance" := AppliedCustLedgEntryTemp."Max. Payment Tolerance";
    AppliedCustLedgEntry."Amount to Apply" := AppliedCustLedgEntryTemp."Remaining Amount";
    AppliedCustLedgEntry.MODIFY;
    ...
  4. Pakeisti PutVendPmtTolAmount funkcija – mokėjimo nuokrypio valdymo Kodinys (426):
    Esamas kodas
    ...AcceptedEntryTolAmount := ROUND((AppliedVendLedgEntry.Amount / TotalAmount) * AcceptedTolAmount);
    TotalAmount := TotalAmount - AppliedVendLedgEntry.Amount;

    // Delete the following lines.
    IF VendLedgEntry."Currency Code" <> AppliedVendLedgEntry."Currency Code" THEN BEGIN
    AcceptedEntryTolAmount :=
    GenJnlPostLine.ExchAmount(
    AcceptedEntryTolAmount,VendLedgEntry."Currency Code",AppliedVendLedgEntry."Currency Code",
    VendLedgEntry."Posting Date");
    AcceptedTolAmount := AcceptedTolAmount -
    GenJnlPostLine.ExchAmount(
    AcceptedEntryTolAmount,AppliedVendLedgEntry."Currency Code",VendLedgEntry."Currency Code",
    VendLedgEntry."Posting Date");
    END ELSE
    AcceptedTolAmount := AcceptedTolAmount - AcceptedEntryTolAmount;
    AppliedVendLedgEntry."Accepted Payment Tolerance" := AcceptedEntryTolAmount;
    END ELSE BEGIN
    AcceptedEntryTolAmount := AcceptedTolAmount;
    IF VendLedgEntry."Currency Code" <> AppliedVendLedgEntry."Currency Code" THEN
    AcceptedEntryTolAmount :=
    GenJnlPostLine.ExchAmount(
    AcceptedEntryTolAmount,VendLedgEntry."Currency Code",AppliedVendLedgEntry."Currency Code",
    VendLedgEntry."Posting Date");
    // End of the lines.

    AppliedVendLedgEntry."Accepted Payment Tolerance" := AcceptedEntryTolAmount;
    END;
    AppliedVendLedgEntry."Max. Payment Tolerance" := AppliedVendLedgEntryTemp."Max. Payment Tolerance";
    AppliedVendLedgEntry."Amount to Apply" := AppliedVendLedgEntryTemp."Remaining Amount";
    AppliedVendLedgEntry.MODIFY;
    ...
    Pastaba.
    ...AcceptedEntryTolAmount := ROUND((AppliedVendLedgEntry.Amount / TotalAmount) * AcceptedTolAmount);
    TotalAmount := TotalAmount - AppliedVendLedgEntry.Amount;

    // Add the following lines.
    AcceptedTolAmount := AcceptedTolAmount - AcceptedEntryTolAmount;
    AppliedVendLedgEntry."Accepted Payment Tolerance" := AcceptedEntryTolAmount;
    END ELSE BEGIN
    AcceptedEntryTolAmount := AcceptedTolAmount;
    //End of the lines.

    AppliedVendLedgEntry."Accepted Payment Tolerance" := AcceptedEntryTolAmount;
    END;
    AppliedVendLedgEntry."Max. Payment Tolerance" := AppliedVendLedgEntryTemp."Max. Payment Tolerance";
    AppliedVendLedgEntry."Amount to Apply" := AppliedVendLedgEntryTemp."Remaining Amount";
    AppliedVendLedgEntry.MODIFY;
    ...

Būtinosios sąlygos

Turi būti viena iš toliau nurodytų produktų, norint taikyti šias karštąsias pataisas:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 1 pakeitimų paketas (SP1)

Pašalinimo informacija

Jūs negalite pašalinti šias karštąsias pataisas.

Būsena


„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Pastaba. Tai yra "GREITAI PUBLIKUOJAMAS" straipsnis, sukurtas tiesiogiai Microsoft palaikymo tarnybos. Čia pateikta informacija yra atsakas į kylančius klausimus. Dėl greito publikavimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrima bet kuriuo metu be įspėjimo. Naudojimo ieškokite kitų priežasčių.