Seçim parametrlərində 1c, qrupun adını təyin edin. Metadata obyektləri üçün seçim parametrlərini və seçim parametrləri assosiasiyalarını təyin edin. DescriptionofTypesInventory = Növlərin Yeni Təsviri(Array)

Üçün 1s-də seçim ilə seçim formasını açın 8.2(müntəzəm formalar), bəzi hərəkətləri yerinə yetirməliyik. Əvvəlcə onu alacağıq. Bundan sonra seçimi təyin edəcəyik və onu proqramlı şəkildə açacağıq, burada bir kod nümunəsi var:

Bir neçə dəyəri olan 1C 8.2 giriş sahəsindəki formada seçim

Yuxarıdakı nümunədə baxdıq seçim formasında seçimi necə təyin etmək olar xüsusi dəyəri ilə. İndi bir neçə dəyəri əvəz etməli olduğunuz bir vəziyyətə baxaq, bu, məsələn, massiv və ya sorğu nəticəsindən yüklənməmiş ola bilər. Bu, 1c giriş sahəsində seçimdirçoxlu mənaları ilə.

Əvvəlcə seçim formasını alırıq, parametrlərdə "Element" (sahibi) keçirik, seçim rejimi bayrağını təyin edirik. Sonra dəyərlər siyahısı və massiv yaradırıq, qeyd edirik ki, siyahıda müqayisə növünü təyin edərkən seçim olaraq obyekt yalnız növü ilə mövcud ola bilər. SiyahıDəyərlər. Biz massivə elementlər əlavə edirik, sonra bu massivi sonradan seçimdə təyin etdiyimiz Dəyərlər Siyahısına yükləyirik. Həmçinin, bu seçimi istifadə etmək üçün bayrağı aktivləşdirməyi və Müqayisə Tipini təyin etməyi unutmayın.

1C 8.3-də formada daxiletmə sahəsində seçimin qurulması, Seçmənin başlanğıcı hadisəsi

İndi düşünək daxiletmə sahəsində seçim aktivdir idarə olunan formada 1C 8.3-də. Formada bizi maraqlandıran elementi tapaq, seçimi təyin edəcəyik, bizim vəziyyətimizdə bu "Təşkilat" sahəsidir. Biz “Seçimin Başlanğıc” hadisəsini tapırıq, böyüdücü şüşəyə vurun və özümüzü prosedurda tapırıq. Biz Seçim Məlumatı parametrini görürük, bu parametr ValueList tiplidir. Seçimi zəruri elementlərlə məhdudlaşdırmaq üçün Dəyərlər Siyahısını doldurmalıyıq. Biz elementləri yalnız serverdə seçə bilərik, ona görə də &OnServer kompilyasiya direktivi ilə prosedur yaradırıq. Bu prosedurda Seçim Məlumatını doldurun.

/
Tərtibatçılar /
Kodlaşdırma konvensiyaları

Metadata Obyektləri üçün Seçim Seçimlərinin və Seçim Seçimlərinin Assosiasiyalarının qurulması

1. Bir qayda olaraq, seçim məhdudiyyətləri kimi biznes məntiqi məhdudiyyətləri konkret obyektin redaktə olunduğu bütün formalar üçün eyni olmalıdır. Buna görə də seçim parametrlərini və seçim parametrləri arasında əlaqələri metaməlumat obyektlərinin xüsusiyyətlərində - kataloqların, sənədlərin və s.

2. Bununla belə, seçim məhdudiyyətlərinin konkret əməliyyat ssenarisindən asılı olduğu hallar ola bilər. Belə hallarda seçim parametrləri lokal olaraq, konkret formada göstərilə bilər.

Məsələn, konfiqurasiya ehtiva edir

  • kataloq İşçilər, detalları ehtiva edir Təşkilatİşçi Tipi(dəyərlərlə sadalama Əsas/Part-taymer);
  • sənəd Qəbul Sifarişi, rekvizitləri ehtiva edir Təşkilatişçi; rekvizitlər üçün isə işçi sənəd Qəbul Sifarişi seçim parametrinin əlaqəsi müəyyən edilir Seçim. Təşkilat rekvizitlərlə Təşkilat.

Funksional variantın dəyərindən asılı olaraq yalnız əsas işçiləri seçmək qabiliyyətini həyata keçirmək tələb olunur Yalnız İşçilərdən Əsasları seçin. Bunun üçün lazımdır

  • sənəd şəklində Qəbul Sifarişiəlavə forma atributlarını həyata keçirin İşçilərin növləri,
  • sonra forma sahəsi üçün işçi seçim parametri əlaqəsi yaradıla bilər Seçim.İşçinin növü forma detalları ilə İşçilərin növləri,
  • bu halda forma detalları İşçilərin növləri funksional variantın təhlili əsasında doldurulur.

(Eyni zamanda, rekvizitlər üçün təyin edin işçi sənəd Qəbul Sifarişi seçim parametri üçün keçid Seçim.İşçinin növü heç bir imkan yoxdur, çünki rekvizitlər İşçi Tipi sənəddə Qəbul Sifarişi mövcud deyil.)

Sonra parametr üçün əlaqəni təyin edin Seçim. Təşkilat dayaq xassələrində işçi sənəd Qəbul Sifarişi və parametr üçün əlaqələr Seçim.İşçinin növü sənəd forması sahəsində Qəbul Sifarişi rejimində olmasına gətirib çıxaracaq 1C: Müəssisələr Hər iki seçim parametri bağlantısı işləyəcək. Belə ki, işə qəbul haqqında sifariş blankında işçi seçilərkən, işçilərin siyahısında seçim həm sənəddə doldurulmuş təşkilat, həm də funksional seçim əsasında müəyyən ediləcək işçi növü ilə müəyyən ediləcək.

Günortanız Xeyir.

Bu gün biz yeni idarə olunan interfeysdə seçim formalarını proqramlı şəkildə necə açmaq barədə danışacağıq.

Əvvəllər " müntəzəm tətbiq“Biz belə yazmışdıq:

forma = Directory.nomenclature.GetSelectionForm();

resultSelection = form.openModalNO();

Bu operatorlar arasında biz formanın xüsusiyyətlərini dəyişə bilərik, məsələn, seçimi təyin edə bilərik. Biz adla xüsusi bir formanı təyin edə bilərik. Dəyişdirə bilərdi görünüş, nöqtə vasitəsilə forma elementinin xassələrinə öz adı ilə daxil olmaq (form.Button1.Visibility = False;)

İndi bizim idarə olunan interfeysimiz var və burada hər şey fərqlidir. Problem kodun server və müştəri hissələrinə bölünməsindədir. Biz obyektlərə və onların metadatalarına yalnız serverdə daxil ola bilərik və biz müştəridə formaları açmalıyıq.

Beləliklə, başlayaq.

1. Ən sadə hal, seçimi idarə etməyə ehtiyac duymadığımız zamandır (seçimləri qurmaq, parametrləri açılmış seçim formasına ötürmək).

Formalar yalnız müştəridə açıla bildiyi üçün bu, müştəri tərəfi kod parçası olacaq. Funksiyadan istifadə edəcəyik Dəyəri daxil edin(<Значение>, <Подсказка>, <Тип>) . Əslində onun təsvirindən hər şey aydın görünür. O, istifadəçinin seçim edib-etməməsinin bayrağını qaytarır; birinci parametrdə seçim dəyərinin qaytarılacağı konteyneri, ikinci mətndə seçim pəncərəsinin başlığında, üçüncü massivdə göstərilir. növləri.

Budur istifadə nümunəsi:

Dəyişən SelectTMC;

ArrayTypes = Yeni Massiv;

DescriptionofTypesTMC = NewDescriptionofTypes(Array);

Əgər EnterValue (İnventar seçin, "Element seçin", İnventar növlərinin təsviri) Sonra

//Seçilmiş dəyərin işlənməsi

endIf;

Əlavə edəcəyəm ki, konteyner dəyişənimizi seçməzdən əvvəl hər hansı bir dəyər təyin etsək, o, standart dəyər olacaqdır. Bu halda, növlər massivi yaratmağa ehtiyac yoxdur; növ konteynerdəki dəyərdən götürüləcək.

2. Bəzən dəyər seçməzdən əvvəl bəzi seçimləri və seçim parametrlərini təyin etməliyik. Məsələn, qarşı tərəf müqaviləsi seçməliyik. Birinci üsul bizim üçün bütün sənədləri açacaq, ancaq sahibinə görə seçməliyik.

Formaları açmaq üçün iki üsul var: OpenFormOpenFormModal. Birinci üsulda biz formanı açacağıq və formanı açdığımız kod parçası seçimin nəticəsini almadan icrasına davam edəcək. Seçim nəticəsi, çağırış metodundan asılı olaraq, ya giriş sahəsinə yerləşdiriləcək, ya da əvvəlcədən müəyyən edilmiş "Seçimlərin işlənməsi" prosedurunda qəbul ediləcəkdir.

Bizim vəziyyətimizdə seçilmiş dəyəri müəyyən dəyişənə daxil etməli və idarəetməni digər prosedurlara keçirmədən seçilmiş dəyəri nəzərə alaraq emal etməyə davam etməliyik. Ona görə də bizə uyğun olacaq OpenFormModal.

Dərhal rezervasiya edəcəm ki, bu veb interfeys üçün pis yoldur, çünki... Modal pəncərələr adətən bloklanan yeni brauzer pəncərəsində açılır. Ancaq istifadəçiyə nə olduğunu əvvəlcədən izah etsəniz, o zaman bu problemin öhdəsindən gələcəyini düşünürəm))

Beləliklə, prosedurun təsvirinə baxaq, onun 4 parametri var. Birincidə, biz "Direktoriya. Podratçıların Müqavilələri. Seçim Forması" formasına tam yolu olan bir sətir göstəririk. İkincisi, seçim parametrlərini, aşağıda onlar haqqında daha çox göstərəcəyik. Üçüncüdə - sahibi, bu seçimin nəticəsini alacaq bir forma və ya seçim sahəsidir, biz onu doldurmuruq. Dördüncü parametr də bizim vəziyyətimizdə istifadə edilmir.

Beləliklə, sadə bir seçim üçün aşağıdakı xətt edəcəyik:

&OnClient

Prosedur Əmr 1 (Əmr)

res = OpenFormModal("Kataloq. Podratçıların Müqavilələri. Seçim Forması");

Prosedurun Sonu

Ancaq bu, №1 metodun tam analoqudur və biz sahibi tərəfindən seçilmədən, bütün müqavilələrin seçilməsi üçün bir forma görəcəyik. Bunlar. Bu, yalnız seçim formasının adını müəyyən etmək istədikdə edilə bilər.

Seçimi təyin etmək üçün ikinci parametr bizə kömək edəcəkdir.

İkinci parametr "Struktur" tiplidir. Struktur elementləri olaraq, seçim formasının "parametrlər" sekmesinde əlavə edilmiş forma parametrlərini təyin edə bilərsiniz. Onların işlənməsi prosedurda təsvir edilməlidir OnServer yaradıldıqda seçim forması modulunda. Bu bizim üçün yaxşı deyil, çünki... Mən konfiqurasiyanı dəyişdirməliyəm. Siz həmçinin parametr strukturunda “seçim” düyməsi ilə seçim strukturunu ötürə bilərsiniz. Sonra seçim strukturunun bütün sahələri elementlərin siyahısının seçilməsində istifadə olunacaq və istifadəçiyə nə baxmaq, nə də dəyişdirmək üçün əlçatan olmayacaq.

Mənim nümunəmdə emalda emal forması atributuna istinad edən seçim sahəsini çəkdim "qarşı tərəf" məlumat növü ilə " DirectoryLink.Qarşı tərəflər". və aşağıdakı kod parçasını yazdı:

&OnClient

Prosedur Əmr 1 (Əmr)

Seçimlər = Yeni Struktur ("Sahibi", Qarşı tərəf);

SelectionParameters = Yeni Struktur ("Seçim", Seçim);

res = OpenFormModal("Kataloq. Podratçıların Müqavilələri. Seçim Forması", Seçim Parametrləri);

Prosedurun Sonu

Bu, adətən əksər problemləri həll etmək üçün kifayətdir və heç bir konfiqurasiya müdaxiləsi tələb etmir. Bununla belə, “When CreatedOnServer” prosedurunda seçim formasında seçiminiz itirilə bilər. Buna görə də, bu üsuldan istifadə etməzdən əvvəl açdığınız seçim formasında bu proseduru nəzərdən keçirin. Oradakı əyri tərtibatçılar seçimin açılış parametrlərində keçdiyini yoxlamağı unudaraq, seçimlərini asanlıqla "defolt olaraq" təyin edə bilərlər.

Bu günə qədər bu qədərdi, diqqətinizə görə təşəkkür edirəm.




Üst