Системата използва кода на страната неочаквано в записа, когато генерирате интрастат дневник в италианската версия на Microsoft Dynamics NAV 5.0 Service Pack 1

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

Когато генерирате интрастат дневник в италианската версия на Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1), системата не използва интрастат кода в записа. Вместо това системата използва кода на страната.

Симптоми

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

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

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

Решение

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

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

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

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

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

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

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

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

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

  1. Променете кода в номера на елемента - OnValidate тригер в таблицата с редове на Intrastat Jnl. (263), както следва:
    Съществуващ код

    …
    
    "Tariff No." := Item."Tariff No.";
    
    //Delete the following line.
    "Country/Region of Origin Code" := Item."Country/Region of Origin Code";
    
    GetItemDescription;
    

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

    ...
    
    "Tariff No." := Item."Tariff No.";
    
    //Add the following line.
    "Country/Region of Origin Code" := GetIntrastatCountryCode(Item."Country/Region of Origin Code");
    
    GetItemDescription;
    
  2. Променете кода във функцията ValidateSourceEntryNo в таблицата с редове на Intrastat Jnl. (263), както следва:
    Съществуващ код

    ...
    
    Date := VATEntry."Document Date"; 
    
    //Delete the following line.
    "Country/Region Code" := VATEntry."Country/Region Code"; 
    
    "VAT Registration No." := VATEntry."VAT Registration No.";
    ...
    

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

    ...
    
    Date := VATEntry."Document Date"; 
    
    //Add the following line.
    "Country/Region Code" := GetIntrastatCountryCode(VATEntry."Country/Region Code");
    
    "VAT Registration No." := VATEntry."VAT Registration No.";
    ...
    
  3. Създайте нова функция GetIntrastatCountryCode, която използва типа "Код" и дължината на десет за върнатата стойност в таблицата с редове на Intrastat Jnl. (263). За да създадете тази функция, изпълнете следните стъпки:

    1. Добавете нов локален параметр и след това задайте параметра по следния начин:

      • Var:No
      • Име:CountryRegionCode
      • DataType:Code
      • Подтип:Код на страна/регион
      • Дължина:10
    2. Добавете нова локална променлива и след това задайте променливата, както следва:

      • Име: СтранаРегион
      • DataType:Record
      • Подтип: Страна/регион
    3. Добавете кода по следния начин:

      IF CountryRegion.GET(CountryRegionCode) THEN
      EXIT(CountryRegion."Intrastat Code");
      
  4. Променете кода във функцията InsertItemJnlLine в отчета "Получаване на записи в книгата " (594) както следва:
    Съществуващ код 1

    ...
    
    WITH IntrastatJnlLine DO BEGIN
    INIT;
    "Line No." := "Line No." + 10000;
    Date := "Item Ledger Entry"."Last Invoice Date";
    
    //Delete the following line.
    "Country/Region Code" := "Item Ledger Entry"."Country/Region Code";
    
    "Transaction Type" := "Item Ledger Entry"."Transaction Type";
    ...
    

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

    ...
    
    WITH IntrastatJnlLine DO BEGIN
    INIT;
    "Line No." := "Line No." + 10000;
    Date := "Item Ledger Entry"."Last Invoice Date";
    
    //Add the following line.
    "Country/Region Code" := GetIntrastatCountryCode("Item Ledger Entry"."Country/Region Code");
    
    "Transaction Type" := "Item Ledger Entry"."Transaction Type";
    ...
    

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

    ...
    
    IF SalesShipHeader.GET("Item Ledger Entry"."Document No.") THEN BEGIN
    IF Customer.GET(SalesShipHeader."Bill-to Customer No.") THEN BEGIN 
    "VAT Registration No." := Customer."VAT Registration No.";
    
    //Delete the following line.
    "Country/Region Code" := Customer."Country/Region Code"; 
    
    END;
    END ELSE BEGIN
    SalesSetup.GET;
    IF NOT SalesSetup."Shipment on Invoice" THEN BEGIN
    IF SalesInvHeader.GET("Item Ledger Entry"."Document No.") THEN
    IF Customer.GET(SalesInvHeader."Bill-to Customer No.") THEN BEGIN 
    "VAT Registration No." := Customer."VAT Registration No.";
    
    //Delete the following line.
    "Country/Region Code" := Customer."Country/Region Code";
    
    END;
    END ELSE
    IF SalesCrMemoHeader.GET(ValueEntry."Document No.") THEN
    IF Customer.GET(SalesCrMemoHeader."Bill-to Customer No.") THEN BEGIN
    "VAT Registration No." := Customer."VAT Registration No.";
    
    //Delete the following line.
    "Country/Region Code" := Customer."Country/Region Code";
    
    END;
    END; 
    ...
    

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

    ...
    
    IF SalesShipHeader.GET("Item Ledger Entry"."Document No.") THEN BEGIN
    IF Customer.GET(SalesShipHeader."Bill-to Customer No.") THEN BEGIN 
    "VAT Registration No." := Customer."VAT Registration No.";
    
    //Add the following line.
    "Country/Region Code" := GetIntrastatCountryCode(Customer."Country/Region Code"); 
    
    END;
    END ELSE BEGIN
    SalesSetup.GET;
    IF NOT SalesSetup."Shipment on Invoice" THEN BEGIN
    IF SalesInvHeader.GET("Item Ledger Entry"."Document No.") THEN
    IF Customer.GET(SalesInvHeader."Bill-to Customer No.") THEN BEGIN 
    "VAT Registration No." := Customer."VAT Registration No.";
    
    //Add the following line.
    "Country/Region Code" := GetIntrastatCountryCode(Customer."Country/Region Code"); 
    
    END;
    END ELSE
    IF SalesCrMemoHeader.GET(ValueEntry."Document No.") THEN
    IF Customer.GET(SalesCrMemoHeader."Bill-to Customer No.") THEN BEGIN
    "VAT Registration No." := Customer."VAT Registration No.";
    
    //Add the following line.
    "Country/Region Code" := GetIntrastatCountryCode(Customer."Country/Region Code"); 
    
    END;
    END; 
    ...
    

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

    ...
    
    IF IntrastatJnlBatch.Type = IntrastatJnlBatch.Type :: Purchases THEN BEGIN
    IF (ItemVendor.GET("Item Ledger Entry"."Source No.","Item Ledger Entry"."Item No.","Item Ledger Entry"."Variant Code")) AND
    (ItemVendor."Country/Region of Origin Code" <> '') THEN
    
    //Delete the following line.
    "Country/Region of Origin Code" := ItemVendor."Country/Region of Origin Code"
    
    ELSE
    
    //Delete the following line.
    "Country/Region of Origin Code" := Item."Country/Region of Origin Code";
    
    FindSourceCurrency(
    "Item Ledger Entry"."Source No.","Item Ledger Entry"."Document Date","Item Ledger Entry"."Posting Date");
    END ELSE
    
    //Delete the following line.
    "Country/Region of Origin Code" := Item."Country/Region of Origin Code";
    
    
    "Source Type" := "Source Type"::"Item entry";
    ...
    

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

    ...
    
    IF IntrastatJnlBatch.Type = IntrastatJnlBatch.Type :: Purchases THEN BEGIN
    IF (ItemVendor.GET("Item Ledger Entry"."Source No.","Item Ledger Entry"."Item No.","Item Ledger Entry"."Variant Code")) AND
    (ItemVendor."Country/Region of Origin Code" <> '') THEN
    
    //Add the following lin.
    "Country/Region of Origin Code" := GetIntrastatCountryCode(ItemVendor."Country/Region of Origin Code")
    
    ELSE
    
    //Add the following line.
    "Country/Region of Origin Code" := GetIntrastatCountryCode(Item."Country/Region of Origin Code");
    
    FindSourceCurrency(
    "Item Ledger Entry"."Source No.","Item Ledger Entry"."Document Date","Item Ledger Entry"."Posting Date");
    END ELSE
    
    //Add the following line.
    "Country/Region of Origin Code" := GetIntrastatCountryCode(Item."Country/Region of Origin Code");
    
    "Source Type" := "Source Type"::"Item entry";
    ...
    
  5. Променете кода във функцията InsertJobLedgerLine в отчета "Получаване на записи в книгата за артикули" (594) както следва:
    Съществуващ код

    ...
    
    Date := "Job Ledger Entry"."Posting Date";
    
    //Delete the following line.
    "Country/Region Code" := "Job Ledger Entry"."Country/Region Code";
    
    "Transaction Type" := "Job Ledger Entry"."Transaction Type";
    ...
    

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

    ...
    
    Date := "Job Ledger Entry"."Posting Date";
    
    //Add the following line.
    "Country/Region Code" := GetIntrastatCountryCode("Job Ledger Entry"."Country/Region Code");
    
    "Transaction Type" := "Job Ledger Entry"."Transaction Type";
    ...
    

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

Трябва да имате инсталирана италианската версия на Microsoft Dynamics NAV 5.0 Service Pack 1, за да приложите тази гореща корекция.

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

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

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

Състояние

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