1s 8 მნიშვნელობების სია სიიდან

11.05.2020 რჩევა

ძალიან ხშირად საჭიროა, რომ მომხმარებელს მიეცეს საშუალება აირჩიოს პარამეტრები ფორმაში (სანამ დააწკაპუნებთ ღილაკზე „ყველას გაშვება“). როდესაც თქვენ გჭირდებათ ერთი მნიშვნელობის არჩევა რამდენიმე წინასწარ განსაზღვრულიდან, ხშირად გამოიყენება 1C მნიშვნელობების ჩამოსაშლელი სია ფორმაზე.

1C მნიშვნელობების ჩამოსაშლელი სია ფორმაზე - დაამატეთ შერჩევის ველი სქელი კლიენტის ფორმაში, მიუთითეთ მისი სახელი. იმისათვის, რომ მომხმარებელმა არ შეცვალოს სია, მოხსენით მონიშვნა „ტექსტის რედაქტირება“ შერჩევის ველის თვისებებში.

ჩვენ დავამატებთ თავად შერჩევის სიას პროგრამულად "გახსნის" ფორმის დამმუშავებელში. შერჩევის ველს აქვს მნიშვნელობების დაქვემდებარებული სია FormItems.SelectionFieldName.ChoiceList და ნაგულისხმევი მნიშვნელობის დასაყენებლად და არჩეული მნიშვნელობის განსაზღვრისთვის FormItems.SelectionFieldName.Value:
პროცედურა OnOpen()

FormElements.ValueSelection.SelectionList.Clear();
Form Elements.Value Selection.Selection List.Add(0, "Create Document");
Form Elements.Value Selection.Selection List.Add(1, "Edit Document");
Form Elements.Value Selection.Selection List.Add(2, "Delete Document");
FormElements.ValueSelection.Value = 0;

პროცედურის დასასრული

1C მნიშვნელობების ჩამოსაშლელი სია ფორმაზე - in თხელი კლიენტიფორმაზე უნდა შევქმნათ ფორმის ატრიბუტი, რომელშიც შევინახავთ შედეგს, მაგალითად string ტიპის. გადაიტანეთ იგი ფორმაზე.
1C მნიშვნელობების ჩამოსაშლელი სია ფორმაზე - ვარიანტი 1)

  • ჩართეთ სიის შერჩევის ღილაკი
  • Select List თვისებაში დააწკაპუნეთ "..." და შეიყვანეთ პარამეტრები
  • შერჩევის შედეგი შეინახება არჩეულ ატრიბუტში


1C მნიშვნელობების ჩამოსაშლელი სია ფორმაზე - ვარიანტი 2)

  • ჩართეთ სიის შერჩევის ღილაკი
  • მოდით დავამატოთ დამმუშავებელი „სიიდან შერჩევის დაწყება“

&OnClient
პროცედურა SelectedValueStartSelectionFromList(ელემენტი, სტანდარტული დამუშავება)

Items.SelectedValue.SelectionList.Add("დოკუმენტის დამატება");
Items.SelectedValue.SelectionList.Add("დოკუმენტის რედაქტირება");
Items.SelectedValue.SelectionList.Add("დოკუმენტის წაშლა");

პროცედურის დასასრული

შედეგი მსგავსია. აუცილებელია, თუ სია უნდა შეივსოს საცნობარო წიგნების/დოკუმენტების მითითებით, რომლებიც წინასწარ არ არის განსაზღვრული.

1C მნიშვნელობების ჩამოსაშლელი სია ფორმაზე - ვარიანტი 3)

ეს ვარიანტი მუშაობს ანალოგიურად, მაგრამ ინტერფეისი განსხვავებულია.

Იმისათვის, რომ გახსენით შერჩევის ფორმა შერჩევით 1-ში 8.2(ჩვეულებრივი ფორმები), ჩვენ გვჭირდება გარკვეული მოქმედებების შესრულება. ჯერ მივიღებთ. ამის შემდეგ, ჩვენ დავაყენებთ არჩევანს და გავხსნით მას პროგრამულად, აქ არის კოდის მაგალითი:

ფორმაზე შერჩევა 1C 8.2 შეყვანის ველში რამდენიმე მნიშვნელობით

ზემოთ მოცემულ მაგალითში ჩვენ შევხედეთ როგორ დავაყენოთ შერჩევა შერჩევის ფორმაზეკონკრეტული ღირებულებით. ახლა მოდით შევხედოთ სიტუაციას, როდესაც თქვენ უნდა შეცვალოთ რამდენიმე მნიშვნელობა, ეს შეიძლება იყოს, მაგალითად, მასივი ან გადმოტვირთვა შეკითხვის შედეგიდან. ეს არის არჩევანი 1c შეყვანის ველშიმრავალი მნიშვნელობით.

პირველ რიგში, ჩვენ ვიღებთ შერჩევის ფორმას, გადავცემთ "ელემენტს" (მფლობელს) პარამეტრებში, ვაყენებთ შერჩევის რეჟიმის დროშას. შემდეგ ჩვენ ვქმნით მნიშვნელობების და მასივის ჩამონათვალს, აღვნიშნავთ, რომ როგორც შერჩევა სიაში შედარების ტიპის დაყენებისას, ობიექტი შეიძლება იყოს მხოლოდ ტიპით. ListValues. ჩვენ ვამატებთ ელემენტებს მასივში, შემდეგ ვტვირთავთ ამ მასივს მნიშვნელობების სიაში, რომელიც შემდგომ დავაყენეთ შერჩევაში. ასევე, არ დაგავიწყდეთ ამ შერჩევის გამოყენების დროშის ჩართვა და შედარების ტიპის დაყენება.

შერჩევის დაყენება შეყვანის ველში ფორმაში 1C 8.3, Start of Selection ღონისძიება

ახლა განვიხილოთ შერჩევა შეყვანის ველში ჩართულია მართვადი ფორმით 1C-ში 8.3. მოდი ვიპოვოთ ფორმაზე ჩვენთვის საინტერესო ელემენტი, რომელშიც დავაყენებთ არჩევანს, ჩვენს შემთხვევაში ეს არის ველი "ორგანიზაცია". ჩვენ ვპოულობთ ღონისძიებას „შერჩევის დაწყება“, ვაწკაპუნებთ გამადიდებელ შუშაზე და აღმოვჩნდებით პროცედურაში. ჩვენ ვხედავთ Selection Data პარამეტრს; ეს პარამეტრი არის ValueList ტიპის. იმისათვის, რომ არჩევანი შევზღუდოთ საჭირო ელემენტებით, უნდა შეავსოთ ღირებულებების სია. ჩვენ შეგვიძლია შევარჩიოთ ელემენტები მხოლოდ სერვერზე, ამიტომ ვქმნით პროცედურას &OnServer კომპილაციის დირექტივით. ამ პროცედურაში შეავსეთ შერჩევის მონაცემები.

სრული სინტაქსი (დააწკაპუნეთ გასაშლელად)

ListValues

აღწერა:

მნიშვნელობების სია არის ობიექტი, რომელიც არ არის შენახული მონაცემთა ბაზაში, რომელიც საშუალებას გაძლევთ შექმნათ ინტერფეისის პრობლემების გადასაჭრელად დინამიური ნაკრებიმნიშვნელობები და მათი მანიპულირება (ელემენტების დამატება, რედაქტირება, წაშლა, დახარისხება). ის შეიძლება შეივსოს ნებისმიერი ტიპის მნიშვნელობებით, ე.ი. ერთ სიაში, შენახული მნიშვნელობების ტიპები შეიძლება განსხვავებული იყოს. ამ ობიექტის გამოყენების ერთ-ერთი მაგალითია კონკრეტული დოკუმენტის შერჩევის ორგანიზება რთული ალგორითმის გამოყენებით გენერირებული შესაძლო დოკუმენტების სიიდან.

კოლექციის ნივთები: ValueListElement

შესაძლებელია ობიექტის მიერ კოლექციის გვერდის ავლით ოპერატორის გამოყენებით თითოეული... ციკლიდან. ტრავერსი ირჩევს კოლექციის ელემენტებს.

შესაძლებელია შეგროვების ელემენტზე წვდომა [...] ოპერატორის გამოყენებით. ელემენტის ინდექსი გადაეცემა არგუმენტად ( ნუმერაცია 0-დან).

Თვისებები:

მეთოდები:

ჩასმა (ინდექსი, მნიშვნელობა, წარმოდგენა, ლეიბლი, სურათი) ჩანართები ახალი ელემენტიმნიშვნელობების სიაში პოზიციაზე მითითებული ინდექსით.SelectElement (სათაური, ელემენტი) გამოიძახებს ფანჯარას მნიშვნელობების სიაში შეტანილი ერთ-ერთი ელემენტის ინტერაქტიულად ასარჩევად. ელემენტი- ელემენტი, რომელზეც თავდაპირველად უნდა განთავსდეს მნიშვნელობების სია ინტერაქტიული შერჩევისას. თუ პარამეტრის მნიშვნელობა არ არის მნიშვნელობების სიის ელემენტი, რომელიც შედის ამ სიასპოზიციონირება არ მოხდება.UnloadValues() ქმნის მასივს და აკოპირებს მასში მნიშვნელობების ელემენტების სიის მნიშვნელობებს.დამატება (მნიშვნელობა, წარმოდგენა, ლეიბლი, სურათი) ამატებს ახალ ელემენტს მნიშვნელობების სიის ბოლოს.LoadValues(ArrayValues) იტვირთება მნიშვნელობების სია გადასული მასივის მნიშვნელობებით. ამ შემთხვევაში, სიის ყველა წინა ელემენტი წაიშლება.შეავსეთ შენიშვნები(Mark) აყენებს ნიშანს მნიშვნელობების სიის ყველა ელემენტისთვის.Index(Element) იღებს ელემენტის ინდექსს მნიშვნელობების სიაში. თუ ვერ იქნა ნაპოვნი, მაშინ -1 დაბრუნდება.Count() იღებს ელემენტების რაოდენობას მნიშვნელობების სიაში.FindByValue(SearchValue) ეძებს ელემენტის მნიშვნელობას მნიშვნელობების სიაში. თუ არცერთი ელემენტი არ ინახავს საძიებო მნიშვნელობის ტოლ მნიშვნელობას, მაშინ მნიშვნელობა ბრუნდება Განუსაზღვრელი. იპოვნეთ ID-ით(იდენტიფიკატორი) ამოიღებს ელემენტების მნიშვნელობების სიას იდენტიფიკატორის მიხედვით. თუ ელემენტი არ არის ნაპოვნი, მაშინ ის დაბრუნდება Განუსაზღვრელი. MarkItems(Header) აყენებს ან მოხსნის (ინტერაქტიულად) ელემენტებს მნიშვნელობების სიაში. ბრუნდება მართალიათუ დიალოგში დააჭირეთ ღილაკს "OK", ტყუილი- წინააღმდეგ შემთხვევაში.Clear() ასუფთავებს მნიშვნელობების სიას, ამოიღებს მისგან ყველა ელემენტს.ShowElementSelection(DescriptionNotificationsOnClosing, Title, Element) გამოიძახებს ფანჯარას მნიშვნელობების სიაში შეტანილი ერთ-ერთი ელემენტის ინტერაქტიულად ასარჩევად.ShowMark Items(შეტყობინებების დახურვის აღწერა, სათაური) შექმნილია მნიშვნელობების სიის ელემენტების ნიშნების მდგომარეობის ინტერაქტიულად დასაყენებლად.Get(Index) იპოვის მნიშვნელობას ინდექსის მიხედვით. მუშაობს ოპერატორის მსგავსად.Shift (ელემენტი, ოფსეტი) ცვლის მნიშვნელობების სიის ელემენტს წინ ან უკან პოზიციების განსაზღვრული რაოდენობის მიხედვით.Copy() ქმნის მნიშვნელობების სიის ასლს.SortByValue(მიმართულება) ახარისხებს მნიშვნელობების სიას ელემენტების მიერ შენახული მნიშვნელობების აღმავალი ან კლებადობით. იხილეთ მაგალითი ქვემოთ.SortByView(მიმართულება) ახარისხებს მნიშვნელობების ჩამონათვალს მნიშვნელობების სიაში შემავალი ელემენტების წარმომადგენლობების ანბანური თანმიმდევრობით აღმავალი ან კლებადობით. იხილეთ მაგალითი ქვემოთ.Remove (Element) შლის ელემენტს მნიშვნელობების სიიდან, სადაც ელემენტი- წაშლილი ელემენტის ან თავად ელემენტის ინდექსი.

დიზაინერები:

ღირებულებების ახალი სია
&OnClient-ის პროცედურის შესრულების კოდი (ბრძანება) /// როგორ შევქმნათ მნიშვნელობების სია 1s 8.3, 8.2სია = New ValueList; /// როგორ დავამატო ელემენტი მნიშვნელობების სიაში 1s 8.3, 8.2 // მეთოდის პარამეტრების დამატება:// - მნიშვნელობა // - შესრულება // - ნიშანი (აუცილებელია) // - სურათი (აუცილებელია)სია. დამატება (1980, // ელემენტის მნიშვნელობა "ვასიას დაბადების წელი"// შესრულება ) ; სია. დამატება(1985, "იულიას დაბადების წელი") ; // მნიშვნელობები შეიძლება იყოს განსხვავებული ტიპები სია. დამატება("პოლინა" , "ბავშვის სახელი" ); /// როგორ ჩავსვათ ელემენტი მნიშვნელობების სიაში 1s 8.3, 8.2 // ჩასმა მე-2 პოზიციაში (ელემენტები დანომრილია 0-დან) // ელემენტი მნიშვნელობით 2010 და წარმომადგენლობით // "წელი მათი ერთობლივი ქალიშვილი დაიბადა"სია. Insert(2, 2010, "წელი მათი ერთობლივი ქალიშვილი დაიბადა") ; /// როგორ გადავლახოთ მნიშვნელობების სიის ელემენტები 1s 8.3, 8.2-შისიიდან მარყუჟის ანგარიშის თითოეული ელემენტისთვის( ელემენტი. წარმოდგენა + ": " + სტრიქონი(ელემენტი. მნიშვნელობა) ); ბოლო ციკლი ; /// როგორ გავასუფთავოთ მნიშვნელობების სია 1s 8.3, 8.2სია. Clear() ; სია. დამატება ("ორშაბათი"); სია. დამატება ("სამშაბათი"); სია. დამატება("ოთხშაბათი" ); /// როგორ გავარკვიოთ მნიშვნელობების სიის ელემენტების რაოდენობა, ასევე /// მიიღეთ სიის ელემენტი მისი ინდექსით 1s 8.3, 8.2 // ნულიდან ნუმერაციაინდექსისთვის = 0 სიის მიხედვით. რაოდენობა() - 1 ციკლის ანგარიში( სია[ინდექსი]) ; ბოლო ციკლი ; /// როგორ მოვძებნოთ სიის ელემენტი მისი მნიშვნელობით 1s 8.3, 8.2 ValueTuesday = სია. FindByValue ("სამშაბათი"); /// როგორ გავარკვიოთ ელემენტის ინდექსი სიაში 1s 8.3, 8.2ანგარიში(List.Index(ValueTuesday)) ; // 1, ვინაიდან ნუმერაცია იწყება ნულიდან /// როგორ დავახარისხოთ სია მისი მნიშვნელობებით 1s 8.3, 8.2 // იყო: ორშაბათი, სამშაბათი, ოთხშაბათისია. SortByValue(SortDirection.Descending) ; // გახდა: ოთხშაბათი, ორშაბათი, სამშაბათი /// როგორ ამოიღოთ ელემენტი მნიშვნელობების სიიდან 1s 8.3, 8.2-ში // ამოიღეთ პირველი ელემენტი // პარამეტრი: სიის ელემენტი // ან ელემენტის ინდექსი// შეგიძლიათ გააკეთოთ ეს სია. წაშლა(სია[ 0 ]) ; // ან ასე // List.Delete(0); /// როგორ გადავიტანოთ მნიშვნელობების სიის ელემენტი 1s 8.3, 8.2-ში // ნულოვანი ელემენტის გადატანა ერთი პოზიციით წინ // იყო: ორშაბათი სამშაბათისია. გადაადგილება (0, 1); // გახდა: სამშაბათი ორშაბათი /// როგორ გავაკეთოთ სიის ასლი 1s 8-ში ListCopy = სია. კოპირება() ; ფერები = NewValueList; Ფერები. დამატება("წითელი"); Ფერები. დამატება("მწვანე"); Ფერები. დამატება("ლურჯი"); /// როგორ ატვირთოთ სიის მნიშვნელობები მასივში 1s 8.3, 8.2 ArrayColors = ფერები. UnloadValues() ; /// როგორ ჩატვირთოთ სიის მნიშვნელობები მასივიდან 1s 8.3, 8.2-შიᲤერები. LoadValues ​​(ArrayColors) ; პროცედურის დასასრული /// როგორ გავაკეთოთ სიიდან მნიშვნელობის უმოდელო შერჩევა /// მნიშვნელობები 1-ში 8.3, 8.2&კლიენტის პროცედურის შესახებ როგორ შევქმნათ Non-ModalValueSelection(Command) Colors = New ValueList; Ფერები. დამატება("წითელი"); Ფერები. დამატება("მწვანე"); Ფერები. დამატება("ლურჯი"); // პროცედურა AfterSelectingElement განისაზღვრება ქვემოთ AlertAfterElementSelection = ახალი აღწერა Alerts( "ელემენტების შერჩევის შემდეგ", ეს ობიექტი ) ; Ფერები. ShowElementSelection( NotificationAfterElementSelection, "აირჩიე შენი საყვარელი ფერი") ; პროცედურის დასრულება და კლიენტის პროცედურა ელემენტის არჩევის შემდეგ (ელემენტი, პარამეტრები) თუ ელემენტის ექსპორტი<>განუსაზღვრელი შემდეგ მოხსენება (Element.Value) ; Დაასრულე თუ ; პროცედურის დასასრული /// როგორ გავაკეთოთ სიიდან მნიშვნელობების უმოდური მარკირება /// მნიშვნელობები 1-ში 8.3, 8.2&კლიენტის პროცედურის შესახებ როგორ გავაკეთოთ მნიშვნელობების არამოდალური მარკირება (ბრძანება) ფერები = მნიშვნელობების ახალი სია; Ფერები. დამატება("წითელი"); Ფერები. დამატება ("მწვანე" ); Ფერები. დამატება("ლურჯი"); // პროცედურა AfterMarkingElements განისაზღვრება ქვემოთ AlertAfterMarkingItems = ახალი აღწერა Alerts( "AfterMarking Items", ეს ობიექტი ) ; Ფერები. ShowTagItems( AlertAfterTagItems, "აირჩიე შენი საყვარელი ფერები") ; Ფერები. FillNotes (True) ; პროცედურის დასრულება და კლიენტის პროცედურა ელემენტების მარკირების შემდეგ (ელემენტები, პარამეტრები) ექსპორტი თუ ელემენტები<>განუსაზღვრელი შემდეგ თითოეული ფერისთვის ელემენტებიდან ციკლი თუ ფერი. მონიშნე შემდეგ მოხსენება (ფერი.მნიშვნელობა) ; Დაასრულე თუ ; ბოლო ციკლი ; Დაასრულე თუ ; პროცედურის დასასრული /// როგორ გავაკეთოთ მნიშვნელობის მოდალური შერჩევა სიიდან 1s 8.3, 8.2&კლიენტის პროცედურის შესახებ როგორ შევქმნათ ModalValueSelection(Command) Colors = New ValueList; Ფერები. დამატება("წითელი"); Ფერები. დამატება ("მწვანე" ); Ფერები. დამატება("ლურჯი"); აირჩიეთ ფერი = ფერები. აირჩიეთ ნივთი ( "აირჩიე შენი საყვარელი ფერი") ; თუ აირჩიეთ ფერი<>განუსაზღვრელი შემდეგ მოხსენება (SelectColor.Value) ; Დაასრულე თუ ; პროცედურის დასასრული /// როგორ მოდიალურად მონიშნოთ მნიშვნელობები სიიდან /// მნიშვნელობები 1-ში 8.3, 8.2&კლიენტის პროცედურის შესახებ როგორ გავაკეთოთ მნიშვნელობების მოდალური ნიშანი (ბრძანება) ფერები = ღირებულებების ახალი სია; Ფერები. დამატება("წითელი"); Ფერები. დამატება ("მწვანე" ); Ფერები. დამატება("ლურჯი"); თუ ფერები. MarkItems( "აირჩიე შენი საყვარელი ფერები") შემდეგ თითოეული ფერისთვის ფერის ციკლიდან თუ ფერი. მონიშნე შემდეგ მოხსენება (ფერი.მნიშვნელობა) ; Დაასრულე თუ ; ბოლო ციკლი ; Დაასრულე თუ ; // ასე შეგიძლიათ დააყენოთ ყველა ნიშანი ერთდროულად // სიაში კონკრეტული მნიშვნელობაᲤერები. FillNotes (True) ; პროცედურის დასასრული /// ჩამოტვირთეთ და გაუშვით ეს მაგალითები თქვენს კომპიუტერში