Коригиращите записи не се групират в месечен отчет или в тримесечен отчет, както се очаква, когато отпечатвате и експортирате записи в италианската версия на Microsoft Dynamics NAV

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

Тази статия се отнася за Microsoft Dynamics NAV за езиково-географската променлива за италиански (it) език.

Симптоми

Когато отпечатвате и експортирате коригиращи записи, които са свързани със стоките (без услуга) в италианската версия на Microsoft Dynamics NAV, отчетите и файловете не се групират в месечен отчет или в тримесечен отчет, както се очаква.
Този проблем възниква в следните продукти:

  • Италианската версия на Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Италианската версия на Microsoft Dynamics NAV 2009 R2
  • Италианската версия на Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

Решение

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

Поддържа гореща поправка вече се предлага от 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. Променете кода в превключвателя OnAfterGetRecord в реда Intrastat Jnl. в отчета (501), както следва:
    Съществуващ код 1

    ...
            SupplUnits := "Intrastat Jnl. Line".Quantity;
    
    // Delete the following lines.
       { "Intra - form Buffer".RESET;
        IF "Intra - form Buffer".GET(
          "Intrastat Jnl. Line"."VAT Registration No.","Intrastat Jnl. Line"."Transaction Type",
          "Intrastat Jnl. Line"."Tariff No.","Intrastat Jnl. Line"."Group Code","Intrastat Jnl. Line"."Transport Method",
          "Intrastat Jnl. Line"."Transaction Specification",CountryOriginCode,"Intrastat Jnl. Line".Area,
          "Intrastat Jnl. Line"."Corrective entry")
        THEN BEGIN
          "Intra - form Buffer".Amount := "Intra - form Buffer".Amount + "Intrastat Jnl. Line".Amount;
          "Intra - form Buffer"."Source Currency Amount" := "Intra - form Buffer"."Source Currency Amount" +
            "Intrastat Jnl. Line"."Source Currency Amount";
          "Intra - form Buffer"."Total Weight" := "Intra - form Buffer"."Total Weight" + "Intrastat Jnl. Line"."Total Weight";
          "Intra - form Buffer"."Statistical Value" := "Intra - form Buffer"."Statistical Value" +
            "Intrastat Jnl. Line"."Statistical Value";
          "Intra - form Buffer".Quantity := "Intra - form Buffer".Quantity + SupplUnits;
          "Intra - form Buffer".MODIFY;
        END ELSE BEGIN
          "Intra - form Buffer".TRANSFERFIELDS("Intrastat Jnl. Line");
          "Intra - form Buffer"."Country of Origin Code" := CountryOriginCode;
          "Intra - form Buffer".Quantity := SupplUnits;
          "Intra - form Buffer"."No." := 0;
          "Intra - form Buffer"."User ID" := USERID;
          "Intra - form Buffer".INSERT;
      END; }
    // End of the deleted lines.
    
      END ELSE BEGIN          // Corrective Entry
    ...
    

    Код за замяна 1

    ...
      SupplUnits := "Intrastat Jnl. Line".Quantity;
    
      END ELSE BEGIN          // Corrective Entry
    ...
    

    Съществуващ код 2

    ...
           LineNo := LineNo +1;
    
    // Delete the following lines.
     "Intra - form Buffer".TRANSFERFIELDS("Intrastat Jnl. Line");  
     "Intra - form Buffer"."Country of Origin Code" := CountryOriginCode;
     "Intra - form Buffer".Quantity := SupplUnits;
    "Intra - form Buffer"."User ID" := USERID;
    "Intra - form Buffer"."No." := LineNo;
     "Intra - form Buffer".INSERT;
     END 
    // End of the deleted lines.
    
    END;
    ...
    

    Код за замяна 2

    ...
         LineNo := LineNo +1;
    
    // Add the following lines.
      END;   
      GroupIntraJnlLineIntoBuffer; 
    // End of the added lines.
    
    END;
    ...
    
  2. В отчета (501) щракнете върху "Изглед " в менюто, в C/AL Globals добавете следната функция в раздела "Функция": GroupIntraJnlLineIntoBuffer. След това добавете кода в създадената функция GroupIntraJnlLineIntoBuffer по следния начин:

    "Intra - form Buffer".RESET;
    IF "Intra - form Buffer".GET(
      "Intrastat Jnl. Line"."VAT Registration No.","Intrastat Jnl. Line"."Transaction Type",
      "Intrastat Jnl. Line"."Tariff No.","Intrastat Jnl. Line"."Group Code","Intrastat Jnl. Line"."Transport Method",
      "Intrastat Jnl. Line"."Transaction Specification",CountryOriginCode,"Intrastat Jnl. Line".Area,
      "Intrastat Jnl. Line"."Corrective entry",0,"Intrastat Jnl. Line"."Service Tariff No.")
    THEN BEGIN
      "Intra - form Buffer".Amount := "Intra - form Buffer".Amount + "Intrastat Jnl. Line".Amount;
      "Intra - form Buffer"."Source Currency Amount" := "Intra - form Buffer"."Source Currency Amount" +
        "Intrastat Jnl. Line"."Source Currency Amount";
      "Intra - form Buffer"."Total Weight" := "Intra - form Buffer"."Total Weight" + "Intrastat Jnl. Line"."Total Weight";
        "Intra - form Buffer"."Statistical Value" := "Intra - form Buffer"."Statistical Value" +
      "Intrastat Jnl. Line"."Statistical Value";
      "Intra - form Buffer".Quantity := "Intra - form Buffer".Quantity + SupplUnits;
      "Intra - form Buffer".MODIFY;
    END ELSE BEGIN
      "Intra - form Buffer".TRANSFERFIELDS("Intrastat Jnl. Line");
      "Intra - form Buffer"."Country of Origin Code" := CountryOriginCode;
      "Intra - form Buffer".Quantity := SupplUnits;
      "Intra - form Buffer"."No." := 0;
      "Intra - form Buffer"."User ID" := USERID;
      "Intra - form Buffer".INSERT;
    END;
    
    
  3. Променете кода в превключвателя OnAfterGetRecord в реда Intrastat Jnl. в отчета (593), както следва:
    Съществуващ код 1

    ...
         SupplUnits := "Intrastat Jnl. Line".Quantity;
    
    // Delete the following lines.
        {"Intra - form Buffer".RESET;
        IF "Intra - form Buffer".GET("Intrastat Jnl. Line"."VAT Registration No.",
          "Intrastat Jnl. Line"."Transaction Type", "Intrastat Jnl. Line"."Tariff No.",
          "Intrastat Jnl. Line"."Group Code", "Intrastat Jnl. Line"."Transport Method",
          "Intrastat Jnl. Line"."Transaction Specification", CountryOriginCode,
          "Intrastat Jnl. Line".Area,"Intrastat Jnl. Line"."Corrective entry")
        THEN BEGIN
          //"Intra - form Buffer".Amount := "Intra - form Buffer".Amount + "Intrastat Jnl. Line".Amount;//old line
          "Intra - form Buffer".Amount := "Intra - form Buffer".Amount + ROUND("Intrastat Jnl. Line".Amount,1);//new line
          "Intra - form Buffer"."Source Currency Amount" := "Intra - form Buffer"."Source Currency Amount" +
            "Intrastat Jnl. Line"."Source Currency Amount";
          "Intra - form Buffer"."Total Weight" := "Intra - form Buffer"."Total Weight" + "Intrastat Jnl. Line"."Total Weight";
          "Intra - form Buffer"."Statistical Value" := "Intra - form Buffer"."Statistical Value" +
            //"Intrastat Jnl. Line"."Statistical Value"; //old line
            ROUND("Intrastat Jnl. Line"."Statistical Value",1); //new line
          "Intra - form Buffer".Quantity := "Intra - form Buffer".Quantity + SupplUnits;
          "Intra - form Buffer".MODIFY;
          //TotalAmount += ABS(ROUND(Amount,1));//old line
          TotalAmount += ROUND(Amount,1);    //new line
        END ELSE BEGIN
          "Intra - form Buffer".TRANSFERFIELDS("Intrastat Jnl. Line");
          "Intra - form Buffer".Amount := ROUND("Intra - form Buffer".Amount,1);//new line
          "Intra - form Buffer"."Statistical Value" := ROUND("Intra - form Buffer"."Statistical Value",1); //new line
          "Intra - form Buffer"."Country of Origin Code" := CountryOriginCode;
          "Intra - form Buffer".Quantity := SupplUnits;
          "Intra - form Buffer"."User ID" := USERID;
          "Intra - form Buffer"."No." := 0;
          "Intra - form Buffer".INSERT;
          //TotalAmount += ABS(ROUND(Amount,1));//old line
          TotalAmount += ROUND(Amount,1);    //new line
          TotalRecords += 1;
        END;}
    // End of the deleted lines.
    
      END ELSE BEGIN          //Corrective E ntry
        IF STRLEN("Reference Period") <> 4 THEN   
    ...
    

    Код за замяна 1

    ...
          SupplUnits := "Intrastat Jnl. Line".Quantity;
      END ELSE BEGIN          //Corrective Entry
        IF STRLEN("Reference Period") <> 4 THEN 
    ...
    

    Съществуващ код 2

    ...
         CheckCorrectiveStatPeriod;
    
    // Delete the following lines.
        "Intra - form Buffer".TRANSFERFIELDS("Intrastat Jnl. Line");
        "Intra - form Buffer".Amount := ROUND("Intra - form Buffer".Amount,1);//new line 
        "Intra - form Buffer"."Statistical Value" := ROUND("Intra - form Buffer"."Statistical Value",1); 
        "Intra - form Buffer"."User ID" := USERID;
        "Intra - form Buffer".INSERT; 
         TotalAmount += ROUND(Amount,1);  
         TotalRecords += 1; 
        OldReferencePeriod := "Reference Period";  
      //END   
    // End of the deleted lines.
    
    END;
    ...
    

    Код за замяна 2

    ...
        CheckCorrectiveStatPeriod;
    
    // Add the following lines.
      END;
      GroupIntraJnlLineIntoBuffer;
    // End of the added lines.
    
    END;
    ...
    
  4. В отчета (593) щракнете върху "Изглед " в менюто, в C/AL Globals добавете следната функция в раздела "Функция": GroupIntraJnlLineIntoBuffer. След това добавете кода в създадената функция GroupIntraJnlLineIntoBuffer по следния начин:

    "Intra - form Buffer".RESET;
    IF "Intra - form Buffer".GET("Intrastat Jnl. Line"."VAT Registration No.",
      "Intrastat Jnl. Line"."Transaction Type", "Intrastat Jnl. Line"."Tariff No.",
      "Intrastat Jnl. Line"."Group Code", "Intrastat Jnl. Line"."Transport Method",
      "Intrastat Jnl. Line"."Transaction Specification", CountryOriginCode,
      "Intrastat Jnl. Line".Area,"Intrastat Jnl. Line"."Corrective entry",0,"Intrastat Jnl. Line"."Service Tariff No.")
    THEN BEGIN
      "Intra - form Buffer".Amount := "Intra - form Buffer".Amount + ROUND("Intrastat Jnl. Line".Amount,1);
      "Intra - form Buffer"."Source Currency Amount" := "Intra - form Buffer"."Source Currency Amount" +
        "Intrastat Jnl. Line"."Source Currency Amount";
      "Intra - form Buffer"."Total Weight" := "Intra - form Buffer"."Total Weight" + "Intrastat Jnl. Line"."Total Weight";
      "Intra - form Buffer"."Statistical Value" := "Intra - form Buffer"."Statistical Value" +
        ROUND("Intrastat Jnl. Line"."Statistical Value",1);
      "Intra - form Buffer".Quantity := "Intra - form Buffer".Quantity + SupplUnits;
      "Intra - form Buffer".MODIFY;
      TotalAmount +=ROUND("Intrastat Jnl. Line".Amount,1);
    END ELSE BEGIN
      "Intra - form Buffer".TRANSFERFIELDS("Intrastat Jnl. Line");
      "Intra - form Buffer"."Country of Origin Code" := CountryOriginCode;
      "Intra - form Buffer".Amount := ROUND("Intra - form Buffer".Amount,1);
      "Intra - form Buffer"."Statistical Value" := ROUND("Intra - form Buffer"."Statistical Value",1);
      "Intra - form Buffer".Quantity := SupplUnits;
      "Intra - form Buffer"."User ID" := USERID;
      "Intra - form Buffer"."No." := 0;
      "Intra - form Buffer".INSERT;
      TotalAmount += ROUND("Intrastat Jnl. Line".Amount,1);
      TotalRecords += 1;
    END;
    
    

          

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

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

  • Италианската версия на Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Италианската версия на Microsoft Dynamics NAV 2009 R2
  • Италианската версия на Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

                
              

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

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

Състояние

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

Справки

VSTF DynamicsNAV SE: 237988, 237989

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