Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Interesante
  • 1s 8 kaloni në një formë të kontrolluar. Butonat e radios, aplikacioni i rregullt, formularët e menaxhuar

1s 8 kaloni në një formë të kontrolluar. Butonat e radios, aplikacioni i rregullt, formularët e menaxhuar

1. Fusha e hyrjes
2. Kutia e kontrollit
3. Ndërroni

Fusha e hyrjes

Si rregull, një fushë hyrëse shoqërohet me një atribut objekti dhe pasqyron të dhënat e tij. Ky është ndoshta një nga elementët më të zakonshëm, ai ka disa mënyra për të zgjedhur një vlerë:

Zgjedhja nga një listë (Modaliteti i përzgjedhjes së listës)

Zgjedhja nga një formë tjetër (butoni Zgjidh)

Butonat e kontrollit

Zbatimi i shembujve të mësipërm nuk kërkon përpjekje të konsiderueshme nga ana e zhvilluesit. për shembull, për modalitetin e listës është e nevojshme të plotësoni listën e një elementi me vlera; për të zgjedhur nga një formë tjetër, mjafton thjesht të lidhni elementin e kontrollit me të dhënat e drejtorisë. Por për butonat e kontrollit, do t'ju duhet të shkruani më shumë kod për të përpunuar klikimet në secilin buton, megjithëse nuk do të jetë i madh:

Procedura pvPërzgjedhja e Rregullores së Nomenklaturës (Elementi, Drejtimi, Përpunimi standard)
//Zgjidhni të dhënat për fushën e hyrjes
// në këtë rast, drejtoria e Nomenklaturës
Kërkesë = Kërkesë e re;
Kërkesa.Text=
"ZGJIDH
| Nomenklatura.Lidhja si produkt
|NGA
| Drejtoria.Nomenklatura AS Nomenklatura
| POROSIT NGA
| Nomenklatura.Kodi";
TZNomenklatura = Kërkesë.Run().Ngarko();

//kërkoni elementin aktual të drejtorisë të specifikuar në fushën e hyrjes
CurrentElement = TZNomenclature.Find(Element.vlera);

Nëse TechElement = I Padefinuar Atëherë
// nëse elementi nuk gjendet, atëherë vendosni numrin e indeksit
// jashtë tabelës së vlerave, sepse elementi i parë në
// tabela e vlerave ka indeksin 0
TechIndex = -1;
Përndryshe
// nëse elementi gjendet, marrim indeksin e tij
TechIndex = TZNomenklature.Index(TechElement);
fundNëse;

// llogarit një indeks të ri në varësi të shtypjes së butonit
// minus para ndryshores Drejtimi vendoset ashtu që kur
// klikimi në shigjetën e sipërme tregoi elementin mbi të
// dhe për këtë arsye me një indeks më të vogël
NewIndex = TechIndex-Direction;

// merrni numrin e elementeve në drejtori
// zbres një sepse të gjitha koleksionet në 8.1 fillojnë me 0
Numri i Elementeve = TZNomenklatura.Sasia()-1;

Nëse NovIndex< 0 Или НовИндекс >Numri i elementeve Pastaj
// nëse kur ndryshimi i indeksit është jashtë tabelës së vlerave
// d.m.th. numri i tij është më i madh se indeksi më i madh ose më i vogël se 0 atëherë
// mos e ndryshoni vlerën dhe informoni përdoruesin për të
Njoftoni ("Keni arritur kufirin e drejtorisë");
Përndryshe
// caktoni një vlerë të re, "Produkt" është emri i kolonës së tabelës së vlerave
Element.vlera = TZNomenclature.Get(NewIndex).Produkti;
fundNëse;

Fundi i procedurës

Kutia e zgjedhjes

Në shumicën e programeve, kutia e kontrollit shërben për të shfaqur dy gjendje: të zgjedhura, të pazgjedhura. Në 1c, kutia e kontrollit ka tre gjendje; në gjendjen e tretë, kutia e kontrollit shfaqet si e kontrolluar dhe në të njëjtën kohë e hijezuar. Të tre gjendjet janë të disponueshme vetëm nëse të dhënat e kutisë së kontrollit janë një numër dhe shtetet kanë kuptimet e mëposhtme:

Ndërro

Çelësi përdoret për të zgjedhur një vlerë nga një numër i vogël i mundshëm (mundësisht jo më shumë se pesë), dhe vlerat nuk mund të kombinohen. Për shembull: i përshtatshëm për zgjedhjen e gjinisë së një personi. Një shembull tjetër: le të themi se një kompani jep një nga 3 zbritjet për një produkt, dhe zbritjet nuk mblidhen:

Në këtë rast, lehtësia e përdorimit të butonave të radios mund të qëndrojë në faktin se secila prej tyre mund të ketë një vlerë, e cila është vendosur në pronën "Vlera e zgjedhur". Dhe pastaj "5% Zbritje" mund të ruajë vlerën 5 ose 0.05.

Është e rëndësishme të mbani mend tre gjëra kur përdorni çelsat:

      Ndërprerësi i parë duhet të ketë veçorinë "FirstInGroup" (në këtë shembull, është çelësi "5% Zbritje").

      Ndërprerësit që lidhen në mënyrë kuptimplote me një grup duhet të shkojnë në një rresht kur vendosni rendin e kalimit, pa ndërprerje nga elementë të tjerë të formës. Rendi i kalimit vendoset nga menyja "Forma -> Vendosja e rendit të kalimit", për këtë shembull duket kështu:

  1. Lloji i vlerës së zgjedhur vendoset për çelësin që ka veçorinë "FirstInGroup".

Shtoni një kornizë grupi në formular dhe vendosni çelësat në të nëpërmjet artikullit të menysë Forma -> Fut kontrollin... dhe zgjidhni çelësat në dritaren që hapet:

Në pjesën e djathtë të dritares, shtoni vlerën e çelësit aq sa na nevojitet, kontrolloni kutinë "Promovimet - së pari në grup" në mënyrë që ky ndërprerës të zgjidhet automatikisht.

Pasi të shtojmë çelësat, zgjedhim llojin e të dhënave për vlerën e parë "Aksionet", në rastin tonë caktojmë vlerën "Lloji i letrave me vlerë":

Dhe vetë vlera e ndërprerës futet në Data -> Vlera e zgjedhur. Për aksionet kjo është 0, obligacionet - 1, faturat - 2 dhe njësitë - 3. Por përpara se të vendosni këto të dhëna, duhet të kontrolloni porosinë.

Nëse çelsat nuk janë në rregull, atëherë kalimi nuk do të kryhet, domethënë nuk do të mund të zgjedhim vlerën e lidhjes. Për të aktivizuar këtë veçori, duhet të zgjidhni menynë Forma -> Vendosja e rendit të kalimit dhe të vendosni të gjithë çelësat në rregull.

Kontrolloni vlerën e përzgjedhur të çelsave pas korrigjimit të rendit.

E tëra që mbetet është të shkruani kodin e programit në ngjarjen e ndërrimit "veprim" "Në ndryshim":

Nëse Lloji CB = 0 Atëherë

PërndrysheIfCBType = 1 Pastaj

ThisForm.FormElements.Receipt.Columns.NCD.Availability = 1; // vetëm për obligacionet lejojmë NKD

PërndrysheIfCBType = 2 Pastaj

ThisForm.FormElements.Receipt.Columns.NCD.Availability = 0;

PërndrysheIfCBType = 3 Pastaj

ThisForm.FormElements.Receipt.Columns.NCD.Availability = 0;

fundNëse;

Tani, kur zgjidhni çelësin "Obligacione", mund të modifikoni vlerën e kolonës së aktivit.

Kam lexuar shumë forume dhe askund nuk pashë një përshkrim të kuptueshëm të punës me "Switch". Kështu që vendosa ta shkruaj vetë.

Sipas mendimit tim, gabimi më i zakonshëm është keqkuptimi për "Switch". Kur vendosni disa "Switches", për shembull 3, në një formular, shumë njerëz besojnë se në logjikën e programit këto janë 3 objekte të ndryshme që ndikojnë njëri-tjetrin. Por, në fakt, programi i percepton të 3 "Switches" si një objekt. Dhe zgjedhja e njërit prej tyre ndryshon gjendjen e këtij objekti. Le të shohim një shembull.

1. Krijoni tre butona radio në formular. Për lehtësi, ne nuk do t'i ndryshojmë emrat.
2. Theksoni çelësin1. Në vetitë e tij, në seksionin "BASIC", kontrolloni kutinë e parë në grup. "VALUE TYPE" zgjidhni një numër. (Në vijim do të shohim pse saktësisht numri). Gjatësia mund të vendoset në një, por kjo nuk ofron ndonjë funksionalitet të veçantë.
3. Zgjidhni "Switch2" në kolonën "VLERA E ZGJEDHUR" dhe vendosni 1.
4. Zgjidhni "Switch3" në kolonën "VLERA E ZGJEDHUR" dhe vendosni 2.
Në thelb, me veprimet 3 dhe 4, ju vendosni një flamur që do të ndryshojë kur zgjidhni "Switch"-in përkatës. Në "Switch1" "VLERA E ZGJEDHUR" e parazgjedhur është zero.
5. Kontrolloni nëse çelsat janë në rendin "WALKING ORDER". (për shembull: 13,14,15)(Fig. 1). kërkohet një renditje e vazhdueshme e kalimit me çelës. Urdhri i anashkalimit automatik është i aktivizuar (pozicionet janë të numëruara 13, 15, 20) (Fig. 2) në këtë rast, çelësat nën njëri-tjetrin nuk do të funksionojnë. Duhet të hiqni përdorimin e porosisë automatike nga formulari dhe nëse e nevojshme, specifikoni manualisht rendin.

Si të vendosni rendin e kalimit për detaje. Ndërsa në formular, në menynë "Dialog", duhet të zgjidhni kutinë e kontrollit "Renditja automatike e kalimit". Pas kësaj, mund të përdorni ose "Dialog" -> "Vendosja e rendit të kalimit", ose "Dialog" -> "Rendi i udhëtimit". Metoda e dytë më duket se është më e përshtatshme. Me këtë metodë, një fotografi me numrin mbështetës shfaqet për çdo mbështetëse. Gjithçka që duhet të bëni është të klikoni mbi numrat, duke zgjedhur detajet sipas renditjes që ju nevojiten.

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

6. Zgjidhni “Switch1” dhe shkruani procedurën që na nevojitet për të.
Për shembull:

EF=FormElements; Nëse Switch1=0 Atëherë EF.Statusi i Pagesës.Vlera = "Pa pagesë"; PërndrysheIf Switch1=1 Atëherë EF.Statusi i pagesës.Vlera = "Pjesërisht e paguar"; PërndrysheNëse Switch1=2 Atëherë EF.Statusi i Pagesës.Vlera = "Paguhet"; fundNëse;

7. Shtypni F7. Shtypni F5. Le të shohim se gjithçka po funksionon, ne jemi shumë mirë. Dhe BOSS i madh na jep një bonus.

SHPJEGIMI PËR KODIN

Pse ka "Switch1" kudo? Meqenëse është thënë tashmë, programi i percepton të tre elementët si një, dhe meqenëse "Switch1" është i pari në grup, atëherë programi e percepton atë si të gjithë elementin. Nëse e bëni "Switch2" kryesorin në grup. , atëherë kontrolli i korrektësisë do të duhet të kryhet sipas "Switch2".
Epo, nga vjen "0", "1", "2"? Ne vendosim ato vlera që merr objekti kur ndërron "Switches" në paragrafët 3 dhe 4.

FJALA E PASURISË:

Ky kod është dhënë si shembull i punës me çelsat. Për mendimin tim, kjo është më e qartë dhe më e kuptueshme. Por vlen të përmendet se në "Lloji i vlerës" mund të zgjidhni menjëherë atë që ju nevojitet - një vlerë të paracaktuar nga një direktori, një numërim, për shembull, ose një vlerë vargu. Kjo do të thotë, në shembullin e mësipërm, ishte e mundur që menjëherë të caktoheshin çelsat si vlera jo 0,1,2, por menjëherë "Pa pagesë", "Pjesërisht e paguar", "Paguar". Dhe pastaj kodi do të reduktohet në një rresht:

Elementet e formularit.Statusi i pagesës.Vlera = Ndërprerës1;

Rezultati do të jetë i njëjtë.

//////////////////////////////////////////////////////////////////////////////////////////

Ndërprerësit në forma të kontrolluara (UF) janë bërë më intuitive.

Kur krijoni një ndërprerës, duhet të mbani mend atributet e dyfishta, Elementi i formës.
Para së gjithash, ju duhet të krijoni atributet e formularit. Ju vendosni llojin e atributit në cilat vlera do të pranojë çelësi juaj. Zgjodha llojin String. Këtu keni dy opsione: nëse keni krijuar një atribut Object, atëherë vlera e pranuar nga çelësi juaj do të ruhet në bazën e të dhënave, nëse thjesht shtoni në listën e detajeve të formularit, atëherë rezultati i pranuar nga çelësi juaj nuk do të ruhet.

Më pas, tërhiqni dhe lëshoni Atributet që na duhen në Elementet e Formës. Kur krijoni një element të formës, elementi në vetitë "View" do të ketë llojin "Fusha hyrëse". Zgjidhni "Field switch" nga lista. Si rezultat, ju do të merrni një formë diçka si kjo:


Ne plotësojmë titullin e elementit të formularit, ngjyrën, fontin, vendndodhjen dhe bukuritë e tjera sipas shijes tuaj.
Ekziston një artikull në vetitë e elementit të formës. "Lista e përzgjedhjes" - në të futni vlerat që do të marrë çelësi juaj kur zgjidhni një ose një artikull tjetër. Në shembullin tim, shtova rreshta me vlerat "Regjistro", "Anulo postimin", "Post".

Pas kësaj, çelësi juaj është gati për përdorim.

Në varësi të faktit nëse ndërprerësi juaj është një atribut Object ose një atribut Form, ju përdorni kodin e mëposhtëm për të marrë vlerën e ruajtur në të:

SwitchFormElementFormElement // hyni direkt nëse ky është një atribut i formës Object.SwitchInsideDB // akses përmes elementit Object. në detajet tuaja.

Klyuev V.V.

http://prof1c.kklab.ru

PUNA ME NDELES

Ju lutemi merrni parasysh të gjithë përdoruesit e shërbimit të faqes - Unë postoj materiale në seksionin Fillestar!!!

8.2 Format e menaxhuara

Ndërsa studiojnë sjelljen e formave të menaxhuara, programuesit ose zhvilluesit e ndërfaqes ballafaqohen me pyetjen se ku janë ndërprerësit në format e menaxhuara dhe si t'i shtojnë ato në formë. Është një gjë e vogël, por është e pakëndshme që harxhohet shumë kohë për gjëra të tilla të vogla, megjithëse kjo kohë mund të shpenzohet për zhvillimin dhe optimizimin e algoritmit, në vend që të hartohet forma.

Pra, le të krijojmë një konfigurim bosh për të kuptuar pyetjen, ose të zgjedhim ndonjë tipik.
Shkoni te grupi që përmban drejtoritë dhe shtoni një drejtori të re për të eksperimentuar. Dua të vërej se konfigurimi duhet të ketë modalitetin kryesor të nisjes - Aplikacioni i menaxhuar.

Pra, le të krijojmë një direktori të re dhe të shtojmë atributin "Property1", me llojin "Boolean"

Tani le të shkojmë te skeda Forms dhe të shtojmë një formë të re.

Pra, forma e kontrolluar është krijuar, tani le të punojmë me formularin dhe të gjejmë se ku ndodhet çelësi.
Këtu është forma jonë, dhe mbi të shohim rekuizitat tona, por në formën e një flamuri

Pra, çfarë kemi bërë gabim?
Le të shohim vetitë e mbështetësve për të parë nëse ka një ndryshim në llojin e kontrollit.
Dhe ne shohim që fusha Switch nuk është këtu! (Ku gabuam?

Me sa duket, lloji i kontrollit në formular varet nga lloji i të dhënave, le të kthehemi te vetitë e formularit, përkatësisht skeda e detajeve dhe të ndryshojmë vetitë e atributit tonë - përkatësisht llojin e tij "Boolean", në llojin "Numër". “.

Tani le të kthehemi te vetitë e kontrollit dhe të kontrollojmë nëse Pamja e kontrollit është shtuar në vetitë e tij - - - Dhe urah, ne shohim pamjen atje - Switch Field.

Tani shikoni formën, çfarë shohim:

Ne shohim - 3 vlera të paracaktuara, 3 çelsat, por na duhen dy prej tyre, shkoni përsëri te vetitë e atributit dhe shikoni vetitë "Numri i kolonave" atje

Për 2 - vendosni numrin e kolonave - 2.

Kjo mund të ndalojë pak një programues të lodhur)), por tani edhe ai dhe ne e dimë këtë!

8.2 Forma të rregullta.

I mërzitshëm me çelsat në forma të zakonshme.
Ka momente të tilla, dhe ato ndodhin) kur ju duhet të modifikoni një formë të gatshme, e cila tashmë ka disa çelësa, dhe ju duhet të shtoni një ndërprerës tjetër në këtë formë. Këtu lind një lloj lodhjeje, e cila kërkon shumë kohë, dhe jo kohë për programimin e kodit - por humbje kohe për t'i shfaqur përdoruesit këta ndërprerës.

Pra, le të shohim një shembull. Ekziston një dokument i tillë për rregullimin e faturave në 1C UPP - ai patjetër ekziston. Dikur na duhej t'i shtonim çelsat në mënyrë që të tërhiqeshin shënime paksa të ndryshme për kontabilitetin. Cili është problemi, duket se duhet, duhet, do ta bëjmë. Por kjo formë tashmë ka 2 butona radio.

Kështu duket forma në të cilën duhet të shtojmë më shumë ndërprerës


Në skedën Advanced, ne do të dëshironim të vendosnim dy butona radio të tjerë. Pra, hapi i parë është të shtojmë me guxim një element të ri kontrolli në vendin që na nevojitet dhe ta fusim atë.

Duket se gjithçka është e thjeshtë. Ne krijojmë një atribut të ri me tipin "Number" dhe futim 2 çelësa, njëri prej të cilëve do të jetë në gjendje të shkruajë të dhëna në atribut, dhe tjetri jo.

Shtoni një element të ri kontrolli - Switch, shtoni Switch2 në tabelë me numrin dhe përshkrimin e çelsave, vendosni Switch1 në fillim në grup dhe shtypni OK. Vendosni kontrollet e krijuara në formular. Ne përditësojmë konfigurimin e bazës së të dhënave (F7) dhe e ekzekutojmë atë për korrigjim.

Gjatë ekzekutimit (kur krijoni një dokument të ri në modalitetin 1C: Enterprise), shohim se sado që përpiqemi të klikojmë në Switch2, asgjë nuk ndodh. Elementet nuk funksionojnë siç duhet. Këtu ka një mashtrim.
Kthehuni te konfiguruesi. Zgjidhni artikullin e menysë Forma -> Vendosni rendin e kalimit... (është e rëndësishme që formulari të jetë i hapur në ekran)


Në mënyrë që çelësat tanë të funksionojnë, duhet të thyeni rendin automatik dhe të pranoni një manual. Dhe vendoseni në formë në mënyrë që çelsat tanë të shkojnë njëri pas tjetrit në rregull.

NE RREGULL. Përditësoni konfigurimin dhe provoni ta ekzekutoni.
E madhe. Gjithçka funksionoi.

Për më tepër - video (pa zë, kështu që gjithçka është e qartë)


Artikujt më të mirë mbi këtë temë