סכום מע"מ פורסם בחשבון עיגול במקום חשבון הרווח/אובדן ממוספר בעת החלת תשלום על חשבונית רכישה במטבע זר בגירסת צ'כית של Microsoft Dynamics NAV 2009 R2

חל על
Microsoft Dynamics NAV 2009 R2

מאמר זה חל על Microsoft Dynamics NAV עבור אזור השפה הצ'כית (cz).

סימפטומים

נניח כי אתה פרסם חשבונית רכישה במטבע זר באמצעות סכום מס מוסף ערך מותאם (LCY) בגירסת צ'כית של Microsoft Dynamics NAV 2009 R2. לאחר מכן, תפרסם תשלום באמצעות שער חליפין אחר. במצב זה, בעת החלת התשלום על חשבונית הרכישה, הפרש סכום המע"מ בין המע"מ המקורי לבין המע"מ המותאם תפורסם בחשבון עיגול במקום חשבון Gain/Loss ממוספר.

פתרון

מידע אודות תיקונים חמים

תיקון חם נתמך זמין כעת מ- Microsoft. עם זאת, הוא מיועד רק לתיקון הבעיה המתוארת במאמר זה. החל אותו רק על מערכות שנתקלות בבעיה ספציפית זו. תיקון חם זה עשוי לקבל בדיקות נוספות. לכן, אם אתה לא מושפע באופן חמור מבעיה זו, מומלץ להמתין ל- Service Pack הבא של Microsoft Dynamics NAV 2009 או לגירסת MICROSOFT Dynamics NAV הבאה המכילה תיקון חם זה.

הערה במקרים מיוחדים, חיובים שנצבורים בדרך כלל עבור שיחות תמיכה עשויים להבוטל אם מומחה תמיכה טכנית עבור Microsoft Dynamics ומוצרים קשורים קובע שעדכון ספציפי יפתור את הבעיה. עלויות התמיכה הרגילות יחולו על שאלות ובעיות תמיכה נוספות שלא עומדות בדרישות לעדכון הספציפי הרלוונטי.

מידע התקנה

Microsoft מספקת דוגמאות תיכנות לאיור בלבד, ללא אחריות, מפורשת או משתמעת. הדבר כולל, אך אינו מוגבל לאחריות המשתמעת של סוחר או התאמה למטרה מסוימת. מאמר זה מבוסס על ההנחה שאתה מכיר את שפת התיכנות המודגמת, עם הכלים המשמשים ליצירת הליכים ולאתר באגים. מהנדסי התמיכה של Microsoft יכולים לעזור להסביר את הפונקציונליות של הליך מסוים. עם זאת, הם לא שינוי דוגמאות אלה כדי לספק פונקציונליות נוספת או לבנות הליכים כדי לעמוד בדרישות הספציפיות שלך.

הערה לפני התקנת תיקון חם זה, ודא כי כל משתמשי לקוח Microsoft Dynamics NAV נרשם מהמערכת. הדבר כולל את שירותי Microsoft Dynamics NAV Application Server (NAS). עליך להיות משתמש הלקוח היחיד שנכנס בעת יישום תיקון חם זה.

כדי ליישם תיקון חם זה, דרוש לך רשיון מפתח.

אנו ממליצים להקצות לחשבון המשתמש בחלון כניסות Windows או בחלון כניסות מסד נתונים את מזהה התפקיד "SUPER". אם אין אפשרות להקצות לחשבון המשתמש את מזהה התפקיד "SUPER", עליך לוודא שלחשבון המשתמש יש את ההרשאות הבאות:

  • ההרשאה Modify עבור האובייקט שאתה תשנה.

  • ההרשאה Execute עבור אובייקט System Object ID 5210 ול- System Object ID 9015

    אובייקט.

הערה אין צורך להחזיק בזכויות על מאגרי הנתונים אלא אם עליך לבצע תיקון נתונים.

שינויי קוד

הערה בדוק תמיד את תיקוני הקוד בסביבה מבוקרת לפני החלת התיקונים על מחשבי הייצור שלך.

כדי לפתור בעיה זו, בצע את הפעולות הבאות:

  1. שנה את הקוד בפונקציה InsertVAT בפונקציה Gen. Jnl.-Post Line codeunit (12) באופן הבא:
    קוד קיים

    ...
    VATEntry."Customs Procedure Code" := "Customs Procedure Code";
    VATEntry."Registration No." := "Registration No.";
    
    // Delete the following lines.
    IF "VAT Difference" = 0 THEN
    VATDifferenceLCY := 0
    ELSE
    IF "Currency Code" = '' THEN
    VATDifferenceLCY := "VAT Difference"
    ELSE
    VATDifferenceLCY :=
    ROUND(
    CurrExchRate.ExchangeAmtFCYToLCY(
    "Posting Date","Currency Code","VAT Difference",
    CurrExchRate.ExchangeRate("Posting Date","Currency Code")));
    
    IF ("VAT Amount (LCY)" <> CalculatedVATAmountLCY) AND
    ("Currency Code" <> '')
    THEN
    VATDifferenceLCY := "VAT Amount (LCY)" - CalculatedVATAmountLCY;
    // End of the deleted lines.
    
    IF "VAT Calculation Type" = "VAT Calculation Type"::"Sales Tax" THEN BEGIN
    ...
    

    קוד חלופי

    ...
    VATEntry."Customs Procedure Code" := "Customs Procedure Code";
    VATEntry."Registration No." := "Registration No.";
    
    // Add the following line. 
    VATDifferenceLCY := CalcVATDiffLCY;
    // End of the added line.
    
    IF "VAT Calculation Type" = "VAT Calculation Type"::"Sales Tax" THEN BEGIN
    ...
    
  2. שנה את הקוד בפונקציה CalcCurrencyRealizedGainLoss בפונקציה Gen. Jnl.-Post Line codeunit (12) באופן הבא:
    קוד קיים

    ...
    RealizedGainLossLCY :=
    
    // Delete the following line. 
    AppliedAmountLCY - ROUND(AppliedAmount / CVLedgEntryBuf."Adjusted Currency Factor");
    // End of the deleted line.
    
    IF RealizedGainLossLCY <> 0 THEN BEGIN
    ...
    

    קוד חלופי

    ...
    RealizedGainLossLCY :=
    
    // Add the following lines. 
    AppliedAmountLCY - ROUND(AppliedAmount / CVLedgEntryBuf."Adjusted Currency Factor") + 
    CalcVATDiffFromVATEntry(CVLedgEntryBuf);
    // End of the added lines.
    
    IF RealizedGainLossLCY <> 0 THEN BEGIN
    ...
    
  3. צור שתי פונקציות חדשות ב- Gen. Jnl.-Post Line codeunit (12) באופן הבא:

    LOCAL PROCEDURE CalcVATDiffFromVATEntry@1220002(CVLedgEntryBuf@1220002 : Record 382) VATDiffAmt : Decimal;
    VAR
    CalcVATEntry@1220001 : Record 254;
    BEGIN
    IF NOT (CVLedgEntryBuf."Document Type" IN
    [CVLedgEntryBuf."Document Type"::Invoice,CVLedgEntryBuf."Document Type"::"Credit Memo"])
    THEN
    EXIT;
    
    WITH CalcVATEntry DO BEGIN
    SETRANGE("Transaction No.",CVLedgEntryBuf."Transaction No.");
    IF FINDSET THEN
    REPEAT
    VATDiffAmt := VATDiffAmt + "VAT Difference";
    UNTIL NEXT = 0;
    END;
    END;
    
    LOCAL PROCEDURE CalcVATDiffLCY@1220000() VATDifferenceLCY : Decimal;
    BEGIN 
    WITH GenJnlLine DO BEGIN
    IF ("VAT Difference" = 0) AND ("VAT Difference (LCY)" = 0) THEN
    EXIT(0);
    
    IF ("VAT Amount (LCY)" <> CalculatedVATAmountLCY) AND
    ("Currency Code" <> '')
    THEN
    EXIT("VAT Amount (LCY)" - CalculatedVATAmountLCY);
    
    IF ("VAT Difference" = 0) AND ("VAT Difference (LCY)" <> 0) THEN
    VATDifferenceLCY := "VAT Difference (LCY)"
    ELSE
    IF "Currency Code" = '' THEN
    VATDifferenceLCY := "VAT Difference"
    ELSE
    VATDifferenceLCY :=
    ROUND(
    CurrExchRate.ExchangeAmtFCYToLCY(
    "Posting Date","Currency Code","VAT Difference",
    CurrExchRate.ExchangeRate("Posting Date","Currency Code")));
    END;
    END;
    
  4. שנה את הקוד בפונקציה OnRun ב- codeunit Sales-Post (80) באופן הבא:
    קוד קיים

    ...
    GenJnlLine."VAT Difference" := InvPostingBuffer[1]."VAT Difference";
    GenJnlLine."VAT Posting" := GenJnlLine."VAT Posting"::"Manual VAT Entry";
    ...
    

    קוד חלופי

    ...
    GenJnlLine."VAT Difference" := InvPostingBuffer[1]."VAT Difference";
    
    // Add the following line. 
    GenJnlLine."VAT Difference (LCY)" := InvPostingBuffer[1]."VAT Difference (LCY)";
    // End of the added line.
    
    GenJnlLine."VAT Posting" := GenJnlLine."VAT Posting"::"Manual VAT Entry";
    ...
    
  5. שנה את הקוד בפונקציה OnRun ב- Purch.-Post codeunit (90) באופן הבא:
    קוד קיים

    ...
    GenJnlLine."VAT Difference" := InvPostingBuffer[1]."VAT Difference";
    TransferNonDedVAT(GenJnlLine,InvPostingBuffer[1]);
    ...
    

    קוד חלופי

    ...
    GenJnlLine."VAT Difference" := InvPostingBuffer[1]."VAT Difference";
    
    // Add the following lines. 
    GenJnlLine."VAT Difference (LCY)" := InvPostingBuffer[1]."VAT Difference (LCY)";
    // End of the added line.
    
    TransferNonDedVAT(GenJnlLine,InvPostingBuffer[1]);
    ...
    

          

דרישות מוקדמות

עליך להתקין את הגירסה הצ'כית של Microsoft Dynamics NAV 2009 R2 כדי להחיל תיקון חם זה.

מידע על הסרה

אין באפשרותך להסיר תיקון חם זה.

מצב

Microsoft אישרה שזוהי בעיה במוצרי Microsoft המפורטים בסעיף "חל על".

הערה זהו מאמר "FAST PUBLISH" שנוצר ישירות מתוך ארגון התמיכה של Microsoft. המידע הכלול ב- Herein מסופק כפי שהוא בתגובה לבעיות מתפתחות. כתוצאה מההפיכתה לזמינה, החומרים עשויים לכלול שגיאות טיפוגרפיות וייתכן שיתוקנו בכל עת ללא הודעה מוקדמת. ראה תנאי שימוש לקבלת שיקולים אחרים.