Τα ταχέως δημοσιευμένα άρθρα παρέχουν πληροφορίες απευθείας από τον οργανισμό υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν δημιουργούνται ως απόκριση σε αναδυόμενα ή μοναδικά θέματα ή προορίζονται να συμπληρώσουν άλλες πληροφορίες της Γνωσιακής Βάσης.
Αυτό το άρθρο ισχύει για το Microsoft Dynamics NAV για τις τοπικές ρυθμίσεις γλώσσας ιταλικά (it).
Συμπτώματα
Ας υποθέσουμε ότι έχετε ένα τιμολόγιο που περιλαμβάνει παρακράτηση φόρου στην ιταλική έκδοση του Microsoft Dynamics NAV. Όταν καταχωρείτε την πληρωμή για το τιμολόγιο χωρίς να χρησιμοποιήσετε το Withh. Φορολογία-Soc. Sec. για τον υπολογισμό της παρακράτησης φόρου, το Microsoft Dynamics NAV καταχωρεί την πληρωμή. Ωστόσο, αυτή η ανάρτηση είναι εσφαλμένη. Θα πρέπει να λάβετε ένα προειδοποιητικό μήνυμα που σας ενημερώνει να χρησιμοποιήσετε το Withh. Φορολογία-Soc. Sec. όταν δημοσιεύετε μια πληρωμή για ένα τιμολόγιο παρακράτησης φόρου χωρίς υπολογισμό της παρακράτησης φόρου.
Αυτό το ζήτημα παρουσιάζεται στα ακόλουθα προϊόντα:
- Η ιταλική έκδοση του Microsoft Dynamics NAV 2009 SP1
- Η ιταλική έκδοση του Microsoft Dynamics NAV 5.0 SP1
- Η ιταλική έκδοση του Microsoft Dynamics NAV 5.0
Επίλυση
Πληροφορίες επείγουσας επιδιόρθωσης
Μια υποστηριζόμενη επείγουσα επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, αυτή η ενέργεια προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε το μόνο σε συστήματα που αντιμετωπίζουν αυτό το συγκεκριμένο πρόβλημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, συνιστάται να περιμένετε έως το επόμενο service pack του Microsoft Dynamics NAV ή την επόμενη έκδοση που περιέχει αυτήν την επείγουσα επιδιόρθωση.
Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που προκύπτουν κανονικά για κλήσεις υποστήριξης ενδέχεται να ακυρωθούν, εάν ένας επαγγελματίας τεχνικής υποστήριξης για το Microsoft Dynamics και τα σχετικά προϊόντα προσδιορίσει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση, θα ισχύσουν οι συνηθισμένες χρεώσεις υποστήριξης.
Πληροφορίες εγκατάστασης
Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για απεικόνιση, χωρίς καμία εγγύηση, ρητή ή σιωπηρή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που επιδεικνύεται και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία και τον εντοπισμό σφαλμάτων διαδικασιών. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας βοηθήσουν να εξηγήσετε τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παρέχουν πρόσθετες λειτουργίες ούτε θα δημιουργήσουν διαδικασίες για να ικανοποιήσουν τις συγκεκριμένες απαιτήσεις σας.
Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, βεβαιωθείτε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Navision έχουν αποσυνδεθεί από το σύστημα. Αυτό περιλαμβάνει χρήστες προγράμματος-πελάτη Microsoft Navision Application Services (NAS). Θα πρέπει να είστε ο μόνος χρήστης-πελάτης που είναι συνδεδεμένος όταν υλοποιείτε αυτήν την επείγουσα επιδιόρθωση.
Για να υλοποιήσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε άδεια προγραμματιστή.
Συνιστούμε ο λογαριασμός χρήστη στο παράθυρο Συνδέσεις των Windows ή στο παράθυρο Συνδέσεις βάσης δεδομένων να έχει το αναγνωριστικό ρόλου "SUPER". Εάν δεν είναι δυνατή η εκχώρηση του αναγνωριστικού ρόλου "SUPER" στο λογαριασμό χρήστη, πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:
- Το δικαίωμα τροποποίησης για το αντικείμενο που θα αλλάξετε.
- Το δικαίωμα εκτέλεσης για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 5210 και για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 9015.
Σημείωση Δεν χρειάζεται να έχετε δικαιώματα στους χώρους αποθήκευσης δεδομένων, εκτός εάν πρέπει να εκτελέσετε επιδιόρθωση δεδομένων.
Αλλαγές κώδικα
Σημείωση Ελέγχετε πάντα τις επιδιορθώσεις κώδικα σε ελεγχόμενο περιβάλλον, πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής σας.
Για να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, αλλάξτε τον κωδικό στο Gen. Jnl.-Post Μονάδα κώδικα γραμμής (12) ως εξής.
Για να το κάνετε αυτό, ακολουθήστε τα παρακάτω βήματα:
Στο μενού "Προβολή ", κάντε κλικ στην επιλογή καθολικά C/AL και, στη συνέχεια, προσθέστε τα ακόλουθα στην καρτέλα " Σταθερές ελέγχου ":
- Όνομα: Text1130023
- ConstValue: Το τιμολόγιο περιλαμβάνει παρακράτηση φόρου δεν πρέπει να εφαρμόζεται απευθείας. Χρησιμοποιήστε τη συνάρτηση Payment Journals -> Πληρωμές -> Withh.Tax-Soc.Sec.
Αλλάξτε τον κωδικό στο έναυσμα ApplyVendLedgEntry ως εξής:
Υπάρχων κωδικός 1... IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN // Find the entry to be applied to OldVendLedgEntry.RESET; OldVendLedgEntry.SETCURRENTKEY("Document Type","Document No.","Document Occurrence","Vendor No."); ...Κωδικός αντικατάστασης 1
... IF GenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN CheckWithholdTax(GenJnlLine."Applies-to Doc. Type",GenJnlLine."Applies-to Doc. No.",GenJnlLine,TRUE); // Add this line. // Find the entry to be applied to OldVendLedgEntry.RESET; OldVendLedgEntry.SETCURRENTKEY("Document Type","Document No.","Document Occurrence","Vendor No."); ...Υπάρχων κωδικός 2
... OldVendLedgEntry.SETFILTER("Amount to Apply",'<>%1',0); //Check and Move Ledger Entries to Temp IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code"); IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN REPEAT IF GenJnlApply.CheckAgainstApplnCurrency( ....Κωδικός αντικατάστασης 2
... OldVendLedgEntry.SETFILTER("Amount to Apply",'<>%1',0); //Check and Move Ledger Entries to Temp IF PurchSetup."Appln. between Currencies" = PurchSetup."Appln. between Currencies"::None THEN OldVendLedgEntry.SETRANGE("Currency Code",NewCVLedgEntryBuf."Currency Code"); IF OldVendLedgEntry.FINDSET(FALSE,FALSE) THEN REPEAT CheckWithholdTax(OldVendLedgEntry."Document Type",OldVendLedgEntry."Document No.",GenJnlLine,FALSE); // Add this line. IF GenJnlApply.CheckAgainstApplnCurrency( ...Στο μενού Προβολή (View ), κάντε κλικ στην εντολή C/AL Globals και, στη συνέχεια, προσθέστε τις ακόλουθες πληροφορίες στην καρτέλα Συνάρτηση (Function ):
Στο πλαίσιο Όνομα (Name ), πληκτρολογήστε CheckWithholdTax.
Κάντε κλικ στην επιλογή Local.
Στην καρτέλα "Παράμετροι ", καθορίστε τις ακόλουθες ρυθμίσεις:
Για την πρώτη παράμετρο:- Var: Όχι
- Όνομα: DocType
- Τύπος δεδομένων: Επιλογή
- Στο μενού Προβολή , κάντε κλικ στην εντολή Ιδιότητες, προσθέστε την τιμή για την ιδιότητα OptionString: ,,Τιμολόγιο,Πιστωτικό τιμολόγιο
Για τη δεύτερη παράμετρο:
- Var: Όχι
- Όνομα: DocNo
- Τύπος δεδομένων: Κωδικός
- Μήκος: 20
Για την τρίτη παράμετρο:
- Var: Όχι
- Όνομα: GenJnlLine
- Τύπος δεδομένων: Εγγραφή
- Δευτερεύων τύπος: Γεν. Γραμμή χρονικού
Για την τέταρτη παράμετρο:
- Var: Όχι
- Όνομα: ApplyInGenJnlLine
- Τύπος δεδομένων: Δυαδική τιμή
Στην καρτέλα "Μεταβλητές ", καθορίστε τις ακόλουθες ρυθμίσεις:
Για την πρώτη μεταβλητή:- Όνομα : ComputedWithholdTax
- Τύπος δεδομένων : Εγγραφή
- Υποτύπος : Υπολογιζόμενος παρακρατούμενος φόρος
Για τη δεύτερη μεταβλητή:
- Όνομα : TmpWithholdingContribution
- Τύπος δεδομένων : Εγγραφή
- Υποτύπος : Tmp Παρακράτηση Συνεισφοράς
Για την τρίτη μεταβλητή:
- Όνομα : WithholdCode
- Τύπος δεδομένων : Εγγραφή
- Δευτερεύων τύπος : Παρακράτηση κωδικού
Προσθέστε ένα νέο έναυσμα "CheckWithholdTax" ως εξής:
CheckWithholdTax(DocType : ',,Invoice,Credit Memo';DocNo : Code[20];GenJnlLine : Record "Gen. Journal Line";ApplyInGenJnlLine : Boolean ) IF DocType IN [DocType::Invoice,DocType::"Credit Memo"] THEN BEGIN ComputedWithholdTax.RESET; ComputedWithholdTax.SETRANGE("Document No.",DocNo); IF ComputedWithholdTax.FINDFIRST THEN BEGIN IF NOT ApplyInGenJnlLine THEN ERROR(Text1130023) ELSE BEGIN TmpWithholdingContribution.RESET; TmpWithholdingContribution.SETRANGE("Invoice No.",DocNo); IF NOT TmpWithholdingContribution.FINDFIRST THEN BEGIN WithholdCode.GET(ComputedWithholdTax."Withholding Tax Code"); WithholdCode.TESTFIELD("Withholding Taxes Payable Acc."); IF NOT((GenJnlLine."Bal. Account Type" = GenJnlLine."Bal. Account Type"::"G/L Account") AND (GenJnlLine."Bal. Account No." = WithholdCode."Withholding Taxes Payable Acc.")) THEN ERROR(Text1130023); END; END; END; END;
Προαπαιτούμενα
Πρέπει να έχετε ένα από τα ακόλουθα προϊόντα για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση:
- Η ιταλική έκδοση του Microsoft Dynamics NAV 2009 SP1
- Η ιταλική έκδοση του Microsoft Dynamics NAV 5.0 SP1
- Η ιταλική έκδοση του Microsoft Dynamics NAV 5.0
Πληροφορίες κατάργησης
Δεν μπορείτε να καταργήσετε αυτήν την επείγουσα επιδιόρθωση.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Η MICROSOFT Ή/ΚΑΙ ΟΙ ΠΡΟΜΗΘΕΥΤΈΣ ΤΗΣ ΔΕΝ ΠΑΡΈΧΟΥΝ ΔΗΛΏΣΕΙΣ Ή ΕΓΓΥΉΣΕΙΣ ΣΧΕΤΙΚΆ ΜΕ ΤΗΝ ΚΑΤΑΛΛΗΛΌΤΗΤΑ, ΤΗΝ ΑΞΙΟΠΙΣΤΊΑ Ή ΤΗΝ ΑΚΡΊΒΕΙΑ ΤΩΝ ΠΛΗΡΟΦΟΡΙΏΝ ΠΟΥ ΠΕΡΙΈΧΟΝΤΑΙ ΣΤΑ ΈΓΓΡΑΦΑ ΚΑΙ ΤΑ ΣΧΕΤΙΚΆ ΓΡΑΦΙΚΆ ΠΟΥ ΔΗΜΟΣΙΕΎΟΝΤΑΙ ΣΕ ΑΥΤΉΝ ΤΗΝ ΤΟΠΟΘΕΣΊΑ WEB (ΤΑ "ΥΛΙΚΆ") ΓΙΑ ΟΠΟΙΟΝΔΉΠΟΤΕ ΣΚΟΠΌ.
ΤΟ ΥΛΙΚΌ ΜΠΟΡΕΊ ΝΑ ΠΕΡΙΛΑΜΒΆΝΕΙ ΤΕΧΝΙΚΈΣ ΑΝΑΚΡΊΒΕΙΕΣ Ή ΤΥΠΟΓΡΑΦΙΚΆ ΛΆΘΗ ΚΑΙ ΜΠΟΡΕΊ ΝΑ ΑΝΑΘΕΩΡΗΘΕΊ ΑΝΆ ΠΆΣΑ ΣΤΙΓΜΉ ΧΩΡΊΣ ΠΡΟΕΙΔΟΠΟΊΗΣΗ. ΣΤΟ ΜΕΓΙΣΤΟ ΒΑΘΜΟ ΠΟΥ ΕΠΙΤΡΕΠΕΤΑΙ ΑΠΟ ΤΗΝ ΙΣΧΥΟΥΣΑ ΝΟΜΟΘΕΣΙΑ, Η MICROSOFT Ή/ΚΑΙ ΟΙ ΠΡΟΜΗΘΕΥΤΕΣ ΤΗΣ ΑΠΟΠΟΙΟΥΝΤΑΙ ΚΑΙ ΕΞΑΙΡΟΥΝ ΟΛΕΣ ΤΙΣ ΔΗΛΩΣΕΙΣ, ΕΓΓΥΗΣΕΙΣ ΚΑΙ ΠΡΟΫΠΟΘΕΣΕΙΣ, ΡΗΤΕΣ, ΣΙΩΠΗΡΕΣ Ή ΘΕΣΜΙΚΕΣ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ, ΕΝΔΕΙΚΤΙΚΑ, ΤΩΝ ΔΗΛΩΣΕΩΝ, ΤΩΝ ΕΓΓΥΗΣΕΩΝ Ή ΤΩΝ ΣΥΝΘΗΚΩΝ ΤΙΤΛΟΥ, ΜΗ ΠΑΡΑΒΙΑΣΗΣ, ΙΚΑΝΟΠΟΙΗΤΙΚΗΣ ΣΥΝΘΗΚΗΣ Ή ΠΟΙΟΤΗΤΑΣ, ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ΚΑΙ ΚΑΤΑΛΛΗΛΟΤΗΤΑΣ ΓΙΑ ΣΥΓΚΕΚΡΙΜΕΝΟ ΣΚΟΠΟ, ΟΣΟΝ ΑΦΟΡΑ ΤΑ ΥΛΙΚΆ.