Εμφανίζεται το μήνυμα λάθους "Δεν μπορείτε να χειριστείτε τον αναβληθέντα ΦΠΑ για τιμολόγιο πίστωσης πωλήσεων εδώ" όταν συνειδητοποιείτε μια αναβολή ΦΠΑ στο παράθυρο διαλόγου φύλλου εργασίας εφαρμογής ΦΠΑ στην πολωνική έκδοση του Microsoft Dynamics NAV 2009 R2

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

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

Συμπτώματα

Ας υποθέσουμε ότι καταχωρείτε ένα πιστωτικό τιμολόγιο πωλήσεων που περιέχει έναν αναβληθέντα φόρο προστιθέμενης αξίας (ΦΠΑ) στην πολωνική έκδοση του Microsoft Dynamics NAV 2009 R2. Όταν προσπαθείτε να πραγματοποιήσετε το ΦΠΑ στο παράθυρο διαλόγου Φύλλο εργασίας εφαρμογής ΦΠΑ (VAT Application Worksheet ), λαμβάνετε το ακόλουθο μήνυμα λάθους:

Σημείωση

Δεν μπορείτε να χειριστείτε τον αναβληθέντα ΦΠΑ για πιστωτικό τιμολόγιο πωλήσεων εδώ.

Επίλυση

Πληροφορίες επείγουσας επιδιόρθωσης

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

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

            
          

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

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

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

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

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

  • Το δικαίωμα τροποποίησης για το αντικείμενο που θα αλλάξετε.
  • Το δικαίωμα εκτέλεσης για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 5210 και για το αντικείμενο αναγνωριστικού αντικειμένου συστήματος 9015.

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

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

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

  1. Διαγράψτε τις ακόλουθες παραμέτρους στη συνάρτηση RealizePostponedVAT στο Gen. Jnl.-Post Μονάδα κώδικα γραμμής (12):

    • TransactionNo
    • VATEntryNo
    • VAR TempJnlLineDim2
  2. Προσθέστε μια νέα παράμετρο στη συνάρτηση RealizePostponedVAT στο Gen. Jnl.-Post Line codeunit (12) και, στη συνέχεια, καθορίστε την παράμετρο ως εξής:

    • Όνομα: VATEntry
    • Τύπος δεδομένων: Εγγραφή
    • Δευτερεύων τύπος: Καταχώριση ΦΠΑ (254)
  3. Αλλάξτε τον κωδικό στη συνάρτηση RealizePostponedVAT στο Gen. Μονάδα κώδικα Jnl.-Post Line (12) ως εξής:
    Υπάρχων κωδικός 1

    ...
    GenJnlLine.COPY(GenJnlLine2);
    
    // Delete the following lines. 
    TempJnlLineDim.RESET;
    TempJnlLineDim.DELETEALL;
    DimMgt.CopyJnlLineDimToJnlLineDim(TempJnlLineDim2,TempJnlLineDim);
    // End of the lines.
    
    GLSetup.GET;
    SourceCodeSetup.GET;
    ...
    

    Κωδικός αντικατάστασης 1

    ...
    GenJnlLine.COPY(GenJnlLine2);
    
    // Add the following line.
    PreparePostponedVATDim(VATEntry,TempJnlLineDim);
    
    GLSetup.GET;
    SourceCodeSetup.GET;
    ...
    

    Υπάρχων κωδικός 2

    ...
    InitCodeUnit;
    
    // Delete the following lines. 
    VATEntryNoToRealize := VATEntryNo;
    IF GenJnlLine."Account Type" = GenJnlLine."Account Type"::Customer THEN BEGIN
    CustLedgEntry."Transaction No." := TransactionNo;
    // End of the lines.
    
    CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount)
    END ELSE BEGIN
    ...
    

    Κωδικός αντικατάστασης 2

    ...
    InitCodeUnit;
    
    // Add the following lines.
    VATEntryNoToRealize := VATEntry."Entry No.";
    IF GenJnlLine."Account Type" = GenJnlLine."Account Type"::Customer THEN BEGIN
    CustLedgEntry."Transaction No." := VATEntry."Transaction No.";
    //End of the lines. 
    
    CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount)
    END ELSE BEGIN
    ...
    

    Υπάρχων κωδικός 3

    ...
    CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount)
    END ELSE BEGIN
    
    // Delete the following line. 
    VendLedgEntry."Transaction No." := TransactionNo;
    
    VendUnrealizedVAT(VendLedgEntry,GenJnlLine.Amount);
    END;
    VATEntryNoToRealize := 0;
    ...
    

    Κωδικός αντικατάστασης 3

    ...
    CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount)
    END ELSE BEGIN
    
    // Add the following line.
    VendLedgEntry."Transaction No." := VATEntry."Transaction No.";
    
    VendUnrealizedVAT(VendLedgEntry,GenJnlLine.Amount);
    END;
    VATEntryNoToRealize := 0;
    ...
    
  4. Διαγράψτε τις ακόλουθες παραμέτρους στη συνάρτηση ReversePostponedVAT στο Gen. Jnl.-Post Μονάδα κώδικα γραμμής (12):

    • TransactionNo
    • VATEntryNo
    • VAR TempJnlLineDim2
  5. Προσθέστε μια νέα παράμετρο στη συνάρτηση ReversePostponedVAT στο Gen. Jnl.-Post Line codeunit (12) και, στη συνέχεια, καθορίστε την παράμετρο ως εξής:

    • Όνομα: PostponedVATEntry
    • Τύπος δεδομένων: Εγγραφή
    • Δευτερεύων τύπος: Καταχώριση ΦΠΑ (254)
  6. Αλλάξτε τον κωδικό στη συνάρτηση ReversePostponedVAT στο Gen. Μονάδα κώδικα Jnl.-Post Line (12) ως εξής:
    Υπάρχων κωδικός 1

    ...
    GenJnlLine.COPY(GenJnlLine2);
    
    // Delete the following lines. 
    TempJnlLineDim.RESET;
    TempJnlLineDim.DELETEALL;
    DimMgt.CopyJnlLineDimToJnlLineDim(TempJnlLineDim2,TempJnlLineDim);
    // End of the lines. 
    
    SourceCodeSetup.GET;
    GenJnlLine."Source Code" := SourceCodeSetup.Reversal;
    ...
    

    Κωδικός αντικατάστασης 1

    ...
    GenJnlLine.COPY(GenJnlLine2);
    
    // Add the following lines. 
    PreparePostponedVATDim(PostponedVATEntry,TempJnlLineDim);
    //End of the lines. 
    
    SourceCodeSetup.GET;
    GenJnlLine."Source Code" := SourceCodeSetup.Reversal;
    ...
    

    Υπάρχων κωδικός 2

    ...
    VATEntry.LOCKTABLE;
    UnrealVATEntry.SETCURRENTKEY("Transaction No.");
    
    // Delete the following lines. 
    IF VATEntryNo <> 0 THEN
    UnrealVATEntry.SETRANGE("Entry No.",VATEntryNo)
    ELSE
    UnrealVATEntry.SETRANGE("Transaction No.",TransactionNo);
    // End of the lines.
    
    IF UnrealVATEntry.FINDSET(TRUE) THEN
    REPEAT
    VATEntry.SETCURRENTKEY("Unrealized VAT Entry No.");
    ...
    

    Κωδικός αντικατάστασης 2

    ...
    VATEntry.LOCKTABLE;
    UnrealVATEntry.SETCURRENTKEY("Transaction No.");
    
    // Add the following lines. 
    IF PostponedVATEntry."Entry No." <> 0 THEN
    UnrealVATEntry.SETRANGE("Entry No.",PostponedVATEntry."Entry No.")
    ELSE
    UnrealVATEntry.SETRANGE("Transaction No.",PostponedVATEntry."Transaction No.");
    //End of the lines. 
    
    IF UnrealVATEntry.FINDSET(TRUE) THEN
    REPEAT
    VATEntry.SETCURRENTKEY("Unrealized VAT Entry No.");
    ...
    
  7. Δημιουργήστε μια νέα συνάρτηση PreparePostponedVATDim στο Gen. Μονάδα κώδικα Jnl.-Post Line (12) ως εξής:

    LOCAL PROCEDURE PreparePostponedVATDim@1170010(VATEntry@1170003 : Record 254;VAR TempJnlLineDim@1170000 : Record 356);
    VAR
    GLEntryVATEntryLink@1170002 : Record 253;
    LedgEntryDim@1170001 : Record 355;
    BEGIN
    TempJnlLineDim.RESET;
    TempJnlLineDim.DELETEALL;
    IF VATEntry.GetCVLedgEntryNo(TempJnlLineDim) = 0 THEN BEGIN
    GLEntryVATEntryLink.SETRANGE("VAT Entry No.",VATEntry."Entry No.");
    IF GLEntryVATEntryLink.FINDFIRST THEN BEGIN
    LedgEntryDim.SETRANGE("Table ID",DATABASE::"G/L Entry");
    LedgEntryDim.SETRANGE("Entry No.",GLEntryVATEntryLink."G/L Entry No.");
    DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim);
    END;
    END;
    END;
    
  8. Αλλάξτε τον κωδικό στη συνάρτηση PostponeVATEntry στη μονάδα κώδικα διαχείρισης VATM (12376) ως εξής:
    Υπάρχων κώδικας

    ...
    VATEntry.TESTFIELD("Postponed VAT",FALSE);
    VATEntry.TESTFIELD("Unrealized VAT Entry No.",0);
    IF NOT AllowSalesCrMemo AND
    
    // Delete the following lines. 
    (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND
    (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo")
    // End of the lines.
    
    THEN
    ERROR(Text010);
    UNTIL VATEntry.NEXT = 0
    ...
    

    Κωδικός αντικατάστασης

    ...
    VATEntry.TESTFIELD("Postponed VAT",FALSE);
    VATEntry.TESTFIELD("Unrealized VAT Entry No.",0);
    IF NOT AllowSalesCrMemo AND
    
    // Add the following line. 
    IsPostponedSalesCrMemoVAT(VATEntry) AND HasPostedCrMemo(VATEntry."Document No.")
    
    THEN
    ERROR(Text010);
    UNTIL VATEntry.NEXT = 0
    ...
    
  9. Αλλάξτε τον κωδικό στη συνάρτηση RealizeVATEntry στη μονάδα κώδικα διαχείρισης VATM (12376) ως εξής:
    Υπάρχων κώδικας

    ...
    VATEntry.TESTFIELD("Postponed VAT",TRUE);
    VATEntry.TESTFIELD("Unrealized VAT Entry No.",0);
    IF NOT AllowSalesCrMemo AND
    
    // Delete the following lines. 
    (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND
    (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo")
    // End of the lines.
    
    THEN
    ERROR(Text010);
    UNTIL VATEntry.NEXT = 0
    ...
    

    Κωδικός αντικατάστασης

    ...
    VATEntry.TESTFIELD("Postponed VAT",TRUE);
    VATEntry.TESTFIELD("Unrealized VAT Entry No.",0);
    IF NOT AllowSalesCrMemo AND
    
    // Add the following line. 
    IsPostponedSalesCrMemoVAT(VATEntry) AND HasPostedCrMemo(VATEntry."Document No.")
    
    THEN
    ERROR(Text010);
    UNTIL VATEntry.NEXT = 0
    ...
    
  10. Διαγράψτε τις ακόλουθες τοπικές μεταβλητές στη συνάρτηση PostUnrealVAT της μονάδας κώδικα διαχείρισης ΦΠΑ (12376):

    • TempJnlLineDim
    • Αριθμός καταχώρησης
  11. Αλλάξτε τον κωδικό στη συνάρτηση PostUnrealVAT στη μονάδα κώδικα διαχείρισης VATM (12376) ως εξής:
    Υπάρχων κώδικας

    ...
    ERROR(Text011,
    VATEntry.FIELDCAPTION("Posting Date"),VATEntry."Posting Date",
    VATEntry.FIELDCAPTION("Entry No."),VATEntry."Entry No.");
    
    // Delete the following lines. 
    EntryNo := VATEntry.GetCVLedgEntryNo(TempJnlLineDim);
    IF EntryNo <> 0 THEN BEGIN
    GenJnlLine."Document Type" := VATEntry."Document Type";
    GenJnlLine."Document No." := VATEntry."Document No.";
    GenJnlLine."Postponed VAT" := TRUE;
    GenJnlLine."VAT Date" := VATDate;
    GenJnlLine."Posting Date" := VATDate;
    IF VATEntry."Postponed VAT" THEN
    GenJnlLine.Description := Text008
    ELSE
    GenJnlLine.Description := Text009;
    GenJnlLine.Description :=
    COPYSTR(
    STRSUBSTNO(GenJnlLine.Description,VATEntry."Document Type",VATEntry."Document No."),
    1,MAXSTRLEN(GenJnlLine.Description));
    GenJnlLine."System-Created Entry" := TRUE;
    CASE VATEntry.Type OF
    VATEntry.Type::Sale:
    GenJnlLine."Account Type" := GenJnlLine."Account Type"::Customer;
    VATEntry.Type::Purchase:
    GenJnlLine."Account Type" := GenJnlLine."Account Type"::Vendor;
    END;
    IF Type = Type::Realize THEN
    PostGenJnlLine.RealizePostponedVAT(GenJnlLine,VATEntry."Transaction No.",VATEntry."Entry No.",TempJnlLineDim)
    ELSE // Reverse
    PostGenJnlLine.ReversePostponedVAT(GenJnlLine,VATEntry."Transaction No.",VATEntry."Entry No.",TempJnlLineDim);
    END;
    // End of the lines. 
    ...
    

    Κωδικός αντικατάστασης

    ...
    ERROR(Text011,
    VATEntry.FIELDCAPTION("Posting Date"),VATEntry."Posting Date",
    VATEntry.FIELDCAPTION("Entry No."),VATEntry."Entry No.");
    
    // Add the following lines.
    GenJnlLine."Document Type" := VATEntry."Document Type";
    GenJnlLine."Document No." := VATEntry."Document No.";
    GenJnlLine."Postponed VAT" := TRUE;
    GenJnlLine."VAT Date" := VATDate;
    GenJnlLine."Posting Date" := VATDate;
    IF VATEntry."Postponed VAT" THEN
    GenJnlLine.Description := Text008
    ELSE
    GenJnlLine.Description := Text009;
    GenJnlLine.Description :=
    COPYSTR(
    STRSUBSTNO(GenJnlLine.Description,VATEntry."Document Type",VATEntry."Document No."),
    1,MAXSTRLEN(GenJnlLine.Description));
    GenJnlLine."System-Created Entry" := TRUE;
    CASE VATEntry.Type OF
    VATEntry.Type::Sale:
    GenJnlLine."Account Type" := GenJnlLine."Account Type"::Customer;
    VATEntry.Type::Purchase:
    GenJnlLine."Account Type" := GenJnlLine."Account Type"::Vendor;
    END;
    IF Type = Type::Realize THEN
    PostGenJnlLine.RealizePostponedVAT(GenJnlLine,VATEntry)
    ELSE // Reverse
    PostGenJnlLine.ReversePostponedVAT(GenJnlLine,VATEntry);
    //End of the lines. 
    ...
    
  12. Δημιουργήστε μια νέα συνάρτηση HasPostedCrMemo στη μονάδα κώδικα διαχείρισης VATMnagement (12376) ως εξής:

    LOCAL PROCEDURE HasPostedCrMemo@1170007(DocumentNo@1170000 : Code[20]) : Boolean;
    VAR
    SalesCrMemoHeader@1170001 : Record 114;
    BEGIN
    EXIT(SalesCrMemoHeader.GET(DocumentNo));
    END;
    
  13. Δημιουργήστε μια νέα συνάρτηση IsPostponedSalesCrMemoVAT στη μονάδα κώδικα διαχείρισης VATMnagement (12376) ως εξής:

    LOCAL PROCEDURE IsPostponedSalesCrMemoVAT@1170008(VATEntry@1170000 : Record 254) : Boolean;
    BEGIN
    EXIT(
    (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND
    (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo"));
    END;
    

Προαπαιτούμενα

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

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

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

Κατάσταση

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

Σημείωση Αυτό είναι ένα άρθρο "FAST PUBLISH" που δημιουργήθηκε απευθείας μέσα από τον οργανισμό υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν παρέχονται ως έχουν ως απάντηση σε αναδυόμενα ζητήματα. Ως αποτέλεσμα της ταχύτητας διάθεσής του, το υλικό μπορεί να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί ανά πάσα στιγμή χωρίς προειδοποίηση. Ανατρέξτε στους Όρους χρήσης για άλλα ζητήματα.