S’applique à
Dynamics NAV 2009 Service Pack 1 Microsoft Dynamics NAV 5.0 Service Pack 1

Cet article s’applique à Microsoft Dynamics NAV pour les paramètres régionaux de langue espagnole (es).

Symptômes

Supposons que la case à cocher Service de l’UE soit cocher dans la boîte de dialogue Configuration de la publication de la TVA dans la version espagnole de Microsoft Dynamics NAV.  Lorsque vous générez le fichier de déclaration 349, le montant dans le fichier exporté est incorrect.Ce problème se produit dans les produits suivants :

  • Version espagnole de Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • Version espagnole de Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

Résolution

Informations sur le correctif logiciel

Un correctif logiciel pris en charge est désormais disponible auprès de Microsoft. Toutefois, il a pour but de corriger uniquement le problème décrit dans cet article. Appliquez-la uniquement aux systèmes qui rencontrent ce problème spécifique. Ce correctif peut recevoir des tests supplémentaires. Par conséquent, si vous n’êtes pas gravement affecté par ce problème, nous vous recommandons d’attendre le prochain Service Pack Microsoft Dynamics NAV 2009 ou la prochaine version de Microsoft Dynamics NAV contenant ce correctif. Remarque Dans certains cas, les frais généralement occasionnés pour des appels de support peuvent être annulés si un professionnel du support technique pour Microsoft Dynamics et des produits associés détermine qu’une mise à jour spécifique résout votre problème. Les coûts habituels du support technique s’appliqueront aux autres questions et problèmes non directement liés à la mise à jour en question.

Informations sur l’installation

Microsoft fournit des exemples de programmation à titre d’illustration uniquement, sans garantie soit exprimée, soit implicite. Cela inclut, sans s’y limiter, les garanties implicites de qualité marchande ou d’aptitude à un usage particulier. Cet article part du principe que vous êtes familiarisé avec le langage de programmation utilisé pour créer et déboguer des procédures. Les ingénieurs du support technique Microsoft peuvent vous aider à expliquer les fonctionnalités d’une procédure particulière, mais ne modifient pas ces exemples afin de fournir des fonctionnalités supplémentaires ou des procédures de construction qui répondent à vos besoins spécifiques.Remarque Avant d’installer ce correctif, vérifiez que tous les utilisateurs du client Microsoft Navision sont déconnectés du système. Cela inclut les utilisateurs du client Microsoft Navision Application Services (NAS). Vous devez être le seul utilisateur client à être connecté lorsque vous implémentez ce correctif.Pour implémenter ce correctif, vous devez avoir une licence développeur.Nous vous recommandons d’attribuer l’ID de rôle « SUPER » au compte d’utilisateur dans la fenêtre Connexions Windows ou dans la fenêtre Connexions de base de données. Si l’ID de rôle « SUPER » ne peut pas être attribué au compte d’utilisateur, vous devez vérifier que le compte d’utilisateur dispose des autorisations suivantes :

  • Autorisation Modifier pour l’objet que vous allez modifier.

  • Autorisation Exécuter pour l’objet System Object ID 5210 et l’objet System Object ID 9015.

Notez qu’il n’est pas besoin de droits sur les magasins de données, sauf si vous devez effectuer une réparation des données.

Modifications du code

Notez Toujours tester les correctifs de code dans un environnement contrôlé avant d’appliquer les correctifs à vos ordinateurs de production. Pour résoudre ce problème, suivez ces étapes :

  1. Modifiez le code dans les sections Numéro 5 de l’élément de données dans le rapport de déclaration 349 (88) comme suit : Code existant 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);

    Code de remplacement 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);

    Code existant 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';

    Code de remplacement 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';

    Code existant 3

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

    Code de remplacement 3

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

    Code existant 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);

    Code de remplacement 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);

    Code existant 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

    Code de remplacement 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

    Code existant 6

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

    Code de remplacement 6

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

    Code existant 7

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

    Code de remplacement 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);

    Code existant 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

    Code de remplacement 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

    Code existant 9

                                            END;                                      END;                                    UNTIL VATInvSales.NEXT = 0;

    Code de remplacement 9

                                            END;                                      END;                                      //Add the following line.                                      LastTransactionNo := VATInvSales."Transaction No.";                                    UNTIL VATInvSales.NEXT = 0;
  2. Modifiez le code dans les sections Numéro 6 des éléments de données du rapport de déclaration 349 (88) comme suit : Code existant 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);

    Code de remplacement 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);

    Code existant 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';

    Code de remplacement 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';

    Code existant 3

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

    Code de remplacement 3

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

    Code existant 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);

    Code de remplacement 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);

    Code existant 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

    Code de remplacement 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

    Code existant 6

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

    Code de remplacement 6

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

    Code existant 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);

    Code de remplacement 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);

    Code existant 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

    Code de remplacement 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

    Code existant 9

                                            END;                                      END;                                    UNTIL VATInvPurch.NEXT = 0;

    Code de remplacement 9

                                            END;                                      END;                                      //Add the following line.                                      LastTransactionNo := VATInvPurch."Transaction No.";                                    UNTIL VATInvPurch.NEXT = 0;
  3. Ajoutez une nouvelle variable globale dans le rapport make 349 Declaration (88), puis spécifiez la variable comme suit :

    • Nom: LastTransactionNo@1100072

    • DataType: Integer

Conditions préalables

Pour appliquer ce correctif, vous devez avoir installé l’un des produits suivants :

  • Version espagnole de Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • Version espagnole de Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

Pour appliquer ce correctif, le rapport espagnol 349 doit être installé.Pour plus d’informations, consultez le site web de Microsoft suivant : Rapport espagnol 349: le package TVA 2010 doit également être installé pour appliquer ce correctif.Pour plus d’informations, visitez le site web microsoft suivant : Support de Microsoft Dynamics NAV pour la TVA 2010

Informations sur la suppression

Vous ne pouvez pas supprimer ce correctif.

État

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Notez qu’il s’agit d’un article « PUBLICATION RAPIDE » créé directement au sein de l’organisation de support Technique Microsoft. Les informations présentées ici sont fournies telles quelles en réponse à des problèmes nouveaux. En raison de la rapidité de leur mise à disposition, les documents peuvent contenir des erreurs typographiques et être modifiés à tout moment sans préavis. Consultez les Conditions d’utilisation pour d’autres considérations.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.