Ten artykuł dotyczy systemu Microsoft Dynamics NAV dla ustawień regionalnych języka włoski (it).

Objawy

We włoskiej wersji systemu Microsoft Dynamics NAV 2009 system nie oblicza wartość "Kwota do zapłaty" i kwota podatku u źródła zgodnie z oczekiwaniami. Ten problem występuje w następujących produktach:

  • W wersji włoskiej dla systemu Microsoft Dynamics NAV 2009 R2

  • Włoskiej wersji dodatku Service Pack 1 dla systemu Microsoft Dynamics NAV 2009

Rozwiązanie

Informacje o poprawce

Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak to jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następny dodatek service pack dla systemu Microsoft Dynamics NAV 2009 lub następną wersję systemu Microsoft Dynamics NAV, zawierający tę poprawkę.

Uwaga W wyjątkowych przypadkach opłaty, telefonujący do pomocy technicznej mogą zostać anulowane, jeśli pomocy technicznej dla systemu Microsoft Dynamics i produktów powiązanych Określa, że określonej aktualizacji, można rozwiązać swój problem. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji.


Informacje dotyczące instalacji

Firma Microsoft podaje przykłady programowania wyłącznie, bez jakichkolwiek gwarancji wyrażonych wprost lub domyślnie. To obejmuje, ale nie jest ograniczona, ustawowej rękojmi co do przydatności handlowej lub przydatności do określonego celu. W tym artykule założono, że użytkownik zna demonstrowany język programowania oraz narzędzia, które są używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura. Nie będą jednak modyfikować tych przykładów ani dodawać funkcjonalności i konstruować procedur w celu zaspokojenia określonych potrzeb użytkownika.

Uwaga Przed zainstalowaniem tej poprawki należy zweryfikować, że wszyscy użytkownicy klienta Microsoft Navision są wylogowani systemu. Dotyczy to również użytkowników klienta Microsoft Navision Application Services (NAS). Powinny być użytkownika klienta, który jest zalogowany w momencie wdrożyć tę poprawkę.

Aby wdrożyć tę poprawkę, musi mieć licencję deweloperską.

Firma Microsoft zaleca, aby do konta użytkownika w oknie identyfikatorów logowania systemu Windows lub w oknie identyfikatorów logowania bazy danych być przypisany identyfikator roli "SUPER". Jeśli konto użytkownika nie można przypisać Identyfikatora roli "SUPER", należy sprawdzić, czy konto użytkownika ma następujące uprawnienia:

  • Uprawnienie Modyfikacja dla obiektu, który będzie zmieniany.

  • Uprawnienie Execute obiektu 5210 identyfikator obiektu systemu i dla obiektu 9015 identyfikator obiektu systemu .



Uwaga Nie trzeba mieć prawa do magazynów danych, chyba że konieczne jest przeprowadzenie naprawy danych.

Zmiany kodu

Uwaga Zawsze test poprawki kodu w kontrolowanym środowisku przed zastosowaniem poprawki na komputerach produkcyjnych.
Aby rozwiązać ten problem, wykonaj następujące kroki:

  1. Zmień kod w funkcji CreateVendBillWithhTax w tabeli Wiersz faktury od dostawcy (12182) w następujący sposób:
    Istniejący kod

    ...              VendBillWithhTax."Currency Code" := VendorBillHeader."Currency Code";
    VendBillWithhTax."External Document No." := "External Document No.";
    VendBillWithhTax."Related Date" := VendorBillHeader."Posting Date";
    VendBillWithhTax."Withholding Tax Code" := WithholdCode;
    VendBillWithhTax."Social Security Code" := SocialSecurityCode;

    // Delete the following line.
    VendBillWithhTax.VALIDATE("Total Amount","Remaining Amount");

    VendBillWithhTax."Old Withholding Amount" := VendBillWithhTax."Withholding Tax Amount";
    VendBillWithhTax."Old Free-Lance Amount" := VendBillWithhTax."Free-Lance Amount";
    END;
    // IT0007.begin
    IF VendBillWithhTax."Withholding Tax Code" <> '' THEN
    ...

    Kod zastępczy

    ...              VendBillWithhTax."Currency Code" := VendorBillHeader."Currency Code";
    VendBillWithhTax."External Document No." := "External Document No.";
    VendBillWithhTax."Related Date" := VendorBillHeader."Posting Date";
    VendBillWithhTax."Withholding Tax Code" := WithholdCode;
    VendBillWithhTax."Social Security Code" := SocialSecurityCode;

    // Add the following line.
    VendBillWithhTax.VALIDATE("Total Amount","Amount to Pay");

    VendBillWithhTax."Old Withholding Amount" := VendBillWithhTax."Withholding Tax Amount";
    VendBillWithhTax."Old Free-Lance Amount" := VendBillWithhTax."Free-Lance Amount";
    END;
    // IT0007.begin
    IF VendBillWithhTax."Withholding Tax Code" <> '' THEN
    ...

  2. Zmień kod w formantach w dostawcy ręczne formularza wiersz płatności (12188) w następujący sposób:
    Istniejący kod 1

    ...                                                   InPage=0;
    CaptionML=ENU=Withholding Tax Code;
    SourceExpr=WithholdingTaxCode;
    TableRelation="Withhold Code" }
    { 1130006;Label ;440 ;2090 ;3300 ;440 ;ParentControl=1130005 }

    // Delete the following line.
    { 1130007;TextBox ;13090;3190 ;1700 ;440 ;ParentControl=1130000;

    InPage=0;
    CaptionML=ENU=Vendor Bank Account;
    SourceExpr=VendorBankAccount;
    TableRelation="Vendor Bank Account";
    OnLookup=VAR
    ...

    Kod zastępczy 1

    ...                                                   InPage=0;
    CaptionML=ENU=Withholding Tax Code;
    SourceExpr=WithholdingTaxCode;
    TableRelation="Withhold Code" }
    { 1130006;Label ;440 ;2090 ;3300 ;440 ;ParentControl=1130005 }

    // Add the following line.
    { 1130007;TextBox ;13090;3740 ;1700 ;440 ;ParentControl=1130000;

    InPage=0;
    CaptionML=ENU=Vendor Bank Account;
    SourceExpr=VendorBankAccount;
    TableRelation="Vendor Bank Account";
    OnLookup=VAR
    ...

    Istniejący kod 2

    ...                                                              IF FORM.RUNMODAL(FORM::"Vendor Bank Account List",VendBankAcc,VendBankAcc.Code) = ACTION::LookupOK THEN
    VendorBankAccount := VendBankAcc.Code;
    // IT0001.end
    END;
    }

    // Delete the following line.
    { 1130008;Label ;9680 ;3190 ;3300 ;440 ;ParentControl=1130007 }

    { 1130009;TextBox ;3850 ;3190 ;5500 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Description;
    SourceExpr=Desc }
    { 1130010;Label ;440 ;3190 ;3300 ;440 ;ParentControl=1130009 }
    ...

    Kod zastępczy 2

    ...                                                              IF FORM.RUNMODAL(FORM::"Vendor Bank Account List",VendBankAcc,VendBankAcc.Code) = ACTION::LookupOK THEN
    VendorBankAccount := VendBankAcc.Code;
    // IT0001.end
    END;
    }

    // Add the following line.
    { 1130008;Label ;9680 ;3740 ;3300 ;440 ;ParentControl=1130007 }

    { 1130009;TextBox ;3850 ;3190 ;5500 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Description;
    SourceExpr=Desc }
    { 1130010;Label ;440 ;3190 ;3300 ;440 ;ParentControl=1130009 }
    ...

    Istniejący kod 3

    ...      { 1130013;TextBox   ;13090;990  ;1700 ;440  ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Total Amount;
    SourceExpr=TotalAmount }
    { 1130014;Label ;9680 ;990 ;3300 ;440 ;ParentControl=1130013 }

    // Delete the following line.
    { 1130015;TextBox ;13090;1540 ;2200 ;440 ;ParentControl=1130000;

    InPage=0;
    CaptionML=ENU=Document Type;
    OptionCaptionML=ENU=" ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund";
    OptionString=[ ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund];
    SourceExpr=DocumentType }
    ...

    Kod zastępczy 3

    ...      { 1130013;TextBox   ;13090;990  ;1700 ;440  ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Total Amount;
    SourceExpr=TotalAmount }
    { 1130014;Label ;9680 ;990 ;3300 ;440 ;ParentControl=1130013 }

    // Add the following line.
    { 1130015;TextBox ;13090;2090 ;2200 ;440 ;ParentControl=1130000;

    InPage=0;
    CaptionML=ENU=Document Type;
    OptionCaptionML=ENU=" ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund";
    OptionString=[ ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund];
    SourceExpr=DocumentType }
    ...

    Istniejący kod 4

    ...                                                   InPage=0;
    CaptionML=ENU=Document Type;
    OptionCaptionML=ENU=" ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund";
    OptionString=[ ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund];
    SourceExpr=DocumentType }

    // Delete the following lines.
    { 1130016;Label ;9680 ;1540 ;3300 ;440 ;ParentControl=1130015 }
    { 1130017;TextBox ;13090;2090 ;1700 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Document No.;
    SourceExpr=DocumentNo }
    { 1130018;Label ;9680 ;2090 ;3300 ;440 ;ParentControl=1130017 }
    { 1130019;TextBox ;13090;2640 ;1700 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Document Date;
    SourceExpr=DocumentDate }
    { 1130020;Label ;9680 ;2640 ;3300 ;440 ;ParentControl=1130019 }
    // End of the lines.

    { 1130024;TextBox ;3850 ;2640 ;2750 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Social Security Code;
    SourceExpr=SocialSecurityCode;
    TableRelation="Contribution Code" }
    ...

    Kod zastępczy 4

    ...                                                   InPage=0;
    CaptionML=ENU=Document Type;
    OptionCaptionML=ENU=" ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund";
    OptionString=[ ,Payment,Invoice,Credit Memo,Finance Charge Memo,Reminder,Refund];
    SourceExpr=DocumentType }

    // Add the following lines.
    { 1130016;Label ;9680 ;2090 ;3300 ;440 ;ParentControl=1130015 }
    { 1130017;TextBox ;13090;2640 ;1700 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Document No.;
    SourceExpr=DocumentNo }
    { 1130018;Label ;9680 ;2640 ;3300 ;440 ;ParentControl=1130017 }
    { 1130019;TextBox ;13090;3190 ;1700 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Document Date;
    SourceExpr=DocumentDate }
    { 1130020;Label ;9680 ;3190 ;3300 ;440 ;ParentControl=1130019 }
    // End of the lines.

    { 1130024;TextBox ;3850 ;2640 ;2750 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Social Security Code;
    SourceExpr=SocialSecurityCode;
    TableRelation="Contribution Code" }
    ...

    Istniejący kod 5

    ...                                                   InPage=0;
    CaptionML=ENU=Social Security Code;
    SourceExpr=SocialSecurityCode;
    TableRelation="Contribution Code" }
    { 1130025;Label ;440 ;2640 ;3300 ;440 ;ParentControl=1130024 }
    { 1130021;CommandButton;14410;5720;2200;550 ;HorzGlue=Right;
    VertGlue=Bottom;
    PushAction=FormHelp }
    { 1130022;CommandButton;11990;5720;2200;550 ;HorzGlue=Right;
    VertGlue=Bottom;
    ...

    Kod zastępczy 5

    ...                                                   InPage=0;
    CaptionML=ENU=Social Security Code;
    SourceExpr=SocialSecurityCode;
    TableRelation="Contribution Code" }
    { 1130025;Label ;440 ;2640 ;3300 ;440 ;ParentControl=1130024 }

    // Add the following lines.
    { 1130026;TextBox ;13090;1540 ;1700 ;440 ;ParentControl=1130000;
    InPage=0;
    CaptionML=ENU=Tax Base Amount;
    SourceExpr=TaxBaseAmount }
    { 1130027;Label ;9680 ;1540 ;3300 ;440 ;ParentControl=1130026 }
    // End of the lines.

    { 1130021;CommandButton;14410;5720;2200;550 ;HorzGlue=Right;
    VertGlue=Bottom;
    PushAction=FormHelp }
    { 1130022;CommandButton;11990;5720;2200;550 ;HorzGlue=Right;
    VertGlue=Bottom;
    ...

    Istniejący kod 6

    ...                                                              "Due Date" := PostingDate;
    "External Document No." := ExternalDocNo;
    "Instalment Amount" := TotalAmount;
    "Remaining Amount" := TotalAmount;
    "Gross Amount to Pay" := TotalAmount;

    // Delete the following line.
    "Amount to Pay" := TotalAmount;

    "Manual Line" := TRUE;
    "Cumulative Transfers" := TRUE;
    SetWithholdCode(WithholdingTaxCode);
    SetSocialSecurityCode(SocialSecurityCode);
    INSERT(TRUE)
    ...

    Kod zastępczy 6

    ...                                                              "Due Date" := PostingDate;
    "External Document No." := ExternalDocNo;
    "Instalment Amount" := TotalAmount;
    "Remaining Amount" := TotalAmount;
    "Gross Amount to Pay" := TotalAmount;

    // Add the following line.
    "Amount to Pay" := TaxBaseAmount;

    "Manual Line" := TRUE;
    "Cumulative Transfers" := TRUE;
    SetWithholdCode(WithholdingTaxCode);
    SetSocialSecurityCode(SocialSecurityCode);
    INSERT(TRUE)
    ...

  3. Dodaj następujące zmiennej globalnej w dostawcy ręczne formularza wiersz płatności (12188):

    TaxBaseAmount@1130000 : Decimal;
  4. Zmień kod w funkcji CalculateWithholdingTax w potrąconej zaliczki na podatek - wkład codeunit (12101) w następujący sposób:
    Istniejący kod 1

    ...      PROCEDURE CalculateWithholdingTax@1130001(VAR PurchHeader@1130000 : Record 38;Recalculate@1130001 : Boolean);
    VAR
    PurchWithSoc@1130002 : Record 12137;
    PurchLine@1130003 : Record 39;

    // Delete the following line.
    TotalAmount@1130004 : Decimal;

    BEGIN
    PurchLine.RESET;
    PurchLine.SETRANGE("Document Type",PurchHeader."Document Type");
    PurchLine.SETRANGE("Document No.",PurchHeader."No.");
    PurchLine.SETRANGE(Type,PurchLine.Type::"G/L Account");
    ...

    Kod zastępczy 1

    ...      PROCEDURE CalculateWithholdingTax@1130001(VAR PurchHeader@1130000 : Record 38;Recalculate@1130001 : Boolean);
    VAR
    PurchWithSoc@1130002 : Record 12137;
    PurchLine@1130003 : Record 39;

    // Add the following lines.
    TempPurchLine@1130005 : TEMPORARY Record 39;
    TotalAmount@1130004 : Decimal;
    VATAmount@1130006 : Decimal;
    // End of the lines.

    BEGIN
    PurchLine.RESET;
    PurchLine.SETRANGE("Document Type",PurchHeader."Document Type");
    PurchLine.SETRANGE("Document No.",PurchHeader."No.");
    PurchLine.SETRANGE(Type,PurchLine.Type::"G/L Account");
    ...

    Istniejący kod 2

    ...        PurchLine.SETRANGE(Type,PurchLine.Type::"G/L Account");

    TotalAmount := 0;
    IF PurchLine.FIND('-') THEN
    REPEAT

    // Delete the following lines.
    TotalAmount := TotalAmount + PurchLine."Line Amount";
    UNTIL PurchLine.NEXT = 0;

    // End of the lines.

    IF PurchWithSoc.GET(PurchHeader."Document Type", PurchHeader."No.") THEN
    IF (PurchWithSoc."Total Amount" = 0) OR
    Recalculate
    THEN BEGIN
    PurchWithSoc."Currency Code" := PurchHeader."Currency Code";
    ...

    Kod zastępczy 2

    ...        PurchLine.SETRANGE(Type,PurchLine.Type::"G/L Account");

    TotalAmount := 0;
    IF PurchLine.FIND('-') THEN
    REPEAT

    // Add the following lines.
    IF PurchHeader."Prices Including VAT" THEN BEGIN
    TempPurchLine := PurchLine;
    TempPurchLine.VALIDATE("Amount Including VAT",PurchLine."Line Amount");
    TotalAmount += TempPurchLine."VAT Base Amount"
    END ELSE
    TotalAmount += PurchLine."Line Amount";
    UNTIL PurchLine.NEXT = 0;
    // End of the lines.

    IF PurchWithSoc.GET(PurchHeader."Document Type", PurchHeader."No.") THEN
    IF (PurchWithSoc."Total Amount" = 0) OR
    Recalculate
    THEN BEGIN
    PurchWithSoc."Currency Code" := PurchHeader."Currency Code";
    ...

Wymagania wstępne

Musi mieć jedną z następujących produktów, w celu zastosowania tej poprawki:

  • W wersji włoskiej dla systemu Microsoft Dynamics NAV 2009 R2

  • Włoskiej wersji dodatku Service Pack 1 dla systemu Microsoft Dynamics NAV 2009

Informacje dotyczące usuwania

Nie można usunąć tej poprawki.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Uwaga Jest to artykuł " szybkiej publikacji" tworzony bezpośrednio przez organizację pomocy technicznej firmy Microsoft. Informacje zawarte w niniejszym dokumencie są dostarczane jako odpowiedź na pojawiające się problemy. W wyniku przyspieszonego udostępnienia, materiały te mogą zawierać błędy typograficzne i mogą być zmieniane w dowolnym czasie bez uprzedzenia. Zobacz Warunki użytkowania w celu uzyskania innych informacji.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności

Poznaj szkolenia >

Uzyskuj nowe funkcje w pierwszej kolejności

Dołącz do niejawnych testerów firmy Microsoft >

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×