Applies ToDynamics NAV 2009

الأعراض

في النسخة الإسبانية من Microsoft Dynamics NAV 2009، افترض أن لديك فاتورتين فردية مختلفة (نفس العميل أو المورد أو آخر). يستخدم كل من هاتين الفاتورتين سطر واحد فقط ولكن مختلفة في المائة ضريبة القيمة المضافة (إحدى الفواتير 21 في المائة و 10% أخرى على سبيل المثال). ترحيل هذه الفواتير بإرسال المستندات إلى Cartera (كمبيالات أو فواتير Cartera) وإضافة هاتين الفاتورتين الفردية في ترتيب المجموعة أو دفع فاتورة. في حالة تسوية أحد البنود كل على حدة، يتم تصدير الدفع ك "Z" في تعريف 340. ومع ذلك، عند تسوية كل من المستندات، يتم تصدير المبلغين المدفوعين ك "2"، وخطأ، لأن الفواتير الأولية لم تكن نوع "جيم" (خطوط مختلفة مع مختلف % ضريبة القيمة المضافة)، ولكن تلك الفردية (يتم تعيين "العملية العادية" إلى "فارغة"). اتبع الخطوات الموجودة في المقطع تغييرات التعليمات البرمجية لحل هذه المشكلة. تحدث هذه المشكلة في المنتجات التالية:

  • النسخة الإسبانية من Microsoft Dynamics NAV 2009 R2

  • النسخة الإسبانية من Microsoft Dynamics NAV 2009 SP1

الحل

معلومات الإصلاح العاجل

الآن يتوفر إصلاح عاجل معتمد من Microsoft. ومع ذلك، هو فقط لتصحيح المشكلة الموضحة في هذه المقالة. تطبيقها فقط على الأنظمة التي تواجه هذه المشكلة بالتحديد. قد يتم إجراء اختبارات إضافية على هذا الإصلاح العاجل. ولذلك، إذا لم يكن تأثير المشكلة كبيرا، نوصي بالانتظار حتى الإصدار التالي من حزمة الخدمة Microsoft Dynamics NAV 2009 أو الإصدار Microsoft Dynamics التنقل التالي الذي يحتوي على هذا الإصلاح العاجل.ملاحظة: في بعض الحالات، يحدد المصروفات التي تحتسب عادة لدعم قد يتم إلغاء المكالمات إذا "أخصائي الدعم التقني" ل Microsoft Dynamics والمنتجات ذات الصلة أن تحديثًا معيناً سوف يعمل على حل المشكلة. سيتم اضافة تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشاكل التي لا يأهل على حلها للتحديث المطلوب.

معلومات التثبيت

تقدم Microsoft أمثلة برمجية للتوضيح فقط، دون أي ضمان صريح أو ضمني. هذا يتضمن، على سبيل المثال لا الحصر، الضمانات الضمنية الخاصة بالتسويق أو الملاءمة لغرض معين. تفترض هذه المقالة أنك معتاد على لغة البرمجة التي يتم شرحها والأدوات المستخدمة لإنشاء الإجراءات وتصحيحها. يساعد مهندسو الدعم لدى Microsoft شرح وظيفة إجراء محدد. ومع ذلك، لن يقوموا بتعديل هذه الأمثلة لتقديم وظيفة إضافية أو إنشاء إجراءات تستوفي متطلبات محددة.ملاحظة: قبل تثبيت هذا الإصلاح العاجل، تأكد من تسجيل خروج النظام كافة المستخدمين عميل Microsoft Dynamics التنقل. ويشمل ذلك خدمات Microsoft Dynamics NAV تطبيق الملقم (NAS). يجب أن يكون عميل فقط المستخدم الذي تم تسجيل دخوله عند تطبيق هذا الإصلاح العاجل.لتطبيق هذا الإصلاح العاجل، يجب أن يكون لديك ترخيص مطور.نوصي بأن تعيين حساب المستخدم في إطار عمليات تسجيل دخول Windows أو في إطار "قاعدة بيانات تسجيل الدخول" بمعرف دور "رئيسي". إذا كان حساب المستخدم لا يمكن تعيين معرف دور "سوبر"، يجب التحقق من أن حساب المستخدم يملك الأذونات التالية:

  • إذن "تعديل" للكائن الذي سيتم تغيير.

  • إذن Execute للكائن 5210 معرف كائن النظام و نظام 9015 معرف الكائنالكائن.

ملاحظة: ليس لديك حق لمخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.

تغييرات التعليمات البرمجية

ملاحظة: دوماً التعليمات البرمجية للاختبار إصلاح في بيئة تسيطر عليها قبل تطبيق إصلاحات لأجهزة الكمبيوتر الإنتاج.لحل هذه المشكلة، اتبع الخطوات التالية.

  1. تغيير التعليمات البرمجية في خصائص في تقرير إجراء إقرار 340 (10743) كما يلي:التعليمات البرمجية الموجودة

    ...IF FORM.RUNMODAL(10744,TempDeclarationLines) = ACTION::LookupOK THEN BEGIN                       TempDeclarationLines.SETRANGE("Operation Code",'R');                       TempDeclarationLines.SETRANGE("Property Location",TempDeclarationLines."Property Location"::" ");// Delete the following lines.// VSTf307397.beginTempDeclarationLines.SETRANGE(Type,TempDeclarationLines.Type::Sale);// VSTF307397.endIF NOT TempDeclarationLines.ISEMPTY THENEXIT;TempDeclarationLines.RESET;CreateFileHeader;WriteDeclarationLinesToText(TempDeclarationLines);END ELSEEXIT;// End of the deleted lines.                   END;                   WriteAppliedPaymentsToText;                   IF FileHeaderCreated THEN BEGIN...

    استبدال التعليمات البرمجية

    ... IF FORM.RUNMODAL(10744,TempDeclarationLines) = ACTION::LookupOK THEN BEGIN                       TempDeclarationLines.SETRANGE("Operation Code",'R');                       TempDeclarationLines.SETRANGE("Property Location",TempDeclarationLines."Property Location"::" ");// Add the following lines.TempDeclarationLines.SETRANGE(Type,TempDeclarationLines.Type::Sale);IF NOT TempDeclarationLines.ISEMPTY THENEXIT;TempDeclarationLines.RESET;CreateFileHeader;WriteDeclarationLinesToText(TempDeclarationLines);END ELSEEXIT;// End of the added lines.                   END;                   WriteAppliedPaymentsToText;                   IF FileHeaderCreated THEN BEGIN...
  2. تغيير التعليمات البرمجية في تقرير إجراء إقرار 340 (10743) كما يلي:التعليمات البرمجية الموجودة

    ... VATEntry."Document Type"::Refund:                                  BEGIN                                    IF VATEntry."Unrealized VAT Entry No." <> 0 THEN BEGIN// Delete the following lines.UnrealizedVATEntry.GET(VATEntry."Unrealized VAT Entry No.");VendorDocumentNo := FindAppliedToDocumentNo(UnrealizedVATEntry);// End of the deleted lines.                                    END;                                    EXIT;                                  END;...

    استبدال التعليمات البرمجية

    ...VATEntry."Document Type"::Refund:                                  BEGIN                                    IF VATEntry."Unrealized VAT Entry No." <> 0 THEN BEGIN// Add the following lines.IF FindPmtOrderBillGrBankAcc(VATEntry.Type,VATEntry."Document No.") <> '' THENVendorDocumentNo := VATEntry."Document No."ELSE BEGINUnrealizedVATEntry.GET(VATEntry."Unrealized VAT Entry No.");VendorDocumentNo := FindAppliedToDocumentNo(UnrealizedVATEntry);END;// End of the added lines.                                    END;                                    EXIT;                                  END;...
  3. تغيير التعليمات البرمجية في وظيفة تشيكفاتيبي في تقرير إجراء إقرار 340 (10743) كما يلي:التعليمات البرمجية الموجودة

    ...  IF VATEntries.FINDFIRST THEN        REPEAT          IF (VATEntries."VAT %" <> VATEntryRec."VAT %") OR// Delete the following lines.(VATEntries."EC %" <> VATEntryRec."EC %") THENEXIT(TRUE);// End of the deleted lines.        UNTIL VATEntries.NEXT = 0;    END;...

    استبدال التعليمات البرمجية

    ... IF VATEntries.FINDFIRST THEN        REPEAT          IF (VATEntries."VAT %" <> VATEntryRec."VAT %") OR// Add the following lines.(VATEntries."EC %" <> VATEntryRec."EC %")THEN BEGINIF VATEntryRec."Unrealized VAT Entry No." <> 0 THENEXIT(CheckVATOnUnrealVATEntries(VATEntryRec));EXIT(TRUE);END;// End of the added lines.        UNTIL VATEntries.NEXT = 0;    END;...
  4. تغيير التعليمات البرمجية في وظيفة تشيكفاتونونريلفاتينتريس في تقرير إجراء إقرار 340 (10743) كما يلي:التعليمات البرمجية الموجودة

    ...UNTIL VATEntries.NEXT = 0;    END;    PROCEDURE CalcECAmount@1100002(VATEntryRec@1100000 : Record 254;VAR VATBuffer3@1100001 : TEMPORARY Record 10704);    VAR      Currency@1100004 : Record 4;...

    استبدال التعليمات البرمجية

    ...UNTIL VATEntries.NEXT = 0;    END;// Add the following lines.LOCAL PROCEDURE CheckVATOnUnrealVATEntries@1100044(VATEntryRec@1100000 : Record 254) : Boolean;VARUnrealVATEntry@1100001 : Record 254;BEGINUnrealVATEntry.GET(VATEntryRec."Unrealized VAT Entry No.");UnrealVATEntry.SETCURRENTKEY("Transaction No.");UnrealVATEntry.SETRANGE("Transaction No.",UnrealVATEntry."Transaction No.");IF UnrealVATEntry.FINDSET THENREPEATIF (UnrealVATEntry."VAT %" <> VATEntryRec."VAT %") OR(UnrealVATEntry."EC %" <> VATEntryRec."EC %")THENEXIT(TRUE);UNTIL UnrealVATEntry.NEXT = 0;EXIT(FALSE);END;// End of the added lines.PROCEDURE CalcECAmount@1100002(VATEntryRec@1100000 : Record 254;VAR VATBuffer3@1100001 : TEMPORARY Record 10704);    VAR      Currency@1100004 : Record 4;...
  5. تغيير التعليمات البرمجية في وظيفة فيندبمتورديربيلجربانكاكك في تقرير إجراء إقرار 340 (10743) كما يلي:التعليمات البرمجية الموجودة

    ...EXIT(FormatNumber(NoOfRegs,2));    END;    PROCEDURE RecordTypeSale@1100009();    VAR      UnrealizedVATEntry@1100001 : Record 254;...

    استبدال التعليمات البرمجية

    ...EXIT(FormatNumber(NoOfRegs,2));    END;// Add the following lines.LOCAL PROCEDURE FindPmtOrderBillGrBankAcc@1100058(Type@1100005 : Option;DocumentNo@1100000 : Code[20]) : Code[20];VARClosedBillGroup@1100003 : Record 7000007;ClosedPmtOrder@1100002 : Record 7000022;PostedBillGroup@1100004 : Record 7000006;PostedPmtOrder@1100001 : Record 7000021;BEGINCASE Type OFVATEntry.Type::Sale:BEGINIF PostedBillGroup.GET(DocumentNo) THENEXIT(PostedBillGroup."Bank Account No.");IF ClosedBillGroup.GET(DocumentNo) THENEXIT(ClosedBillGroup."Bank Account No.");END;VATEntry.Type::Purchase:BEGINIF PostedPmtOrder.GET(DocumentNo) THENEXIT(PostedPmtOrder."Bank Account No.");IF ClosedPmtOrder.GET(DocumentNo) THENEXIT(ClosedPmtOrder."Bank Account No.");END;END;EXIT('');END;// End of the added lines.PROCEDURE RecordTypeSale@1100009();    VAR      UnrealizedVATEntry@1100001 : Record 254;...
  6. تغيير التعليمات البرمجية في وظيفة ريكوردتيبيسالي في تقرير إجراء إقرار 340 (10743) كما يلي:التعليمات البرمجية الموجودة 1

    ...END ELSE          OperationDateText := FormatDate(VATEntry."Posting Date");      IF VATEntry."Document Type" IN [VATEntry."Document Type"::Payment,VATEntry."Document Type"::Refund] THEN BEGIN        UnrealizedVATEntryNo := VATEntry."Unrealized VAT Entry No.";        DocumentDate := VATEntry."Posting Date";...

    استبدال رمز 1

    ... END ELSE          OperationDateText := FormatDate(VATEntry."Posting Date");// Add the following lines.AppliedToDocumentNo := VATEntry."Document No.";UnrealizedVATEntryNo := 0;// End of the added lines.      IF VATEntry."Document Type" IN [VATEntry."Document Type"::Payment,VATEntry."Document Type"::Refund] THEN BEGIN        UnrealizedVATEntryNo := VATEntry."Unrealized VAT Entry No.";        DocumentDate := VATEntry."Posting Date";...

    التعليمات البرمجية الموجودة 2

    ...IF VATEntry."Document Type" IN [VATEntry."Document Type"::Payment,VATEntry."Document Type"::Refund] THEN BEGIN        UnrealizedVATEntryNo := VATEntry."Unrealized VAT Entry No.";        DocumentDate := VATEntry."Posting Date";// Delete the following line.IF UnrealizedVATEntryNo <> 0 THEN BEGIN// End of the deleted line.          UnrealizedVATEntry.GET(UnrealizedVATEntryNo);          AppliedToDocumentNo := FindAppliedToDocumentNo(UnrealizedVATEntry);          OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");...

    استبدال رمز 2

    ...IF VATEntry."Document Type" IN [VATEntry."Document Type"::Payment,VATEntry."Document Type"::Refund] THEN BEGIN        UnrealizedVATEntryNo := VATEntry."Unrealized VAT Entry No.";        DocumentDate := VATEntry."Posting Date";// Add the following lines.IF (UnrealizedVATEntryNo <> 0) AND(FindPmtOrderBillGrBankAcc(VATEntry.Type,VATEntry."Document No.") = '')THEN BEGIN// End of the added lines.          UnrealizedVATEntry.GET(UnrealizedVATEntryNo);          AppliedToDocumentNo := FindAppliedToDocumentNo(UnrealizedVATEntry);          OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");...

    التعليمات البرمجية الموجودة 3

    ... OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");          DocumentDate := UnrealizedVATEntry."Document Date";        END;// Delete the following lines.END ELSE BEGINAppliedToDocumentNo := VATEntry."Document No.";UnrealizedVATEntryNo := 0;// End of the deleted lines.      END;      CreateTempDeclarationLines(PADSTR(CustVATNumber,9,' '),Customer."No.",Customer.Name,DocumentDate,...

    استبدال رمز 3

    ...OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date");          DocumentDate := UnrealizedVATEntry."Document Date";        END;      END;      CreateTempDeclarationLines(PADSTR(CustVATNumber,9,' '),Customer."No.",Customer.Name,DocumentDate,...
  7. تغيير التعليمات البرمجية في وظيفة أدكوليكتيونبانكاكك في تقرير إجراء إقرار 340 (10743) كما يلي:التعليمات البرمجية الموجودة 1

    ...VATEntryForPmnt@1100008 : Record 254;      BankAccLE@1100002 : Record 271;      CheckLE@1100004 : Record 272;// Delete the following line.BankAcc@1100006 : Record 270;// End of the deleted line.      CollectionPaymentMethodUsed@1100005 : Text[1];      BankAccountOrPaymentMethodUsed@1100003 : Text[34];      InsertPosition@1100007 : Integer;...

    استبدال رمز 1

    ...VATEntryForPmnt@1100008 : Record 254;      BankAccLE@1100002 : Record 271;      CheckLE@1100004 : Record 272;// Add the following line.BankAccNo@1100009 : Code[20];// End of the added line.      CollectionPaymentMethodUsed@1100005 : Text[1];      BankAccountOrPaymentMethodUsed@1100003 : Text[34];      InsertPosition@1100007 : Integer;...

    التعليمات البرمجية الموجودة 2

    ... IF CheckLE.FINDFIRST THEN BEGIN          BankAccountOrPaymentMethodUsed := CheckLE."Check No.";          CollectionPaymentMethodUsed := 'T';// Delete the following lines.END ELSEIF BankAccLE.GET(DeclarationLine."Bank Account Ledger Entry No.") THEN BEGINCollectionPaymentMethodUsed := 'C';BankAcc.GET(BankAccLE."Bank Account No.");BankAccountOrPaymentMethodUsed := BankAcc."CCC No.";IF BankAccountOrPaymentMethodUsed = '' THENBankAccountOrPaymentMethodUsed := BankAcc."Bank Account No.";IF BankAccountOrPaymentMethodUsed = '' THENBankAccountOrPaymentMethodUsed :=COPYSTR(BankAcc.IBAN,1,MAXSTRLEN(BankAccountOrPaymentMethodUsed));END;// End of the deleted lines.IF BankAccountOrPaymentMethodUsed = '' THEN BEGIN          CollectionPaymentMethodUsed := 'O';          IF DeclarationLine.Type = DeclarationLine.Type::Sale THEN...

    استبدال رمز 2

    ...IF CheckLE.FINDFIRST THEN BEGIN          BankAccountOrPaymentMethodUsed := CheckLE."Check No.";          CollectionPaymentMethodUsed := 'T';// Add the following lines.END ELSE BEGINIF BankAccLE.GET(DeclarationLine."Bank Account Ledger Entry No.") THENBankAccNo := BankAccLE."Bank Account No."ELSEBankAccNo := FindPmtOrderBillGrBankAcc(DeclarationLine.Type,DeclarationLine."Document No.");BankAccountOrPaymentMethodUsed := GetBankAccountUsed(BankAccNo);IF BankAccountOrPaymentMethodUsed <> '' THENCollectionPaymentMethodUsed := 'C';END;// End of the added lines.        IF BankAccountOrPaymentMethodUsed = '' THEN BEGIN          CollectionPaymentMethodUsed := 'O';          IF DeclarationLine.Type = DeclarationLine.Type::Sale THEN...
  8. تغيير التعليمات البرمجية في وظيفة جيتبانكاككونتوسيد في تقرير إجراء إقرار 340 (10743) كما يلي:التعليمات البرمجية الموجودة

    ...  txt := InsertTextWithReplace(txt,BankAccountOrPaymentMethodUsed,InsertPosition);    END;    LOCAL PROCEDURE AreDatesInSamePeriod@1100035(Date1@1100000 : Date;Date2@1100001 : Date) : Boolean;    BEGIN      EXIT(CALCDATE('<CM>',Date1) = CALCDATE('<CM>',Date2));...

    استبدال التعليمات البرمجية

    ...txt := InsertTextWithReplace(txt,BankAccountOrPaymentMethodUsed,InsertPosition);    END;// Add the following lines.LOCAL PROCEDURE GetBankAccountUsed@1100059(BankAccNo@1100001 : Code[20]) BankAccountUsed : Text[34];VARBankAccount@1100000 : Record 270;BEGINWITH BankAccount DOIF GET(BankAccNo) THEN BEGINBankAccountUsed := "CCC No.";IF BankAccountUsed = '' THENBankAccountUsed := "Bank Account No.";IF BankAccountUsed = '' THENBankAccountUsed := COPYSTR(IBAN,1,MAXSTRLEN(BankAccountUsed));END;END;// End of the added lines.LOCAL PROCEDURE AreDatesInSamePeriod@1100035(Date1@1100000 : Date;Date2@1100001 : Date) : Boolean;    BEGIN      EXIT(CALCDATE('<CM>',Date1) = CALCDATE('<CM>',Date2));...

المتطلبات الأساسية

يجب أن يكون لديك أحد المنتجات التالية مثبتة لتطبيق هذا الإصلاح العاجل:

  • النسخة الإسبانية من Microsoft Dynamics NAV 2009 R2

  • النسخة الإسبانية من Microsoft Dynamics NAV 2009 SP1

معلومات الإزالة

لا يمكنك إزالة هذا الإصلاح العاجل.

الحالة

أقرت Microsoft أن هذه مشكلة في منتجات Microsoft المسردة في قسم "ينطبق على".

ملاحظة: وهذا المقال "النشر السريع" التي تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة في هذه الوثيقة كاستجابه للمسائل الناشئة. نتيجة للسرعة في توفيره، قد تتضمن الأخطاء المطبعية المواد ويمكن مراجعة في أي وقت دون سابق إنذار. راجع شروط الاستخداملاعتبارات أخرى.

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.