Αυτό το άρθρο ισχύει για το Microsoft Dynamics NAV 2009 για όλες τις χώρες και για όλες τις τοπικές ρυθμίσεις γλώσσας.
Συμπτώματα
Όταν εισαγάγετε μια γραμμή τιμολογίου για το λογαριασμό γ/λ που έχει οριστεί ως τιμολόγιο στρογγυλοποίησης λογαριασμό ο πελάτης, ομάδα καταχώρησης στο Microsoft Dynamics NAV 2009, το ποσό του φόρου προστιθέμενης αξίας (ΦΠΑ) υπολογίζεται σωστά. Το ποσό ΦΠΑ για το τιμολόγιο στρογγυλοποίησης λογαριασμού στην εγγραφή γενικής λογιστικής πρέπει να είναι μηδέν.
Αυτό το ζήτημα παρουσιάζεται στα ακόλουθα προϊόντα:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
-
Microsoft Dynamics NAV 2009
Προτεινόμενη αντιμετώπιση
Πληροφορίες άμεσης επιδιόρθωσης
Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, σας συνιστούμε να περιμένετε έως το επόμενο service pack του Microsoft Dynamics NAV 2009 ή την επόμενη έκδοση του Microsoft Dynamics NAV που περιέχει αυτήν την επείγουσα επιδιόρθωση.
Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ενδέχεται να να ακυρωθούν, εάν έναν επαγγελματία τεχνικής υποστήριξης για το Microsoft Dynamics και σχετικά προϊόντα προσδιορίζει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.
Πληροφορίες εγκατάστασης
Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς καμία εγγύηση, είτε σιωπηρή είτε ρητή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία διαδικασιών και τον εντοπισμό σφαλμάτων σε αυτές. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.
Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, επιβεβαιώστε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Navision έχουν αποσυνδεθεί από το σύστημα. Σε αυτές περιλαμβάνονται οι χρήστες του προγράμματος-πελάτη Microsoft Navision εφαρμογής υπηρεσιών (NAS). Θα πρέπει να το πρόγραμμα-πελάτη μόνο χρήστη που είναι συνδεδεμένος κατά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης.
Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε μια άδεια χρήσης του προγραμματιστή.
Συνιστούμε ότι ο λογαριασμός χρήστη στο παράθυρο "Συνδέσεις Windows" ή στο παράθυρο συνδέσεις βάσης δεδομένων να αντιστοιχιστεί το "SUPER" αναγνωριστικό ρόλου. Εάν ο λογαριασμός χρήστη δεν μπορεί να αντιστοιχιστεί το Αναγνωριστικό ρόλου "SUPER", πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:
-
Το δικαίωμα "Τροποποίηση" για το αντικείμενο που θα αλλάξετε.
-
Τα δικαιώματα εκτέλεσης για το αντικείμενο 5210 Αναγνωριστικό αντικειμένου συστήματος και για το αντικείμενο 9015 Αναγνωριστικό αντικειμένου συστήματος .
Σημείωση Δεν πρέπει να έχετε δικαιώματα για τους χώρους αποθήκευσης δεδομένων, εκτός και αν έχετε να εκτελέσετε επιδιόρθωση δεδομένων.
Αλλαγές κώδικα
Σημείωση Πάντα δοκιμή κώδικα διορθώνει σε ελεγχόμενο περιβάλλον πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής.
Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα:
-
Δημιουργήστε μια νέα συνάρτηση GetCPGInvRoundAcc που χρησιμοποιεί τον τύπο του κώδικα για την επιστρεφόμενη τιμή (κατά μήκος 20) στον πίνακα γραμμή πώλησης (37). Για να δημιουργήσετε αυτήν τη συνάρτηση, ακολουθήστε τα εξής βήματα:
-
Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
-
Όνομα: Cust@1012
-
Τύπος δεδομένων: εγγραφή
-
Δευτερεύων τύπος: πελατών
-
-
Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
-
Όνομα: CustPostingGroup@1013
-
Τύπος δεδομένων: εγγραφή
-
Δευτερεύων τύπος: Ομάδα καταχώρησης πελατών
-
-
Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
-
Όνομα: CustTemplate@1014
-
Τύπος δεδομένων: εγγραφή
-
Δευτερεύων τύπος: πρότυπο πελάτη
-
-
Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
-
Όνομα: SalesSetup@1008
-
Τύπος δεδομένων: εγγραφή
-
Δευτερεύων τύπος: Παραμετροποίηση Πωλήσεων & Εισπράξεων
-
-
Προσθέστε τον κώδικα ως εξής:
SalesSetup.GET;IF SalesSetup."Invoice Rounding" THEN BEGIN
IF Cust.GET(SalesHeader."Bill-to Customer No.") THEN
CustPostingGroup.GET(Cust."Customer Posting Group")
ELSE
IF CustTemplate.GET(SalesHeader."Sell-to Customer Template Code") THEN
CustPostingGroup.GET(CustTemplate."Customer Posting Group");
END;
EXIT(CustPostingGroup."Invoice Rounding Account");
-
-
Διαγράψτε τις ακόλουθες τοπικές μεταβλητές στη συνάρτηση CalcVATAmountLines στον πίνακα γραμμή πώλησης (37):
-
Cust@1012
-
CustPostingGroup@1013
-
CustTemplate@1014
-
-
Αλλάξτε τον κωδικό στη συνάρτηση CalcVATAmountLines στον πίνακα γραμμή πώλησης (37) ως εξής:
Υπάρχοντα κώδικα…WITH SalesLine DO BEGIN
SETRANGE("Document Type",SalesHeader."Document Type");
SETRANGE("Document No.",SalesHeader."No.");
SalesSetup.GET;
IF SalesSetup."Invoice Rounding" THEN BEGIN
IF Cust.GET(SalesHeader."Bill-to Customer No.") THEN
CustPostingGroup.GET(Cust."Customer Posting Group")
ELSE
IF CustTemplate.GET(SalesHeader."Sell-to Customer Template Code") THEN
CustPostingGroup.GET(CustTemplate."Customer Posting Group");
END;
IF FINDSET THEN
REPEAT
IF NOT ZeroAmountLine(QtyType) THEN BEGIN
IF (Type = Type::"G/L Account") AND NOT "Prepayment Line" THEN
RoundingLineInserted := ("No." = CustPostingGroup."Invoice Rounding Account") OR RoundingLineInserted;
IF "VAT Calculation Type" IN
["VAT Calculation Type"::"Reverse Charge VAT","VAT Calculation Type"::"Sales Tax"]
…Αντικατάσταση κώδικα
…WITH SalesLine DO BEGIN
SETRANGE("Document Type",SalesHeader."Document Type");
SETRANGE("Document No.",SalesHeader."No.");
IF FINDSET THEN
REPEAT
IF NOT ZeroAmountLine(QtyType) THEN BEGIN
IF (Type = Type::"G/L Account") AND NOT "Prepayment Line" THEN
RoundingLineInserted := ("No." = GetCPGInvRoundAcc) OR RoundingLineInserted;
IF "VAT Calculation Type" IN
["VAT Calculation Type"::"Reverse Charge VAT","VAT Calculation Type"::"Sales Tax"]
… -
Δημιουργήστε μια νέα συνάρτηση GetVPGInvRoundAcc που χρησιμοποιεί τον τύπο κωδικό (κατά μήκος 20) για την επιστρεφόμενη τιμή στον πίνακα γραμμή αγορών (39). Για να δημιουργήσετε αυτήν τη συνάρτηση, ακολουθήστε τα εξής βήματα:
-
Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
-
Όνομα: Vendor@1000
-
Τύπος δεδομένων: εγγραφή
-
Δευτερεύων τύπος: προμηθευτή
-
-
Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
-
Όνομα: VendorPostingGroup@1001
-
Τύπος δεδομένων: εγγραφή
-
Δευτερεύων τύπος: Ομάδα καταχώρησης προμηθευτών
-
-
Προσθέσετε μια νέα τοπική μεταβλητή και, στη συνέχεια, καθορίστε τη μεταβλητή ως εξής:
-
Όνομα: PurchSetup@1002
-
Τύπος δεδομένων: εγγραφή
-
Δευτερεύων τύπος: Αγορών & πληρωτέων
-
-
Προσθέστε τον κώδικα ως εξής:
PurchSetup.GET; IF PurchSetup."Invoice Rounding" THEN
IF Vendor.GET(PurchHeader."Pay-to Vendor No.") THEN
VendorPostingGroup.GET(Vendor."Vendor Posting Group");
EXIT(VendorPostingGroup."Invoice Rounding Account");
-
-
Διαγράψτε τις ακόλουθες τοπικές μεταβλητές στη συνάρτηση CalcVATAmountLines στον πίνακα γραμμή αγορών (39):
-
Vendor@1012
-
VendorPostingGroup@1013
-
-
Για να αλλάξετε τον κωδικό στη συνάρτηση CalcVATAmountLines στον πίνακα γραμμή αγορών (39):
Υπάρχοντα κώδικα…WITH PurchLine DO BEGIN
SETRANGE("Document Type",PurchHeader."Document Type");
SETRANGE("Document No.",PurchHeader."No.");
PurchSetup.GET;
IF PurchSetup."Invoice Rounding" THEN BEGIN
Vendor.GET(PurchHeader."Pay-to Vendor No.");
VendorPostingGroup.GET(Vendor."Vendor Posting Group");
END;
IF FINDSET THEN
REPEAT
IF NOT ZeroAmountLine(QtyType) THEN BEGIN
IF (Type = Type::"G/L Account") AND NOT "Prepayment Line" THEN
RoundingLineInserted := ("No." = VendorPostingGroup."Invoice Rounding Account") OR RoundingLineInserted;
IF "VAT Calculation Type" IN
["VAT Calculation Type"::"Reverse Charge VAT","VAT Calculation Type"::"Sales Tax"]
…Αντικατάσταση κώδικα
…WITH PurchLine DO BEGIN
SETRANGE("Document Type",PurchHeader."Document Type");
SETRANGE("Document No.",PurchHeader."No.");
IF FINDSET THEN
REPEAT
IF NOT ZeroAmountLine(QtyType) THEN BEGIN
IF (Type = Type::"G/L Account") AND NOT "Prepayment Line" THEN
RoundingLineInserted := ("No." = GetVPGInvRoundAcc) OR RoundingLineInserted;
IF "VAT Calculation Type" IN
["VAT Calculation Type"::"Reverse Charge VAT","VAT Calculation Type"::"Sales Tax"]
…
Προϋποθέσεις
Πρέπει να έχετε ένα από τα ακόλουθα προϊόντα, για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
-
Microsoft Dynamics NAV 2009
Πληροφορίες κατάργησης
Δεν μπορείτε να καταργήσετε αυτήν την επείγουσα επιδιόρθωση.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Σημείωση Αυτό είναι ένα άρθρο "ΤΑΧΕΙΑΣ ΔΗΜΟΣΙΕΥΣΗΣ" που έχει δημιουργηθεί απευθείας από την εταιρεία υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν έγγραφο παρέχονται ως έχουν, ως απάντηση σε ζητήματα που προέκυψαν. Ως αποτέλεσμα της ταχύτητας διαθεσιμότητάς του, το υλικό ενδέχεται να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί οποιαδήποτε στιγμή, χωρίς προειδοποίηση. Για άλλα θέματα, ανατρέξτε στην ενότητα " Όροι χρήσης ".