מאמר זה חל על 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
אובייקט.
הערה אין צורך להחזיק בזכויות על מאגרי הנתונים אלא אם עליך לבצע תיקון נתונים.
שינויי קוד
הערה בדוק תמיד את תיקוני הקוד בסביבה מבוקרת לפני החלת התיקונים על מחשבי הייצור שלך.
כדי לפתור בעיה זו, בצע את הפעולות הבאות:
שנה את הקוד בפונקציה 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 ...שנה את הקוד בפונקציה 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 ...צור שתי פונקציות חדשות ב- 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;שנה את הקוד בפונקציה 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"; ...שנה את הקוד בפונקציה 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 מסופק כפי שהוא בתגובה לבעיות מתפתחות. כתוצאה מההפיכתה לזמינה, החומרים עשויים לכלול שגיאות טיפוגרפיות וייתכן שיתוקנו בכל עת ללא הודעה מוקדמת. ראה תנאי שימוש לקבלת שיקולים אחרים.