Laukų Savikainos suma (numatoma)(ACY) ir Savikainos suma (faktinė)(ACY) reikšmės yra neteisingos, kai anuliavimo važtaraštis užregistruojamas "„Microsoft“ Dynamics NAV"

Taikoma
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0

Šis straipsnis taikomas "„Microsoft“ Dynamics NAV" visų kalbų lokalėms.

Požymiai

Tarkime, kad nustatėte papildomą ataskaitų valiutą DK nustatyme "„Microsoft“ Dynamics NAV" finansų valdymo dalyje. Užregistravę anuliavimo važtaraštį, pastebite, kad atsargų vertės įrašuose/prekių knygos įrašuose laukuose Savikainos suma (numatoma)(ACY) ir Savikainos suma (faktinė)(ACY) yra neteisingos.
Ši problema kyla šiuose produktuose:

  • "„Microsoft“ Dynamics NAV 2009" 1 pakeitimų paketas (SP1)
  • „„Microsoft“ Dynamics NAV 2009 R2‟
  • „Microsoft“ Dynamics NAV 2009
  • "„Microsoft“ Dynamics NAV 5.0" 1 pakeitimų paketas (SP1)

Sprendimas

Karštųjų pataisų informacija

Dabar palaikomas karštąsias pataisas galima gauti iš "„Microsoft“". Tačiau juo siekiama tik išspręsti šiame straipsnyje aprašytą problemą. Taikyti ją tik sistemoms, kuriose kilo ši konkreti problema. Ši karštoji pataisa gali būti papildomai patikrinta. Todėl, jei ši problema jūsų rimtai nepaveikė, rekomenduojame palaukti kito "„Microsoft“ Dynamics NAV 2009" pakeitimų paketo arba kitos "„Microsoft“ Dynamics NAV" versijos, kurioje yra ši karštoji pataisa.

Pastaba Ypatingais atvejais mokesčiai, kurie paprastai taikomi už palaikymo skambučius, gali būti atšaukti, jei "„Microsoft“ Dynamics" ir susijusių produktų techninio palaikymo specialistas nustato, kad konkretus naujinimas išspręs jūsų problemą. Įprastos palaikymo išlaidos bus taikomos papildomiems palaikymo klausimams ir problemoms, kurios neatitinka atitinkamo konkretaus naujinimo reikalavimų.

            
          

Diegimo informacija

"„Microsoft“" pateikia programavimo pavyzdžių tik iliustracijai, be išreikštų ar numanomų garantijų. Tai apima, bet neapsiriboja, numanomas tinkamumo parduoti arba tinkamumo konkrečiam tikslui garantijas. Straipsnyje laikomasi nuomonės, kad esate susipažinę su demonstruojama programavimo kalba ir įrankiais, naudojamais kuriant ir derinant procedūras. "„Microsoft“" palaikymo inžinieriai gali padėti paaiškinti konkrečios procedūros funkcionalumą, bet jie nemodifikuos šių pavyzdžių, kad suteiktų papildomų funkcinių galimybių, ir nesukurs procedūrų, atitinkančių jūsų konkrečius reikalavimus.

Pastaba Prieš diegdami šią karštąją pataisą patikrinkite, ar visi "„Microsoft“ Navision" kliento vartotojai yra atsijungę nuo sistemos. Tai apima "„Microsoft“ Navision" programų tarnybų (NAS) kliento vartotojus. Turite būti vienintelis kliento vartotojas, kuris yra prisijungęs, kai įdiegiate šią karštąją pataisą.

Norėdami įdiegti šią karštąją pataisą, privalote turėti kūrėjo licenciją.

Rekomenduojame vartotojo paskyrai "Windows" prisijungimų lange arba duomenų bazės prisijungimų lange priskirti "SUPER" vaidmens ID. Jei vartotojo paskyrai negalima priskirti "SUPER" vaidmens ID, turite patikrinti, ar vartotojo paskyra turi šias teises:

  • Objekto, kurį keisite, modifikavimo teisė.
  • Sistemos objekto ID 5210 ir sistemos objekto ID 9015 objekto vykdymo teisės.

                
Pastaba: neturite turėti teisių į duomenų saugyklas, nebent turite atlikti duomenų taisymą.

Kodo keitimai

Pastaba Visada išbandykite kodo pataisas kontroliuojamoje aplinkoje prieš taikydami jas gamybos kompiuteriuose.
Norėdami išspręsti šią problemą, atlikite šiuos veiksmus:
Pastaba Kadangi kodas skiriasi "Worldwide" ir "North America" versijose, abu keitimų žurnalai pateikiami specialioje "Worldwide" arba "North America" versijos antraštėje.

  1. Pakeiskite funkcijos InsertValueEntry kodą elemento Jnl.-Post eilutės kodo vienete (22) tokiu būdu:
    "„Microsoft“ Dynamics NAV 5.0 SP1", "„Microsoft“ Dynamics NAV 2009", "„Microsoft“ Dynamics NAV 2009 SP1" ir "„Microsoft“ Dynamics NAV 2009 R2" pasaulinei versijai
    Esamas kodas

    ...
             ELSE
            InvoicedQty := ValueEntry."Valued Quantity";
        END ELSE
          InvoicedQty := ValueEntry."Invoiced Quantity";
        CalcExpectedCost(
          ItemLedgEntry."Entry No.",
          InvoicedQty,
          ItemLedgEntry.Quantity,
          ValueEntry."Cost Amount (Expected)",
          ValueEntry."Cost Amount (Expected) (ACY)",
          ValueEntry."Sales Amount (Expected)",
          ValueEntry."Purchase Amount (Expected)",
          ItemLedgEntry.Quantity = ItemLedgEntry."Invoiced Quantity");
    // Delete the following lines.
        IF (InvdValueEntry."Cost Amount (Expected)" <>0) AND (ValueEntry."Cost Amount (Expected)" <> 0) THEN
          ValueEntry."Cost Amount (Expected)" :=
           ValueEntry."Cost Amount (Expected)" - InvdValueEntry."Cost Amount (Expected)";
        IF (InvdValueEntry."Cost Amount (Expected) (ACY)" <> 0) AND (ValueEntry."Cost Amount (Expected) (ACY)"<>0) THEN
          ValueEntry."Cost Amount (Expected) (ACY)" :=
            ValueEntry."Cost Amount (Expected) (ACY)" - InvdValueEntry."Cost Amount (Expected) (ACY)";
    // End of the deleted lines.
      END;
    
      IF ValueEntry.Inventoriable THEN
        PostInventoryToGL(ValueEntry);
      IF  ItemLedgEntry."Job No." <> '' THEN BEGIN
    ...
    

    Pakeitimo kodas

    ...
           ELSE
            InvoicedQty := ValueEntry."Valued Quantity";
        END ELSE
          InvoicedQty := ValueEntry."Invoiced Quantity";
        CalcExpectedCost(
    
    // Add the following line.
          ValueEntry,
    // End of the added line.
    
          ItemLedgEntry."Entry No.",
          InvoicedQty,
          ItemLedgEntry.Quantity,
          ValueEntry."Cost Amount (Expected)",
          ValueEntry."Cost Amount (Expected) (ACY)",
          ValueEntry."Sales Amount (Expected)",
          ValueEntry."Purchase Amount (Expected)",
          ItemLedgEntry.Quantity = ItemLedgEntry."Invoiced Quantity");
      END;
    
      IF ValueEntry.Inventoriable THEN
        PostInventoryToGL(ValueEntry);
      IF  ItemLedgEntry."Job No." <> '' THEN BEGIN
    ...
    

    Šiaurės Amerikos versijos, skirtos "„Microsoft“ Dynamics NAV 5.0 SP1", "„Microsoft“ Dynamics NAV 2009", "„Microsoft“ Dynamics NAV 2009 SP1" ir "„Microsoft“ Dynamics NAV 2009 R2"
    Esamas kodas

    ...
          ELSE
            InvoicedQty := ValueEntry."Valued Quantity";
        END ELSE
          InvoicedQty := ValueEntry."Invoiced Quantity";
        IF NOT Kitting THEN BEGIN
          CalcExpectedCost(
            ItemLedgEntry."Entry No.",
            InvoicedQty,
            ItemLedgEntry.Quantity,
            ValueEntry."Cost Amount (Expected)",
            ValueEntry."Cost Amount (Expected) (ACY)",
            ValueEntry."Sales Amount (Expected)",
            ValueEntry."Purchase Amount (Expected)",
            ItemLedgEntry.Quantity = ItemLedgEntry."Invoiced Quantity");
    
    // Delete the following lines.
          IF (InvdValueEntry."Cost Amount (Expected)" <>0) AND (ValueEntry."Cost Amount (Expected)" <>0) THEN
            ValueEntry."Cost Amount (Expected)" :=
             ValueEntry."Cost Amount (Expected)" - InvdValueEntry."Cost Amount (Expected)";
          IF (InvdValueEntry."Cost Amount (Expected) (ACY)" <> 0) AND (ValueEntry."Cost Amount (Expected) (ACY)" <> 0) THEN
            ValueEntry."Cost Amount (Expected) (ACY)" :=
              ValueEntry."Cost Amount (Expected) (ACY)" - InvdValueEntry."Cost Amount (Expected) (ACY)";
    // End of the deleted lines.
    
        END;
      END;
    
      IF ValueEntry.Inventoriable THEN
        PostInventoryToGL(ValueEntry);
      IF  ItemLedgEntry."Job No." <>'' THEN BEGIN  
    ...
    

    Pakeitimo kodas

    ...
          ELSE
            InvoicedQty := ValueEntry."Valued Quantity";
        END ELSE
          InvoicedQty := ValueEntry."Invoiced Quantity";
        IF NOT Kitting THEN BEGIN
          CalcExpectedCost(
    // Add the following line.
            ValueEntry,
    // End of the added line.
    
            ItemLedgEntry."Entry No.",
            InvoicedQty,
            ItemLedgEntry.Quantity,
            ValueEntry."Cost Amount (Expected)",
            ValueEntry."Cost Amount (Expected) (ACY)",
            ValueEntry."Sales Amount (Expected)",
            ValueEntry."Purchase Amount (Expected)",
            ItemLedgEntry.Quantity = ItemLedgEntry."Invoiced Quantity");
        END;
      END;
    
      IF ValueEntry.Inventoriable THEN
        PostInventoryToGL(ValueEntry);
      IF  ItemLedgEntry."Job No."<>'' THEN BEGIN
    ...
    
  2. Pakeiskite funkcijos CalcExpectedCost kodą Prekės Jnl.-Post eilutės kodo vienete (22) tokiu būdu:
    "„Microsoft“ Dynamics NAV 5.0 SP1", "„Microsoft“ Dynamics NAV 2009", "„Microsoft“ Dynamics NAV 2009 SP1" ir "„Microsoft“ Dynamics NAV 2009 R2" pasaulinei ir Šiaurės Amerikos versijoms
    Esamas kodas 1

    ...
           LOCAL PROCEDURE CalcExpectedCost@60(ItemLedgEntryNo@1003 : Integer;InvoicedQty@1006 : Decimal;Quantity@1005 : Decimal;VAR ExpectedCost@1001 : Decimal;VAR ExpectedCostACY@1002 : Decimal;VAR ExpectedSalesAmt@1007 : Decimal;VAR ExpectedPurchAmt@1008 : Decimal;CalcReminder@1004 : Boolean);  
    ...
    

    Pakeitimo kodas 1

    ...
          LOCAL PROCEDURE CalcExpectedCost@60(VAR InvdValueEntry@1009 : Record 5802;ItemLedgEntryNo@1003 : Integer;InvoicedQty@1006 : Decimal;Quantity@1005 : Decimal;VAR ExpectedCost@1001 : Decimal;VAR ExpectedCostACY@1002 : Decimal;VAR ExpectedSalesAmt@1007 : Decimal;VAR ExpectedPurchAmt@1008 : Decimal;CalcReminder@1004 : Boolean);
    ...
    

    Esamas kodas 2, skirtas "„Microsoft“ Dynamics NAV 5.0 SP1" ir "„Microsoft“ Dynamics NAV 2009"

    ...
              "Sales Amount (Expected)","Purchase Amount (Expected)");
          ExpectedCost :=  -"Cost Amount (Expected)";
          ExpectedCostACY := -"Cost Amount (Expected) (ACY)";
          ExpectedSalesAmt := -"Sales Amount (Expected)";
          ExpectedPurchAmt := -"Purchase Amount (Expected)";
        END ELSE BEGIN
          REPEAT
            IF "Expected Cost" THEN BEGIN
              ExpectedCost := ExpectedCost + "Cost Amount (Expected)";
              ExpectedCostACY := ExpectedCostACY + "Cost Amount (Expected) (ACY)"         
    ...
    

    "„Microsoft“ Dynamics NAV 5.0 SP1" ir "„Microsoft“ Dynamics NAV 2009" pakeitimo kodas 2

    ...
                "Sales Amount (Expected)","Purchase Amount (Expected)");
          ExpectedCost :=  -"Cost Amount (Expected)";
          ExpectedCostACY := -"Cost Amount (Expected) (ACY)";
          ExpectedSalesAmt := -"Sales Amount (Expected)";
          ExpectedPurchAmt := -"Purchase Amount (Expected)";
    
    // Add the following lines.
        END ELSE
          IF InvdValueEntry.Adjustment AND
             (InvdValueEntry."Entry Type" = InvdValueEntry."Entry Type"::"Direct Cost")
          THEN BEGIN
            ExpectedCost := -InvdValueEntry."Cost Amount (Actual)";
            ExpectedCostACY := -InvdValueEntry."Cost Amount (Actual) (ACY)";
            IF NOT CalledFromAdjustment THEN BEGIN
              ExpectedSalesAmt := -InvdValueEntry."Sales Amount (Actual)";
              ExpectedPurchAmt := -InvdValueEntry."Purchase Amount (Actual)";
            END
    // End of the added lines.
    
        END ELSE BEGIN
          REPEAT
            IF "Expected Cost" THEN BEGIN
              ExpectedCost := ExpectedCost + "Cost Amount (Expected)";
              ExpectedCostACY := ExpectedCostACY + "Cost Amount (Expected) (ACY)";
    ...
    

    Esamas kodas 3, skirtas "„Microsoft“ Dynamics NAV 2009 SP1" ir "„Microsoft“ Dynamics NAV 2009 R2"

    …
    IF FINDSET AND "Expected Cost" THEN
      IF CalcReminder THEN BEGIN
        CALCSUMS(
             "Cost Amount (Expected)","Cost Amount (Expected) (ACY)",
             "Sales Amount (Expected)","Purchase Amount (Expected)");
        ExpectedCost :=  -"Cost Amount (Expected)";
        ExpectedCostACY := -"Cost Amount (Expected) (ACY)";
        IF NOT CalledFromAdjustment THEN BEGIN
           ExpectedSalesAmt := -"Sales Amount (Expected)";
           ExpectedPurchAmt := -"Purchase Amount (Expected)";
        END
      END ELSE BEGIN
            REPEAT
               IF "Expected Cost" THEN BEGIN
                 ExpectedCost := ExpectedCost + "Cost Amount (Expected)";
                 ExpectedCostACY := ExpectedCostACY + "Cost Amount (Expected) (ACY)";
    …
    

    "„Microsoft“ Dynamics NAV 2009 SP1" ir "„Microsoft“ Dynamics NAV 2009 R2" pakeitimo kodas 3

    …
    IF FINDSET AND "Expected Cost" THEN
      IF CalcReminder THEN BEGIN
        CALCSUMS(
             "Cost Amount (Expected)","Cost Amount (Expected) (ACY)",
             "Sales Amount (Expected)","Purchase Amount (Expected)");
        ExpectedCost :=  -"Cost Amount (Expected)";
        ExpectedCostACY := -"Cost Amount (Expected) (ACY)";
        IF NOT CalledFromAdjustment THEN BEGIN
           ExpectedSalesAmt := -"Sales Amount (Expected)";
           ExpectedPurchAmt := -"Purchase Amount (Expected)";
        END
    
    // Add the following lines.   
         END ELSE
           IF InvdValueEntry.Adjustment AND
              (InvdValueEntry."Entry Type" = InvdValueEntry."Entry Type"::"Direct Cost")
           THEN BEGIN
             ExpectedCost := -InvdValueEntry."Cost Amount (Actual)";
             ExpectedCostACY := -InvdValueEntry."Cost Amount (Actual) (ACY)";
             IF NOT CalledFromAdjustment THEN BEGIN
               ExpectedSalesAmt := -InvdValueEntry."Sales Amount (Actual)";
               ExpectedPurchAmt := -InvdValueEntry."Purchase Amount (Actual)";
             END
    // End of the added lines.
    
      END ELSE BEGIN
           REPEAT
                IF "Expected Cost" THEN BEGIN
                  ExpectedCost := ExpectedCost + "Cost Amount (Expected)";
                  ExpectedCostACY := ExpectedCostACY + "Cost Amount (Expected) (ACY)";
    …
    
    

Būtinosios sąlygos

Norėdami taikyti šią karštąją pataisą, turite įdiegti vieną iš šių produktų:

  • "„Microsoft“ Dynamics NAV 2009" 1 pakeitimų paketas (SP1)
  • „„Microsoft“ Dynamics NAV 2009 R2‟
  • „Microsoft“ Dynamics NAV 2009
  • "„Microsoft“ Dynamics NAV 5.0" 1 pakeitimų paketas (SP1)

                
              

Pašalinimo informacija

Šios karštosios pataisos pašalinti negalite.

Būsena

„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.

Nuorodos

VSTF DynamicsNAV SE: 266892

Pastaba: tai "SPARČIOJO PUBLIKAVIMO" straipsnis, sukurtas tiesiogiai iš "„Microsoft“" palaikymo organizacijos. Čia pateikta informacija pateikiama tokia, kokia yra, reaguojant į kylančias problemas. Dėl greito jos pateikimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrėta bet kuriuo metu be išankstinio įspėjimo. Dėl kitų aplinkybių žr. Naudojimo sąlygas .