Elementi za unos vrijednosti liste. Elementi za unos vrijednosti liste Karakteristike ponašanja polja za unos

31.10.2021

Obrazac se kontroliše kroz različite elemente forme, koji se hijerarhijski nalaze na kartici Elementi dizajner forme. Najvažniji element je sama forma, koja se nalazi na vrhu hijerarhije elemenata, a ostali elementi su joj podređeni.

Svi elementi forme mogu se podijeliti u pet grupa: polja, elementi grupisanja, dugmad, ukrasi i tabele. U svojim člancima analizirat ću svaku od grupa. U ovom članku počet ćemo proučavati jednu od vrsta elementa polja - polje za unos, ali prije toga ćemo naučiti kako dodati element u obrazac.

Dodavanje elemenata u obrazac

To se radi prilično jednostavno: potrebno je odabrati element Forma u prozoru Form Designer Elements i kliknite na dugme „Dodaj“. Nakon toga će se otvoriti prozor u kojem trebate odabrati željenu vrstu elementa

Nakon odabira, željeni element će se pojaviti u prozoru Elementi.

Upravljani element obrasca Polje

Pogledajmo upravljani element forme Polje. Ovaj element je potreban za unos informacija u formular. I za prikaz bilo koje informacije. Nakon što dodate ovaj element u obrazac, sa desne strane će se otvoriti paleta svojstava elementa obrasca. Za sada bi vas trebala zanimati dva svojstva – DataPath i View.

U svojstvu DataPath, programer može povezati element obrasca sa željenim atributom obrasca. Imajte na umu da nakon dodavanja elementa Polje za unos na obrascu nije bilo prikazano na samom obrascu. Ovo se desilo zbog našeg novi element nije povezano sa . Na primjer, kreirao sam nekoliko atributa na obrascu za obradu s različitim primitivnim tipovima i jedan atribut s referentnim tipom.

Sada povežimo naš nedavno dodani element obrasca s jednim od detalja Da biste to učinili, odaberite željeni atribut iz svojstva PathKData elementa.

Nakon toga, svojstva DataPath i View će biti popunjena, a sam element će biti prikazan u prikazu obrasca.

Obratite pažnju na svojstva elementa Pogled. Ovo svojstvo definira funkcionalnost polja za unos. Možete odabrati različite vrijednosti za ovu nekretninu.

Ovisno o odabranoj vrijednosti, bit će određena funkcionalnost. Na gornjim slikama, odabrana vrijednost je – polje za unos, tj. možemo unijeti bilo koju vrijednost u ovo polje za unos, a ako odaberemo vrijednost polje oznake, tada nećemo moći ništa unijeti.

Vrijednost ove imovine Pogled Polja za unos su zgodna za odabir kada samo trebate pokazati informacije pomoći korisniku.

Sada dodajmo novi element forme sa tipom Polje za unos i povežite ga sa rekvizitima DetailsDate preko već poznatog svojstva DataPath

Kao što vidite, izgled polja za unos se promenio, a promeniće se i mogući izbor vrednosti za svojstvo View.

Dakle, zaključujemo da funkcionalnost polja za unos zavisi od vrste atributa.

Za rekvizite sa tipom Boolean Sljedeće vrijednosti svojstva View će biti dostupne.

A za atribute s referentnim tipom, druge vrijednosti svojstva View bit će dostupne.

Detaljniji rad sa elementima forme na praktičnim primjerima dat je u knjizi „Osnove razvoja u 1C: Taxi. Upravljani razvoj aplikacija u 12 koraka".

Ponekad se čini da je učenje programskog jezika u 1C komplikovano i teško. U stvari, programiranje u 1C je jednostavno. Moje knjige će vam pomoći da brzo i lako savladate programiranje u 1C: i "Osnove razvoja u 1C: Taxi"

Naučite programirati u 1C uz pomoć moje knjige “Programiranje u 1C u 11 koraka”

  1. Bez komplikovanih tehničkih termina.
  2. Preko 700 stranica praktičnog materijala.
  3. Svaki zadatak je popraćen crtežom (screenshot).
  4. Zbirka zadataka za domaći zadatak.
  5. Knjiga je napisana jasno i jasno jednostavnim jezikom- za pocetnike.

Ova knjiga je pogodna za one koji su već počeli programirati i imaju određenih poteškoća s ovom temom i za one koji se već duže vrijeme bave programiranjem, ali nikada nisu radili sa kontrolisane forme 1C

  1. Bez složenih tehničkih termina;
  2. Više od 600 stranica praktičnog materijala;
  3. Svaki primjer je popraćen crtežom (screenshot);
  4. Knjiga se šalje na email V PDF format. Može se otvoriti na bilo kom uređaju!

Promo kod za popust od 15% - 48PVXHeYu


Ako vam je ova lekcija pomogla da riješite bilo koji problem, svidjelo vam se ili smatralo korisnim, onda možete podržati moj projekat doniranjem bilo kojeg iznosa:

Možete platiti ručno:

Yandex.Money - 410012882996301
Web Money - R955262494655

Pridružite se mojim grupama.

Tokom razvoja aplikativnog rješenja može se pojaviti zadatak odabira vrijednosti sa unaprijed definirane liste. Lista vrijednosti može biti povezana s nekim konfiguracijskim podacima, ili definirana za obrazac. Ovaj zadatak se može postići korištenjem kontrola Select Box, List Box i Input Box.
U slučaju Polja za izbor korisnik zapravo može odabrati vrijednost sa liste. Lista se može ili pridružiti podacima ili proizvoljno definirati za dati obrazac korištenjem opcije Linije liste izbora.
IN Polje liste se prikazuje korisniku puna lista vrijednosti, ne morate širiti listu da odaberete onu koja vam je potrebna:

IN Polje za unos može se odabrati iz podataka o referentnoj vrsti:

Pitanje 10.49 ispita 1C: Platforma Professional. Možete koristiti sljedeće kontrole za odabir vrijednosti sa lista:

  1. Polje za unos
  2. Polje za odabir
  3. Polje liste
  4. Odgovori 2 i 3 su tačni
  5. Odgovori 1, 2 i 3 su tačni
Tačan odgovor je peti, analiza iznad.

Pitanje 10.64 ispita 1C: Platforma Professional. Da li je moguće istovremeno kreirati kontrolu okvira za unos zajedno sa legendom koja predstavlja kontrolu okvira za tekst?

  1. Ne, ne možete, jer su to različite kontrole
  2. Možete, da biste to uradili potrebno je da kreirate polje za unos kroz stavku glavnog menija "Kontrola za umetanje obrasca..."
  3. Možete, da biste to učinili potrebno je da kreirate polje za unos koristeći istoimeno dugme na alatnoj traci "Kontrole"

Tačan odgovor je drugi:

Pitanje 10.65 ispita 1C: Platforma Professional. Kontrola "Polje unosa" namijenjena je za:

  1. Unos vrijednosti direktno u polje, na primjer, s tastature
  2. Odabir veza objekata
  3. Odabir vrijednosti sa unaprijed generirane liste
  4. Odgovori 1, 2 i 3 su tačni
  5. Odgovori 1 i 2 su tačni

Tačan odgovor je četvrti, sve opcije su dostupne.

Pitanje 10.66 ispita 1C: Platforma Professional. Tanka isprekidana crvena linija u polju za unos druge strane znači:

  1. Ovo polje nije dostupno za popunjavanje.
  2. Ovo polje je obavezno
  3. U ove oblasti kreiran je rukovalac za događaj "CheckFill".
  4. Ovo polje ima definiran jedan (ili više) rukovatelja događaja

Tačan odgovor je drugi - znači obavezan.

Pitanje 10.68 ispita 1C: Platforma Professional.Sastav dugmadi koji se nalaze na desnoj strani kontrole „Polje unosa“ određuju:

  1. Vrijednost svojstva polja za unos "Tip vrijednosti"
  2. Izborom odgovarajućeg svojstva u prozoru svojstava kontrole
  3. Vrsta forme
  4. Odgovori 1 i 2 su tačni
  5. Odgovori 1, 2 i 3 su tačni

Tačan odgovor je četvrti. Prva opcija je određena činjenicom da se svaki tip podataka ne može otvoriti za pregled (na primjer, za nabrajanje). Postoji i druga opcija:

Pitanje 10.70 ispita 1C: Platforma Professional.Koje dugme treba kreirati za kontrolu Polje unosa da bi se padajuća lista mogla koristiti za odabir vrijednosti?

  1. Dugme za odabir liste
  2. Dugme za odabir
  3. Dugme za regulaciju
  4. Ne postoji pravi odgovor

Tačan odgovor je prvi, stvarno dugme liste izbora (trougao).

Pitanje 10.71 ispita 1C: Platforma Professional.Da li je moguće unijeti vrijednosti različitih tipova u jednu kontrolu polja za unos?

  1. To je zabranjeno
  2. Moguće ako je postavljen na složeni tip vrijednosti
  3. Moguće je ako je za njega specificiran složeni tip vrijednosti, kao i svojstvo “Odaberi tip”.

Tačan odgovor je treći:

Pitanje 10.73 ispita 1C: Platform Professional.Da li se skup svojstava razlikuje za kontrolu polja za unos kreiranu u obrascu i nalazi se u polju tabele ovog obrasca?

  1. Varira
  2. Ne razlikuje se
  3. Varira osim ako nisu polja istog tipa vrijednosti

Tačan odgovor je prvi, ima manje opcija u "tabelarnom" polju za unos, nema odjeljka Upotreba:

Pitanje 10.67 ispita 1C: Platforma Professional. Ako je “DirectoryLink.Nomenclature” odabran kao tip vrijednosti za kontrolu “Input Field”, da li je moguće brzo odabrati vrijednost ovog polja upisivanjem naziva određene stavke stavke direktno u samo polje za unos?

  1. Ne, ne možeš
  2. Može. Da biste to učinili, morate odabrati svojstvo polja za unos "Automatski odabir prazno"
  3. Može. Da biste to učinili, morate odabrati svojstvo polja za unos "Brzi odabir".
  4. Može. Da biste to učinili, u prozoru za uređivanje imenika "Nomenklatura", na kartici "Obrasci", u polju "Unos po liniji", odaberite "Naziv"

IN nova verzija 8.3.5 platforme 1C:Enterprise sadrži mnogo novih promjena i dodataka. Neki od njih su opisani u prethodnim.

Kreiraj dugme dok kucate.

U novom 1C 8.3.5 Kreiranje novih elemenata podataka je pojednostavljeno.

Kada radite sa poljem za unos, često morate kreirati novi element. Dakle, na listi koja se spušta ispod polja za unos, bilo je dodao dugme za kreiranje novog elementa.

Sada, ako među prikazanim elementima (na primjer, prilikom otvaranja liste za brzu selekciju) nema nikog koji vam treba, tada korisnik bez napuštanja ovog obrasca, mozda odmah kreirajte novi element. Klikom na dugme za kreiranje novog elementa otvara se formular u kojem se popunjavaju potrebna polja, a zatim ga korisnik zatvara, a link ka ovom elementu se automatski ubacuje u polje za unos.

Ova tehnika se može koristiti u slučajevima kada se unaprijed zna da se traženi element ne nalazi u bazi podataka. Na primjer, kada je stigao proizvod od novog dobavljača. Ili kada se izvrši početna populacija baze podataka.

A u situaciji kada korisnik nije siguran da li je traženi element u bazi ili ne, sve sada je još zgodnije. Na primjer, korisnik počinje unositi ime i sistem ga obavještava da traženi element nije u bazi podataka. Zatim treba da kliknete na dugme da kreirate novi element i sistem će umetnuti željeno ime u polje „Naziv novog elementa“. Ostaje samo da kliknete na dugme "Snimi i zatvori".

Ova funkcija je dostupna iu novom Taxi interfejsu iu starom interfejsu.

Traži po nizu.

IN "1C: Enterprise 8.3.5" linijski unos je ozbiljno poboljšan, za šta je novi moćan pretraživač u polju za unos. Sada može brzo raditi kroz milione zapisa sadržanih u bazi podataka.

Linijski ulaz je dobio potpuno nove mogućnosti.

Pretraga se može izvršiti bilo gdje na liniji, a ne samo na početku U ovom slučaju, korisnik može kucati bilo koji fragmenti reči.

U velikim bazama podataka, pretraživanje punog teksta vam omogućava da brzo pronađete odgovarajuće podatke za bilo koju riječ. Također je moguće pretraživati ​​i prema nekoliko poznatih riječi, a nedovršene riječi će se automatski dopuniti mogućim kombinacijama.

Ako je količina podataka velika, možete pretraživati ​​koristeći pozadinski posao. Zatim će se pored polja za unos korisnicima prikazati animirana slika.

Ispis (Ctrl+P)

Za objekte aplikacije (direktorije, dokumenti, planovi tipova karakteristika, kontni planovi, obračunski planovi, registri, poslovni procesi i zadaci, kao i planovi razmjene) u svojstvu Unos po liniji možete odrediti detalje pomoću kojih se vrši se pretraga. Ako je linijski unos dozvoljen (navedeni su odgovarajući detalji), onda je dozvoljeno u polje za unos odgovarajućeg tipa ne birati iz obrasca objekta, već unositi informacije sadržane u pojedinostima navedenog objekta.
Na primjer, u imeniku Nomenklatura dozvoljen je unos u liniju za atribut imena. Imenik ima nekoliko naslova, koji sadrže nekoliko proizvoda koji počinju riječju Be. Zatim, unosom u polje za unos
item substring Be, dobićemo listu proizvoda koji počinju ovom rečju Enter by line

Detalji koji će se koristiti za obavljanje pretrage mogu uključivati:
● Za imenike, planove tipova karakteristika, planove konta, planove obračunskih vrsta, planove razmene - Šifra i Naziv.
● Za dokumente – Broj.
● Za poslovne procese i zadatke – Broj i Naziv.
● Atributi tipa broj ili niz, za koje je svojstvo Indeks postavljeno na Indeks ili Indeks s dodatnim naručivanje. Primer potonjeg je polje za unos artikla, bar koda ili poreskog identifikacionog broja.

Postavljanje linijskog unosa

Da biste generisali listu detalja, potrebno je da kliknete na dugme za odabir i u dijalogu koji se otvori preneti na lijevu listu ona polja koja se mogu koristiti za unos red po red.


Postavljanje linijskog unosa

Ako postoji nekoliko polja, postavite redoslijed po kojem se pojavljuju. Kada pretražujete po nizu, pretraga se vrši u poljima onim redom kojim su data u ovom dijalogu. Na primjer, za Nomenklaturu elementa imenika, unos se može izvršiti i po kodu i po artiklu. Ako se vrijednost koda jednog elementa poklapa s vrijednošću artikla drugog, tada će pronađene vrijednosti biti uključene u listu onim redoslijedom kojim su specificirane tijekom postavljanja.
PAŽNJA! Prilikom pretraživanja podataka (prilikom unosa u red) vrijede ograničenja pristupa podacima.
Pored navođenja polja koja će se koristiti za pretragu, sistem vam omogućava da dodatno konfigurišete neke parametre pretrage. Svojstvo String metode pretraživanja namijenjeno je specificiranju metode pretraživanja niza:
● Samo na početku polja odabranog za unos reda (početna vrijednost). U ovom slučaju, niz za pretraživanje se ne dijeli na riječi, već se uneseni tekst pretražuje u cijelosti. Na primjer, ako se pretraga vrši u sljedećim podacima: Ivanov Maxim i Maksimov, onda kada u polje za unos unesete riječ Maxim, naći će se podatak Maximov, a kada unesete Ivan Max u polje za unos ništa neće biti pronađen.
● U bilo kojem dijelu polja (vrijednost Bilo koji dio). Ako se niz za pretraživanje sastoji od nekoliko riječi i pretraga se vrši u bilo kojem dijelu, tada se za pretraživanje koristi upit sličan sljedećem (za dva polja i dvije riječi):

(Polje1 KAO “%Word1%” ILI Polje2 KAO “%Word1%)”) I (Polje1 KAO “%Word2%” ILI Polje2 KAO “%Word2%”)
Nekretnina Pretraživanje cijelog teksta omogućava vam da koristite pretragu po celom tekstu kada organizujete unos po redovima. Pretraživanje punog teksta ne može se koristiti na eksternim tabelama izvora podataka. Korištenje pretraživanja cijelog teksta ima nekoliko karakteristika:
1. Pretraživanje cijelog teksta se uvijek izvodi na početku riječi.
2. Pretraživanje po punom tekstu koristi se za početni odabir objekata u kojima će se vršiti daljnja pretraga (smanjuje se broj objekata u kojima će se tražiti).
3. Sve neindeksirane veze iz tabele na kojoj je izvršen unos u red biće dodane rezultatima pretrage celog teksta.
4. Na listi odabranih objekata će se tražiti polja koja su odabrana za upotrebu u mehanizmu za unos stringova na način specificiran svojstvom Metoda pretraživanja stringova.
5. Za svaku riječ iz upit za pretragu simbol “*” se dodaje na kraju.
Ove karakteristike mogu dovesti do:
● Pretraga punog teksta može previše suziti skup podataka za pretragu ako se bilo koja pretraga po dijelovima koristi u kombinaciji s pretraživanjem cijelog teksta. Kao rezultat toga, podaci neće biti pronađeni. U tom slučaju, onemogućavanje pretraživanja cijelog teksta rezultirat će pronalaženjem potrebnih podataka. To će se dogoditi jer pretraživanje cijelog teksta gleda samo na početak riječi. Ako se traženi tekst ne nalazi na početku riječi, unosom duž reda neće se naći takvi podaci.
● Zastarjeli indeks pretraživanja punog teksta može negativno utjecati na rezultate pretraživanja.
● Ako se pretraga celog teksta završi greškom, tada će se primeniti normalna pretraga, u skladu sa svojstvom String Search Method. To može dovesti do situacije u kojoj pronađeni objekt postane nenađen (za metod pretraživanja po bilo kojem dijelu riječi). Na primjer: u polje za unos upisuje se znak „a“, koje se nalazi ne samo na početku, već i u sredini niza riječi u kojima se vrši pretraga. Za veliki skup podataka, pretraživanje cijelog teksta neće uspjeti (rezultat pretraživanja je prevelik), a uobičajena pretraga će pronaći podatke koji sadrže slovo “a” unutar sebe. Tada će korisnik unijeti drugo slovo (na primjer, “ts”) i string za pretraživanje će postati “ats”. U ovom slučaju, pretraživanje punog teksta će odabrati samo one podatke koji počinju s “ac” i zanemarit će one podatke koji sadrže “ac” u sebi.
Ako padajuću listu generiše sistem (a ne koristeći programski kod aplikativnog rješenja), tada se pomoću posebnog algoritma formiraju reprezentacije pronađenih objekata. Pronađeni prikaz objekta sastoji se od dva dijela: prikaza atributa koji sadrži niz za pretraživanje (obavezni dio) i dodatnog pogleda (opcijski dio).
Stvarna reprezentacija se formira na sljedeći način:
● Definirano je polje koje sadrži niz za pretraživanje:
● Ako koristite pretragu celog teksta ili uobičajenu pretragu za nekoliko reči, ovo polje će biti prvo polje od polja navedenih u svojstvu Input by line u kojem se nalazi prva reč iz niza za pretragu.
● Kada koristite uobičajenu pretragu za jednu riječ, ovo polje će biti atribut u kojem je izvršeno pretraživanje.
● Reprezentacija vrijednosti koja se nalazi u određenom polju bit će obavezan dio reprezentacije pronađenog objekta za padajuću listu.
● Određuje da li je potrebno ili ne generirati dodatnu reprezentaciju. Da biste to učinili, odredite sastav polja koja će se koristiti za formiranje dodatnog prikaza:
● Ako pronađeni objekat ima samo jedno polje koje se koristi za formiranje reprezentacije, a string za pretragu se nalazi u ovom atributu, koriste se polja alternativnog prikaza.
● U suprotnom, koriste se polja glavnog prikaza. Lista primarnih i alternativnih polja za prikaz je data u nastavku.
● Ako je lista polja za generisanje dodatnog pogleda prazna, dodatni prikaz se ne generiše. U suprotnom, dodatna reprezentacija se generira na sljedeći način:
● Tekstualni prikaz svih polja koja su odabrana da formiraju dodatni prikaz je zatvoren u zagradama, kroz “, “;
● Generisani dodatni prikaz se dodaje desno, odvojen razmakom, potrebnom delu reprezentacije pronađenog objekta.
● Sljedeća polja se koriste za formiranje glavnog i alternativnog prikaza:
● Imenik, poslovni proces, tipovi plana karakteristika, kontni plan, vrste obračunskog plana:
● Glavni prikaz: Ime, Šifra.
● Alternativni prikaz: U zavisnosti od toga koji je primarni prikaz odabran, preostalo polje se koristi za alternativni prikaz.
● Dokument:
● Osnovni prikaz: Broj, Datum.

● Zadatak:
● Osnovni prikaz: Ime, Broj, Datum.
● Alternativno predstavljanje: nema.
● Eksterni izvor podataka:
● Glavni prikaz: polje navedeno u svojstvu Polje prikaza tabele eksterni izvor podaci.
● Alternativno predstavljanje: nema.
Svojstvo Selection Data Retrieval Mode kontrolira kako platforma traži podatke dok se unose duž linije. Ako je svojstvo postavljeno na Pozadina, tada se za dobijanje podataka koristi pozadinski posao, a animirana slika se prikazuje na padajućoj listi, slično izvršavanju izveštaja u pozadini (pogledajte ovde). Pozadinski posao se koristi ako traženi podaci nisu primljeni za prikaz korisniku unutar 200 ms. Za verzija datoteke baza informacija moguće je dobiti podatke u pozadini u slučaju da nijedan drugi pozadinski ili rutinski zadatak nije pokrenut u vrijeme prijema podataka. Dok se rezultati odabira u pozadini preuzimaju, korisnik može nastaviti uređivati ​​polje za unos. Navođenje Directly kao vrijednosti svojstva uzrokuje da se pretraga izvodi bez upotrebe pozadinskih poslova.
Prilikom postavljanja linijskog unosa, preporučuje se da slijedite ove smjernice:
● Preporučuje se postavljanje vrijednosti Pozadina za svojstvo Selection Data Retrieval Mode za objekte u kojima je planirana velika količina podataka.
● Preporučljivo je omogućiti pretraživanje punog teksta za objekte gdje se očekuje velika količina podataka.
● Preporučljivo je omogućiti pretragu redova bilo gdje u kombinaciji s pozadinskom pretragom ili u tabelama gdje se ne očekuje velika količina podataka. Takođe je preporučljivo da velike količine podataka, ako omogućite pretragu bilo gdje, tada omogućite pretraživanje punog teksta (tako da se većina pretraživanja izvodi putem pretraživanja punog teksta).

Karakteristike ponašanja polja za unos

Prilikom unosa podataka u polje za unos treba uzeti u obzir neke karakteristike rada sa izbornom listom. Ako se kao rezultat kucanja pronađe nekoliko objekata koji počinju unesenim tekstom, tada će se lista ovih objekata nalaziti na padajućoj listi. Dok kuca, korisnik može koristiti dugmad sa strelicom nagore i strelicom nadole za kretanje kroz listu dok nastavlja da kuca u samom polju. U tom slučaju, za odabir potrebno je odabrati željeni element i potvrditi izbor pritiskom na Dugmad Enter ili Tab. Za kreiranje liste
Prilikom odabira polja za unos koristi se sljedeći algoritam:
1. Podaci se dobijaju pretragom u prvom polju (sa liste izabranih polja) po početku niza i po podnizu. Broj zapisa dobijenih kao rezultat pretrage na početku niza će se zvati RS, a broj zapisa dobijenih kao rezultat pretrage po podnizu će se zvati RP.
2. Ako je RS+RP<=10, то в выпадающий список попадут все результаты каждого поиска.
3. Ako su RP i RS veći od 5 (svaki), tada će izborna lista sadržavati 5 unosa sa svake liste.
4. Ako je bilo koja od RP ili RS vrijednosti manja od 5, tada će padajuća lista uključivati ​​sve unose sa manje liste i onoliko unosa sa veće liste da se padajuća lista dovrši do 10.
5. Ako je ukupan broj unosa u padajućoj listi manji od 10, tada izvodimo algoritam iz koraka 1 za sljedeće polje sa liste odabranih polja, koristeći razliku između 10 i broja dobijenih rezultata kao broj podataka potrebnih za dobijanje u sledećem koraku.

Programsko generiranje izborne liste

Ako programer nije zadovoljan načinom na koji se generira lista odabira, može je sam poništiti.
To možete učiniti na dva načina:
● Direktno u obrascu - u ovom slučaju, posebno formiranje liste izbora će raditi samo za ovo jedno polje. Da biste to učinili, morate definirati rukovaoce događajima za StartSelection, AutoSelection i EndInputText.
● U modulu menadžera odgovarajućeg objekta - u ovom slučaju će se generisati posebna lista izbora za sva polja za unos u koja se unose vrednosti objekta koji se koristi.
Ako je polje povezano s podacima koji imaju tip reference na objekt aplikacije (na primjer, DirectoryReference, EnumerationReference, itd.), tada se izborna lista može generirati ili u modulu upravitelja odgovarajućeg objekta, ili pomoću modula obrasca rukovaoci. U drugim slučajevima, lista odabira može se generirati samo pomoću rukovatelja modula obrasca.
Pogledajmo bliže drugu metodu.
Da programski generišete listu odabira, morate nadjačati rukovalac događaja za ProcessingReceivingDataManagerSelection
objekt. Rukovalac prima skup parametara koji određuju uslove za generisanje liste izbora. Skup parametara je
struktura koja sadrži:
● Search string – tekstualni niz koji sadrži tekst koji je korisnik uneo u polje za unos. Ovo svojstvo je uvijek prisutno (svojstvo
SearchString).
● Odabir – struktura koja opisuje odabir onako kako ga opisuje parametar obrasca za odabir za proširenje obrasca za dinamičku listu.
Ova nekretnina je uvijek prisutna.
Odabir naveden u ovom svojstvu bit će pretvoren (ako je moguće) u upit za pretraživanje cijelog teksta, prečišćavajući ovaj upit za
povećanje brzine pretraživanja.
● Svojstvo koje specificira način odabira grupa i elemenata (prijeno samo za hijerarhijske liste) – svojstvo SelectionGroupsAndElements.
● Svojstvo koje određuje kako tražiti string: po početku riječi ili bilo kojem dijelu (osobina String Search Method).
● Potreba za korištenjem pretraživanja punog teksta (svojstvo Full-TextSearch).
● Način za primanje podataka o odabiru (svojstvoSelectionDataReceivingMode).
● Osim toga, struktura sadrži elemente koji su specificirani u svojstvima elementa obrasca – Veze parametara odabira (pogledajte ovdje) i parametri
izbor (vidi ovdje).
Dodatno, promenljiva se prosleđuje rukovaocu u koji treba da se vrati generisana lista izbora i parametar StandardProcessing.
koji definiše ponašanje sistema nakon izlaska rukovaoca.
Ako programer postavi parametar StandardProcessing na False, tada mora sam u potpunosti generirati izbornu listu.
Ako postavite standardnu ​​zastavicu za obradu na Tačno, možete dozvoliti sistemu da generiše izbornu listu, ali kada
U tom slučaju možete izmijeniti parametre odabira (dodati dodatne vrijednosti odabira, promijeniti način odabira grupa i elemenata, itd.).
Napomena 1. Ako sistem sam generiše izbornu listu, ograničenja pristupa podacima se uzimaju u obzir prilikom generisanja liste.
Napomena 2: Primjeri u nastavku nisu potpuni. Namjera im je da pokažu različite mehanizme za dobijanje lista za odabir.
Dakle, sljedeći kod, u slučaju bilo kojeg teksta koji unese korisnik, pruža izbor između tri proizvoda, sa šiframa 00000002, 00000003 i 00000004.
primjer:

Procedura ProcessingReceiveSelectionData(Podaci o izboru, parametri, StandardProcessing)
SelectionData = NewValueList ;
(“00000002”));
Podaci o odabiru.Dodaj(Direktoriji.Proizvodi.Pronađi po kodu(“00000003”));
Podaci o odabiru.Dodaj(Direktoriji.Proizvodi.Pronađi po kodu(“00000004”));

StandardProcessing= False;
Kraj procedure

U sljedećem primjeru, izbor koji je generirano polje za unos će se proširiti postavljanjem dodatnog odabira tako da nijedna usluga nije uključena u listu odabira. U ovom slučaju, sistem vodi računa o formiranju liste izbora.
primjer:

Procedura
Options.Selection.Insert("Pogled", Transferi.Vrste proizvoda.Proizvod);
Kraj procedure

Kao konačni primjer, razmotrite pojednostavljeni slučaj implementacije selekcije u potpunosti koristeći ugrađeni jezik. U ovom primjeru razmotrit ćemo odabir proizvoda čija imena počinju nizom koji je korisnik unio u polje za unos.
primjer:

Procedura ProcessingReceivingSelectionData(SelectionData, Parameters, StandardProcessing)
Zahtjev = Novi zahtjev;
Query.Text = “ODABIR DOZVOLJENO
| Products.Link kao proizvod
|OD
| Imenik.Proizvodi AS Proizvodi
|WHERE
| Products.Name SLIČNO &Naziv”;
Request.SetParameter("Ime", Parameters.Search String + “%”);
Rezultat = Query.Execute();
Tablica rezultata = Rezultat.Učitavanje();
Niz proizvoda = Tabela rezultata Unload Column("Proizvod");
SelectionData = Novo ValueList;
SelectionData.LoadValues(ProductArray);
StandardProcessing= False;
Kraj procedure

Također biste trebali obratiti pažnju na još jedan način formiranja izborne liste: prosljeđivanje kao vrijednost elementa liste vrijednosti ne reference na objekt koji se traži (kao u gornjim primjerima), već strukturu posebnog sadržaja .
Ova struktura se sastoji od sljedećih elemenata:
● Vrijednost – stvarna vrijednost odabranog elementa. Element strukture sa ovim imenom mora biti prisutan.
● MarkDeletion – indikacija da je odabrana vrijednost označena za brisanje u infobazi. Element strukture s ovim imenom nije obavezan.
● Upozorenje – red sa tekstom upozorenja koji će 1C:Enterprise prikazati kada izaberete takav element sa liste vrednosti.
Element strukture s ovim imenom nije obavezan.
Ako je u strukturi svojstvo Deletion Flag jednako True i svojstvo Warning nije navedeno, tada će sistem automatski generirati tekst upozorenja. Ako je specificirano svojstvo Warning, to je ono što se prikazuje. Treba imati na umu da se tekst upozorenja završava pitanjem Nastaviti? i prikazuje se kao pitanje sa opcijama odgovora Da i Ne.
Zatim ćemo prikazati modifikaciju prethodnog primjera, u kojoj će se generirati upozorenje Ovo skladište ne treba koristiti za skladišta sa atributom Ne koristi postavljenim na Tačno.
Također možete kombinirati vrijednosti tipa strukture i jednostavne vrijednosti u jednoj listi izbora.
primjer:

Procedura ProcessingReceivingSelectionData(SelectionData, Parameters, StandardProcessing)
StandardProcessing= False;
SelectionData = NewValueList;
// Kreirajte listu sa upozorenjima
Zahtjev = Novi zahtjev;
Query.Text = “ODABIR
| skladišta. Link,
| Skladišta.Naziv,
| Skladišta. Ne koristiti
|OD
| Imenik skladišta AS skladišta”;
Rezultat = Query.Run();
SelectionDetailRecords = Rezultat.Odaberi b();
ćao OdaberiteDetailRecords.Next() Ciklus
Struktura = Nova struktura (“Vrijednost”,

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 pvSelection nomenklaturne regulacije (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();

//traži 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, polje za potvrdu ima tri stanja u trećem stanju, polje za potvrdu je prikazano kao označeno i istovremeno zasjenjeno. 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. Pokretni red se podešava iz menija "Obrazac -> Podešavanje redosleda prelaska", za ovaj primjer izgleda ovako:

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