تنطبق هذه المقالة على Microsoft Dynamics NAV للغات اللغة الإسبانية (es).
إذا كنت تستخدم مجموعتي نشر لضريبة القيمة المضافة في الإصدار الأسباني من Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)، يظهر إعلان 349 نتيجة غير صحيحة. تحدث هذه المشكلة سواء كنت تستخدم خدمة الاتحاد الأوروبي في إعداد ترحيل ضريبة القيمة المضافة أم لا.
الأعراض
معلومات الإصلاح العاجل
يتوفر الآن إصلاح عاجل مدعوم من Microsoft. ومع ذلك، فإنه يهدف فقط إلى تصحيح المشكلة الموضحة في هذه المقالة. قم بتطبيقه فقط على الأنظمة التي تواجه هذه المشكلة المحددة. قد يتلقى الإصلاح العاجل هذا اختبارا إضافيا. لذلك، إذا لم تتأثر بشدة بهذه المشكلة، نوصي بالانتظار حتى حزمة خدمة Microsoft Dynamics NAV 5.0 التالية أو إصدار Microsoft Dynamics NAV التالي الذي يحتوي على هذا الإصلاح العاجل.
ملاحظة في حالات خاصة، قد يتم إلغاء الرسوم التي يتم تكبدها عادة لمكالمات الدعم إذا حدد محترف الدعم التقني ل Microsoft Dynamics والمنتجات ذات الصلة أن تحديثا معينا سيحل مشكلتك. سيتم تطبيق تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشكلات غير المؤهلة للتحديث المحدد المعني.
الدقة
معلومات التثبيت
توفر Microsoft أمثلة برمجة للتوضيح فقط، دون ضمان سواء تم التعبير عنه أو تضمينه. وهذا يشمل، على سبيل المثال لا الحصر، الضمانات الضمنية للقابلية التجارية أو اللياقة البدنية لغرض معين. تفترض هذه المقالة أنك على دراية بلغة البرمجة التي يتم توضيحها ومع الأدوات المستخدمة لإنشاء إجراءات وتصحيح الأخطاء. يمكن لمهندسي دعم Microsoft المساعدة في شرح وظائف إجراء معين، لكنهم لن يعدلوا هذه الأمثلة لتوفير وظائف إضافية أو إجراءات بناء لتلبية متطلباتك المحددة.
ملاحظة قبل تثبيت هذا الإصلاح العاجل، تحقق من تسجيل خروج جميع مستخدمي عميل Microsoft Navision من النظام. يتضمن ذلك مستخدمي عميل Microsoft Navision Application Services (NAS). يجب أن تكون المستخدم العميل الوحيد الذي قام بتسجيل الدخول عند تنفيذ هذا الإصلاح العاجل.
لتنفيذ هذا الإصلاح العاجل، يجب أن يكون لديك ترخيص مطور.
نوصي بتعيين معرف دور "SUPER" لحساب المستخدم في نافذة تسجيلات الدخول إلى Windows أو في نافذة تسجيلات دخول قاعدة البيانات. إذا تعذر تعيين معرف دور "SUPER" لحساب المستخدم، فيجب عليك التحقق من أن حساب المستخدم لديه الأذونات التالية:
- إذن تعديل للكائن الذي ستقوم بتغييره.
- إذن Execute للكائن System Object ID 5210 ولعنصر System Object ID 9015.
ملاحظة ليس لديك حقوق في مخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.
تغييرات التعليمات البرمجية
ملاحظة اختبر دائما إصلاحات التعليمات البرمجية في بيئة خاضعة للرقابة قبل تطبيق الإصلاحات على أجهزة الكمبيوتر الإنتاجية.
لحل هذه المشكلة، اتبع الخطوات التالية:
قم بتغيير التعليمات البرمجية في المقاطع رقم عنصر البيانات 5 في تقرير Make 349 Declaration (88)) كما يلي:
التعليمات البرمجية الموجودة 1... SectionType=GroupFooter; SectionWidth=15600; SectionHeight=423; // Delete the following line. OnPostSection=BEGIN CustVendCountry.GET("Country/Region Code"); CustVendVatRegNo := COPYSTR("VAT Registration No.",1,CustVendCountry."VAT Registration No. digits"); OpTriang := ' '; ...رمز الاستبدال 1
... SectionType=GroupFooter; SectionWidth=15600; SectionHeight=423; // Add the following lines. OnPostSection=VAR SalesInvLine@1100300 : Record 113; SalesInvHeader@1100301 : Record 112; BEGIN // End of the lines. CustVendCountry.GET("Country/Region Code"); CustVendVatRegNo := COPYSTR("VAT Registration No.",1,CustVendCountry."VAT Registration No. digits"); OpTriang := ' '; ...التعليمات البرمجية الموجودة 2
... AccumOrigDeclAmountEUService := 0; AccumPrevDeclAmountTri := 0; AccumOrigDeclAmountTri := 0; Customer2.RESET; Customer2.SETRANGE(Customer2."VAT Registration No.","VAT Registration No."); ...رمز الاستبدال 2
... AccumOrigDeclAmountEUService := 0; AccumPrevDeclAmountTri := 0; AccumOrigDeclAmountTri := 0; Customer2.RESET; Customer2.SETRANGE(Customer2."VAT Registration No.","VAT Registration No."); ...التعليمات البرمجية الموجودة 3
... AccumOrigDeclAmountEUService := 0; AccumPrevDeclAmountTri := 0; AccumOrigDeclAmountTri := 0; Customer2.RESET; Customer2.SETRANGE(Customer2."VAT Registration No.","VAT Registration No."); ...رمز الاستبدال 3
... AccumOrigDeclAmountEUService := 0; AccumPrevDeclAmountTri := 0; AccumOrigDeclAmountTri := 0; // Add the following lines. NoTaxableNormalAmount := 0; NoTaxableAmountOpTri := 0; NoTaxableAmountEUService := 0; // End of the lines. Customer2.RESET; Customer2.SETRANGE(Customer2."VAT Registration No.","VAT Registration No."); ...التعليمات البرمجية الموجودة 4
... RectPeriod := '0'; UNTIL CustVendWarning349.NEXT = 0; //END; UNTIL Customer2.NEXT = 0; IF "VAT Registration No." <> '' THEN BEGIN ...رمز الاستبدال 4
... RectPeriod := '0'; UNTIL CustVendWarning349.NEXT = 0; //END; // Add the following lines. SalesInvLine.RESET; SalesInvLine.SETRANGE("Bill-to Customer No.",Customer2."No."); SalesInvLine.SETRANGE("Posting Date",FromDate,ToDate); SalesInvLine.SETRANGE("VAT Calculation Type",SalesInvLine."VAT Calculation Type"::"No Taxable VAT"); SalesInvLine.SETFILTER("Gen. Prod. Posting Group", FilterString); IF SalesInvLine.FINDSET THEN REPEAT IF VATPostingSetup.GET(SalesInvLine."VAT Bus. Posting Group",SalesInvLine."VAT Prod. Posting Group") THEN IF VATPostingSetup."EU Service" THEN NoTaxableAmountEUService := NoTaxableAmountEUService + SalesInvLine."Line Amount" ELSE IF SalesInvHeader.GET(SalesInvLine."Document No.") THEN IF SalesInvHeader."EU 3-Party Trade" THEN NoTaxableAmountOpTri := NoTaxableAmountOpTri + SalesInvLine."Line Amount" ELSE NoTaxableNormalAmount := NoTaxableNormalAmount + SalesInvLine."Line Amount" UNTIL SalesInvLine.NEXT = 0; // End of the lines. UNTIL Customer2.NEXT = 0; IF "VAT Registration No." <> '' THEN BEGIN ...التعليمات البرمجية الموجودة 5
... IF "VAT Registration No." <> '' THEN BEGIN IF NormalAmount < 0 THEN NormalAmount := -NormalAmount; IF CorrIncludedForNormalAmount OR (NormalAmount <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(NormalAmount),3,13); Txt := ...رمز الاستبدال 5
... IF "VAT Registration No." <> '' THEN BEGIN IF NormalAmount < 0 THEN NormalAmount := -NormalAmount; // Add the following line. NormalAmount := NormalAmount + NoTaxableNormalAmount; IF CorrIncludedForNormalAmount OR (NormalAmount <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(NormalAmount),3,13); Txt := ...التعليمات البرمجية الموجودة 6
... END; IF AmountOpTri < 0 THEN AmountOpTri := -AmountOpTri; IF CorrIncludedForOpTriAmount OR (AmountOpTri <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(AmountOpTri),3,13); Txt := ...رمز الاستبدال 6
... END; IF AmountOpTri < 0 THEN AmountOpTri := -AmountOpTri; // Add the following line. AmountOpTri := AmountOpTri + NoTaxableAmountOpTri; IF CorrIncludedForOpTriAmount OR (AmountOpTri <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(AmountOpTri),3,13); Txt := ...التعليمات البرمجية الموجودة 7
... END; IF AmountEUService < 0 THEN AmountEUService := -AmountEUService; IF CorrIncludedForEUServiceAmount OR (AmountEUService <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(AmountEUService),3,13); CustVendCountry.GET(Customer2."Country/Region Code"); ...رمز الاستبدال 7
... END; IF AmountEUService < 0 THEN AmountEUService := -AmountEUService; // Add the following line. AmountEUService := AmountEUService + NoTaxableAmountEUService; IF CorrIncludedForEUServiceAmount OR (AmountEUService <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(AmountEUService),3,13); CustVendCountry.GET(Customer2."Country/Region Code"); ...قم بتغيير التعليمات البرمجية في المقاطع رقم عنصر البيانات 6 في تقرير Make 349 Declaration (88) كما يلي:
التعليمات البرمجية الموجودة 1... SectionType=GroupFooter; SectionWidth=15600; SectionHeight=423; // Delete the following line. OnPostSection=BEGIN CustVendCountry.GET("Country/Region Code"); CustVendVatRegNo := COPYSTR("VAT Registration No.",1,CustVendCountry."VAT Registration No. digits"); OpTriang := ' '; ...رمز الاستبدال 1
... SectionType=GroupFooter; SectionWidth=15600; SectionHeight=423; // Add the following lines. OnPostSection=VAR PurchInvLine@1100302 : Record 123; BEGIN // End of the lines. CustVendCountry.GET("Country/Region Code"); CustVendVatRegNo := COPYSTR("VAT Registration No.",1,CustVendCountry."VAT Registration No. digits"); OpTriang := ' '; ...التعليمات البرمجية الموجودة 2
... AccumOrigDeclAmountEUService := 0; AccumPrevDeclAmountTri := 0; AccumOrigDeclAmountTri := 0; Vendor2.RESET; Vendor2.SETRANGE(Vendor2."VAT Registration No.","VAT Registration No."); ...رمز الاستبدال 2
... AccumOrigDeclAmountEUService := 0; AccumPrevDeclAmountTri := 0; AccumOrigDeclAmountTri := 0; // Add the following lines. NoTaxableNormalAmount := 0; NoTaxableAmountEUService := 0; // End of the lines. Vendor2.RESET; Vendor2.SETRANGE(Vendor2."VAT Registration No.","VAT Registration No."); ...التعليمات البرمجية الموجودة 3
... RectPeriod := '0'; UNTIL CustVendWarning349.NEXT = 0; END; UNTIL Vendor2.NEXT = 0; IF "VAT Registration No." <> '' THEN BEGIN ...رمز الاستبدال 3
... RectPeriod := '0'; UNTIL CustVendWarning349.NEXT = 0; END; // Add the following lines. PurchInvLine.RESET; PurchInvLine.SETRANGE("Pay-to Vendor No.",Vendor2."No."); PurchInvLine.SETRANGE("Posting Date",FromDate,ToDate); PurchInvLine.SETRANGE("VAT Calculation Type",PurchInvLine."VAT Calculation Type"::"No Taxable VAT"); PurchInvLine.SETFILTER("Gen. Prod. Posting Group", FilterString); IF PurchInvLine.FINDSET THEN REPEAT IF VATPostingSetup.GET(PurchInvLine."VAT Bus. Posting Group",PurchInvLine."VAT Prod. Posting Group") THEN IF VATPostingSetup."EU Service" THEN NoTaxableAmountEUService := NoTaxableAmountEUService + PurchInvLine."Line Amount" ELSE NoTaxableNormalAmount := NoTaxableNormalAmount + PurchInvLine."Line Amount" UNTIL PurchInvLine.NEXT = 0; // End of the lines. UNTIL Vendor2.NEXT = 0; IF "VAT Registration No." <> '' THEN BEGIN ...التعليمات البرمجية الموجودة 4
... IF "VAT Registration No." <> '' THEN BEGIN IF NormalAmount < 0 THEN NormalAmount := -NormalAmount; IF CorrIncludedForNormalAmount OR (NormalAmount <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(NormalAmount),3,13); Txt := ...رمز الاستبدال 4
... IF "VAT Registration No." <> '' THEN BEGIN IF NormalAmount < 0 THEN NormalAmount := -NormalAmount; // Add the following line. NormalAmount := NormalAmount + NoTaxableNormalAmount; IF CorrIncludedForNormalAmount OR (NormalAmount <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(NormalAmount),3,13); Txt := ...التعليمات البرمجية الموجودة 5
... END; IF AmountEUService < 0 THEN AmountEUService := -AmountEUService; IF CorrIncludedForEUServiceAmount OR (AmountEUService <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(AmountEUService),3,13); CustVendCountry.GET(Customer2."Country/Region Code"); ...رمز الاستبدال 5
... END; IF AmountEUService < 0 THEN AmountEUService := -AmountEUService; // Add the following line. AmountEUService := AmountEUService + NoTaxableAmountEUService; IF CorrIncludedForEUServiceAmount OR (AmountEUService <> 0) THEN BEGIN TextAmount := COPYSTR(FormatTextAmt(AmountEUService),3,13); CustVendCountry.GET(Customer2."Country/Region Code"); ...قم بتغيير التعليمات البرمجية في المتغيرات العمومية في تقرير Make 349 Declaration (88) كما يلي:
التعليمات البرمجية الموجودة... CorrIncludedForNormalAmount@1100063 : Boolean; CorrIncludedForOpTriAmount@1100070 : Boolean; CorrIncludedForEUServiceAmount@1100071 : Boolean; PROCEDURE FormatTextAmt@1100101(Amount@1100100 : Decimal) : Text[15]; VAR ...رمز الاستبدال
... CorrIncludedForNormalAmount@1100063 : Boolean; CorrIncludedForOpTriAmount@1100070 : Boolean; CorrIncludedForEUServiceAmount@1100071 : Boolean; // Add the following lines. NoTaxableNormalAmount@1100304 : Decimal; NoTaxableAmountOpTri@1100305 : Decimal; NoTaxableAmountEUService@1100306 : Decimal; VATPostingSetup@1100307 : Record 325; // End of the lines. PROCEDURE FormatTextAmt@1100101(Amount@1100100 : Decimal) : Text[15]; VAR ...
المتطلبات الأساسية
يجب أن يكون لديك الإصدار الأسباني من Microsoft Dynamics NAV 5.0 Service Pack 1 مثبتا لتطبيق هذا الإصلاح العاجل.
معلومات الإزالة
لا يمكنك إزالة هذا الإصلاح العاجل.
لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".
الحالة
ملاحظة هذه مقالة "FAST PUBLISH" تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة هنا كما هي استجابة للقضايا الناشئة. نتيجة لسرعة إتاحتها، قد تتضمن المواد أخطاء مطبعية ويمكن مراجعتها في أي وقت دون إشعار. راجع شروط الاستخدام لاعتبارات أخرى.