Μια συναλλαγή για ένα τιμολόγιο πώλησης που δημιουργείται για ένα πάγιο δημιουργεί δύο incorreclty συναλλαγές κέρδος ή ζημιά, εάν το ποσό του ΦΠΑ για την αγορά του παγίου εν μέρει αφαιρείται με την ιταλική έκδοση του Microsoft Dynamics NAV


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

Συμπτώματα


Ας υποθέσουμε ότι έχετε ένα πάγιο στο την ιταλική έκδοση του Microsoft Dynamics NAV. Εν μέρει αφαιρείται το ποσό του φόρου προστιθέμενης αξίας (ΦΠΑ) για την αγορά του παγίου. Σε αυτήν την περίπτωση, εάν πουλάτε το πάγιο, η συναλλαγή για το αντίστοιχο τιμολόγιο πωλήσεων δημιουργεί δύο συναλλαγές κέρδος ή ζημιά αντί για μία συναλλαγή.
Αυτό το ζήτημα παρουσιάζεται στα ακόλουθα προϊόντα:
  • Την ιταλική έκδοση του Microsoft Dynamics NAV 2009 R2
  • Της ιταλικής έκδοσης του Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Της ιταλικής έκδοσης του 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. Να αλλάξετε τον κωδικό σε το είδος δεδομένων αριθμό 3 στο φύλλο βιβλίου λογαριασμού - Εκτύπωση αναφοράς (12109) ως εξής:
    Υπάρχοντα κώδικα
    ...CurrReport.CREATETOTALS(Amount,IcreasesAmnt,DecreasesAmnt,"Additional-Currency Amount");
    END;

    // Delete the following lines.
    OnAfterGetRecord=BEGIN
    CALCFIELDS(Amount,"Debit Amount","Credit Amount","Additional-Currency Amount");

    IF NOT UseAmtsInAddCurr THEN BEGIN
    Amnt := Amnt + Amount;
    IF Amount > 0 THEN
    IcreasesAmnt := Amount
    ELSE
    DecreasesAmnt := ABS(Amount);
    END ELSE BEGIN
    Amnt := Amnt + "Additional-Currency Amount";
    IF "Additional-Currency Amount" > 0 THEN
    IcreasesAmnt := "Additional-Currency Amount"
    ELSE
    DecreasesAmnt := ABS("Additional-Currency Amount");
    END;
    // End of the lines.

    END;

    DataItemLinkReference=G/L Account;
    ...
    Αντικατάσταση κώδικα
    ...CurrReport.CREATETOTALS(Amount,IcreasesAmnt,DecreasesAmnt,"Additional-Currency Amount");
    END;

    // Add the following lines.
    OnAfterGetRecord=VAR
    GroupAmount@1130001 : Decimal;
    BEGIN
    CALCFIELDS(Amount,"Debit Amount","Credit Amount","Additional-Currency Amount");
    IF TempGLBookEntry.GET("Entry No.") THEN
    CurrReport.SKIP
    ELSE BEGIN
    GroupAmount := GroupBookEntry("GL Book Entry",UseAmtsInAddCurr);
    Amnt += GroupAmount;
    IF GroupAmount > 0 THEN BEGIN
    IcreasesAmnt := ABS(GroupAmount);
    DecreasesAmnt := 0;
    END ELSE BEGIN
    IcreasesAmnt := 0;
    DecreasesAmnt := ABS(GroupAmount);
    END;
    END;
    // End of the lines.

    END;

    DataItemLinkReference=G/L Account;
    ...
  2. Να αλλάξετε τον κωδικό στις ενότητες δεδομένων στοιχείου στον αριθμό 3 στο φύλλο βιβλίου λογαριασμού - Εκτύπωση αναφοράς (12109) ως εξής:
    Υπάρχοντα κώδικα
    ...{ 1130104;TextBox ;18000;423 ;1800 ;423 ;SourceExpr=Amnt;
    AutoFormatType=1;
    DataSetFieldName=Amnt_Control1130104 }

    // Delete the following line.
    { 1130105;TextBox ;18000;846 ;1800 ;423 ;SourceExpr=StartOnHand + Amount;

    AutoFormatType=1;
    DataSetFieldName=StartOnHand___Amount_Control1130105 }
    ...
    Αντικατάσταση κώδικα
    ...{ 1130104;TextBox ;18000;423 ;1800 ;423 ;SourceExpr=Amnt;
    AutoFormatType=1;
    DataSetFieldName=Amnt_Control1130104 }

    // Add the following line.
    { 1130105;TextBox ;18000;846 ;1800 ;423 ;SourceExpr=StartOnHand + IcreasesAmnt - DecreasesAmnt;

    AutoFormatType=1;
    DataSetFieldName=StartOnHand___Amount_Control1130105 }
    { 1130111;TextBox ;0 ;846 ;150 ;423 ;Name=TotalAmount;
    ...
  3. Προσθέστε μια νέα καθολική μεταβλητή στο φύλλο βιβλίου λογαριασμού - Εκτύπωση αναφοράς (12109), και στη συνέχεια καθορίστε τη μεταβλητή ως εξής:
    • Όνομα: TempGLBookEntry
    • Τύπος δεδομένων: ΠΡΟΣΩΡΙΝΉ εγγραφή
    • Δευτερεύων τύπος: GL λογιστικής εγγραφής (12144)
  4. Προσθέστε μια τοπική λειτουργία στο φύλλο βιβλίου λογαριασμού - Εκτύπωση αναφοράς (12109) ως εξής:
    LOCAL PROCEDURE GroupBookEntry@1130001(GLBookEntry@1130001 : Record 12144;UseAmtsInAddCurr@1130002 : Boolean) GroupAmount@1130003 : Decimal;VAR
    GLBookEntry1@1130004 : Record 12144;
    BEGIN
    GLBookEntry1.SETRANGE("G/L Account No.",GLBookEntry."G/L Account No.");
    GLBookEntry1.SETRANGE("Transaction No.",GLBookEntry."Transaction No.");
    IF GLBookEntry1.FINDSET THEN
    REPEAT
    TempGLBookEntry."Entry No." := GLBookEntry1."Entry No.";
    TempGLBookEntry.INSERT;
    GLBookEntry1.CALCFIELDS(Amount,"Additional-Currency Amount");
    IF UseAmtsInAddCurr THEN
    GroupAmount := GroupAmount + GLBookEntry1."Additional-Currency Amount"
    ELSE
    GroupAmount := GroupAmount + GLBookEntry1.Amount;
    UNTIL GLBookEntry1.NEXT = 0;
    EXIT(GroupAmount);
    END;
  5. Να αλλάξετε τον κωδικό στο 2 αριθμό στοιχείο δεδομένων στο βιβλίο λογιστικής - εκτύπωση έκθεσης (12121) ως εξής:
    Υπάρχοντα κωδικό 1
    ...END;
    END;

    // Delete the following lines.
    OnAfterGetRecord=BEGIN
    IF ReportType = ReportType::Reprint THEN
    LastNo := "Progressive No."
    ELSE
    LastNo := LastNo + 1;
    // End of the lines.

    TotalDebit := TotalDebit + "Debit Amount";
    TotalCredit := TotalCredit + "Credit Amount";
    ...
    Αντικατάσταση κώδικα 1
    ...END;
    END;

    // Add the following lines.
    OnAfterGetRecord=VAR
    GroupAmount@1130001 : Decimal;
    BEGIN
    // End of the lines.

    TotalDebit := TotalDebit + "Debit Amount";
    TotalCredit := TotalCredit + "Credit Amount";
    ...
    Υπάρχοντα κώδικα 2
    ...END;
    "Source Type" :: "Fixed Asset":
    BEGIN
    FA.GET("Source No.");
    Descr := FA.Description;
    END;
    ...
    Αντικατάσταση κώδικα 2
    ...END;
    "Source Type" :: "Fixed Asset":
    BEGIN

    // Add the following lines.
    IF TempGLBookEntry.GET("Entry No.") THEN
    CurrReport.SKIP
    ELSE BEGIN
    GroupAmount := GroupBookEntry("GL Book Entry");
    IF GroupAmount > 0 THEN BEGIN
    "Debit Amount" := GroupAmount;
    "Credit Amount" := 0;
    END ELSE BEGIN
    "Debit Amount" := 0;
    "Credit Amount" := GroupAmount;
    END;
    END;
    // End of the lines.

    FA.GET("Source No.");
    Descr := FA.Description;
    END;
    ...
    Υπάρχοντα κώδικα 3
    ...ELSE
    Descr := '';
    END;


    IF (NOT CurrReport.PREVIEW) AND
    (ReportType = ReportType::"Final Print")
    THEN BEGIN
    ...
    Αντικατάσταση κώδικα 3
    ...ELSE
    Descr := '';
    END;

    // Add the following lines.
    IF ReportType = ReportType::Reprint THEN
    LastNo := "Progressive No."
    ELSE
    LastNo := LastNo + 1;
    // End of the lines.

    IF (NOT CurrReport.PREVIEW) AND
    (ReportType = ReportType::"Final Print")
    THEN BEGIN
    ...
  6. Προσθέστε μια νέα καθολική μεταβλητή στο το το βιβλίο λογιστικής - εκτύπωση (12121) και στη συνέχεια καθορίστε τη μεταβλητή ως εξής:
    • Όνομα: TempGLBookEntry
    • Τύπος δεδομένων: ΠΡΟΣΩΡΙΝΉ εγγραφή
    • Δευτερεύων τύπος: GL λογιστικής εγγραφής (12144)
  7. Να αλλάξετε τον κωδικό στην τεκμηρίωση στο βιβλίο λογιστικής - εκτύπωση έκθεσης (12121) ως εξής:
    Υπάρχοντα κώδικα
    ...EndDate := Date."Period Start" - 1;
    END;
    ...
    Αντικατάσταση κώδικα
    ...EndDate := Date."Period Start" - 1;
    END;

    // Add the following lines.
    LOCAL PROCEDURE GroupBookEntry@1130002(GLBookEntry@1130001 : Record 12144) GroupAmount@1130002 : Decimal;
    VAR
    GLBookEntry1@1130003 : Record 12144;
    BEGIN
    GLBookEntry1.SETRANGE("G/L Account No.",GLBookEntry."G/L Account No.");
    GLBookEntry1.SETRANGE("Transaction No.",GLBookEntry."Transaction No.");
    IF GLBookEntry1.FINDSET THEN
    REPEAT
    TempGLBookEntry."Entry No." := GLBookEntry1."Entry No.";
    TempGLBookEntry.INSERT;
    GLBookEntry1.CALCFIELDS(Amount);
    GroupAmount := GroupAmount + GLBookEntry1.Amount;
    UNTIL GLBookEntry1.NEXT = 0;
    EXIT(GroupAmount);
    END;
    // End of the lines.
    ...

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

Πρέπει να έχετε το ένα από τα ακόλουθα προϊόντα, για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση:
  • Την ιταλική έκδοση του Microsoft Dynamics NAV 2009 R2
  • Της ιταλικής έκδοσης του Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
  • Της ιταλικής έκδοσης του Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

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

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

Κατάσταση


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