أجهزة الكمبيوتر شبابيك إنترنت

1s حدد قيمة مجموعة القائمة

بناء الجملة الكامل (انقر للتوسيع)

قائمة القيم

وصف:

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

عناصر المجموعة: ItemListValues

من الممكن اجتياز المجموعة لكائن باستخدام عامل التشغيل لكل ... من ... دورة. يحدد الاجتياز عناصر المجموعة.

من الممكن الوصول إلى عنصر مجموعة باستخدام عامل التشغيل [...]. يتم تمرير مؤشر العنصر كوسيطة ( ترقيم من 0).

ملكيات:

أساليب:

إدراج (فهرس ، قيمة ، عرض ، توصيف ، صورة) إدراجات عنصر جديدإلى قائمة القيم في الموضع مع الفهرس المحدد.SelectElement (رأس ، عنصر) يستدعي نافذة للاختيار التفاعلي لأحد العناصر المدرجة في قائمة القيم. عنصر- العنصر الذي يجب أن توضع عليه قائمة القيم مبدئيًا أثناء الاختيار التفاعلي. إذا لم تكن قيمة المعلمة عنصرًا في قائمة القيم المدرجة في هذه القائمة ، فلن يحدث تحديد الموضع.تحميل القيم() يقوم بإنشاء مصفوفة ونسخ قيم عناصر قائمة القيم فيها.إضافة (قيمة ، عرض ، توصيف ، صورة) يضيف عنصرًا جديدًا إلى نهاية قائمة القيم.تنزيل القيم(صفيف القيم) يقوم بتحميل قائمة من القيم بقيم من الصفيف الذي تم تمريره. في هذه الحالة ، يتم حذف جميع العناصر السابقة من القائمة.املأ الملاحظات(Label) يضبط التسمية لجميع عناصر قائمة القيم.الفهرس (العنصر) يحصل على فهرس العنصر في قائمة القيم. إذا لم يتم العثور عليها ، فسيتم إرجاع -1.count () يحصل على عدد عناصر قائمة القيم.FindByValue(LookupValue) يبحث عن قيمة عنصر في قائمة القيم. إذا لم يخزن أي عنصر قيمة مساوية للقيمة المطلوبة ، فسيتم إرجاع القيمة. غير معرف. FindByID(المعرف) يحصل على عنصر قائمة القيم بواسطة المعرف. إذا لم يتم العثور على العنصر ، ثم يعود غير معرف. وضع علامة على العناصر(العنوان) يتحقق أو يلغي (بشكل تفاعلي) العناصر الموجودة في قائمة القيم. عائدات حقيقيإذا تم الضغط على الزر "موافق" في مربع الحوار ، يكذب- غير ذلك.مسح () يمسح قائمة القيم ويزيل كل العناصر منها.ShowItemSelection(ClosingAlertDescription، Title، Item) لاستدعاء نافذة لتحديد أحد العناصر بشكل تفاعلي في قائمة القيم.ShowMarkItems(DescriptionAlertOnClosing ، Header) مصمم للإعداد التفاعلي لحالات العلم لعناصر قائمة القيم.Get (Index) يحصل على القيمة في الفهرس. يعمل على غرار المشغل.نقل (عنصر ، إزاحة) لنقل عنصر من قائمة القيم للأمام أو للخلف بعدد محدد من المواضع.Copy () لإنشاء نسخة من قائمة القيم.SortByValue(الاتجاه) يفرز قائمة القيم بترتيب تصاعدي أو تنازلي للقيم المخزنة بواسطة العناصر. انظر المثال أدناه.ترتيب حسب العرض(الاتجاه) يفرز قائمة القيم بترتيب أبجدي تصاعدي أو تنازلي لتمثيلات قيم الأعضاء في القائمة. انظر المثال أدناه.Remove (Element) يزيل عنصرًا من قائمة القيم حيث عنصر- فهرس العنصر المراد إزالته أو العنصر نفسه.

المنشئون:

قائمة جديدة للقيم
& OnClient Procedure ExecuteCode (أمر) /// كيفية إنشاء قائمة القيم في 1s 8.3 و 8.2قائمة = قائمة جديدة للقيم ؛ /// كيفية إضافة عنصر إلى قائمة القيم في 1s 8.3 و 8.2 // إضافة معلمات الطريقة:// - المعنى // - أداء // - علامة (اختياري) // - صورة (مطلوب)قائمة. إضافة (1980 ، // قيمة العنصر "عام ميلاد فاسيا"// أداء ) ؛ قائمة. إضافة (1985 ، "عيد ميلاد يوليا") ; // يمكن أن تكون القيم أنواع مختلفة قائمة. أضف ("Polina" ، "اسم الطفل") ؛ /// كيفية إدراج عنصر في قائمة القيم في 1s 8.3 و 8.2 // إدراج في الموضع رقم 2 (العناصر مرقمة من 0) // عنصر بقيمة 2010 والتمثيل // "سنة ميلاد ابنتهما المشتركة"قائمة. معجون (2 ، 2010 ، "سنة ميلاد ابنتهما المشتركة") ; /// كيفية تجاوز عناصر قائمة القيم في 1s 8.3 و 8.2لكل عنصر من تقرير تكرار القائمة (عنصر. عرض + ":" + سلسلة (عنصر. قيمة)) ؛ نهاية الدورة /// كيفية مسح قائمة القيم في 1s 8.3 و 8.2قائمة. واضح() ؛ قائمة. إضافة ("الاثنين") ؛ قائمة. إضافة ("الثلاثاء") ؛ قائمة. يضاف ("الأربعاء") ؛ /// كيفية معرفة عدد عناصر قائمة القيم وأيضًا /// احصل على عنصر قائمة من خلال فهرسها في 1s 8.3 و 8.2 // الترقيم من الصفرللفهرس = 0 على شكل قائمة. الكمية () - تقرير حلقة واحدة (قائمة [فهرس]) ؛ نهاية الدورة /// كيفية العثور على عنصر قائمة بقيمته في 1s 8.3 و 8.2 ValueTuesday = قائمة. FindByValue ("الثلاثاء") ؛ /// كيفية معرفة فهرس عنصر في القائمة في 1s 8.3 و 8.2تقرير (قائمة. فهرس (ValueTuesday)) ؛ // 1 ، لأن الترقيم يبدأ من الصفر /// كيفية فرز القائمة حسب قيمها في 1s 8.3 و 8.2 // كان: الإثنين ، الثلاثاء ، الأربعاءقائمة. SortByValue (SortingDirection. Descending) ؛ // أصبح: الأربعاء ، الإثنين ، الثلاثاء /// كيفية إزالة عنصر من قائمة القيم في 1s 8.3 و 8.2 // إزالة العنصر الأول // المعلمة: عنصر القائمة // أو فهرس العنصر// يمكنك عمل هذه القائمة. حذف (قائمة [0]) ؛ // أو هكذا // List.Delete (0) ، /// كيفية إزاحة عنصر من قائمة القيم في 1s 8.3 و 8.2 // قم بتحويل عنصر الصفر إلى موضع واحد للأمام // كان: الاثنين الثلاثاءقائمة. نقل (0 ، 1) ؛ // أصبح: الثلاثاء الاثنين /// كيفية عمل نسخة من القائمة في 1s 8 ListCopy = قائمة. ينسخ() ؛ الألوان = قائمة قيمة جديدة ؛ الألوان. يضاف ("أحمر") ؛ الألوان. يضاف ("أخضر") ؛ الألوان. يضاف ("أزرق") ؛ /// كيفية تفريغ قيم القائمة في مصفوفة في 1s 8.3 و 8.2 ArrayColors = ألوان. UnloadValues ​​() ، /// كيفية تحميل قيم القائمة من مصفوفة في 1s 8.3 و 8.2الألوان. LoadValues ​​(ArrayColors) ؛ EndProcedure /// كيفية عمل اختيار غير مشروط لقيمة من القائمة /// القيم في 1s 8.3 و 8.2& إجراء OnClient How toMakeModalSelectValue (Command) Colors = New ValueList؛ الألوان. يضاف ("أحمر") ؛ الألوان. يضاف ("أخضر") ؛ الألوان. يضاف ("أزرق") ؛ // الإجراء AfterItemSelect محدد أدناه AlertAfterItemSelection = New AlertDescription ( "AfterElementSelection"، ThisObject) ؛ الألوان. ShowItemChoice (AlertAfterItemChoice ، "اختر لونك المفضل") ؛ EndProcedure & AtClient Procedure AfterElementSelection (Element، Parameters) Export If Element<>تقرير ثم غير محدد (قيمة العنصر) ؛ إنهاء إذا ؛ EndProcedure /// كيفية عمل علامة غير مشروطة للقيم من قائمة /// القيم في 1s 8.3 و 8.2& إجراء OnClient How toMakeModalValueMark (Command) Colors = New ValueList؛ الألوان. يضاف ("أحمر") ؛ الألوان. يضاف ("أخضر") ؛ الألوان. يضاف ("أزرق") ؛ // إجراء تم تعريف AfterMarkingItems أدناه مباشرةً AlertAfterMarkItems = New AlertDescription ( "AfterMarkingItems"، ThisObject) ؛ الألوان. ShowItemMark (NotificationAfterItemMark ، "اختر ألوانك المفضلة") ؛ الألوان. FillRemarks (صحيح) ؛ EndProcedure & OnClient Procedure AfterMarkingElements (Elements، Parameters) تصدير If Elements<>غير محدد ثم لكل لون من حلقة العناصر إذا كان اللون. وضع علامة ثم تقرير (اللون. القيمة) ؛ إنهاء إذا ؛ نهاية الدورة إنهاء إذا ؛ EndProcedure /// كيفية عمل اختيار مشروط لقيمة من القائمة في 1s 8.3 و 8.2& في إجراء العميل How toMakeModalSelectValue (Command) Colors = New ValueList؛ الألوان. يضاف ("أحمر") ؛ الألوان. يضاف ("أخضر") ؛ الألوان. يضاف ("أزرق") ؛ SelectColor = ألوان. اختر البند ( "اختر لونك المفضل") ؛ إذا اخترت اللون<>تقرير ثم غير محدد (قيمة SelectColor) ؛ إنهاء إذا ؛ EndProcedure /// كيفية عمل علامة مشروطة للقيم من قائمة /// القيم في 1s 8.3 و 8.2& إجراء OnClient How toMakeModalValueMark (Command) Colors = New ValueList؛ الألوان. يضاف ("أحمر") ؛ الألوان. يضاف ("أخضر") ؛ الألوان. يضاف ("أزرق") ؛ إذا كانت الألوان. وضع علامة على العناصر ( "اختر ألوانك المفضلة") ثم لكل لون من دورة اللون إذا كان اللون. وضع علامة ثم تقرير (اللون. القيمة) ؛ إنهاء إذا ؛ نهاية الدورة إنهاء إذا ؛ // وهذه هي الطريقة التي يمكنك بها ضبط جميع العلامات مرة واحدة // قائمة لقيمة محددةالألوان. FillRemarks (صحيح) ؛ EndProcedure /// قم بتنزيل وتشغيل هذه الأمثلة على جهاز كمبيوتر

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

التحديد على النموذج في حقل الإدخال 1C 8.2 مع عدة قيم

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

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

تعيين التحديد في حقل الإدخال في النموذج في 1C 8.3 ، الحدث StartChoice

فكر الآن التحديد في حقل الإدخال في نموذج مُدار في 1C 8.3. دعنا نجد في الشكل العنصر الذي يهمنا ، والذي سنحدد فيه التحديد ، في حالتنا هذا هو حقل "المنظمة". نجد الحدث "StartChoice" ، انقر على العدسة المكبرة ونجد أنفسنا في الإجراء. نرى المعلمة ChoiceData ، هذه المعلمة من نوع قائمة القيم. من أجل قصر التحديد على العناصر الضرورية ، نحتاج إلى ملء قائمة القيم. يمكننا تحديد العناصر فقط على الخادم ، لذلك نقوم بإنشاء إجراء باستخدام التوجيه التجميعي & AtServer. في هذا الإجراء ، نقوم بملء بيانات الاختيار.

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

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

سنضيف قائمة التحديد نفسها برمجيًا في معالج النموذج "عند الفتح". يحتوي حقل التحديد على قائمة فرعية من القيم FormElements.SelectionFieldName.SelectionList ولتعيين القيمة الافتراضية ولتحديد القيمة المحددة FormElements.SelectionFieldName.Value:
الإجراء عند الفتح ()

FormElements.ChoiceValues.ChoiceList.Clear () ؛
FormElements.ChoiceValues.ChoiceList.Add (0، "إنشاء مستند")؛
FormElements.ChoiceValues.ChoiceList.Add (1، "تغيير المستند") ؛
FormElements.ChoiceValues.ChoiceList.Add (2، "Delete document")؛
FormElements.SelectValues.Value = 0 ؛

EndProcedure

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

  • تمكين زر تحديد القائمة
  • في خاصية "قائمة التحديد" ، انقر على "..." وأدخل الخيارات
  • سيتم حفظ نتيجة الاختيار في السمة المحددة


القائمة المنسدلة لقيم 1C في النموذج - الخيار 2)

  • تمكين زر تحديد القائمة
  • إضافة معالج "Start of SelectionFromList"

& AtClient
الإجراء المحدد ValueStartSelection FromList (عنصر ، معالجة قياسية)

Elements.SelectedValue.SelectionList.Add ("إضافة مستند") ؛
Elements.SelectedValue.SelectionList.Add ("تحرير المستند") ؛
Elements.SelectedValue.SelectionList.Add ("حذف المستند") ؛

EndProcedure

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

القائمة المنسدلة لقيم 1C في النموذج - الخيار 3)

يعمل هذا الخيار بشكل مشابه ، لكن الواجهة تبدو مختلفة.