عند العمل في 1C، هناك العديد من العمليات الروتينية التي يجب إطلاقها أو تشكيلها وفقًا لجدول زمني لتنفيذ هذا الإجراء أو ذاك، على سبيل المثال: نشر المستندات أو تحميل البيانات إلى 1C من موقع الويب.

لقد قمت مؤخرًا بنشر مقال: حان الوقت لأتمتة هذا:

المهام الروتينية والخلفية

تم تصميم محرك المهام لتنفيذ أي تطبيق أو وظيفة وفقًا لجدول زمني أو بشكل غير متزامن.

آلية المهمة تحل المهام التالية:

  • القدرة على تحديد الإجراءات التنظيمية في مرحلة تكوين النظام؛
  • تنفيذ الإجراءات المحددة وفقا للجدول الزمني؛
  • إجراء مكالمة إلى إجراء أو وظيفة معينة بشكل غير متزامن، أي. دون انتظار اكتماله؛
  • تتبع التقدم المحرز في مهمة محددة والحصول على حالة اكتمالها (قيمة تشير إلى ما إذا كانت ناجحة أم لا)؛
  • الحصول على قائمة المهام الحالية.
  • القدرة على الانتظار حتى تكتمل مهمة واحدة أو أكثر؛
  • إدارة الوظائف (إمكانية الإلغاء، منع التنفيذ، إلخ).

تتكون آلية العمل من العناصر التالية:

  • البيانات الوصفية للمهام الروتينية؛
  • المهام العادية؛
  • وظائف الخلفية؛
  • جدولة المهام.

وظائف الخلفية مصممة لأداء مهام التطبيق بشكل غير متزامن. يتم تنفيذ مهام الخلفية باستخدام اللغة المضمنة.

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

تحتوي المهمة الروتينية على جدول زمني يحدد الأوقات التي يجب فيها تنفيذ الطريقة المرتبطة بالمهمة الروتينية. يتم تحديد الجدول، كقاعدة عامة، في قاعدة المعلومات، ولكن يمكن تحديده أيضًا في مرحلة التكوين (على سبيل المثال، للمهام الروتينية المحددة مسبقًا).

يتم استخدام برنامج جدولة المهام لجدولة تنفيذ المهام الروتينية. بالنسبة لكل مهمة مجدولة، يقوم المجدول بالتحقق بشكل دوري مما إذا كان التاريخ الحاليووقت جدول المهام الروتينية. إذا كان متطابقًا، يقوم المجدول بتعيين هذه المهمة للتنفيذ. للقيام بذلك، بالنسبة لهذه المهمة المجدولة، يقوم المجدول بإنشاء مهمة في الخلفية، والتي تقوم بالمعالجة الفعلية.

أعتقد أن هذا يكفي مع الوصف - فلنبدأ بالتنفيذ:

إنشاء مهمة روتينية

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

الاستخدام– علامة على استخدام مهمة روتينية.

محددة سلفا- يشير إلى ما إذا كانت المهمة الروتينية محددة مسبقًا.

إذا كنت تريد أن تعمل المهمة الروتينية مباشرة بعد وضعها في قاعدة البيانات، فحدد السمة محددة سلفا. بخلاف ذلك، ستحتاج إلى استخدام معالجة "Job Console" أو تشغيل المهمة لتشغيلها برمجيًا.

عدد مرات إعادة المحاولة عندما تنتهي المهمة بشكل غير طبيعي– عدد المرات التي تم فيها إعادة تشغيل مهمة الخلفية إذا تم تنفيذها مع حدوث خطأ.

إعادة المحاولة الفاصل الزمني عندما تنتهي المهمة بشكل غير طبيعي– عدد المرات التي سيتم فيها إعادة تشغيل مهمة الخلفية إذا تم إكمالها مع حدوث خطأ.

وضع جدول زمني

جدولإكمال المهمة:

كل ساعة، يوم واحد فقطفترة تكرار الأيام = 0، فترة تكرار الأيام = 3600
كل يوم مرة واحدة في اليومفترة RepeatDays = 1، فترة RepeatDays = 0
يوم واحد، مرة واحدةأيام تكرار الفترة = 0
كل يوم مرة واحدة في اليومأيام تكرار الفترة = 2
كل ساعة من 01.00 إلى 07.00 كل يومperiodRepeatDays = 1RepeatPeriodDuringDay = 3600StartTime = 01.00

وقت الانتهاء = 07.00

كل سبت وأحد الساعة 09.00فترة تكرار الأيام = 1WeekDays = 6، 7StartTime = 09.00
كل يوم لمدة أسبوع، تخطي أسبوعبيريوديريبيتدايز = 1بيريودويكس = 2
الساعة 01.00 مرة واحدةوقت البدء = 01.00
آخر يوم من كل شهر الساعة 9:00.periodRepeatDays = 1DayInMonth = -1StartTime = 09.00
اليوم الخامس من كل شهر الساعة 9:00periodRepeatDays = 1DayInMonth = 5StartTime = 09.00
الأربعاء الثاني من كل شهر الساعة 9:00periodRepeatDays = 1DayWeekMonth = 2DaysWeek = 3

وقت البدء = 09.00

ميزات تنفيذ مهام الخلفية في متغيرات الملفات وخادم العميل

تختلف آليات تنفيذ مهام الخلفية في الملف وإصدارات خادم العميل.

في نسخة الملفتحتاج إلى إنشاء عملية عميل مخصصة تؤدي وظائف في الخلفية. للقيام بذلك، يجب على عملية العميل استدعاء وظيفة السياق العمومي ExecuteJobProcessing بشكل دوري. يجب أن تقوم عملية عميل واحدة فقط لكل قاعدة معلومات بمعالجة وظائف الخلفية (وبالتالي استدعاء هذه الوظيفة). إذا لم يتم إنشاء عملية عميل لمعالجة وظائف الخلفية، فعند الوصول إلى محرك المهام برمجيًا، سيتم عرض الخطأ "Job Manager غير نشط". لا يُنصح باستخدام عملية عميل تعالج وظائف الخلفية لوظائف أخرى.

بمجرد بدء مهام الخلفية لمعالجة عملية العميل، يمكن لعمليات العميل الأخرى ذلك الوصول إلى البرامجلآلية وظائف الخلفية، أي. يمكن تشغيل وإدارة وظائف الخلفية.

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

في إصدار خادم العميل، من الممكن منع تنفيذ المهام الروتينية. يتم حظر تنفيذ المهام الروتينية في الحالات التالية:

  • تم تثبيت حظر صريح للمهام الروتينية على قاعدة المعلومات. يمكن ضبط القفل عبر وحدة التحكم العنقودية؛
  • هناك كتلة اتصال في قاعدة المعلومات. يمكن ضبط القفل عبر وحدة التحكم العنقودية؛
  • تم استدعاء الأسلوب SetExclusiveMode() مع المعلمة True من اللغة المضمنة؛
  • وفي بعض الحالات الأخرى (على سبيل المثال، عند تحديث تكوين قاعدة البيانات).

معالجة إطلاق وعرض المهام المجدولةيمكنك تحميل هنا.

سأتحدث في هذه المقالة عن كيفية إضافة قواعد بيانات جديدة أو موجودة إلى خادم 1C:Enterprise. 8.3 (للإصدارات الأخرى من النظام الأساسي - 8.1 و 8.2 الأفعال متشابهة).سيتم النظر في خيارات الإضافة قاعدة المعلوماتسواء من أو من خلال برنامج إدارة خادم 1C:Enterprise (في نظام التشغيل Windows). تم أيضًا التطرق إلى بعض مشكلات إدارة قواعد المعلومات في مجموعة خوادم 1C:Enterprise.

1. إضافة قاعدة معلومات من نافذة إطلاق 1C:Enterprise

لنقم بإنشاء قاعدة بيانات جديدة على خادم 1C:Enterprise من التكوين القياسي. للقيام بذلك، قم بتشغيل "1C:Enterprise" وفي نافذة التشغيل انقر فوق " يضيف…» لإضافة قاعدة معلومات.

سيبدأ معالج إضافة قاعدة معلومات، حدد العنصر " إنشاء قاعدة معلومات جديدة" عن طريق ضبط المفتاح المناسب والنقر فوق " التالي».

في قائمة قوالب التكوين المثبتة، حدد القالب الذي نحتاجه وانقر فوق " التالي».

لندخل اسم قاعدة البيانات كما سيتم عرضها في قائمة قواعد المعلومات، حدد نوع الموقع " على 1C: خادم المؤسسة" وانقر " التالي».

في الصفحة التالية، تحتاج إلى تحديد معلمات قاعدة المعلومات التي تم إنشاؤها، وهي:

(في في هذا المثالتم اختيار المعلمات وفقًا لـ 1C: معلمات تثبيت خادم Enterprise المعتمدة في المقالة)

  • اسم مجموعة الخادم 1C:Enterprise- كقاعدة عامة، يتطابق مع اسم شبكة الكمبيوتر حيث تم تثبيت خادم 1C:Enterprise (المجموعة المركزية للخادم)؛
  • اسم قاعدة البيانات التي يتم إنشاؤها في المجموعة— الاسم الذي سيتم من خلاله الوصول إلى قاعدة المعلومات. يجب أن تكون فريدة ضمن مجموعة معينة؛
  • اتصال آمن- معطل افتراضيا؛
  • نوع نظام إدارة قواعد البيانات (DBMS) الذي سيتم تخزين قاعدة البيانات عليه— في هذا المثال، MS SQL Server؛
  • اسم خادم قاعدة البيانات- كقاعدة عامة، يتكون من اسم شبكة الكمبيوتر المثبت عليه خادم قاعدة البيانات واسم مثيل الخادم (إن وجد)، مفصولاً بعلامة "\"؛
  • اسم قاعدة البيانات على خادم قاعدة البيانات- للراحة، سنلتزم بالقاعدة التي تنص على أن اسم قاعدة البيانات يجب أن يتطابق مع اسم قاعدة المعلومات في المجموعة. بالإضافة إلى ذلك، في حالة استخدام MS SQL Server، فإن الحرف الأول في اسم قاعدة البيانات يمكن أن يكون فقط حرفًا من الأبجدية اللاتينية أو الرمز "_"، ويمكن أن تكون الأحرف اللاحقة فقط حرفًا من الأبجدية اللاتينية أو رقمًا أو الرمزان "_" و"&"، يجب أن يكون الاسم فريدًا داخل مثيل خادم قاعدة البيانات المحدد وألا يتجاوز 63 حرفًا. إذا كانت قاعدة البيانات موجودة بالفعل على الخادم، فسيتم استخدام قاعدة البيانات الحالية، وإذا لم يكن الأمر كذلك، فسيتم استخدام العلامة " إنشاء قاعدة بيانات إذا لم تكن موجودة"، ستتم إضافة قاعدة بيانات جديدة إلى خادم قاعدة البيانات.
  • مستخدم قاعدة البيانات— مستخدم نظام إدارة قواعد البيانات (DBMS) الذي سيصبح مالك قاعدة البيانات على الخادم إذا تم إنشاء قاعدة بيانات جديدة أو لديه حقوق العمل مع قاعدة بيانات موجودة؛
  • كلمة مرور المستخدم- كلمة المرور للمستخدم الذي سيتم الوصول إلى قاعدة البيانات نيابة عنه؛
  • إزاحة التاريخ- 0 أو 2000. هذه المعلمةيحدد عدد السنوات التي سيتم إضافتها إلى التواريخ عند حفظها في قاعدة البيانات بيانات مايكروسوفت SQL Server وطرحها عند استرجاعها. الحقيقة هي أن نوع DATATIME الذي يستخدمه Microsoft SQL Server يسمح لك بتخزين التواريخ في النطاق من 1 يناير 1753 إلى 31 ديسمبر 9999. إذا كانت هناك حاجة، عند العمل باستخدام قاعدة معلومات، إلى تخزين تواريخ تسبق الحد الأدنى لهذا النطاق، فيجب تحديد إزاحة التاريخ على أنها 2000. بالإضافة إلى ذلك، إذا كان حل التطبيق يستخدم سجلات التراكم أو سجلات المحاسبة (وعلى الأرجح سيكون هذا هو الحال)، أيضًا في "يجب ضبط إزاحة تاريخ الحقل على 2000.
  • ضبط حظر المهام المجدولة- يتيح لك تعيين العلامة حظر تنفيذ المهام المجدولة على الخادم لقاعدة المعلومات هذه. ويجب تثبيته في حالة إنشاء قواعد معلومات الاختبار، حيث لا يحمل تنفيذ المهام الروتينية أي عبء عملي.

بعد تعيين جميع معلمات قاعدة المعلومات، انقر فوق " التالي».

وأخيرًا، حدد معلمات التشغيل لقاعدة البيانات التي يتم إنشاؤها وانقر فوق " مستعد» للبدء بعملية إنشاء قاعدة معلومات جديدة. في الوقت نفسه، سيتم إنشاء قاعدة معلومات جديدة على خادم 1C:Enterprise، إذا لزم الأمر، تم إنشاؤها قاعدة جديدةالبيانات الموجودة على خادم قاعدة البيانات، وسيتم أيضًا تحميل البيانات من قالب التكوين.

إذا تم إكمال جميع الإجراءات المذكورة أعلاه بنجاح، فسوف يكمل المعالج عمله، وسنرى قاعدة البيانات التي تم إنشاؤها حديثًا في قائمة قواعد المعلومات في نافذة إطلاق 1C:Enterprise.

2. إضافة قاعدة معلومات من وحدة تحكم إدارة خادم 1C:Enterprise

الآن دعونا نضيف قاعدة معلومات أخرى إلى مجموعة الخادم، ولكن من خلال " إدارة 1C: خوادم المؤسسة"(سابقًا). يمكنك العثور عليه:

حسنًا، على أية حال، يمكن تشغيل الأداة الإضافية عن طريق تنفيذ الملف " 1CV8 خوادم.msc"موجود في دليل التثبيت 1C:Enterprise في الدليل الفرعي" شائع».

إذا كانت المعدات " " يتم تشغيله على نفس الكمبيوتر حيث تم تثبيت خادم 1C:Enterprise، ثم في الشجرة الموجودة على اليسار، في الفرع الذي يحمل اسم الشبكة للكمبيوتر الحالي، يجب أن نرى مجموعة الخوادم هذه تسمى " الكتلة المحلية" توسيع علامة التبويب " قواعد المعلومات"سنرى جميع قواعد المعلومات في مجموعة الخوادم هذه (على سبيل المثال، قاعدة البيانات التي تم إنشاؤها من خلال نافذة تشغيل 1C:Enterprise في الخطوة السابقة). لإضافة قاعدة معلومات جديدة، انقر فوق انقر بزر الماوس الأيمنالماوس على علامة التبويب هذه، في قائمة السياقيختار " يخلق» — « قاعدة المعلومات».

سيتم فتح نافذة المعلمات لقاعدة المعلومات التي تم إنشاؤها. قائمة المعلمات هي نفسها الموضحة أعلاه في الفقرة 1 من هذه التعليمات. بعد ملئ جميع المعلمات اضغط على " نعم» للبدء بعملية إنشاء قاعدة معلومات جديدة. في هذه الحالة، سيتم إنشاء قاعدة معلومات جديدة على خادم 1C:Enterprise، وإذا لزم الأمر، سيتم إنشاء قاعدة بيانات جديدة على خادم قاعدة البيانات.

إذا تم إكمال جميع الإجراءات المذكورة أعلاه بنجاح، فسيتم إغلاق نافذة المعلمات، وسنرى قاعدة البيانات التي تم إنشاؤها حديثًا في قائمة قواعد المعلومات الخاصة بالمجموعة الحالية.

وإذا ذهبت إلى برنامج "الأربعاء". ستوديو إدارة خادم SQL" والاتصال بالمثيل الحالي لـ MS SQL Server، يمكنك رؤية قواعد البيانات التي تم إنشاؤها في الخطوات السابقة.

3. خصائص قاعدة المعلومات

لعرض أو تغيير معلمات قاعدة معلومات معينة، تحتاج إلى استخدام " إدارة خوادم 1C Enterprise"، في قائمة قواعد المعلومات، انقر بزر الماوس الأيمن عليها وحدد " ملكيات" للمصادقة في وحدة تحكم الإدارة، يجب عليك استخدام المسؤولين في قواعد المعلومات المقابلة. بعبارة أخرى هذا الاختياريشبه المصادقة عند الاتصال بقاعدة المعلومات من خلال عميل 1C:Enterprise.

كما ترون، تمت إضافة ما يلي إلى قائمة المعلمات المألوفة لدينا بالفعل:

  • تم تمكين حظر بدء الجلسة— علامة تسمح لك بتمكين حظر بدء الجلسات باستخدام قاعدة المعلومات، إذا تم تعيين العلامة، فحينئذٍ:
    • يمكن أن تستمر الجلسات الحالية في العمل، وتأسيس اتصالات جديدة، وكذلك تشغيل وظائف الخلفية؛
    • يحظر إنشاء جلسات واتصالات جديدة بقاعدة المعلومات.
  • يبدأو نهاية- مدة حظر الجلسة؛
  • رسالة— النص الذي سيكون جزءًا من رسالة الخطأ عند محاولة إنشاء اتصال بقاعدة معلومات محظورة؛
  • رمز الإذن- السلسلة التي يجب إضافتها إلى المعلمة /جامعة كاليفورنياعند بدء تشغيل 1C:Enterprise للاتصال بقاعدة المعلومات على الرغم من حظره؛
  • خيارات الحظر— نص عشوائي يمكن استخدامه في التكوينات لأغراض مختلفة؛
  • إدارة الجلسات الخارجية- سلسلة تصف معلمات خدمة الويب السيطرة الخارجيةجلسات؛
  • الاستخدام الإلزامي للرقابة الخارجية- إذا تم تعيين العلامة، فإذا كانت خدمة الويب لإدارة الجلسة الخارجية غير متوفرة، فسيحدث خطأ ويستحيل إنشاء اتصال بقاعدة المعلومات؛
  • ملف تعريف الأمان— إذا قمت بتحديد اسم ملف تعريف، فسيبدأ حل التطبيق في العمل مع مراعاة القيود التي يفرضها ملف تعريف الأمان المحدد؛
  • ملف تعريف الأمان الوضع الآمن - نفس ملف تعريف الأمان، ولكن سيتم فرض قيود على أجزاء حل التطبيق الذي يعمل في الوضع الآمن.

بعد تغيير المعلمات الضرورية، انقر فوق " يتقدم" لحفظ التغييرات أو " نعم» لحفظ وإغلاق نافذة خصائص قاعدة المعلومات.

4. إضافة قاعدة معلومات موجودة إلى قائمة قواعد المعلومات في نافذة إطلاق 1C:Enterprise

وأخيرًا، كل ما يتعين علينا فعله هو إضافة ما تم إنشاؤه باستخدام " إدارة خوادم 1C Enterprise»infobase إلى قائمة قواعد المعلومات في نافذة إطلاق 1C:Enterprise. لماذا في هذه النافذة انقر فوق " يضيف…" وفي المعالج الذي يبدأ بإضافة قاعدة معلومات/مجموعة، حدد العنصر المناسب وانقر فوق " التالي».

أدخل اسم قاعدة المعلومات كما سيتم عرضه في القائمة، حدد نوع موقع قاعدة المعلومات " على 1C: خادم المؤسسة"واضغط" مرة أخرى التالي».

أدخل عنوان مجموعة خادم 1C:Enterprise واسم قاعدة المعلومات، كما هو محدد في هذه المجموعة. انقر " التالي».

وأخيرًا، قم بتعيين المعلمات لبدء تشغيل قاعدة المعلومات وانقر فوق " مستعد» لإكمال المعالج.

لقد ظهرت قاعدة بياناتنا في قائمة قواعد بيانات المعلومات. عليك أن تفهم أن هذه قاعدة بيانات فارغة (نظيفة)، ومن ثم يجب عليك تحميل البيانات إليها من قالب، أو من ملف بيانات تم تحميله مسبقًا.

هل هذه المقالة تساعدك؟

كيفية تسريع العمل في 1C: المحاسبة 8.3 (الإصدار 3.0) أو تعطيل المهام الروتينية والخلفية

2019-01-15T13:28:19+00:00

أولئك منكم الذين تحولوا بالفعل إلى الإصدار الجديد من 1C: Accounting 8.3 (الإصدار 3.0) لاحظوا أنه أصبح أبطأ من 2. بعض التباطؤ الغريب، والمهام الخلفية التي لا نهاية لها عدة مرات في اليوم، والتي لم يطلب منها أحد القيام بها دون علمنا.

أخبرني المحاسبون مباشرة بعد النقل أن الإصدار الجديد من 1C: Accounting 3.0 بطيء تمامًا مقارنة بالإصدارات السابقة! ومن المستحيل العمل بكل بساطة.

لقد بدأت في النظر في الأمر وسرعان ما اكتشفت أن السبب الرئيسي للتجميد واستياء المستخدم اللاحق هو المهام الروتينية والخلفية، حيث يتم تمكين الكثير منها افتراضيًا، على الرغم من عدم وجود حاجة إليها بالنسبة للغالبية العظمى من المحاسبين.

حسنًا، على سبيل المثال، لماذا نحتاج إلى تشغيل مهمة "استخراج النص" مائة مرة يوميًا إذا لم نقم بإجراء بحث عن النص الكامل (أيها المحاسبون، لا تقلقوا) عبر جميع الكائنات في قاعدة البيانات الخاصة بنا.

أو لماذا نقوم بتنزيل أسعار العملات باستمرار إذا لم تكن لدينا معاملات بالعملة أو نقوم بها من حين لآخر (وقبل ذلك يمكننا أنفسنا النقر فوق زر تنزيل الأسعار).

الأمر نفسه ينطبق على محاولة 1C المستمرة للاتصال بالموقع والتحقق من مصنفات البنك وتحديثها. لماذا؟ سأضغط بنفسي على الزر لتحديث المصنفات إذا لم أجد البنك المناسب من خلال BIC الخاص به.

كيفية القيام بذلك خطوة بخطوة أدناه.

1. انتقل إلى قسم "الإدارة" وحدد "الصيانة" () في لوحة الإجراءات:

2. في النافذة التي تفتح، ابحث عن "المهام الروتينية والمهام الخلفية" وحدِّدها:

3. افتح كل مهمة بها "تشغيل" في العمود "تشغيل". هناك داو.

4. قم بإلغاء تحديد "ممكّن" وانقر فوق الزر "حفظ وإغلاق".

5. افعل ذلك مع كل مهمة من المهام المضمنة واستمتع بالإصدار الجديد. بشكل عام، في رأيي، هو أفضل بكثير من اثنين.

وفي الوقت نفسه، سيستمر النظام الأساسي في تمكين بعض المهام المجدولة التي قمت بتعطيلها.

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

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

من الناحية المثالية، يتم تنفيذ مهمة الخلفية في إصدار خادم العميل، وفي هذه الحالة يذهب التحميل بالكامل إلى الخادم. أما بالنسبة لخيار الملف، فمن الممكن العمل في الخلفية، ولكن لديه بعض الخصائص.

هذا ما سينتجه النظام إذا لم تأخذ هذه الميزات في الاعتبار وقمت بتشغيل مهمة الخلفية في إصدار ملف قاعدة المعلومات.


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

ما هي الأدوات التي لدينا لإدارة وظائف الخلفية؟ هذا المرفق هو كائن البيانات الوصفية "مدير مهام الخلفية". هذا الكائن لديه طريقة "يجري"باستخدام هذه الطريقة، يتم تشغيل مهمة الخلفية.

لديها المعلمات التالية:
"اسم الأسلوب"- اسم الإجراء أو الوظيفة المراد تنفيذها، ويجب أن يكون إجراء أو وظيفة في سياق الخادم؛

"خيارات"- مجموعة من المعلمات، يجب أن يتوافق عدد عناصرها مع عدد معلمات الإجراء/الوظيفة المحددة في المعلمة "اسم الأسلوب";

"مفتاح"- مفتاح تفرد معين، وهو عبارة عن سطر يفهم النظام من خلاله ما إذا كانت هناك حاجة لبدء مهمة في الخلفية أو ما إذا كانت هذه المهمة قيد التشغيل بالفعل؛

"اسم"- هنا يمكنك تحديد وصف عشوائي لطريقتنا.

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

مهمة الخلفية 1C 8.2، 8.3 - مثال للاستخدام

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

للقيام بذلك:

1. لنقم بإنشاء وحدة مشتركة "معالجات المهام في الخلفية"والتي سيتم تجميعها على جانب الخادم؛


2. سوف نقوم بوصف إجراءات التصدير فيه "ProduceBackgroundCalculation (المعلمة)"، والذي يأخذ معلمة واحدة من نوع السلسلة؛

الإجراء PerformanceBackgroundCalculation(Parameter) ExportStartTime = CurrentDate();< = 6 Цикл КонецЦикла ; КонецПроцедуры Процедура КнНажатие() ОбработчикиФоновыхЗаданий. ПроизветиФоновоеВычисление(بينما CurrentDate() - وقت البدء"بعض المعلمات"
مستعد. الآن، عند بدء المعالجة والضغط على الزر، يتجمد النظام لعدة ثوانٍ، لا يمكن خلالها فعل أي شيء. هذا هو بالضبط ما يتعين علينا القيام به.

الآن سوف نتأكد من تنفيذ هذه الحسابات في الخلفية، أي أن مهمة الخلفية 1C 8.2، 8.3 يتم تنفيذها، لكنها لا تتداخل معنا.

للقيام بذلك:

1. أثناء المعالجة، في حدث النقر على الزر، اكتب الكود التالي.

الإجراء KnPress() Parameters = New Array; بينما CurrentDate() - وقت البدءخيارات. يضيف( ) ;مهمة الخلفية. يجري ( "معالجات مهام الخلفية. إجراء حساب الخلفية""بعض المعلمات"

المعلمات، معرف فريد جديد،

"مهمة الاختبار"

نقوم هنا بتمرير اسم إجراء الوحدة الشائعة كمعلمة أولى، ومجموعة من المعلمات كمعلمة ثانية. يجب أن يتم تمرير المعلمة الثالثة بمفتاح فريد، ويجب أن يتم تمرير المعلمة الرابعة إلى بعض وصف الإجراء الخاص بنا.

غالبًا ما يشتكي المستخدمون من أن "1C 8.3 بطيء": تفتح نماذج المستندات ببطء، وتستغرق معالجة المستندات وقتًا طويلاً، ويبدأ البرنامج، ويستغرق إنشاء التقارير وقتًا طويلاً، وما إلى ذلك.

علاوة على ذلك، يمكن أن تحدث مثل هذه "مواطن الخلل" في برامج مختلفة: قد تكون الأسباب مختلفة. لم يتم استعادة المستندات، جهاز كمبيوتر أو خادم ضعيف، تم تكوين خادم 1C بشكل غير صحيح.في هذه المقالة أريد أن ألقي نظرة على أحد أبسط الأسباب وأكثرها شيوعًا لبطء البرنامج - .

هذه التعليمات

ستكون ذات صلة بمستخدمي قواعد بيانات الملفات لعدد 1-2 مستخدمين، حيث لا توجد منافسة على الموارد.

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

أين المهام المجدولة في 1C 8.3؟

قبل أن أتمكن من تحميل البرنامج، تم إكمال العديد من مهام الخلفية في 1C. يمكنك الاطلاع عليها من خلال الذهاب إلى قائمة "الإدارة"، ثم "الدعم والصيانة":

احصل على 267 درس فيديو على 1C مجانًا: هذا ما تبدو عليه نافذة المهام المكتملة:وهكذا

القائمة الكاملة

جميع المهام المجدولة التي تم إطلاقها:

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