Παρακράτηση φόρου υπολογίζονται σωστά αν χρησιμοποιείτε μια βάση εξαιρούνται φόρο προστιθέμενης αξίας στο την ιταλική έκδοση του Microsoft Dynamics NAV 5.0 Service Pack 1


Αυτό το άρθρο ισχύει για το Microsoft Dynamics NAV για την τοπική ρύθμιση γλώσσας Ιταλικά (it).

Συμπτώματα


Εάν έχετε ένα ποσό βάσης εξαιρούνται φόρο προστιθέμενης αξίας που καθορίζεται στο την ιταλική έκδοση του Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1), παρακράτηση φόρου υπολογίζεται εσφαλμένα.

Προτεινόμενη αντιμετώπιση


Πληροφορίες άμεσης επιδιόρθωσης

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

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


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

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

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

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

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


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

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

Σημείωση Πάντα δοκιμή κώδικα διορθώνει σε ελεγχόμενο περιβάλλον πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής.
Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα:
  1. Αλλάξτε τον κωδικό στη συνάρτηση CreateTmpWithhSocSec με την παρακράτηση – συνεισφορά μονάδα κώδικα (12101) ως εξής:
    Υπάρχοντα κωδικό 1
    ...TmpWithholdingSocSec."Total Amount" := GetRemainingWithhTaxAmount(ComputedWithholdingTax);
    // IT0001.end

    // Delete the following lines.
    TmpWithholdingSocSec."Base - Excluded Amount" := ComputedWithholdingTax."Remaining - Excluded Amount";
    TmpWithholdingSocSec.VALIDATE("Non Taxable Amount By Treaty",ComputedWithholdingTax."Non Taxable Remaining Amount");
    // End of the lines.

    IF ComputedSocSec.FIND('-') THEN BEGIN
    ...
    Αντικατάσταση κώδικα 1
    ...TmpWithholdingSocSec."Total Amount" := GetRemainingWithhTaxAmount(ComputedWithholdingTax);
    // IT0001.end

    // Add the following lines.
    TmpWithholdingSocSec."Base - Excluded Amount" := GetBaseExcludedAmount(ComputedWithholdingTax);
    TmpWithholdingSocSec.VALIDATE("Non Taxable Amount By Treaty",GetNonTaxableAmount(ComputedWithholdingTax));
    // End of the lines.

    IF ComputedSocSec.FIND('-') THEN BEGIN
    ...
    Υπάρχοντα κώδικα 2
    ...TmpWithholdingSocSec."Base - Excluded Amount" := CurrencyExchRate.ExchangeAmtFCYToFCY(
    "Document Date",
    ComputedWithholdingTax."Currency Code",
    "Currency Code",

    // Delete the following line.
    ComputedWithholdingTax."Remaining - Excluded Amount");

    TmpWithholdingSocSec.VALIDATE("Non Taxable Amount By Treaty",CurrencyExchRate.ExchangeAmtFCYToFCY(

    "Document Date",
    ComputedWithholdingTax."Currency Code",
    "Currency Code",

    // Delete the following line.
    ComputedWithholdingTax."Non Taxable Remaining Amount"))

    ;

    IF ComputedSocSec.FIND('-') THEN BEGIN
    ...
    Αντικατάσταση κώδικα 2
    ...TmpWithholdingSocSec."Base - Excluded Amount" := CurrencyExchRate.ExchangeAmtFCYToFCY(
    "Document Date",
    ComputedWithholdingTax."Currency Code",
    "Currency Code",

    // Add the following line.
    GetBaseExcludedAmount(ComputedWithholdingTax));

    TmpWithholdingSocSec.VALIDATE("Non Taxable Amount By Treaty",CurrencyExchRate.ExchangeAmtFCYToFCY(

    "Document Date",
    ComputedWithholdingTax."Currency Code",
    "Currency Code",

    // Add the following line.
    GetNonTaxableAmount(ComputedWithholdingTax)))

    ;

    IF ComputedSocSec.FIND('-') THEN BEGIN
    ...
  2. Δημιουργήστε μια νέα συνάρτηση FindApplyingDocument . Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
    1. Προσθέστε μια νέα παράμετρος τοπικό και, στη συνέχεια, καθορίστε την παράμετρο ως εξής:
      • Var: Ναι
      • Όνομα: VendLedgEntry
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: εγγραφή καθολικού προμηθευτή
    2. Προσθέστε μια νέα παράμετρος τοπικό και, στη συνέχεια, καθορίστε την παράμετρο ως εξής:
      • Var: No
      • Όνομα: ComputedWithholdingTax
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: υπολογίζεται παρακράτησης φόρου
    3. Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: DtldVendLedgEntry
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: αναλυτικές εγγραφές προμηθευτών. Καταχώρηση
    4. Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: TempDtldVendLedgEntry
      • Τύπος δεδομένων: προσωρινή εγγραφή
      • Δευτερεύων τύπος: αναλυτικές εγγραφές προμηθευτών. Καταχώρηση
    5. Προσθέστε τον ακόλουθο κώδικα στη συνάρτηση GetRemainingWithhTaxAmount :
      WITH VendLedgEntry DO BEGINRESET;
      SETRANGE("Document No.",ComputedWithholdingTax."Document No.");
      IF VendLedgEntry.FINDFIRST THEN BEGIN
      SETRANGE("Document No.");
      DtldVendLedgEntry.SETRANGE(Unapplied,FALSE);
      DtldVendLedgEntry.SETRANGE("Entry Type",DtldVendLedgEntry."Entry Type"::Application);
      DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.","Entry No.");
      IF DtldVendLedgEntry.FINDSET THEN
      REPEAT
      TempDtldVendLedgEntry := DtldVendLedgEntry;
      TempDtldVendLedgEntry.INSERT;
      UNTIL DtldVendLedgEntry.NEXT = 0;

      DtldVendLedgEntry.SETFILTER("Vendor Ledger Entry No.",'<>%1',"Entry No.");
      TempDtldVendLedgEntry.SETCURRENTKEY("Transaction No.","Vendor No.","Entry Type");
      IF TempDtldVendLedgEntry.FINDSET THEN
      REPEAT
      DtldVendLedgEntry.SETRANGE("Transaction No.",TempDtldVendLedgEntry."Transaction No.");
      IF DtldVendLedgEntry.FINDSET THEN
      REPEAT
      GET(DtldVendLedgEntry."Vendor Ledger Entry No.");
      IF NOT MARK THEN
      MARK(TRUE);
      UNTIL DtldVendLedgEntry.NEXT = 0;
      UNTIL TempDtldVendLedgEntry.NEXT = 0;
      END;
      END;
  3. Δημιουργήστε μια νέα συνάρτηση GetBaseExcludedAmount . Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
    1. Προσθέστε μια νέα παράμετρος τοπικό και, στη συνέχεια, καθορίστε την παράμετρο ως εξής:
      • Var: No
      • Όνομα: ComputedWithholdingTax
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: υπολογίζεται παρακράτησης φόρου
    2. Καθορίστε μια μεταβλητή επιστροφής ως εξής:
      • Τύπος επιστροφής: δεκαδικών
    3. Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: VendLedgEntry
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: εγγραφή καθολικού προμηθευτή
    4. Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: BaseExcludedAmount
      • Τύπος δεδομένων: δεκαδικών
    5. Προσθέστε τον ακόλουθο κώδικα στη συνάρτηση GetBaseExcludedAmount :
      FindApplyingDocument(VendLedgEntry,ComputedWithholdingTax);BaseExcludedAmount := ComputedWithholdingTax."Base - Excluded Amount";
      VendLedgEntry.MARKEDONLY(TRUE);
      IF VendLedgEntry.FINDSET THEN
      REPEAT
      ComputedWithholdingTax.SETRANGE("Document No.",VendLedgEntry."Document No.");
      IF ComputedWithholdingTax.FINDFIRST THEN
      BaseExcludedAmount -= ComputedWithholdingTax."Base - Excluded Amount";
      UNTIL VendLedgEntry.NEXT = 0;
      EXIT(BaseExcludedAmount);
  4. Δημιουργήστε μια νέα συνάρτηση GetNonTaxableAmount . Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
    1. Προσθέστε μια νέα παράμετρος τοπικό και, στη συνέχεια, καθορίστε την παράμετρο ως εξής:
      • Var: No
      • Όνομα: ComputedWithholdingTax
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: υπολογίζεται παρακράτησης φόρου
    2. Καθορίστε μια μεταβλητή επιστροφής ως εξής:
      • Τύπος επιστροφής: δεκαδικών
    3. Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: VendLedgEntry
      • Τύπος δεδομένων: εγγραφή
      • Δευτερεύων τύπος: εγγραφή καθολικού προμηθευτή
    4. Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
      • Όνομα: NonTaxableAmount
      • Τύπος δεδομένων: δεκαδικών
    5. Προσθέστε τον ακόλουθο κώδικα στη συνάρτηση GetNonTaxableAmount :
      FindApplyingDocument(VendLedgEntry,ComputedWithholdingTax);NonTaxableAmount := ComputedWithholdingTax."Non Taxable Amount By Treaty";
      VendLedgEntry.MARKEDONLY(TRUE);
      IF VendLedgEntry.FINDSET THEN
      REPEAT
      ComputedWithholdingTax.SETRANGE("Document No.",VendLedgEntry."Document No.");
      IF ComputedWithholdingTax.FINDFIRST THEN
      NonTaxableAmount -= ComputedWithholdingTax."Non Taxable Amount By Treaty";
      UNTIL VendLedgEntry.NEXT = 0;
      EXIT(NonTaxableAmount);

Προϋποθέσεις

Πρέπει να έχετε την ιταλική έκδοση του Microsoft Dynamics NAV 5.0 Service Pack 1 για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση.

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

Δεν μπορείτε να καταργήσετε αυτήν την επείγουσα επιδιόρθωση.

Περισσότερες πληροφορίες


Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
974684 την ιταλική έκδοση του Microsoft Dynamics NAV αφαιρεί ένα ποσό εσφαλμένη παρακράτησης φόρου όταν επεξεργάζεστε μια πληρωμή τιμολογίου αγοράς

Κατάσταση


Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Σημείωση Αυτό είναι ένα άρθρο "ΤΑΧΕΙΑΣ ΔΗΜΟΣΙΕΥΣΗΣ" που έχει δημιουργηθεί απευθείας από την εταιρεία υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν έγγραφο παρέχονται ως έχουν, ως απάντηση σε ζητήματα που προέκυψαν. Ως αποτέλεσμα της ταχύτητας διαθεσιμότητάς του, το υλικό ενδέχεται να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί οποιαδήποτε στιγμή, χωρίς προειδοποίηση. Για άλλα θέματα, ανατρέξτε στην ενότητα " Όροι χρήσης ".