Ισχύει για
Dynamics NAV 2009

Συμπτώματα

Οι βάσεις και τα ποσά ομαδοποιούνται σωστά για το ίδιο ποσοστό ΦΠΑ και την περίοδο της διασάφησης 340 με μετρητά ΦΠΑ που σχετίζονται με την ισπανική έκδοση του Microsoft Dynamics NAV 2009.Το ίδιο σενάριο με κανονικό ΦΠΑ λειτουργεί όπως αναμένεται, διαχωρίζοντας κάθε τιμολόγιο, ανεξάρτητα από το αν έχουν το ίδιο ποσοστό ΦΠΑ. Ακολουθήστε τα βήματα της ενότητας οι αλλαγές κώδικα για να επιλύσετε αυτό το ζήτημα. Αυτό το ζήτημα παρουσιάζεται στα ακόλουθα προϊόντα:

  • Για την ισπανική έκδοση του Microsoft Dynamics NAV 2009 R2

  • Την ισπανική έκδοση του Microsoft Dynamics NAV 2009 SP1

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

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

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

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

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς καμία εγγύηση, είτε σιωπηρή είτε ρητή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία διαδικασιών και τον εντοπισμό σφαλμάτων σε αυτές. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας. Ωστόσο, δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, επιβεβαιώστε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Dynamics NAV έχουν αποσυνδεθεί από το σύστημα. Αυτό περιλαμβάνει υπηρεσίες Microsoft Dynamics NAV εφαρμογών διακομιστή (NAS). Θα πρέπει να το πρόγραμμα-πελάτη μόνο χρήστη που είναι συνδεδεμένος κατά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης.Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε μια άδεια χρήσης του προγραμματιστή.Συνιστούμε ότι ο λογαριασμός χρήστη στο παράθυρο "Συνδέσεις Windows" ή στο παράθυρο συνδέσεις βάσης δεδομένων να αντιστοιχιστεί το "SUPER" αναγνωριστικό ρόλου. Εάν ο λογαριασμός χρήστη δεν μπορεί να αντιστοιχιστεί το Αναγνωριστικό ρόλου "SUPER", πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:

  • Το δικαίωμα "Τροποποίηση" για το αντικείμενο που θα αλλάξετε.

  • Τα δικαιώματα εκτέλεσης για το αντικείμενο 5210 Αναγνωριστικό αντικειμένου συστήματος και για την 9015 Αναγνωριστικό αντικειμένου συστήματοςτο αντικείμενο.

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

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

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

  1. Αλλάξτε τον κωδικό στην εκτύπωση κάνει δήλωση 340 (10743) ως εξής:Υπάρχοντα κωδικό 1

    ...   END;                      END;// Delete the following line.OnAfterGetRecord=BEGIN// End of the deleted line.                           OperationCode := GetOperationCode(VATEntry2);                           VATBuffer."VAT %" := "VAT %";...

    Αντικατάσταση κώδικα 1

    ... END;                      END;// Add the following lines.OnAfterGetRecord=VARVendLedgEntryAppl@1100000 : Record 25;NewEntry@1100001 : Boolean;BEGIN// End of the added lines.                           OperationCode := GetOperationCode(VATEntry2);                           VATBuffer."VAT %" := "VAT %";...

    Υπάρχοντα κώδικα 2

    ... VATBuffer.Amount := Amount;                             END;                             VATBuffer.INSERT;// Delete the following lines.IF Type = VATEntry.Type::Purchase THEN BEGINVATEntryTemporary := VATEntry2;VATEntryTemporary.INSERT;END;END;// End of the deleted lines.                         END;        TotalFields=Base,Amount;...

    Αντικατάσταση κώδικα 2

    ...VATBuffer.Amount := Amount;                             END;                             VATBuffer.INSERT;// Add the following lines.END;IF Type = VATEntry.Type::Purchase THENIF HasBeenRealized("Entry No.") OR ("Unrealized VAT Entry No." <> 0) THEN BEGINNewEntry := CheckVLEApplication(VATEntry2);VATEntryTemporary.SETRANGE("Posting Date","Posting Date");VATEntryTemporary.SETRANGE("Document No.","Document No.");VATEntryTemporary.SETRANGE("Document Type","Document Type");VATEntryTemporary.SETRANGE(Type,Type);VATEntryTemporary.SETRANGE("VAT %","VAT %");VATEntryTemporary.SETRANGE("Transaction No.","Transaction No.");IF VATEntryTemporary.FINDFIRST AND NOT NewEntry THEN BEGINVATEntryTemporary.Base += Base;VATEntryTemporary.Amount += Amount;VATEntryTemporary.MODIFY;END ELSE BEGINVATEntryTemporary := VATEntry2;VATEntryTemporary.INSERT;END;END ELSE BEGINVATEntryTemporary := VATEntry2;VATEntryTemporary.INSERT;END;// End of the added lines.                         END;        TotalFields=Base,Amount;...

    Υπάρχοντα κώδικα 3

    ...  DataItemVarName=<Integer2>;        OnPreDataItem=BEGIN                        VATBuffer.FIND('-');                       VATEntryTemporary.SETCURRENTKEY("VAT %","EC %");                        IF VATEntryTemporary.FINDFIRST THEN;                        CurrReport.CREATETOTALS(VATBuffer2.Base,VATBuffer2.Amount);                        Fin := FALSE;...

    Αντικατάσταση κώδικα 3

    ...  DataItemVarName=<Integer2>;        OnPreDataItem=BEGIN                        VATBuffer.FIND('-');// Delete the following line.VATEntryTemporary.SETCURRENTKEY("VAT %","EC %");// End of the deleted line.                        IF VATEntryTemporary.FINDFIRST THEN;                        CurrReport.CREATETOTALS(VATBuffer2.Base,VATBuffer2.Amount);                        Fin := FALSE;...

    Υπάρχοντα κωδικό 4

    ...IF VATEntry.Type = VATEntry.Type::Purchase THEN BEGIN                             VATEntryTemporary.Amount :=  VATBuffer.Amount;                             VATDeductAmt := CheckDeductibleVAT(VATEntryTemporary);// Delete the following lines.VATEntryTemporary.NEXT;RecordTypePurchase(VATEntry2);// End of the deleted lines.                           END;                           Fin := VATBuffer.NEXT = 0;                         END;...

    Αντικατάσταση κώδικα 4

    ... IF VATEntry.Type = VATEntry.Type::Purchase THEN BEGIN                             VATEntryTemporary.Amount :=  VATBuffer.Amount;                             VATDeductAmt := CheckDeductibleVAT(VATEntryTemporary);// Add the following lines.VATEntryTemporary.SETCURRENTKEY("VAT %","EC %");VATEntryTemporary.SETRANGE("VAT %",VATBuffer."VAT %");VATEntryTemporary.SETRANGE("EC %",VATBuffer."EC %");VATEntryTemporary.FINDSET;REPEATRecordTypePurchase(VATEntryTemporary);UNTIL VATEntryTemporary.NEXT = 0;// End of the added lines.                           END;                           Fin := VATBuffer.NEXT = 0;                         END;...
  2. Να αλλάξετε τον κωδικό σε καθολικές μεταβλητές στην εκτύπωση κάνει δήλωση 340 (10743) ως εξής:Υπάρχοντα κώδικα

    ...VATEntryTemporary@1100078 : TEMPORARY Record 254;      TempDeclarationLines@1100149 : TEMPORARY Record 10744;      TempVATEntry@1100007 : TEMPORARY Record 254;      CommonDialogMgt@1100015 : Codeunit 412;      OutFile@1100016 : File;      DeclarationNum@1100017 : Text[4];...

    Αντικατάσταση κώδικα

    ...  VATEntryTemporary@1100078 : TEMPORARY Record 254;      TempDeclarationLines@1100149 : TEMPORARY Record 10744;      TempVATEntry@1100007 : TEMPORARY Record 254;// Add the following line.TempDtldVendLedgerEntry@1100115 : TEMPORARY Record 380;// End of the added line.      CommonDialogMgt@1100015 : Codeunit 412;      OutFile@1100016 : File;      DeclarationNum@1100017 : Text[4];...
  3. Αλλάξτε τον κωδικό στη συνάρτηση RecordTypePurchase στην έκθεση κάνει δήλωση 340 (10743) ως εξής:Υπάρχοντα κώδικα

    ... END ELSE        OperationDateText := FormatDate(VATEntryRec."Posting Date");// Delete the following lines.IF VATEntryRec."Document Type" IN [VATEntryRec."Document Type"::Payment,VATEntryRec."Document Type"::Refund] THEN BEGINUnrealizedVATEntryNo := VATEntryRec."Unrealized VAT Entry No.";DocumentDate := VATEntryRec."Posting Date";IF UnrealizedVATEntryNo <> 0 THEN BEGINUnrealizedVATEntry.GET(UnrealizedVATEntryNo);OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");DocumentDate := UnrealizedVATEntry."Document Date";// End of the deleted lines.        END;      END ELSE        UnrealizedVATEntryNo := 0;...

    Αντικατάσταση κώδικα

    ... END ELSE        OperationDateText := FormatDate(VATEntryRec."Posting Date");// Add the following lines.VATBuffer2.Base := VATBuffer.Base;VATBuffer2.Amount := VATBuffer.Amount;IF VATEntryRec."Document Type" IN [VATEntryRec."Document Type"::Payment,VATEntryRec."Document Type"::Refund] THEN BEGINUnrealizedVATEntryNo := VATEntryTemporary."Unrealized VAT Entry No.";DocumentDate := VATEntryTemporary."Posting Date";IF UnrealizedVATEntryNo <> 0 THEN BEGINUnrealizedVATEntry.GET(UnrealizedVATEntryNo);OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");DocumentDate := UnrealizedVATEntry."Document Date";IF FindPmtOrderBillGrBankAcc(VATEntry.Type,VATEntry."Document No.") = '' THEN BEGINVendorDocumentNo := UnrealizedVATEntry."External Document No.";VATBuffer2.Base := VATEntryTemporary.Base;VATBuffer2.Amount := VATEntryTemporary.Amount;END;// End of the added lines.        END;      END ELSE        UnrealizedVATEntryNo := 0;...
  4. Αλλάξτε τον κωδικό στη συνάρτηση CheckVLEApplication στην έκθεση κάνει δήλωση 340 (10743) ως εξής:Υπάρχοντα κώδικα

    ...  PrevDeclarationNumEnable := ReplaceDeclaration;    END;    BEGIN    END.  }...

    Αντικατάσταση κώδικα

    ...PrevDeclarationNumEnable := ReplaceDeclaration;    END;// Add the following lines.LOCAL PROCEDURE CheckVLEApplication@1100074(VATEntry@1100000 : Record 254) : Boolean;VARVendorLedgerEntry@1100001 : Record 25;DtldVendLedgEntry@1100002 : Record 380;CheckVendLedgEntry@1100003 : Record 25;UnrealizedVendLedgEntry@1100004 : Integer;BEGINFilterVendLedgerEntryByVATEntry(VendorLedgerEntry,VATEntry);UnrealizedVendLedgEntry := GetUnrealizedInvoiceVLENo(VATEntry."Unrealized VAT Entry No.");IF VendorLedgerEntry.FINDSET THENREPEATDtldVendLedgEntry.RESET;DtldVendLedgEntry.SETRANGE(Unapplied,FALSE);DtldVendLedgEntry.SETRANGE("Entry Type",DtldVendLedgEntry."Entry Type"::Application);DtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No.",VendorLedgerEntry."Entry No.");IF UnrealizedVendLedgEntry <> 0 THENDtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",UnrealizedVendLedgEntry);IF DtldVendLedgEntry.FINDSET THENREPEATIF (DtldVendLedgEntry."Vendor Ledger Entry No." <> DtldVendLedgEntry."Applied Vend. Ledger Entry No.") ANDCheckVendLedgEntry.GET(DtldVendLedgEntry."Vendor Ledger Entry No.")THEN BEGINIF ExistDtldVLE(DtldVendLedgEntry."Vendor Ledger Entry No.",DtldVendLedgEntry."Applied Vend. Ledger Entry No.") THENEXIT(FALSE);InsertTempDtldVLE(DtldVendLedgEntry."Vendor Ledger Entry No.",DtldVendLedgEntry."Applied Vend. Ledger Entry No.");EXIT(TRUE);END;UNTIL DtldVendLedgEntry.NEXT = 0ELSE BEGINDtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No.");DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",VendorLedgerEntry."Entry No.");IF UnrealizedVendLedgEntry <> 0 THENDtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No.",UnrealizedVendLedgEntry);IF DtldVendLedgEntry.FINDSET THENREPEATIF CheckVendLedgEntry.GET(DtldVendLedgEntry."Applied Vend. Ledger Entry No.") THEN BEGINIF ExistDtldVLE(DtldVendLedgEntry."Applied Vend. Ledger Entry No.",DtldVendLedgEntry."Vendor Ledger Entry No.") THENEXIT(FALSE);InsertTempDtldVLE(DtldVendLedgEntry."Applied Vend. Ledger Entry No.",DtldVendLedgEntry."Vendor Ledger Entry No.");EXIT(TRUE);END;UNTIL DtldVendLedgEntry.NEXT = 0;END;UNTIL VendorLedgerEntry.NEXT = 0;EXIT(TRUE);END;LOCAL PROCEDURE GetUnrealizedInvoiceVLENo@1100075(VATEntryNo@1100000 : Integer) : Integer;VARVATEntry@1100002 : Record 254;VendLedgEntry@1100001 : Record 25;BEGINIF NOT VATEntry.GET(VATEntryNo) THENEXIT(0);FilterVendLedgerEntryByVATEntry(VendLedgEntry,VATEntry);IF VendLedgEntry.FINDFIRST THENEXIT(VendLedgEntry."Entry No.");EXIT(0);END;LOCAL PROCEDURE FilterVendLedgerEntryByVATEntry@1100087(VAR VendLedgEntry@1100001 : Record 25;VATEntry@1100000 : Record 254);BEGINVendLedgEntry.SETRANGE("Vendor No.",VATEntry."Bill-to/Pay-to No.");VendLedgEntry.SETRANGE("Posting Date",VATEntry."Posting Date");VendLedgEntry.SETRANGE("Document Type",VATEntry."Document Type");VendLedgEntry.SETRANGE("Document No.",VATEntry."Document No.");VendLedgEntry.SETRANGE("Transaction No.",VATEntry."Transaction No.");END;LOCAL PROCEDURE HasBeenRealized@1100064(VATEntryNo@1100000 : Integer) : Boolean;VARUnrealizedVATEntry@1100001 : Record 254;BEGINUnrealizedVATEntry.SETRANGE("Unrealized VAT Entry No.",VATEntryNo);EXIT(NOT UnrealizedVATEntry.ISEMPTY);END;LOCAL PROCEDURE ExistDtldVLE@1100195(VLENo@1100001 : Integer;AppliedVLENo@1100000 : Integer) : Boolean;BEGINTempDtldVendLedgerEntry.SETRANGE("Vendor Ledger Entry No.",VLENo);TempDtldVendLedgerEntry.SETRANGE("Applied Vend. Ledger Entry No.",AppliedVLENo);EXIT(NOT TempDtldVendLedgerEntry.ISEMPTY);END;LOCAL PROCEDURE InsertTempDtldVLE@1100191(VLENo@1100000 : Integer;AppliedVLENo@1100001 : Integer);BEGINTempDtldVendLedgerEntry.INIT;IF TempDtldVendLedgerEntry.FINDLAST THEN;TempDtldVendLedgerEntry."Entry No." += 1;TempDtldVendLedgerEntry."Vendor Ledger Entry No." := VLENo;TempDtldVendLedgerEntry."Applied Vend. Ledger Entry No." := AppliedVLENo;TempDtldVendLedgerEntry.INSERT;END;// End of the added lines.BEGIN    END.  }...

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

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

  • Για την ισπανική έκδοση του Microsoft Dynamics NAV 2009 R2

  • Την ισπανική έκδοση του Microsoft Dynamics NAV 2009 SP1

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

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

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

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

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.