Οι καταχωρήσεις της υπηρεσίας Intrastat EU δεν ομαδοποιούνται όπως αναμένεται στη μηνιαία/τριμηνιαία έκθεση και στο εξαγόμενο αρχείο scambi.cee στην ιταλική έκδοση του 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, οι αναφορές και τα αρχεία δεν ομαδοποιούνται όπως αναμένεται στη μηνιαία έκθεση ή στην τριμηνιαία έκθεση ή στο εξαγόμενο αρχείο scambi.cee. Αναμένετε ότι η ομαδοποίηση θα ληφθεί υπόψη εάν οι καταχωρήσεις χρησιμοποιούν τον ίδιο αριθμό μητρώου ΦΠΑ. ή τον ίδιο αριθμό τιμολογίου υπηρεσιών. ή άλλη συνθήκη ομαδοποίησης, όπως ομαδοποίηση προϊόντων.
Αυτό το πρόβλημα παρουσιάζεται στα ακόλουθα προϊόντα:

  • Η ιταλική έκδοση του Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Η ιταλική έκδοση του Microsoft Dynamics NAV 2009 R2
  • Η ιταλική έκδοση του Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

Επίλυση

Πληροφορίες επείγουσας επιδιόρθωσης

Μια υποστηριζόμενη επείγουσα επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, αυτή η ενέργεια προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε το μόνο σε συστήματα που αντιμετωπίζουν αυτό το συγκεκριμένο πρόβλημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, συνιστάται να περιμένετε έως το επόμενο service pack του Microsoft Dynamics NAV 2009 ή την επόμενη έκδοση του Microsoft Dynamics NAV που περιέχει αυτήν την επείγουσα επιδιόρθωση.

Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που προκύπτουν κανονικά για κλήσεις υποστήριξης ενδέχεται να ακυρωθούν, εάν ένας επαγγελματίας τεχνικής υποστήριξης για το Microsoft Dynamics και τα σχετικά προϊόντα προσδιορίσει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση, θα ισχύσουν οι συνηθισμένες χρεώσεις υποστήριξης.

            
          

Πληροφορίες εγκατάστασης

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για απεικόνιση, χωρίς καμία εγγύηση, ρητή ή σιωπηρή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που επιδεικνύεται και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας βοηθήσουν να εξηγήσετε τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παρέχουν πρόσθετες λειτουργίες ούτε θα δημιουργήσουν διαδικασίες για να ικανοποιήσουν τις συγκεκριμένες απαιτήσεις σας.

Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, βεβαιωθείτε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Navision έχουν αποσυνδεθεί από το σύστημα. Αυτό περιλαμβάνει χρήστες προγράμματος-πελάτη Microsoft Navision Application Services (NAS). Θα πρέπει να είστε ο μόνος χρήστης-πελάτης που είναι συνδεδεμένος όταν υλοποιείτε αυτήν την επείγουσα επιδιόρθωση.

Για να υλοποιήσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε άδεια προγραμματιστή.

Συνιστούμε ο λογαριασμός χρήστη στο παράθυρο Συνδέσεις των Windows ή στο παράθυρο Συνδέσεις βάσης δεδομένων να έχει το αναγνωριστικό ρόλου "SUPER". Εάν δεν είναι δυνατή η εκχώρηση του αναγνωριστικού ρόλου "SUPER" στο λογαριασμό χρήστη, πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:

  • Το δικαίωμα τροποποίησης για το αντικείμενο που θα αλλάξετε.
  • Το δικαίωμα εκτέλεσης για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 5210 και για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 9015.

                
Σημείωση Δεν χρειάζεται να έχετε δικαιώματα στους χώρους αποθήκευσης δεδομένων, εκτός εάν πρέπει να εκτελέσετε επιδιόρθωση δεδομένων.

Αλλαγές κώδικα

Σημείωση Ελέγχετε πάντα τις επιδιορθώσεις κώδικα σε ελεγχόμενο περιβάλλον, πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής σας.
Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα:

  1. Εντοπισμός πίνακα (12118) και, στη συνέχεια, κάντε κλικ στο κουμπί Σχεδίαση.

  2. Στο μενού Προβολή (View ), κάντε κλικ στην εντολή Πλήκτρα (Keys). Στη συνέχεια, αλλάξτε τα ακόλουθα πλήκτρα:

    • Παλιά αξία: Αριθμός μητρώου ΦΠΑ, Τύπος συναλλαγής, Αριθμός τιμολογίου, Κωδικός ομάδας, Μέθοδος μεταφοράς, Προδιαγραφές συναλλαγής, Κωδικός χώρας προέλευσης, Περιοχή, Διορθωτική καταχώρηση, Όχι.

    • Νέα αξία: Αριθμός μητρώου ΦΠΑ, Τύπος συναλλαγής, Αριθμός τιμολογίου, Κωδικός ομάδας, Μέθοδος μεταφοράς, Προδιαγραφές συναλλαγής, Κωδικός χώρας προέλευσης, Περιοχή, Διορθωτική καταχώρηση, Όχι, Αριθμός τιμολογίου υπηρεσίας.

  3. Προσθέστε την ακόλουθη μεταβλητή στην αναφορά (501):

    • Όνομα: IntraJnlLine
    • Τύπος δεδομένων: Εγγραφή
    • Δευτερεύων τύπος: Γραμμή Intrastat Jnl.
  4. Αλλάξτε τον κωδικό στο έναυσμα Intrastat Jnl. Line - OnAfterGetRecord στην αναφορά (501) ως εξής:
    Υπάρχων κώδικας

    ...
        TESTFIELD("Service Tariff No.");
    
    // Delete the following lines.
      NoOfRecords := NoOfRecords + 1; 
      RoundAmount := ROUND(Amount,1);
      GroupIntraJnlLineIntoBuffer; 
    // End of the deleted lines.
    
      GetPaymentMethod;
     END ELSE BEGIN 
    ...
    

    Κωδικός αντικατάστασης

    ...
          TESTFIELD("Service Tariff No.");
    
    // Add the following line.
      GroupIntraJnlLineIntoBuffer;  
    // End of the added line.
    
      GetPaymentMethod;
    
    // Add the following lines.
      IF GetEUIntraJnlLineFromBuffer THEN BEGIN 
       NoOfRecords := NoOfRecords + 1;
       RoundAmount := ROUND("Intra - form Buffer".Amount,1)
      END ELSE 
       CurrReport.SKIP;
    // End of the added lines.
    
      END ELSE BEGIN
    ...
    
  5. Στο C/AL Globals, προσθέστε την ακόλουθη συνάρτηση: GetEUIntraJnlLineFromBuffer

  6. Στη συνέχεια, κάντε κλικ στην επιλογή Τοπικά, στην καρτέλα Επιστρεφόμενη τιμή, προσθέστε τον ακόλουθο τύπο επιστροφής: Τύπος επιστροφής = δυαδική τιμή

  7. Προσθέστε τον ακόλουθο κώδικα στη δημιουργημένη συνάρτηση GetEUIntraJnlLineFromBuffer:

    "Intra - form Buffer".RESET;
    IntraJnlLine.RESET;
    "Intra - form Buffer".SETRANGE("VAT Registration No.","Intrastat Jnl. Line"."VAT Registration No.");
    "Intra - form Buffer".SETRANGE("Service Tariff No.","Intrastat Jnl. Line"."Service Tariff No.");
    "Intra - form Buffer".SETRANGE("Corrective entry","Intrastat Jnl. Line"."Corrective entry");
    IF "Intra - form Buffer".FINDFIRST THEN
      IntraJnlLine.SETRANGE("VAT Registration No.","Intra - form Buffer"."VAT Registration No.");
      IntraJnlLine.SETRANGE("Service Tariff No.","Intra - form Buffer"."Service Tariff No.");
      IntraJnlLine.SETRANGE("Corrective entry","Intra - form Buffer"."Corrective entry");
      IF IntraJnlLine.FINDLAST THEN
        IF "Intrastat Jnl. Line"."Line No." = IntraJnlLine."Line No." THEN
          EXIT(TRUE);
        EXIT(FALSE);
    
    
  8. Αλλάξτε τον κωδικό στο έναυσμα Intrastat Jnl. Line - OnAfterGetRecord στην αναφορά (502) ως εξής:
    Υπάρχων κωδικός 1

    ...
       TESTFIELD("Service Tariff No.");
    
    // Delete the following lines.
      NoOfRecords := NoOfRecords + 1; 
      RoundAmount := ROUND(Amount,1);
      GroupIntraJnlLineIntoBuffer;
    // End of the deleted lines.
      GetPaymentMethod;
    END ELSE BEGIN  
    ...
    

    Κωδικός αντικατάστασης 1

    ...
      TESTFIELD("Service Tariff No.");
    
    // Add the following lines.
      GroupIntraJnlLineIntoBuffer;
      GetPaymentMethod;
    IF GetEUIntraJnlLineFromBuffer THEN BEGIN 
      NoOfRecords := NoOfRecords + 1;  
      RoundAmount := ROUND("Intra - form Buffer".Amount,1)
    END ELSE 
      CurrReport.SKIP; 
    // End of the added lines.
    
    END ELSE BEGIN    
    ...
    

    Υπάρχων κωδικός 2

    ...
      IF "Supplementary Units" THEN
        TESTFIELD(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"."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".MODIFY;
      END ELSE BEGIN
        "Intra - form Buffer".TRANSFERFIELDS("Intrastat Jnl. Line");
        "Intra - form Buffer"."User ID" := USERID;
        "Intra - form Buffer"."Group Code":= '';
        "Intra - form Buffer"."Transport Method" := '';
        "Intra - form Buffer"."Transaction Specification" := '';
        "Intra - form Buffer"."Country of Origin Code" := '';
        "Intra - form Buffer".Area := '';
        "Intra - form Buffer"."No." := 0;
        "Intra - form Buffer".INSERT;
      END;}
      // End of the deleted lines.
    END;
    ...
    

    Κωδικός αντικατάστασης 2

    ...
       IF "Supplementary Units" THEN
        TESTFIELD(Quantity);
    
    // Add the following line.
      GroupIntraJnlLineIntoBuffer;
    END;
    ...
    
  9. Προσθέστε την ακόλουθη καθολική μεταβλητή στην αναφορά (502):

    • Όνομα: IntraJnlLine
    • Τύπος δεδομένων: Εγγραφή
    • Δευτερεύων τύπος: Γραμμή Intrastat Jnl.
  10. Προσθέστε τη συνάρτηση GroupIntraJnlLineIntoBuffer και, στη συνέχεια, προσθέστε τον ακόλουθο κώδικα για αυτή τη συνάρτηση στην αναφορά (502):

    
         "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"."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".MODIFY;
            END ELSE BEGIN
              "Intra - form Buffer".TRANSFERFIELDS("Intrastat Jnl. Line");
              "Intra - form Buffer"."User ID" := USERID;
              "Intra - form Buffer"."Group Code":= '';
              "Intra - form Buffer"."Transport Method" := '';
              "Intra - form Buffer"."Transaction Specification" := '';
              "Intra - form Buffer"."Country of Origin Code" := '';
              "Intra - form Buffer".Area := '';
              "Intra - form Buffer"."No." := 0;
              "Intra - form Buffer".INSERT;
            END;
    
    
  11. Στο C/AL Globals στην αναφορά (502), προσθέστε την ακόλουθη συνάρτηση: GetEUIntraJnlLineFromBuffer

  12. Στη συνέχεια, κάντε κλικ στην επιλογή Τοπικά, στην καρτέλα Επιστρεφόμενη τιμή, προσθέστε τον ακόλουθο τύπο επιστροφής: Τύπος επιστροφής = δυαδική τιμή

  13. Προσθέστε τον ακόλουθο κώδικα στη συνάρτηση GetEUIntraJnlLineFromBuffer που δημιουργήθηκε στην αναφορά (502):

            "Intra - form Buffer".RESET;
            IntraJnlLine.RESET;
            "Intra - form Buffer".SETRANGE("VAT Registration No.","Intrastat Jnl. Line"."VAT Registration No.");
            "Intra - form Buffer".SETRANGE("Service Tariff No.","Intrastat Jnl. Line"."Service Tariff No.");
            "Intra - form Buffer".SETRANGE("Corrective entry","Intrastat Jnl. Line"."Corrective entry");
            IF "Intra - form Buffer".FINDFIRST THEN
              IntraJnlLine.SETRANGE("VAT Registration No.","Intra - form Buffer"."VAT Registration No.");
              IntraJnlLine.SETRANGE("Service Tariff No.","Intra - form Buffer"."Service Tariff No.");
              IntraJnlLine.SETRANGE("Corrective entry","Intra - form Buffer"."Corrective entry");
              IF IntraJnlLine.FINDLAST THEN
                IF "Intrastat Jnl. Line"."Line No." = IntraJnlLine."Line No." THEN
                  EXIT(TRUE);
            EXIT(FALSE);
    
    

          

Προαπαιτούμενα

Πρέπει να έχετε ένα από τα ακόλουθα προϊόντα για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση:

  • Η ιταλική έκδοση του 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: 237990; 237991

Σημείωση Αυτό είναι ένα άρθρο "FAST PUBLISH" που δημιουργήθηκε απευθείας μέσα από τον οργανισμό υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν παρέχονται ως έχουν ως απάντηση σε αναδυόμενα ζητήματα. Ως αποτέλεσμα της ταχύτητας διάθεσής του, το υλικό μπορεί να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί ανά πάσα στιγμή χωρίς προειδοποίηση. Ανατρέξτε στους Όρους χρήσης για άλλα ζητήματα.