Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Zanimljivo
  • 1s 8 uključite kontrolirani oblik. Radio dugmad, obična aplikacija, upravljani obrasci

1s 8 uključite kontrolirani oblik. Radio dugmad, obična aplikacija, upravljani obrasci

1. Polje za unos
2. Potvrdni okvir
3. Prekidač

Polje za unos

Po pravilu, polje za unos je povezano sa atributom objekta i odražava njegove podatke. Ovo je možda jedan od najčešćih elemenata, ima nekoliko načina za odabir vrijednosti:

Odabir sa liste (režim odabira liste)

Odabir iz drugog obrasca (dugme za odabir)

Kontrolna dugmad

Implementacija gornjih primjera ne zahtijeva značajan napor od strane programera. na primjer, za režim liste potrebno je popuniti listu elementa vrijednostima, za odabir iz drugog obrasca dovoljno je jednostavno povezati kontrolni element sa podacima direktorija. Ali za kontrolne tipke, morat ćete napisati više koda za obradu klikova na svako dugme, iako neće biti veliko:

Procedura pvOdabir regulacije nomenklature (element, smjer, standardna obrada)
//Odabir podataka za polje za unos
// u ovom slučaju, imenik Nomenklature
Zahtjev = Novi zahtjev;
Request.Text=
„IZABIR
| Nomenklatura. Veza kao proizvod
|OD
| Imenik.Nomenklatura AS Nomenklatura
|ORDER BY
| Nomenklatura.Šifra";
TZNomenklatura = Request.Run().Upload();

//potražite trenutni element direktorija naveden u polju za unos
CurrentElement = TZNomenclature.Find(Element.value);

Ako je TechElement = Nedefinirano Onda
// ako element nije pronađen onda postavite broj indeksa
// izvan tablice vrijednosti, jer prvi element u
// tablica vrijednosti ima indeks 0
TechIndex = -1;
Inače
// ako je element pronađen, dobijamo njegov indeks
TechIndex = TZNomenclature.Index(TechElement);
endIf;

// izračunati novi indeks ovisno o pritisku gumba
// minus ispred varijable Smjer se postavlja tako da kada
// klikom na gornju strelicu prikazao se element iznad nje
// i stoga s manjim indeksom
NewIndex = TechIndex-Direction;

// dobivamo broj elemenata u direktoriju
// oduzmi jedan jer sve kolekcije u 8.1 počinju od 0
Broj elemenata = TZNomenklatura. Količina()-1;

Ako NovIndex< 0 Или НовИндекс >Broj elemenata Tada
// ako je kod promjene indeksa izvan tablice vrijednosti
// tj. njegov broj je tada veći od najvećeg indeksa ili manji od 0
// ne mijenjamo vrijednost i obavještavamo korisnika o tome
Obavijesti ("Dostigli ste ograničenje direktorija");
Inače
// dodijelimo novu vrijednost, "Proizvod" je naziv stupca tablice vrijednosti
Element.value = TZNomenclature.Get(NewIndex).Proizvod;
endIf;

Kraj procedure

Polje za potvrdu

U većini programa, potvrdni okvir služi za prikaz dva stanja: označeno, nepotvrđeno. U 1c, potvrdni okvir ima tri stanja; u trećem stanju, potvrdni okvir je prikazan kao označen i istovremeno zasjenjen. Ova tri stanja su dostupna samo ako su podaci u polju za potvrdu broj, a stanja imaju sljedeća značenja:

Prekidač

Prekidač se koristi za odabir jedne vrijednosti od malog broja mogućih (po mogućnosti ne više od pet), a vrijednosti se ne mogu kombinirati. Na primjer: pogodno za odabir spola osobe. Drugi primjer: recimo da kompanija daje jedan od 3 popusta na proizvod, a popusti se ne zbrajaju:

U ovom slučaju, pogodnost korištenja radio dugmadi može biti u činjenici da svaki od njih može imati neku vrijednost, koja je postavljena u svojstvu "Vrijednost za odabir". I tada "5% popusta" može pohraniti vrijednost 5 ili 0,05.

Važno je zapamtiti tri stvari kada koristite prekidače:

      Prvi prekidač bi trebao imati svojstvo "FirstInGroup" (u ovom primjeru to je prekidač "5% popusta").

      Prekidači koji su smisleno povezani sa jednom grupom treba da idu u nizu prilikom postavljanja redosleda prelaska, bez prekida od strane drugih elemenata forme. Redosled prelaska se postavlja iz menija "Obrazac -> Postavljanje redosleda prelaska", za ovaj primer izgleda ovako:

  1. Tip odabrane vrijednosti je postavljen za prekidač koji ima svojstvo "FirstInGroup".

Dodajte okvir grupe u obrazac i postavite prekidače na njega preko stavke menija Form -> Insert control... i odaberite prekidače u prozoru koji se otvori:

U desnom dijelu prozora dodajte vrijednost prekidača koliko nam je potrebno, označite polje „Promocije - prvi u grupi“ tako da se ovaj prekidač automatski izabere.

Nakon što dodamo prekidače, odabiremo tip podataka za prvu vrijednost “Akcije”, u našem slučaju dodjeljujemo vrijednost “Vrsta vrijednosnih papira”:

I sama vrijednost prekidača se unosi u Podaci -> Odabrana vrijednost. Za dionice ovo je 0, obveznice - 1, zapisi - 2 i jedinice - 3. Ali prije unosa ovih podataka potrebno je provjeriti redoslijed.

Ako prekidači nisu u redu, onda se prebacivanje neće izvršiti, odnosno nećemo moći odabrati vrijednost veze. Da biste omogućili ovu funkciju, morate odabrati meni Obrazac -> Postavljanje redoslijeda kretanja i postaviti sve prekidače po redu.

Provjerite vrijednost prekidača koja se može odabrati nakon ispravljanja redoslijeda.

Ostaje samo da upišete programski kod u događaj prekidača "akcija" "Na promjenu":

Ako je CB Tip = 0 Onda

Inače akoCBType = 1 Onda

ThisForm.FormElements.Receipt.Columns.NCD.Availability = 1; // samo za obveznice dopuštamo NKD

Inače akoCBType = 2 Onda

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

Inače akoCBType = 3 Onda

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

endIf;

Sada, kada odaberete prekidač “Obveznice”, možete urediti vrijednost kolone imovine.

Pročitao sam mnoge forume i nigdje nisam vidio razumljiv opis rada sa “Switch”. Pa sam odlučio da to sam napišem.

Po MOJEM mišljenju, najčešća greška je zabluda o "Switchu". Kada stavite nekoliko "prekidača", na primjer 3, na obrazac, mnogi ljudi vjeruju da su u logici programa to 3 različita objekta koji utiču jedan na drugog. Ali, u stvari, program percipira sva 3 "prekidača" kao jedan objekat. A odabirom jednog od njih mijenja se stanje ovog objekta. Pogledajmo primjer.

1. Kreirajte tri radio dugmeta na obrascu. Radi praktičnosti, nećemo mijenjati imena.
2. Označite Switch1. U njegovim svojstvima, u odeljku „BASIC“, označite prvi u grupi. “VRSTA VRIJEDNOSTI” odaberite broj. (Dalje ćemo pogledati zašto baš taj broj). Dužina se može postaviti na jedan, ali to ne pruža nikakvu posebnu funkcionalnost.
3. Odaberite “Switch2” u koloni “IZABRANA VRIJEDNOST” i unesite 1.
4. Odaberite “Switch3” u koloni “IZABRANA VRIJEDNOST” i stavite 2.
U suštini, sa radnjama 3 i 4, postavljate zastavicu koja će se promijeniti kada odaberete odgovarajući “Switch”. U “Switch1” zadana “IZABRANA VRIJEDNOST” je nula.
5. Provjerite da li su prekidači u “HODNOM REDOSREDU”. (na primjer: 13,14,15)(Sl. 1). potreban je kontinuirani redoslijed prelaska preko prekidača. Omogućen je automatski zaobilazni red (pozicije su označene brojevima 13, 15, 20) (slika 2) u ovom slučaju prekidači jedan ispod drugog neće raditi. Trebalo bi ukloniti upotrebu automatskog naručivanja iz obrasca i, ako potrebno, ručno odredite redoslijed.

Kako postaviti redoslijed prelaska za detalje. Dok ste u obrascu, u meniju „Dijalog“, potrebno je da poništite izbor u polju za potvrdu „Automatski redosled prelaska“. Nakon toga možete koristiti ili “Dijalog” -> “Postavljanje redoslijeda putovanja” ili “Dijalog” -> “Putni nalog”. Druga metoda mi se čini najpogodnija. Ovom metodom, slika sa brojem rekvizita se pojavljuje za svaki rekvizit. Sve što treba da uradite je da kliknete na brojeve, birajući detalje onim redosledom koji vam je potreban.

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

6. Odaberite “Switch1” i napišite proceduru koja nam je potrebna za to.
Na primjer:

EF=Elementi forme; Ako je Switch1=0 Tada EF.Payment Status.Value = "Neplaćeno"; InačeAko Switch1=1 Tada EF.Payment Status.Value = "Djelomično plaćeno"; InačeAko Switch1=2 Tada EF.Payment Status.Value = "Plaćeno"; endIf;

7. Pritisnite F7. Pritisnite F5. Da vidimo kako sve radi, super smo. I veliki BOSS nam daje bonus.

OBJAŠNJENJE ZA KOD

Zašto postoji "Switch1" posvuda? Kako je već rečeno, program sva tri elementa percipira kao jedan, a pošto je "Switch1" prvi u grupi, onda ga program percipira kao cijeli element.Ako "Switch2" učinite glavnim u grupi , tada je potrebno izvršiti provjeru ispravnosti prema "Switch2".
Pa, odakle dolazi "0", "1", "2"? Postavljamo one vrijednosti koje objekt preuzima prilikom prebacivanja "prekidača" u paragrafima 3 i 4.

POGOVOR:

Ovaj kod je dat kao primjer rada sa prekidačima. Po mom mišljenju, ovo je jasnije i razumljivije. Ali vrijedno je spomenuti da u "Vrstu vrijednosti" možete odmah odabrati ono što vam je potrebno - unaprijed definiranu vrijednost iz direktorija, nabrajanje, na primjer, ili vrijednost niza. Odnosno, u gornjem primjeru, bilo je moguće odmah dodijeliti prekidače kao vrijednosti ne 0,1,2, već odmah "Neplaćeno", "Djelomično plaćeno", "Plaćeno". I tada će se kod svesti na jednu liniju:

Elementi obrasca.Status plaćanja.Vrijednost = Switch1;

Rezultat će biti isti.

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

Prekidači u kontrolisanim oblicima (UF) su intuitivniji.

Kada kreirate Switch, morate zapamtiti duo Atributi, Element forme.
Prije svega, trebate kreirati atribute obrasca. Postavljate tip atributa na vrijednosti koje će vaš prekidač prihvatiti. Odabrao sam tip String. Ovdje imate dvije opcije: ako ste kreirali atribut Object, tada će vrijednost koju je vaš prekidač prihvatio biti sačuvana u bazi podataka, ako jednostavno dodate na listu detalja obrasca, onda rezultat koji je vaš prekidač prihvatio neće biti sačuvan.

Zatim prevucite i ispustite atribute koji su nam potrebni u elemente obrasca. Prilikom kreiranja elementa obrasca, element u svojstvima "Pregled" će imati tip "Polje za unos". Odaberite "Field switch" sa liste. Kao rezultat, dobićete obrazac otprilike ovako:


Naziv elementa forme, boju, font, lokaciju i ostale ljepote popunjavamo po vašem ukusu.
Postoji stavka u svojstvima elementa obrasca. “Lista za odabir” - u nju unosite vrijednosti koje će vaš prekidač zauzeti prilikom odabira jedne ili druge stavke. U mom primjeru dodao sam redove sa vrijednostima “Snimi”, “Otkaži objavu”, “Objavi”.

Nakon toga, vaš prekidač je spreman za upotrebu.

Ovisno o tome da li je vaš prekidač atribut objekta ili atribut forme, koristite sljedeći kod da dobijete vrijednost pohranjenu u njemu:

SwitchFormElementFormElement // pristup direktno ako je ovo atribut Object form.SwitchInsideDB // pristup kroz element Object. na vaše detalje.

Klyuev V.V.

http://prof1c.kklab.ru

RAD SA PREKIDAČIMA

Uzmite u obzir sve korisnike usluge stranice - objavljujem materijale u rubrici Početnici!!!

8.2 Upravljani obrasci

Dok proučavaju ponašanje upravljanih formi, programeri ili programeri interfejsa suočavaju se sa pitanjem gde se nalaze prekidači u upravljanim oblicima i kako ih dodati u formu. To je sitnica, ali je neugodno što se puno vremena troši na takve sitnice, iako bi se ovo vrijeme moglo potrošiti na razvoj i optimizaciju algoritma, a ne na dizajniranje forme.

Dakle, hajde da napravimo praznu konfiguraciju da bismo razumeli pitanje ili izaberimo bilo koju tipičnu.
Idite na grupu koja sadrži direktorije i dodajte novi direktorij za eksperiment. Želio bih napomenuti da konfiguracija mora imati glavni način pokretanja - Managed Application.

Dakle, napravimo novi direktorij i dodamo atribut "Property1", sa tipom "Boolean"

Sada idemo na karticu Forms i dodajmo novi obrazac.

Dakle, kontrolirana forma je kreirana, sada radimo s formom i pronađemo gdje se nalazi prekidač.
Evo naše forme, a na njoj vidimo naše rekvizite, ali u obliku zastave

Pa šta smo pogrešili?
Pogledajmo svojstva rekvizita da vidimo da li postoji prelazak na tip kontrole.
I vidimo da polje Switch nije ovdje! (Gdje smo pogriješili?

Očigledno, tip kontrole na obrascu zavisi od tipa podataka, vratimo se na svojstva obrasca, odnosno karticu sa detaljima, i promenimo svojstva našeg atributa - odnosno njegov tip "Boolean", u tip "Broj ”.

Vratimo se sada na svojstva kontrole i provjerimo da li je View kontrole dodat njenim svojstvima - - - I ura, vidimo tamo pogled - Switch Field.

Sada pogledajte obrazac, šta vidimo:

Vidimo - 3 zadane vrijednosti, 3 prekidača, ali trebaju nam dva, idite ponovo na svojstva atributa i tamo pogledajte svojstva "Broj kolona"

Za 2 - postavite broj kolona - 2.

Ovo bi moglo malo zaustaviti umornog programera)), ali sada to znamo i on i mi!

8.2 Regularni oblici.

Dosadno sa prekidačima u običnim oblicima.
Postoje takvi trenuci, i dešavaju se) kada treba da izmenite neki gotov obrazac, koji već ima neke prekidače, a treba da dodate još jedan prekidač ovom obrascu. Tu nastaje neka vrsta dosadnosti koja oduzima dosta vremena, i to ne vremena za programiranje koda - već gubljenje vremena da bi se ti prekidači prikazali korisniku.

Pogledajmo primjer. Postoji takav dokument za prilagođavanje računa u 1C UPP - definitivno postoji. Jednom smo mu trebali dodati prekidače kako bi se iscrtali nešto drugačiji unosi za računovodstvo. U čemu je problem, čini se da moramo, moramo, uradićemo to. Ali ovaj obrazac već ima 2 radio dugmeta.

Ovako izgleda obrazac u koji trebamo dodati još prekidača


Na kartici Napredno želimo da postavimo još dva radio dugmeta. Dakle, prvi korak je hrabro dodati novi kontrolni element na mjesto koje nam je potrebno i umetnuti ga.

Čini se da je sve jednostavno. Kreiramo novi atribut tipa “Broj” i ubacujemo 2 prekidača, od kojih će jedan moći upisati podatke u atribut, a drugi neće.

Dodajte novi kontrolni element - Prekidač, dodajte Switch2 u tabelu sa brojem i opisom prekidača, postavite Switch1 prvi u grupi i pritisnite OK. Postavite kreirane kontrole na obrazac. Ažuriramo konfiguraciju baze podataka (F7) i pokrećemo je za otklanjanje grešaka.

Prilikom izvršavanja (prilikom kreiranja novog dokumenta u 1C:Enterprise modu) vidimo da se, bez obzira koliko pokušavamo kliknuti na Switch2, ništa ne događa. Elementi ne rade kako bi trebali. Postoji jedan trik.
Vratite se u konfigurator. Izaberite stavku menija Obrazac -> Postavi redosled prelaska... (važno je da obrazac bude otvoren na ekranu)


Da bi naši prekidači radili, morate prekinuti automatsku narudžbu i pristati na ručnu. I stavite ga u formu tako da naši prekidači idu jedan za drugim redom.

UREDU. Ažurirajte konfiguraciju i pokušajte je pokrenuti.
Odlično. Sve je funkcionisalo.

Dodatno - video (bez zvuka, tako da je sve jasno)


Najbolji članci na ovu temu