Единичната цена на артикулите става отрицателна, след като изпълните преоценката за елементи, които използват метода на средната стойност в Microsoft Dynamics NAV

Отнася се за
Dynamics NAV 2009 Service Pack 1 Dynamics NAV 2009 Microsoft Dynamics NAV 5.0 Service Pack 1

Тази статия се отнася за Microsoft Dynamics NAV за всички страни и всички езикови променливи.

Симптоми

Да приемем, че имате елемент, който използва метода на средната стойност. Когато извършите преоценката на елемента, единичната цена на елемента става неочаквано отрицателна. Освен това имате бавна работа, когато изпълнявате партидно задание за настройка на разходите за елемента.
Този проблем възниква в следните продукти:

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) с приложена 975251 за гореща поправка

Забележка За повече информация относно 975251 за гореща поправка щракнете върху следния номер на статия, за да прегледате статията в базата знания на Microsoft:

975251 Работната задача е бавна, когато изпълнявате партидно задание за промяна на разходите за средната цена в Microsoft Dynamics NAV 5.0

Решение

Информация за горещи поправки

Поддържа гореща поправка вече се предлага от Microsoft. Целта му е обаче само да коригира проблема, който е описан в тази статия. Прилагайте го само към системи, които срещат този конкретен проблем. Тази гореща корекция може да бъде подложена на допълнително тестване. Ето защо, ако не сте сериозно засегнати от този проблем, ви препоръчваме да изчакате следващия сервизен пакет за Microsoft Dynamics NAV 2009 или следващата версия на Microsoft Dynamics NAV, която съдържа тази гореща корекция.

Забележка: При специални случаи таксите, които обикновено се начисляват за свързани с поддръжката разговори, могат да бъдат отменени, ако специалист по техническа поддръжка за Microsoft Dynamics и свързаните продукти реши, че проблемът може да бъде решен със специфична актуализация. Стандартните такси за поддръжката ще важат за допълнителни въпроси, свързани с нея, както и за проблеми, които не спадат към съответната актуализация.

            
          

Информация за инсталиране

Microsoft предоставя примери за програмиране само за илюстрация, без гаранция, нито изрична, или подразбираща се. Това включва, но не се ограничава до, подразбиращите се гаранции за продаваемост или годност за определена цел. В тази статия се предполага, че сте запознати с езика за програмиране, който се демонстрира, и с инструментите, които се използват за създаване и за процедури за отстраняване на грешки. Инженерите по поддръжка на Microsoft могат да ви помогнат да обяснят функционалността на дадена процедура, но няма да променят тези примери, за да предоставят допълнителна функционалност или да конструират процедури, които да отговарят на вашите конкретни изисквания.

Забележка Преди да инсталирате тази гореща корекция, уверете се, че всички потребители на клиента на Microsoft Navision са излезли от системата. Това включва потребители на клиенти на Microsoft Navision Application Services (NAS). Когато внедрявате тази гореща корекция, трябва да сте единственият клиентски потребител е влязъл.

За да приложите тази гореща корекция, трябва да имате лиценз за разработчик.

Препоръчваме на потребителския акаунт в прозореца за влизане в Windows или в прозореца за влизане в база данни да бъде присвоен ИД на роля "SUPER". Ако на потребителския акаунт не може да бъде присвоен ИД на роля "SUPER", трябва да се уверите, че този потребителски акаунт има следните разрешения:

  • Разрешението за промяна за обекта, който ще променяте.
  • Разрешението за изпълнение за обекта 5210 на системен обект с ИД 5210 и за обекта 9015 на системен обект.

                
Забележка: Не е необходимо да имате права за хранилищата за данни, освен ако не трябва да извършите поправка на данни.

Промени в кода

Забележка: Винаги тествайте корекциите на кода в контролирана среда, преди да ги приложите към производствените си компютри.
За да решите този проблем, изпълнете следните стъпки:

  1. Променете кода във функцията AvgValueEntriesToAdjustExist в кодовата единица за регулиране на инвентара (5895) на следното:

    ...
             IF FindNextRange THEN BEGIN
               AvgCostAdjmtEntryPoint."Valuation Date" := GetNextDate(AvgCostAdjmtEntryPoint."Valuation Date");
               AvgValueEntriesToAdjustExist(OutbndValueEntry,ExcludedValueEntry,AvgCostAdjmtEntryPoint);
             END;  
    
      // Add the following line.
      OutbndValueEntry.SETCURRENTKEY("Item Ledger Entry No."); 
    
    ...
    
  2. Променете кода във функцията IsExcludeEntryFromAvgCostCalc в кодовата единица за регулиране на инвентара (5895) на следното:

    ...
             IF NOT "Valued By Average Cost" THEN
               EXIT(FALSE);
             ItemLedgEntry.GET("Item Ledger Entry No.");
             IF ItemLedgEntry.Positive THEN
               EXIT(FALSE);
    
    // Delete the following line.
    EXIT(TRUE); 
    
    // Add the following line.
           EXIT("Item Ledger Entry No." > OutbndValueEntry."Item Ledger Entry No."); 
    ...
    
    ...
        // Delete the following lines.
        LOCAL PROCEDURE GetEntryNoToStartAt@78
        BEGIN
          StartAt := 0;
          WITH ExcludedValueEntry DO BEGIN
            RESET;
            IF FINDFIRST THEN
              REPEAT
                IF "Partial Revaluation" AND
                   (OutbndValueEntry."Entry No." > "Entry No.")
                THEN
                  StartAt := "Entry No.";
              UNTIL NEXT = 0;
          END;
          EXIT(StartAt + 1);
        END;
        // End of the lines.
    ...
    
  3. Променете кода във функцията AdjustItemAvgCost в кодовата единица за регулиране на инвентара (5895) на следния:

    ...
                WHILE NOT Restart AND AvgValueEntriesToAdjustExist(
                        TempOutbndValueEntry,TempExcludedValueEntry,AvgCostAdjmtEntryPoint)
                DO BEGIN
                  REPEAT
    
                    // Delete the following lines.
                    TempExcludedValueEntry.SETFILTER("Entry No.",'>=%1',                          
                      GetEntryNoToStartAt(TempOutbndValueEntry,TempExcludedValueEntry)); 
                    // End of the lines.
    
                    AdjustOutbndAvgEntry(TempOutbndValueEntry,TempExcludedValueEntry);
                    UpdateConsumpAvgEntry(TempOutbndValueEntry);
                  UNTIL TempOutbndValueEntry.NEXT = 0;
    ...
    
  4. Променете кода във функцията IsExcludeEntryFromAvgCostCalc в кодовата единица за регулиране на инвентара (5895) на следното:

    ...
        BEGIN
          WITH ValueEntry DO BEGIN
            IF "Partial Revaluation" THEN         
    
              // Delete the following line.
              EXIT(TRUE);                                                                           
    
              // Add the following lines.
              EXIT(                                                                                 
                ("Entry No." > OutbndValueEntry."Entry No.") OR                                     
                (("Entry No." < OutbndValueEntry."Entry No.") AND NOT                               
                 IncludedInCostCalculation(ValueEntry,OutbndValueEntry."Item Ledger Entry No.")));  
              // End of the lines.
    
            IF "Item Ledger Entry No." = OutbndValueEntry."Item Ledger Entry No." THEN
              EXIT(TRUE);
    ...
    

Предварителни изисквания

Трябва да имате инсталиран един от следните продукти, за да приложите тази гореща корекция:

  • Microsoft Dynamics NAV 2009 Service Pack 1
  • Microsoft Dynamics NAV 2009
  • Microsoft Dynamics NAV 5.0 Service Pack 1 с приложена 975251 за гореща поправка

Информация за премахване

Не можете да премахнете тази гореща корекция.

Състояние

Microsoft потвърждава, че това е проблем в продуктите на Microsoft, които са изброени в раздела „Важи за“.

Забележка: Това е статия "FAST PUBLISH", създадена директно от организацията за поддръжка на Microsoft. Информацията, съдържаща се тук, е предоставена както е в отговор на възникващи проблеми. В резултат на бързината на предоставянето им, материалите могат да включват печатни грешки и могат да бъдат коригирани по всяко време без предизвестие. Вижте условията на използване за други съображения.