Bài viết này áp dụng cho Microsoft Dynamics NAV cho bản địa ngôn ngữ tiếng Tây Ban Nha ().

Triệu chứng

Giả định rằng dịch vụ của EU được chọn hộp kiểm trong hộp thoại thiết lập bài viết VAT trong phiên bản tiếng Tây Ban Nha của Microsoft Dynamics NAV. Khi bạn tạo tệp tuyên bố 349, số tiền trong tệp đã xuất không chính xác.Sự cố này xảy ra trong các sản phẩm sau đây:

  • Phiên bản tiếng Tây Ban Nha của Microsoft Dynamics NAV 2009 gói dịch vụ 1 (SP1)

  • Phiên bản tiếng Tây Ban Nha của Microsoft Dynamics NAV 5,0 gói dịch vụ 1 (SP1)

Giải pháp

Thông tin hotfix

Một hotfix được hỗ trợ hiện đã sẵn dùng từ Microsoft. Tuy nhiên, nó chỉ nhằm khắc phục sự cố được mô tả trong bài viết này. Chỉ áp dụng cho các hệ thống đang gặp vấn đề cụ thể này. Hotfix này có thể nhận được kiểm tra bổ sung. Vì vậy, nếu bạn không bị ảnh hưởng nghiêm trọng bởi sự cố này, chúng tôi khuyên bạn nên chờ gói dịch vụ Microsoft Dynamics NAV 2009 tiếp theo hoặc phiên bản Microsoft Dynamics NAV tiếp theo có chứa hotfix này. Lưu ý trong các trường hợp đặc biệt, các chi phí thường được phát sinh cho các cuộc gọi hỗ trợ có thể bị hủy bỏ nếu một chuyên gia hỗ trợ kỹ thuật cho Microsoft Dynamics và các sản phẩm liên quan xác định rằng một bản Cập Nhật cụ thể sẽ giải quyết được vấn đề của bạn. Chi phí hỗ trợ thông thường sẽ áp dụng đối với các vấn đề và câu hỏi hỗ trợ bổ sung không phù hợp với bản cập nhật cụ thể đang được bàn tới.

Thông tin cài đặt

Microsoft cung cấp các ví dụ về lập trình chỉ cho hình minh họa mà không có bảo hành nào được thể hiện hoặc ngụ ý. Điều này bao gồm nhưng không giới hạn, các bảo đảm ngụ ý về khả năng bán hoặc thể dục cho mục đích cụ thể. Bài viết này giả định rằng bạn đã quen thuộc với ngôn ngữ lập trình được thể hiện và các công cụ được sử dụng để tạo và thủ tục gỡ lỗi. Kỹ sư hỗ trợ của Microsoft có thể giúp giải thích về các chức năng của một thủ tục cụ thể nhưng chúng sẽ không sửa đổi các ví dụ này để cung cấp thêm chức năng hoặc thủ tục dựng thêm để đáp ứng các yêu cầu cụ thể của bạn.Lưu ý trước khi bạn cài đặt hotfix này, hãy xác nhận rằng tất cả người dùng Microsoft Navision Client sẽ được đăng xuất khỏi hệ thống. Điều này bao gồm người dùng máy khách của Microsoft Navision Application Services (NAS). Bạn nên là người dùng máy khách duy nhất đang đăng nhập khi bạn thực hiện hotfix này.Để thực hiện hotfix này, bạn phải có giấy phép nhà phát triển.Chúng tôi khuyên bạn nên có tài khoản người dùng trong cửa sổ đăng nhập Windows hoặc trong cửa sổ đăng nhập cơ sở dữ liệu được gán ID vai trò "SUPER". Nếu tài khoản người dùng không thể gán ID vai trò "SUPER", bạn phải xác nhận rằng tài khoản người dùng có các quyền sau đây:

  • Quyền sửa đổi đối với đối tượng mà bạn sẽ thay đổi.

  • Quyền thực thi cho đối tượng Hệ thống ID đối tượng 5210 và đối với đối tượng Hệ thống ID đối tượng 9015.

Lưu ý bạn không cần phải có quyền đối với các cửa hàng dữ liệu trừ khi bạn cần phải thực hiện sửa chữa dữ liệu.

Thay đổi mã

Lưu ý luôn kiểm tra các bản sửa lỗi trong một môi trường được kiểm soát trước khi bạn áp dụng các bản sửa lỗi cho máy tính sản xuất của bạn. Để giải quyết sự cố này, hãy làm theo các bước sau:

  1. Thay đổi mã trong mục dữ liệu số 5 phần trong báo cáo khai báo 349 (88) như sau: mã hiện có 1

                                  BEGIN                                REPEAT                                  //Delete the following line.                                  VATInvSales.RESET;                                  VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);                                  VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);

    Mã thay thế 1

                                  BEGIN                                REPEAT                                  //Add the follwing lines.                                  LastTransactionNo := 0;                                  VATInvSales.RESET;                                  VATInvSales.SETCURRENTKEY("Transaction No.");                                   //End of the lines.                                                                 VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);                                  VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);

    Mã hiện có 2

                                              IF "VAT Registration No." <> '' THEN BEGIN                                            IF AmountToIncludein349 <> 0 THEN BEGIN                                              //Delete the following lines.                                              OpTriang := 'X';                                              AmountOpTri := AmountOpTri + AmountToIncludein349                                              //End of the lines.                                                                                       END ELSE BEGIN                                              OpTriang := 'X';

    Mã thay thế 2

                                              IF "VAT Registration No." <> '' THEN BEGIN                                            IF AmountToIncludein349 <> 0 THEN BEGIN                                              //Add the following lines.                                              IF VATInvSales."Transaction No." <> LastTransactionNo THEN BEGIN                                                OpTriang := 'X';                                                AmountOpTri := AmountOpTri + AmountToIncludein349;                                              END;                                              //End of the lines.                                                                                       END ELSE BEGIN                                              OpTriang := 'X';

    Mã hiện có 3

                                          // OpTriang := 'X';                                      // AmountOpTri := AmountOpTri + VATInvSales.Base;                                    UNTIL VATInvSales.NEXT = 0;                                  END;

    Mã thay thế 3

                                          // OpTriang := 'X';                                      // AmountOpTri := AmountOpTri + VATInvSales.Base;                                      //Add the following line.                                      LastTransactionNo := VATInvSales."Transaction No.";                                    UNTIL VATInvSales.NEXT = 0;                                  END;

    Mã hiện có 4

                                        UNTIL VATInvSales.NEXT = 0;                                  END;                                  //Delete the following line.                                  VATInvSales.RESET;                                  VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);                                  VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);

    Mã thay thế 4

                                        UNTIL VATInvSales.NEXT = 0;                                  END;                                  //Add the following lines.                                  LastTransactionNo := 0;                                  VATInvSales.RESET;                                  VATInvSales.SETCURRENTKEY("Transaction No.");                                   //End of the lines.                                  VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);                                  VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);

    Mã hiện có 5

                                              ((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN                                          IF "VAT Registration No." <> '' THEN BEGIN                                           //Delete the following lines.                                           IF AmountToIncludein349 <> 0 THEN                                             NormalAmount := NormalAmount + AmountToIncludein349                                           ELSE                                           //End of the lines.                                             NormalAmount := NormalAmount + VATInvSales.Base;                                          END ELSE

    Mã thay thế 5

                                              ((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN                                          IF "VAT Registration No." <> '' THEN BEGIN                                           //Add the following lines.                                           IF AmountToIncludein349 <> 0 THEN BEGIN                                             IF VATInvSales."Transaction No." <> LastTransactionNo THEN                                               NormalAmount := NormalAmount + AmountToIncludein349;                                           END ELSE                                           //End of the lines.                                                                                     NormalAmount := NormalAmount + VATInvSales.Base;                                          END ELSE

    Mã hiện có 6

                                          END;                                      // NormalAmount := NormalAmount + VATInvSales.Base;                                    UNTIL VATInvSales.NEXT = 0;                                  END;

    Mã thay thế 6

                                          END;                                      // NormalAmount := NormalAmount + VATInvSales.Base;                                      //Add the following line.                                      LastTransactionNo := VATInvSales."Transaction No.";                                    UNTIL VATInvSales.NEXT = 0;                                  END;

    Mã hiện có 7

                                      END;                                  //Delete the following line.                                  VATInvSales.RESET;                                  VATInvSales.SETRANGE(Type,VATInvSales.Type::Sale);                                  VATInvSales.SETRANGE("Document Type",VATInvSales."Document Type"::Invoice);

    Mã thay thế 7

                                      END;                                  //Add the following lines.                                  LastTransactionNo := 0;                                   VATInvSales.RESET;                                  VATInvSales.SETCURRENTKEY("Transaction No.");                                   //End of the lines.                                  VATInvSales.SETRANGE(Type,VATInvSales.Type::Sale);                                  VATInvSales.SETRANGE("Document Type",VATInvSales."Document Type"::Invoice);

    Mã hiện có 8

                                              ((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN                                          IF "VAT Registration No." <> '' THEN BEGIN                                            //Delete the following lines.                                            IF AmountToIncludein349 <> 0 THEN                                              AmountEUService := AmountEUService + AmountToIncludein349                                            ELSE                                            //End of the lines.                                                                                       AmountEUService := AmountEUService + VATInvSales.Base;                                          END ELSE

    Mã thay thế 8

                                              ((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN                                          IF "VAT Registration No." <> '' THEN BEGIN                                            //Add the following lines.                                            IF AmountToIncludein349 <> 0 THEN BEGIN                                              IF VATInvSales."Transaction No." <> LastTransactionNo THEN                                                AmountEUService := AmountEUService + AmountToIncludein349;                                            END ELSE                                            //End of the lines.                                                                                       AmountEUService := AmountEUService + VATInvSales.Base;                                          END ELSE

    Mã hiện có 9

                                            END;                                      END;                                    UNTIL VATInvSales.NEXT = 0;

    Mã thay thế 9

                                            END;                                      END;                                      //Add the following line.                                      LastTransactionNo := VATInvSales."Transaction No.";                                    UNTIL VATInvSales.NEXT = 0;
  2. Thay đổi mã trong mục dữ liệu số 6 phần trong báo cáo khai báo 349 (88) như sau: mã hiện có 1

                                  BEGIN                                REPEAT                                  //Delete the following line.                                  VATInvPurch.RESET;                                  VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);                                  VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);

    Mã thay thế 1

                                  BEGIN                                REPEAT                                  //Add the following lines.                                  LastTransactionNo := 0;                                  VATInvPurch.RESET;                                  VATInvPurch.SETCURRENTKEY("Transaction No.");                                  //End of the lines.                                                            VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);                                  VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);

    Mã hiện có 2

                                              IF "VAT Registration No." <> '' THEN BEGIN                                            IF AmountToIncludein349 <> 0 THEN BEGIN                                              //Delete the following lines.                                              OpTriang := 'X';                                              AmountOpTri := AmountOpTri + AmountToIncludein349;                                              //End of the lines.                                                                                       END ELSE BEGIN                                              OpTriang := 'X';

    Mã thay thế 2

                                              IF "VAT Registration No." <> '' THEN BEGIN                                            IF AmountToIncludein349 <> 0 THEN BEGIN                                              //Add the following lines.                                              IF VATInvPurch."Transaction No." <> LastTransactionNo THEN BEGIN                                                OpTriang := 'X';                                                AmountOpTri := AmountOpTri + AmountToIncludein349;                                              END;                                              //End of the lines.                                            END ELSE BEGIN                                              OpTriang := 'X';

    Mã hiện có 3

                                          // OpTriang := 'X';                                      // AmountOpTri := AmountOpTri + VATInvPurch.Base;                                    UNTIL VATInvPurch.NEXT = 0;                                  END;

    Mã thay thế 3

                                          // OpTriang := 'X';                                      // AmountOpTri := AmountOpTri + VATInvPurch.Base;                                      //Add the following line.                                      LastTransactionNo := VATInvPurch."Transaction No.";                                    UNTIL VATInvPurch.NEXT = 0;                                  END;

    Mã hiện có 4

                                        UNTIL VATInvPurch.NEXT = 0;                                  END;                                  //Delete the following line.                                  VATInvPurch.RESET;                                  VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);                                  VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);

    Mã thay thế 4

                                        UNTIL VATInvPurch.NEXT = 0;                                  END;                                  //Add the following lines.                                  LastTransactionNo := 0;                                  VATInvPurch.RESET;                                  VATInvPurch.SETCURRENTKEY("Transaction No.");                                  //End of the lines.                                                                 VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);                                  VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);

    Mã hiện có 5

                                              ((VATInvPurch."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN                                          IF "VAT Registration No." <> '' THEN BEGIN                                            //Delete the following lines.                                            IF AmountToIncludein349 <> 0 THEN                                              NormalAmount := NormalAmount + AmountToIncludein349                                            ELSE                                            //End of the lines.                                              NormalAmount := NormalAmount + VATInvPurch.Base;                                          END ELSE

    Mã thay thế 5

                                              ((VATInvPurch."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN                                          IF "VAT Registration No." <> '' THEN BEGIN                                            //Add the following lines.                                            IF AmountToIncludein349 <> 0 THEN BEGIN                                              IF VATInvPurch."Transaction No." <> LastTransactionNo THEN                                                NormalAmount := NormalAmount + AmountToIncludein349;                                            END ELSE                                            //End of the lines.                                              NormalAmount := NormalAmount + VATInvPurch.Base;                                          END ELSE

    Mã hiện có 6

                                          END;                                      // NormalAmount := NormalAmount + VATInvPurch.Base;                                    UNTIL VATInvPurch.NEXT = 0;                                  END;

    Mã thay thế 6

                                          END;                                      // NormalAmount := NormalAmount + VATInvPurch.Base;                                      //Add the following line.                                      LastTransactionNo := VATInvPurch."Transaction No.";                                    UNTIL VATInvPurch.NEXT = 0;                                  END;

    Mã hiện có 7

                                        UNTIL VATInvPurch.NEXT = 0;                                  END;                                  //Delete the following line.                                  VATInvPurch.RESET;                                  VATInvPurch.SETRANGE(Type,VATInvPurch.Type::Purchase);                                  VATInvPurch.SETRANGE("Document Type",VATInvPurch."Document Type"::Invoice);

    Mã thay thế 7

                                        UNTIL VATInvPurch.NEXT = 0;                                  END;                                  //Add the following lines.                                  LastTransactionNo := 0;                                  VATInvPurch.RESET;                                  VATInvPurch.SETCURRENTKEY("Transaction No.");                                  //End of the lines.                                                              VATInvPurch.SETRANGE(Type,VATInvPurch.Type::Purchase);                                  VATInvPurch.SETRANGE("Document Type",VATInvPurch."Document Type"::Invoice);

    Mã hiện có 8

                                            THEN BEGIN                                          IF "VAT Registration No." <> '' THEN BEGIN                                            //Delete the following lines.                                            IF AmountToIncludein349 <> 0 THEN                                              AmountEUService := AmountEUService + AmountToIncludein349                                            ELSE                                            //End of the lines.                                                                                       AmountEUService := AmountEUService + VATInvPurch.Base;                                          END ELSE

    Mã thay thế 8

                                            THEN BEGIN                                          IF "VAT Registration No." <> '' THEN BEGIN                                            //Add the following lines.                                            IF AmountToIncludein349 <> 0 THEN BEGIN                                              IF VATInvPurch."Transaction No." <> LastTransactionNo THEN                                                AmountEUService := AmountEUService + AmountToIncludein349;                                            END ELSE                                            //End of the lines.                                                                                       AmountEUService := AmountEUService + VATInvPurch.Base;                                          END ELSE

    Mã hiện có 9

                                            END;                                      END;                                    UNTIL VATInvPurch.NEXT = 0;

    Mã thay thế 9

                                            END;                                      END;                                      //Add the following line.                                      LastTransactionNo := VATInvPurch."Transaction No.";                                    UNTIL VATInvPurch.NEXT = 0;
  3. Thêm một biến số mới trong báo cáo tuyên bố 349 (88), rồi xác định biến số như sau:

    • Tên: LastTransactionNo@1100072

    • DataType: số nguyên

Điều kiện tiên quyết

Bạn phải có một trong các sản phẩm sau được cài đặt để áp dụng hotfix này:

  • Phiên bản tiếng Tây Ban Nha của Microsoft Dynamics NAV 2009 gói dịch vụ 1 (SP1)

  • Phiên bản tiếng Tây Ban Nha của Microsoft Dynamics NAV 5,0 gói dịch vụ 1 (SP1)

Bạn phải cài đặt báo cáo 349 tiếng Tây Ban Nha để áp dụng hotfix này.Để biết thêm thông tin, hãy truy cập trang web Microsoft sau đây: báo cáo 349 tiếng Tây Ban Nha , bạn phải có gói VAT 2010 được cài đặt để áp dụng hotfix này.Để biết thêm thông tin, hãy truy cập trang web Microsoft sau đây: hỗ trợ Microsoft Dynamics NAV cho 2010 VAT

Loại bỏ thông tin

Bạn không thể loại bỏ hotfix này.

Trạng thái

Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Lưu ý đây là bài viết "phát hành nhanh" được tạo trực tiếp từ bên trong tổ chức hỗ trợ của Microsoft. Thông tin tại đây được cung cấp dưới dạng-có phản hồi cho các vấn đề mới nổi. Do tốc độ làm cho nó sẵn dùng, các tài liệu có thể bao gồm lỗi biểu đồ và có thể được sửa đổi tại bất kỳ thời điểm nào mà không cần thông báo. Xem điều khoản sử dụng cho các cân nhắc khác.

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.