الوحدة العالمية 1s 8.3. وحدات مشتركة

تستمر المقالة في سلسلة "الخطوات الأولى في التطوير على 1C"، وتناقش بالتفصيل المشكلات التالية:

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

القابلية للتطبيق

تتناول المقالة منصة 1C:Enterprise 8.3.4.496. المادة ذات صلة أيضًا بإصدارات النظام الأساسي الحالية.

الوحدات في "1C:Enterprise 8.3"

الوحدات هي تلك الكائنات التي تحتوي على رمز البرنامج.

يوجد عدد كبير جدًا من أنواع الوحدات في المنصة، ولكل منها غرض وميزات خاصة به.

يجب أن يكون أي سطر من التعليمات البرمجية في بعض الوحدات. هناك وحدات للأغراض العامة ووحدات كائنية. يمكن تجميع بعض الوحدات على كل من العميل والخادم، والبعض الآخر على الخادم فقط.

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

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

على الرغم من الاسم نفسه، إلا أن هذين المتغيرين مختلفان: أحدهما يستخدم داخل إجراء معين، والآخر يستخدم خارجه.

في بعض الوحدات، قد يكون للمتغيرات موقع تجميع (متاح) على الخادم أو العميل. على سبيل المثال:

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

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

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

لذلك، على سبيل المثال، عند فتح نموذج عنصر، يتم تنفيذ قسم البرنامج الرئيسي لوحدة النموذج أولاً.

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

وحدة التطبيق

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

يوجد أيضًا في وحدة التطبيق معالجات خاصة تسمح لك باعتراض الأحداث الخارجية من الجهاز.

يمكن أن تكون هذه أحداثًا من قارئ البطاقة الممغنطة أو المسجل المالي. ويمكن أيضًا معالجة هذه الأحداث بطريقة ما.

يرجى ملاحظة أنه يتم مراقبة بدء التشغيل التفاعلي للنظام في وحدة التطبيق.

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

تجدر الإشارة إلى أنه يوجد في النظام الأساسي 8.3 وحدتا تطبيق مختلفتان: وحدة التطبيق المُدار ووحدة التطبيق العادي. تتم معالجة أحداث وحدة التطبيق المُدارة عند تشغيل عميل الويب والتطبيق المُدار الرقيق والسميك.

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

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

وحدة التطبيق المداريمكن تحديده من قائمة السياق الخاصة بعقدة التكوين الجذر.

يمكن أيضًا فتح هذه الوحدة من لوحة الخصائص لعنصر التكوين الجذر.

لفتح وحدة نمطية تطبيق منتظم، يجب عليك الرجوع إلى إعدادات التكوين (command خياراتعلى القائمة خدمة).

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

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

قائمة الأحداث التي يمكن معالجتها تمكنتو تطبيق منتظمهو نفسه.

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

يمكن عرض قائمة المعالجات المتاحة عن طريق استدعاء قائمة الإجراءات والوظائف الخاصة بالوحدة النمطية الحالية عندما تكون الوحدة مفتوحة.

تعرض نافذة الإجراءات والوظائف التي يتم فتحها جميع إجراءات ووظائف هذه الوحدة، بالإضافة إلى الأحداث التي لم يتم إنشاء معالجاتها بعد.

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

عند تنفيذ معالج الحدث قبل، يعتبر الإجراء لم يحدث بعد. عند تنفيذ معالج الحدث "at"، يكون الإجراء قد اكتمل بالفعل.

حدث قبل بدء تشغيل النظاميحدث عند إطلاق Enterprise 8.3، ولكن التطبيق نفسه لم يظهر بعد على الشاشة. يحتوي هذا الحدث على المعلمة التالية: رفض.

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

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

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

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

في الوحدة تطبيق منتظملا توجد مثل هذه القيود، حيث سيتم تجميع هذه الوحدة عند تحميل العميل السميك. تتوفر جميع أنواع البيانات تقريبًا في برنامج Heat Client.

يمكن وصف الإجراءات والوظائف والمتغيرات الخاصة بوحدة التطبيق بأنها صادرات.

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

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

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

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

تحتوي هذه الوحدة على أحداث: عند بدء تشغيل النظامو عند إيقاف تشغيل النظام.

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

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

في وحدة الاتصال الخارجي، من الممكن وصف متغيرات التصدير وطرق التصدير التي ستكون متاحة على الجانب الذي يحدث فيه الاتصال الخارجي بـ 1C:Enterprise 8.3.

نظرًا لعدم وجود واجهة مستخدم في الصلة الخارجية، يتم تجميع وحدة الانضمام الخارجية بالكامل على الخادم.

وحدة الجلسة

هذه الوحدة مطلوبة لتهيئة معلمات الجلسة. معلمات الجلسة هي متغيرات عامة سريعة تتوفر قيمها في أي مكان في التكوين.

يمكنك فتح وحدة الجلسة إما من خلال قائمة السياق أو من خلال لوحة خصائص العقدة الجذرية.

توفر وحدة الجلسة حدثًا إعدادات الجلسة.

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

تصف وحدة الجلسة الإجراءات المختلفة لتهيئة معلمات الجلسة وفقًا للظروف المختلفة.

تصف هذه الوحدة، كقاعدة عامة، العديد من الإجراءات التي يتم استدعاؤها من الإجراء إعدادات الجلسة. ولذلك، يتم فصل كل هذه الإجراءات في وحدة منفصلة.

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

في وحدة الجلسة، من الممكن تحديد الإجراءات والوظائف فقط، أي: لا يوجد قسم وصف متغير ولا يوجد قسم رئيسي للبرنامج. لا يمكنك تحديد طرق التصدير في وحدة الجلسة.

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

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

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

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

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

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

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

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

أولئك. ال الوحدة العامةسيشارك في تشكيل سياق التكوين العالمي.

ملكية عالميللوحدات العامة قد يكون من المفيد. ومع ذلك، يجب ألا تستخدمه في كل مكان لجميع الوحدات الشائعة.

أولئك ، والتي تم وضع علامة عليها عالمي، سيتم تجميعها عند بدء تشغيل النظام. كلما زاد عدد هذه الوحدات، كلما كان تشغيل البرنامج أبطأ.

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

بالإضافة إلى ذلك، يؤثر استخدام الوحدات المشتركة العالمية على فهم الكود. يتم استدعاء أساليب الوحدة النمطية العامة غير العامة من خلال الاسم الوحدة العامةواسم الطريقة مثلا:
وحدة حساب التكلفة.DistributeIndirectCosts();

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

ل الوحدة العامةالخامس لوحة الخصائصيمكنك ضبط الخاصية ذو امتياز.

الوحدة المميزة لا تتحكم في حقوق الوصول. وهذا ضروري إذا الوحدة العامةمطلوب إجراء معالجة جماعية للبيانات والحصول على البيانات من قاعدة البيانات.

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

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

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

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

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

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

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

للقيام بذلك في امتياز الوحدة العامةيجب عليك إنشاء إجراء يصل إلى البيانات المطلوبة.

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

ل وحدات مشتركةمن الممكن تحديد موقع التجميع. يتم استخدام العلامات لتحديد ما إذا كانت الوحدة المشتركة ستكون متاحة على العميل (التطبيق المُدار)، أو على الخادم، أو في وضع الاتصال الخارجي.

بالإضافة إلى ذلك، إذا قمت بتبديل وضع تحرير التكوين إلى التطبيق المُدار والتطبيق العادي، فسيكون سياق التجميع الآخر ممكنًا - العميل (التطبيق العادي).

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

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

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

في هذه الحالة، لا يمكن الوصول إلى الإجراء في سياق لا يمكن الوصول إليه من قبل الوحدة بأكملها.

إذا لم تحدد توجيه التحويل البرمجي لإجراء (وظيفة)، فسيتم تجميعه في جميع السياقات المحددة للوحدة.

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

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

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

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

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

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

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

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

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

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

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

ومع ذلك، هناك قيود زمنية معينة. يتم مسح ذاكرة التخزين المؤقت تلقائيًا بعد 20 دقيقة من دخول القيمة إلى ذاكرة التخزين المؤقت.

وحدة النموذج

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

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

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

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

في وحدة النموذج المُدارة، يمكنك الإعلان عن الإجراءات والوظائف، ويمكنك الإعلان عن المتغيرات، ويمكنك وصف قسم من البرنامج الرئيسي.

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

تظهر أيضًا قائمة أحداث النموذج المُدار في قائمة الخصائص الخاصة بالنموذج نفسه مباشرةً. يتم استدعاء هذه القائمة في محرر النماذج المُدارة.

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

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

وحدة الكائن

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

من حيث المبدأ، حدث الكتابة موجود أيضًا في وحدة النموذج. لكن حدث الكتابة في وحدة النموذج يحدث أثناء عملية التسجيل التفاعلي، عند العمل باستخدام نموذج معين.

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

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

يمكن استدعاء وحدة هذا الكائن من خلال قائمة السياق ومن لوحة خصائص الكائن ومن نافذة تحرير الكائن.

يوضح الشكل أدناه قائمة بأحداث وحدة الدليل المتوفرة.

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

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

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

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

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

يتم تنفيذ السياق الكامل للوحدة على الخادم.

بالنسبة للسجلات هناك وحدة السجلات.

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

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

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

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

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

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

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

وحدة المدير

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

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

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

لإجراء هذه المكالمة، من الضروري الحصول على نوع البيانات مدير الدليل.

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

بعد ذلك، ستكون متغيرات وأساليب التصدير الخاصة بوحدة الكائن متاحة. بالنسبة لوحدة المدير، يكون الاستدعاء أبسط، على سبيل المثال:
الدلائل.المقابلات.اسم الطريقة

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

والفرق الثاني هو ذلك وحدة الكائنيتم استدعاؤه في سياق عنصر محدد. وبناء على ذلك، يمكننا أن نفترض أنه ينطبق على عنصر معين (في معظم الحالات، هذا هو بالضبط المنطق المستخدم).

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

لكن في وحدة المدير، من الممكن إنشاء آلية أكثر شمولية تطبع، من بين أشياء أخرى، مجموعة من العناصر.

بالإضافة إلى ذلك، لا يزال الوصول إلى وحدة الكائن إجراءً أطول. لذلك، من الأفضل حل هذه المشكلة في وحدة المدير.

وبهذا نختتم معرفتنا بالوحدات الموجودة في تكوين نظام 1C:Enterprise. وإذا لخصنا كل ما سبق بشكل مختصر، فإن الخلاصة هي الاستنتاجات التالية:

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

لاحظ أيضًا أننا حذفنا عمدًا نوعًا واحدًا من الوحدات، وهو وحدة الأوامر. إنه ليس شيئًا رائعًا، ونحن ندعوك للتعرف على وظائفه.

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

مرحبًا.
في هذا المنشور سنلقي نظرة على وحدة التطبيق والغرض منها ومكان تجميعها.

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

يتم تشغيل أحداث وحدة التطبيق المُدارة عند تشغيل Thin Client وWeb Client وThick Client لتطبيق مُدار.
تراقب وحدة التطبيق المُدارة بدء تشغيل النظام التفاعلي.

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

دعونا نلقي نظرة على قائمة المعالجات التي يمكن استدعاؤها بالضغط على ( Ctrl+Alt+P).
قبل بدء تشغيل النظام - لم يحدث الإجراء بعد (يتم إطلاق 1C Enterprise 8.2، لكن التطبيق نفسه لم يظهر بعد على الشاشة). إذا تم تعيين المعلمة "فشل" على "صحيح"، فلن يبدأ التطبيق ببساطة. عند بدء تشغيل النظام - يكون الإجراء قد اكتمل بالفعل (لا توجد معلمة "فشل"). قبل إيقاف تشغيل النظام - لم يختف التطبيق بعد (توجد معلمة "فشل").
عند إيقاف تشغيل النظام، تكون النافذة التفاعلية قد تم إغلاقها بالفعل.

ألقِ نظرة على مساعد بناء الجملة واقرأ المزيد حول أحداث التطبيق المُدارة والعادية.

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

وحدة التطبيق العادية

يمكن رؤية وحدة التطبيق العادية في نفس مكان وحدة التطبيق المُدارة، ولكن إذا لم تكن مرئية، ففي معلمات المكوِّن في علامة التبويب "عام"، حدد خيار "تحرير التكوين لأوضاع التشغيل" إلى "مُدار" موقف التطبيق والتطبيق العادي ".
كيفية القيام بذلك، راجع المقال:.

يتم تشغيل أحداث وحدة التطبيق العادية عند تشغيل العميل الكثيف للتطبيق العادي.
كل ما قيل عن وحدة التطبيق المُدارة ينطبق أيضًا على وحدة التطبيق العادية.

أحداث قبل...وخلال....

الفرق بين الإجراءات قبل بدء تشغيل النظام (الفشل) وعند بدء تشغيل النظام ()

قبل بدء تشغيل النظام (الرفض) - لم يكتمل الإجراء بعد ويمكننا رفض تنفيذه.
AtSystemStart() - تم بالفعل إكمال الإجراء، ولا يمكننا رفض تشغيل التطبيق أو الخروج منه.

هذا كل شيء، شكرا لاهتمامكم.

يرجى ترك التعليقات، رأيك يهمني.

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

ملاحظة. وأنا أحب جمالة – ​​أنت مصنوعة من الحب


وحدة التطبيقات المُدارة

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

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

وحدة التطبيق العادية

تلعب وحدة التطبيق العادية نفس الدور الذي تلعبه وحدة التطبيق المُدارة، ويتم تشغيل أحداث وحدة التطبيق العادية فقط عند تشغيل العميل الكثيف للتطبيق العادي.

ستصبح وحدة التطبيق العادية متاحة من لوحة الخصائص لعقدة التكوين الجذر بعد تعيين خيار "تحرير التكوين لأوضاع التشغيل" في معلمات المكوِّن في علامة التبويب "عام" على "التطبيق المُدار والعادي".

وحدة الاتصال الخارجية

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

وحدة الجلسة

يوجد كائن تكوين عام مثل "معلمات الجلسة". يتم إنشاء وحدة الجلسة لتهيئة معلمات الجلسة (يوجد حدث محدد لهذا؛ عندما يبدأ التطبيق، يبدأ أولاً).

يعمل في الوضع المميز (لا يتم التحقق من حقوق الوصول عند الوصول إلى قاعدة البيانات). يتم تجميع وحدة الجلسة على الخادم. لا يوجد قسم لوصف المتغيرات ولا يمكن وصف قسم للبرنامج الرئيسي؛ فهو يستخدم فقط لإعداد معلمات الجلسة. كما ترون، وحدة الجلسة لها غرض ضيق جدًا.

وحدات مشتركة

تصف الوحدات الشائعة بعض الخوارزميات الشائعة وتحتوي على وظائف يمكن استدعاؤها من أماكن مختلفة. يمكن تجميع الوحدات المشتركة على كل من العميل والخادم.

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

في الوحدة العامة، يمكنك تعيين بعض المعلمات التي ستؤثر على سلوكها. إذا تم تحديد مربع الاختيار "العالمي" في الوحدة العامة، فستشارك وظائف التصدير الخاصة به في تكوين السياق العالمي. ويمكن الوصول إليها مباشرة من سياق آخر (دون ذكر اسم الوحدة المشتركة): CommonModuleMethod();

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

وحدة الكائن

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

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

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

وحدة النموذج

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

تحتوي بنية النموذج المُدار على قسم لوصف المتغيرات، وقسم للإجراءات والوظائف، وقسم للبرنامج الرئيسي (يتم تنفيذه في وقت تهيئة النموذج). يمكننا الوصول إلى أحداث النموذج القياسي من خلال قائمة الإجراءات والوظائف (Ctrl+Alt+P) أو في لوحة خصائص النموذج نفسه. يمكنك أيضًا معالجة حدث تسجيل العنصر في نموذج مُدار (هذا الحدث موجود فقط للكائنات: الدلائل والمستندات).

وحدة إدارة الكائنات

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

وحدة إدارة القيمة

لا يحتوي كائن التكوين الثابت على وحدة نمطية للكائن، ولكن هناك وحدة مشابهة جدًا - وحدة إدارة القيمة. في وحدة إدارة القيمة الثابتة، يمكنك وصف الإجراءات المختلفة (بما في ذلك إجراءات التصدير)، بالإضافة إلى معالجة 3 أحداث: BeforeWrite، وOnWrite، وProcessingFillCheck. يتم تجميع هذه الوحدة على الخادم.

وحدات مجموعة السجلات

وحدة مجموعة السجلات مشابهة لوحدة الكائن وهي متأصلة في السجلات. توجد أحداث قياسية في وحدة مجموعة السجلات:

  • قبل التسجيل
  • عند التسجيل
  • معالجة فحص الحشو

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

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

لذا، من جانب العميل يمكنك الاتصال

1) إجراءات العميل لهذه الوحدة، باستخدام التوجيه &OnClient؛

2) إجراءات الخادم لهذه الوحدة، باستخدام التوجيه &OnServer؛

3) إجراءات العميل للوحدة العامة، مع التوجيه &OnClient (يخضع لإمكانية الوصول في عدة سياقات في الخصائص، "العميل" مطلوب، وما إلى ذلك)؛

4) يجب أن تكون جميع إجراءات الوحدة المشتركة للعميل في خصائص الوحدة المشتركة فقط خاصية "العميل (التطبيق المُدار)". في هذه الحالة، لا تتم كتابة التوجيه &OnClient في الوحدة النمطية العامة؛

5) إجراءات الوحدة المشتركة للخادم، ولكن مع خاصية إضافية “Call server”، ومن المهم أن تكون الوحدة المشتركة لها خاصية التجميع على الخادم فقط.


من جانب الخادم يمكنك الاتصال

1) إجراءات الخادم لهذه الوحدة، مع توجيه التجميع &OnServer؛

2) جميع إجراءات الوحدة المشتركة للخادم، وفي خصائص الوحدة المشتركة يجب أن تكون هناك خاصية "الخادم" فقط. في هذه الحالة، لا تتم كتابة التوجيه &OnServer في الوحدة العامة؛

3) إجراءات الوحدة العامة، مع التوجيه &OnServer (يخضع لإمكانية الوصول في عدة سياقات في الخصائص، مطلوب "الخادم"، وما إلى ذلك).

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

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

هناك توصيات لاستخدام الوحدات النمطية العامة التي تم تجميعها فقط على الخادم أو على العميل فقط. وفقًا لذلك، استخدم جميع وحدات العميل في وحدة نمطية ذات خاصية "العميل"، واستخدم جميع أساليب الخادم في وحدة نمطية ذات خاصية "الخادم".

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

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

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

عادةً ما تتكون وحدة البرنامج من ثلاثة أقسام:

  • منطقة إعلان متغيرة;
  • مجال وصف الإجراءات والوظائف;
  • النص الرئيسي للبرنامج.

مثال على هيكل وحدة البرنامج:

//********************* منطقة الإعلان المتغيرة **********************

تصدير اسم عائلة بيرم؛ / / هذا متغير عالمي
تغيير الاسم، اسم العائلة؛ // هذا متغير الوحدة النمطية
بيرم الاسم الكامل؛ // هذا أيضًا متغير وحدة نمطية ويمكن الوصول إليه

// من أي إجراء أو وظيفة في وحدتنا

//*************** وصف المنطقة للإجراءات والوظائف ****************

الإجراء الإجراء 1 ()
المجموع المتغير ; / / النتيجة متغير محلي (متغير الإجراء)

الإجمالي = اسم العائلة + " "+ الاسم الأول + " "+ الاسم الأوسط؛

نهاية الإجراء

وظيفة الوظيفة1()

// مشغلي الوظائف

Return(LastName + " "+ FirstName);

وظيفة النهاية

//********************* النص الرئيسي للبرنامج ***********************

الاسم الأخير = "إيفانوف"؛
الاسم = "إيفان"؛
اسم العائلة = "إيفانوفيتش"؛

//******************************************************************************

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

منطقة لوصف الإجراءات والوظائفيتم وضعها من بيان الإجراء أو الوظيفة الأول إلى أي بيان قابل للتنفيذ خارج نص الإجراء أو وصف الوظيفة.

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

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

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

ينقسم سياق تنفيذ الوحدة إلى العميل والخادم. بالإضافة إلى ذلك، يمكن تجميع بعض وحدات البرامج على كل من جانب العميل وجانب الخادم.

وحدة التطبيق (مدارة أو عادية)

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

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

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

وحدة الاتصال الخارجية

  • يمكن أن تحتوي على جميع المجالات الثلاثة
  • الموجود في القسم الجذر للتكوين

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

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

وحدة الجلسة

  • يعمل على جانب الخادم
  • الموجود في القسم الجذر للتكوين

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

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

وحدات مشتركة

  • قد تحتوي على منطقة تصف الإجراءات والوظائف
  • يتم تنفيذها على جانب الخادم أو العميل (اعتمادًا على إعدادات الوحدة)
  • يقع في فرع الشجرة لكائنات التكوين "عام" - "الوحدات العامة"

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

يعتمد سلوك الوحدة النمطية الشائعة على مجموعة المعلمات (عالمية أم لا، علامات الترجمة المختلفة، ما إذا كان استدعاء الخادم متاحًا، وما إلى ذلك). فيما يلي بعض النصائح لإعداد الوحدات الشائعة:

من الممارسات الجيدة عدم استخدام العلم العالمي في كل مكان. سيؤدي هذا إلى تقليل وقت بدء تشغيل التطبيق، وكذلك تحسين إمكانية قراءة التعليمات البرمجية (بالطبع، إذا كانت الوحدة المشتركة لها اسم ذو معنى كامل)؛
- لا ينصح باستخدام أكثر من علامة تجميع واحدة. لا توجد العديد من الأساليب التي يجب تنفيذها في سياقات مختلفة، وإذا كانت هذه الأساليب لا تزال مطلوبة، فيمكن تخصيص وحدة مشتركة منفصلة لها؛
- تكون علامة "Call Server" منطقية فقط إذا تم تجميع الوحدة "على الخادم". لذلك، يجب إزالة كافة إشارات الترجمة الأخرى لتجنب المشاكل المختلفة؛
- إذا كانت أساليب الوحدة تتضمن معالجة ضخمة للبيانات، والقراءة والكتابة في قاعدة البيانات، فمن الأفضل تعطيل التحكم في الوصول عن طريق تعيين علامة "مميزة" لزيادة سرعة العمل. هذا الوضع متاح فقط للوحدات النمطية المشتركة المجمعة على الخادم.

وحدة النموذج

  • يمكن أن تحتوي على جميع المجالات الثلاثة
  • يتم تنفيذها على جانبي الخادم والعميل

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

يحتوي هيكل النموذج المُدار على قسم لإعلانات المتغيرات، ووصف الإجراءات والوظائف، والنص الرئيسي للبرنامج (الذي يتم تنفيذه في وقت تهيئة النموذج). يمكننا الوصول إلى أحداث النموذج القياسي من خلال قائمة الإجراءات والوظائف المتوقعة للنموذج (Ctrl+Alt+P)أو من خلال لوحة خصائص النموذج نفسه.

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

وحدة الكائن

  • يمكن أن تحتوي على جميع المجالات الثلاثة
  • يعمل على جانب الخادم

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

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

وحدة إدارة الكائنات

  • يمكن أن تحتوي على جميع المجالات الثلاثة
  • يعمل على جانب الخادم

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

وحدة الأوامر

  • قد يحتوي على قسم يصف الإجراءات والوظائف
  • يتم تنفيذها من جانب العميل

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