يتيح لك النظام الأساسي 1C:Enterprise إمكانية إضافة عناصر النموذج المُدار وتغييرها برمجيًا. دعونا نكتشف لماذا قد تكون هناك حاجة لذلك.
قد تكون هناك حاجة إلى تعديل برمجي للنموذج في عدة حالات:
في النموذج المُدار، يمكنك إضافة وتغيير وحذف ما يلي برمجيًا:
كل هذه العمليات ممكنة فقط على الخادم.
إعادة التشكيل البرمجي لها قيود:
لإدارة تكوين الأوامر لكائن ما ManagedFormهناك مجموعة فرق
يضيف (< ИмяКоманды >)
كمية ()
يجد (< ИмяКоманды >)
يمسح (< Команда >)
تتوفر مجموعة Teams على كل من العميل والخادم. يمكنك تغيير المجموعة (أساليب Add() وDelete()) على الخادم فقط. يمكنك البحث عن عدد العناصر والحصول عليها (طريقتا Find () وCount ()) على كل من العميل والخادم.
كمثال على العمل مع أوامر النموذج، لنقم بإنشاء أمر ChangeHistory جديد بالعنوان "ChangeHistory..."، والذي سيستدعي المعالج تاريخ العرض(). يحدث الإنشاء عند فتح النموذج.
&على الخادم
إجراء WhenCreatingOnServer (الفشل، المعالجة القياسية)
فريق = الفرق. يضيف( ""تاريخ التغيرات"");
فريق . العمل = ;
فريق . العنوان = ""تاريخ التغيرات..."";
نهاية الإجراء
&OnClient
إجراء Connectable_DisplayHistory(Command)
// إجراءات الأمر
نهاية الإجراء
يجب أن يكون معالج الأوامر موجودًا في النموذج وأن يكون له توجيه التحويل البرمجي &OnClient.
تتم قراءة تكوين تفاصيل النموذج بواسطة الوظيفة احصل على التفاصيل(< Путь >) إرجاع مصفوفة من النوع FormAttributes. تحدد معلمة الوظيفة المسار إلى السمة الأصلية (كسلسلة). إذا تم حذف المعلمة أو تم تحديد سلسلة فارغة، فسيتم إرجاع تفاصيل المستوى الأعلى.
يتم تغيير التفاصيل باستخدام الطريقة تغيير التفاصيل(<التفاصيل المضافة>, <تفاصيل قابلة للإزالة>) هدف ManagedForm. إلى المعلمات التفاصيل المضافةو تفاصيل قابلة للإزالةيتم إرسال المصفوفات التي تحتوي على عناصر من نوع سمات النموذج.
انتباه!
عملية تغيير تكوين التفاصيل كثيفة الاستخدام للموارد. يتم الآن إعادة إنشاء النموذج بالفعل. في هذا الصدد، يتم تنفيذ العمل مع تفاصيل النموذج في الوضع الدفعي.
لنقم بإنشاء سمة نموذج جديدة بالاسم Buyer:
AddedDetails = مصفوفة جديدة؛
التفاصيل المضافة. إضافة (سمات النموذج الجديد("المشتري"، وصف النوع الجديد ("رابط الدليل. الأطراف المقابلة")، "العميل"))؛// التغييرات في تكوين التفاصيل
);
للتحكم في تكوين عناصر الكائن ManagedFormهناك مجموعة عناصر. الجمع له عدة طرق:
إدراج (< Имя>, < ТипЭлемента>, < Родитель>, < Элемент >)
يضيف (< Имя>, < ТипЭлемента>, < Родитель >)
كمية ()
يجد (< Имя >)
يتحرك(< Элемент>, < Родитель>, < МестоРасположения >)
يمسح (< Элемент >)
مجموعة العناصر متاحة على كل من العميل والخادم. تعديل مجموعة (إدراج الأساليب () وAdd () وMove () وDelete () ) متاحة فقط على الخادم. يمكنك البحث عن عدد العناصر والحصول عليها (طريقتا Find () وCount ()) على كل من العميل والخادم. عناصر المجموعة يمكن أن تكون:
يمكنك تعيين معالجات الأحداث برمجيًا لعناصر النموذج. الطريقة مخصصة لهذه الأغراض سيتاكشن(< ИмяСобытия>, < Действие >) .
دعونا نلقي نظرة على بعض الأمثلة الأكثر شيوعًا في الممارسة العملية للعمل مع الأوامر والتفاصيل وعناصر النموذج.
إضافة أمر والزر المرتبط به:
// إنشاء أمر
فريق = الفرق. يضيف( ""تاريخ التغيرات"");
فريق . العمل = "المكون الإضافي_عرض_التاريخ"; // يجب أن يحتوي النموذج على إجراء بالاسم المحدد
فريق . عنوان = ""تاريخ التغيرات..."";
// قم بإنشاء زر وربطه بأمر
عنصر = العناصر. يضيف( ""تاريخ التغيرات""، النوع("FormButton" ));
اسم العنصر = ""تاريخ التغيرات"";
إضافة سمة وحقل الإدخال المرتبط بها:
// وصف التفاصيل المضافة
AddedDetails = مصفوفة جديدة؛
التفاصيل المضافة. يضيف(دعائم النموذج الجديد ("المشتري"، وصف النوع الجديد ( "DirectoryLink.Counterparties")، "عميل" ))؛
// تغيير تكوين التفاصيل
تغيير التفاصيل (التفاصيل المضافة);
// إنشاء حقل إدخال والاتصال بالسمة
عنصر = العناصر. Add("Buyer" , Type("FormField" ));
عنصر . عرض = FormFieldView. حقل الإدخال؛
عنصر . PathToData= "المشتري" ;
تعيين معالج حدث لعنصر النموذج:
ItemCustomer. SetAction("عندما يتغير" , "Connected_BuyerOnChange");
&OnClient
إجراء Connected_BuyerOnChange(عنصر)
// إجراءات الحدث
نهاية الإجراء
انتباه!
الإجراءات التي تم تعيينها كمعالجات للأحداث من التعليمات البرمجية باستخدام الطريقة سيتاكشن ()يوصى بتعيين البادئة Connectable_.
انتباه!
يمكنك تنزيل المعالجة باستخدام أمثلة للبحث البرمجي وتغيير التفاصيل والأوامر وعناصر النموذج المُدار.
وكائن نقل البيانات إلى هيكلة التعليمات البرمجية، يتم التحكم فيه في بيئة 1C 8.2.
في عام 2008، أصبح الإصدار الجديد من منصة 1C متاحًا: Enterprise 8.2 (المشار إليه فيما يلي باسم التطبيق المُدار)، والذي يغير طبقة العمل بالكامل مع الواجهة بالكامل. يتضمن ذلك واجهة الأوامر والنماذج ونظام النوافذ. في الوقت نفسه، لا يتغير نموذج تطوير واجهة المستخدم في التكوين فحسب، بل يُقترح أيضًا بنية جديدة لفصل الوظائف بين تطبيق العميل والخادم.
يدعم التطبيق المُدار الأنواع التالية من العملاء:
ستكون جميع المناقشات الإضافية حول الجانب الأيمن من الرسم التوضيحي، وحول كيفية بناء كود الوحدة وما هي المبادئ التي ستسمح لك بتنفيذ تفاعل فعال بين العميل والخادم.
دعونا نلقي نظرة على بنية التعليمات البرمجية (وحدة النموذج) في عدة أشكال من نفس التكوين القياسي ونحاول العثور على الأنماط.
نعني بالبنية أقسام التعليمات البرمجية (غالبًا ما تكون كتل تعليق) المخصصة من قبل المطور لتجميع الأساليب وتوجيهات التجميع لهذه الأساليب.
مثال 1:
قسم معالجات الأحداث الطريقة - على العميل الطريقة - على الخادم الطريقة - على العميل قسم إجراءات الخدمة ووظائفها وظائف التحكم في الإدخال المساعد
مثال 2:
إجراءات الخدمة ووظائفها وثائق الدفع القيم معالجات الأحداث
مثال 3:
إجراءات الخدمة على الخادم إجراءات الخدمة على العميل إجراءات الخدمة على الخادم بدون سياق معالجات أحداث الرأس معالجات أحداث الأوامر
مثال 4:
إجراءات للأغراض العامة معالجات أحداث النموذج إجراءات النظام الفرعي "معلومات الاتصال".
في الأساس، بنية التعليمات البرمجية مفقودة، أو بعبارة ملطفة، فهي مشابهة لما كان في النماذج 8.1:
في سياق النموذج المُدار، هناك العديد من "كائنات نقل البيانات". يمكنك الاختيار النظاميةو المطور المحدد.
تقوم وحدات النظام بتصميم كائن تطبيق على العميل، في شكل عنصر بيانات نموذج واحد أو أكثر. من المستحيل إنشاؤها خارج الاتصال بتفاصيل النموذج.
كائنات نقل البيانات، التي يحدد المطور بنيتها، هي مجموعة فرعية صغيرة من الأنواع المتوفرة على كل من العميل والخادم. في أغلب الأحيان، يتم استخدام ما يلي كمعلمات ونتائج لطرق الواجهة "الخشنة":
//////////////////////////////////////////////////////////////////////////////// // <(c) Автор=""", ИмяПользователя>"التاريخ =""", ДатаВремя,"ДФ=dd.MM.yyyy">"/> // <Описание> // > // Описание>////////////////////////////////////////////////////////////////////// ////////////////////////// // متغيرات الوحدة //////////////// // ///////////////////////////////////////////// ////////// // على الخادم //******* الأحداث على الخادم ******* &في إجراء الخادم عند الإنشاء على الخادم (الفشل، المعالجة القياسية) / / أدخل محتويات المعالج نهاية الإجراء //******* واجهة الوصول عن بعد ******* //******* منطق الأعمال على الخادم ******* ///////// ////////////////////////////////////////// /////// /////////////////// // الطرق الشائعة للعميل والخادم /////////////// /////// /////////////////////////////////////////////////// ///// //////// // على العميل //******* منطق العمل على العميل ******* //******* الفريق * ***** //********* أحداث العميل ******* ////////////////////////// ///// ///////////////////////////////////////////////////// // // مشغلو البرنامج الرئيسيون
تضمن تفاصيل النموذج ارتباطها بالبيانات. في هذه الحالة، يمكن تعيين جزء واحد (وواحد فقط) من التفاصيل باعتباره الجزء الرئيسي؛ قد لا يكون بالضرورة نوع البيانات الذي نرسم النموذج إليه. لكن سلوك النموذج سيعتمد على نوع بيانات السمة الرئيسية. بالإضافة إلى تغيير سلوك النموذج، يتغير سياق وحدة النموذج. إلى جانب أساليب وخصائص النموذج، تصبح أساليب وخصائص الكائن، وهي قيمة السمة الرئيسية، متوفرة فيه. من المهم ألا تحتوي النماذج من النوع Free Form على تفاصيل أساسية. في هذه الحالة، يتم تحديد سلوك النموذج فقط من خلال إعدادات المستخدم. دعونا نفكر في الأسئلة المتعلقة بالتفاصيل الأساسية.
السؤال 10.05 من الامتحان 1C: محترف المنصة. ما هي سمة النموذج الرئيسية المستخدمة؟
الإجابة الصحيحة هي رقم ستة، انظر أعلاه.
الجواب الصحيح هو الثالث - كلاهما.
السؤال 10.07 من الامتحان 1C: المنصة الاحترافية. لتعيين السمات الرئيسية لنموذج تحكم تعسفي ...
الجواب الصحيح هو الثاني:
السؤال 10.08 من الامتحان 1C: المنصة الاحترافية. لتعيين التفاصيل الرئيسية لنموذج منتظم تعسفي ...الجواب الصحيح هو الرابع:
يتم تسليط الضوء على التفاصيل الرئيسية بالخط العريض:
السؤال 10.09 من الامتحان 1C: المنصة الاحترافية. إذا كانت هناك سمة رئيسية واحدة للنموذج، فهل من الممكن إضافة سمة رئيسية أخرى؟الإجابة الصحيحة هي الأولى، هناك شرط رئيسي واحد بدقة، لأنه يجب أن يكون الاتصال بالكائن واضحًا.
السؤال 10.113 من الامتحان 1C: منصة المهنية. أي من تفاصيل النموذج الموضح في الشكل هي التفاصيل الرئيسية؟
محرر النماذجيستخدم لإنشاء وتحرير نماذج كائنات حلول التطبيق. يستخدم النظام أشكال الكائنات لعرض البيانات بشكل مرئي أثناء عمل المستخدم.
يمثل أي شكل مزيجًا من عدة مكونات:
يحتوي محرر النماذج على عدة علامات تبويب تسمح بتحرير جميع مكونات النموذج.
في نافذة منفصلة، أسفل المحرر، يتم عرض مظهر النموذج في وضع 1C:Enterprise.
يسمح محرر النماذج للمطور باستخدام مجموعة واسعة من الخيارات لتغيير مظهر النموذج - المظهر الذي سيكون عليه النموذج في وضع 1C:Enterprise. دعونا ندرج أهمها:
الصفحات والإشارات المرجعية
يتيح لك محرر النماذج إضافة عناصر خاصة إلى النموذج والتي تساعد في منح النموذج أسلوبًا مميزًا خاصًا به، وتجعل الوصول إلى البيانات بسيطًا وواضحًا، كما أنها تناسب كمية كبيرة من المعلومات في منطقة محدودة.
يتيح لك المحرر إضافة عناصر متعددة إلى النموذج المجموعة - الصفحات، يمكن أن يحتوي كل منها على عدة عناصر المجموعة - الصفحة.
على سبيل المثال، قد يحتوي نموذج المستند على عنصر واحد المجموعة - الصفحات، والتي تخضع لها عدة عناصر المجموعة - الصفحةمع العناوين صورة, صفاتو وصف:
ثم في وضع 1C:Enterprise سيبدو كما يلي:
يتم عرض عنوان كل صفحة مجموعة في علامة تبويب منفصلة. لدى المطور الفرصة لضبط وضع عرض الإشارات المرجعية: السفلي أو العلوي:
على سبيل المثال، يمكن وضع الإشارات المرجعية في الأسفل:
عناصر
يتيح لك المحرر إضافة عناصر مختلفة إلى النموذج. يمكنك إضافة عناصر باستخدام أمر الإضافة أو عن طريق سحب تفاصيل النموذج إلى شجرة العناصر:
يتم تمثيل جميع عناصر النموذج في شكل هيكل هرمي، جذره هو النموذج نفسه. يتيح لك ذلك الانتقال بسرعة إلى عنصر النموذج المطلوب:
من خلال وضع العناصر أعلى/أسفل في الشجرة، وإخضاعها لعناصر أخرى وتعيين خصائص عناصر المجموعة، يمكنك تعيين الترتيب الذي سيتجاوز به المستخدم عناصر تحكم النموذج عند إدخال البيانات وتحريرها. في الوضع 1C:Enterprise، ستتم معالجة عناصر النموذج بترتيب تسلسلها الهرمي ووفقًا لنوع التجميع المحدد للمجموعات: عمودي أو أفقي.
فواصل
الفواصل هي عناصر خاصة يمكن استخدامها لإعادة توزيع مساحة النموذج دون تغيير حجمه. يضيف النظام الأساسي في وضع 1C:Enterprise هذه العناصر إلى النموذج بشكل مستقل. يتمتع الفاصل بإمكانية "إمساكه" بالماوس وتحريكه داخل النموذج داخل حدوده، مع مراعاة إمكانية تحديد موقع العناصر الأخرى واتجاه الفاصل:
عندما تقوم بنقل فاصل، سيتم تغيير حجم جميع العناصر المرتبطة بالفاصل أو نقلها:
لتحرير وحدة نمطية للنموذج، يقوم المكوِّن باستدعاء محرر النص والوحدة النمطية. يوفر هذا المحرر للمطور مجموعة واسعة من الخيارات لإنشاء وتعديل نص الوحدة النمطية.
يتم تحرير تفاصيل النموذج في القائمة، مما يسمح لك بإنشاء تفاصيل جديدة وتغيير التفاصيل الموجودة وحذف التفاصيل غير الضرورية. يتم تعيين خصائص السمات باستخدام لوحة الخصائص.
إذا كان النموذج يحتوي على سمة رئيسية تحدد سلوك النموذج الذي يختلف عن النموذج القياسي، فسيتم تمييزها بالخط العريض.
يتم تحرير واجهة أوامر النموذج في الشجرة. تحتوي الفروع الرئيسية للشجرة على أوامر تمت إضافتها إلى شريط التنقل الخاص بالنافذة التي سيتم عرض النموذج فيها وإلى شريط أوامر النموذج. داخل كل فرع من هذه الفروع، يتم تقسيم الفرق إلى مجموعات قياسية.
تضيف المنصة تلقائيًا بعض الأوامر إلى واجهة الأوامر. بالإضافة إلى ذلك، يمكن للمطور إضافة أوامر بشكل مستقل إلى واجهة الأوامر عن طريق سحبها من قائمة أوامر النموذج أو من قائمة الأوامر العامة المتاحة. بالنسبة لجميع الأوامر المضافة إلى واجهة الأوامر، يمكن للمطور ضبط رؤيتها على الأدوار المختلفة المحددة في التكوين.
يتم تحرير أوامر النموذج في القائمة. يتمتع المطور بالقدرة على إضافة وإزالة أوامر النموذج وتعيين خصائصها باستخدام لوحة الخصائص. بما في ذلك تعيين إجراء لأمر سيتم تنفيذه عندما يستدعي المستخدم هذا الأمر.
إشارة مرجعية الأوامر القياسيةو فرق عالميةيتم تزويد المطور بقوائم الأوامر التي تم إنشاؤها بواسطة النظام الأساسي والمتاحة للاستخدام في هذا النموذج. لا يمكن تغيير خصائصها، يمكنك فقط إضافتها إلى النموذج.
باستخدام الماوس، يمكن للمطور سحب وإسقاط أمر في واجهة أوامر النموذج. يمكنك أيضًا سحب أمر مباشرةً إلى شجرة العناصر إذا كنت تريد، على سبيل المثال، عرض هذا الأمر كزر موجود في النموذج.
يتم تحرير معلمات النموذج في القائمة. يتمتع المطور بالقدرة على إضافة معلمات النموذج وإزالتها وتعيين خصائصها باستخدام لوحة الخصائص.