Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Iron
  • 1c 8.3 opcioni parametri upita dinamičke liste. Postavke dinamičke liste

1c 8.3 opcioni parametri upita dinamičke liste. Postavke dinamičke liste

Početna Bilješke iz ogledala

21.04.2014. Dobivanje podataka o dinamičkoj listi

Implementirano u verziji 8.3.6.1977.

Implementirali smo mogućnost lakog i praktičnog dobijanja podataka prikazanih pomoću dinamičke liste.

Možda će vam trebati podaci dinamičke liste da biste ih ispisali u nestandardnom, "specifičnom" obliku. Ili da bi s njima izvršili određene radnje. Na primjer, pošaljite pismo svim suradnicima koje ste odabrali na listi prema nekim kriterijima.

Osim toga, postoji niz zadataka u kojima korisnik, osim liste elemenata, želi vidjeti i zbirne podatke povezane s ovom listom. Na primjer, nakon odabira robe određene grupe proizvoda i određenog dobavljača, on odmah želi vidjeti ukupan broj takve robe u bazi podataka.

Sama dinamička lista vam ne može pružiti ove informacije. Svrha dinamičke liste je da pruži brzi pregled velikih količina podataka. Stoga on čita podatke u komadima koji su potrebni za prikaz na jednom ili dva ekrana. I „ne zna ništa“, na primjer, o ukupnoj količini podataka koje mora pročitati.

Općenito, da biste dobili dodatne informacije koje korisnik želi, morate postaviti upit u bazu podataka. Potpuno isti kao onaj koji se koristi u dinamičkoj listi.

Mogao si to i prije. Ali nije uvijek bilo lako. Uostalom, osim teksta originalnog upita, prema kojem funkcionira dinamička lista, trebali ste znati sve selekcije, sortiranja i druge parametre koje korisnik interaktivno postavlja u tablicu koja prikazuje podatke.

Sada se ovaj zadatak lako rješava. Tabela dinamičke liste ima dvije nove metode:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Tako dobijate samu šemu sastava podataka i, što je najvažnije, sve njene postavke, zahvaljujući kojima korisnik vidi listu baš onakav kakav jeste. Sve što treba da uradite je da programski sastavite izgled i ispišete ga u kolekciju vrednosti (za programsku obradu) ili u tabelarni dokument (za prikaz):

Kao rezultat, dobit ćete strukturu (ili izvještaj) koji sadrži stupce i redove koji se prikazuju u tabeli dinamičke liste.

Važna stvar je da izgled i postavke koje dobijete iz tabele dinamičke liste uzimaju u obzir, između ostalog, vidljivost kolona i primijenjenu pretragu. Pošto se postavke dobijaju zasebno, možete promijeniti sastav polja za svoje potrebe i dobiti, na primjer, sve kolone liste, a ne samo one koje su vidljive korisniku.

Prilikom izlaza u tabelarni dokument, postoji još jedan lijep trenutak. Općenito, izgled izvještaja će odgovarati izgledu tabele dinamičke liste u vrijeme prijema šeme i postavki. Uključujući uslovni dizajn stola. Neke dodatne radnje će vam trebati samo ako želite da prenesete i uslovni dizajn obrasca u izveštaj.

Web usluge je jedan od platformskih mehanizama koji se koristi za integraciju sa drugim informacionim sistemima. To je sredstvo podrške SOA (Service-Oriented Architecture) - servisno orijentisanoj arhitekturi, koja je savremeni standard za integraciju aplikacija i informacionih sistema.

Značajna prednost servisno orijentisane arhitekture je što vam omogućava da razvijete infrastrukturu preduzeća na homogen način, bez uništavanja postojećih rešenja. Njegova upotreba vam omogućava da minimizirate troškove integracijom heterogenih i naslijeđenih sistema u moderno preduzeće. Omogućava implementaciju labavo povezanih softverskih komponenti kako bi se maksimizirala njihova ponovna upotreba.

Servisno orijentisana arhitektura se aktivno razvija i podržava od strane velikih dobavljača. Izgrađena je na bazi usluga, autonomna ili upravljana izvana. Web servisi su preferirani način za njihovu implementaciju. Oni su nezavisni od platforme, samostalni i univerzalno podržani.

Aplikacijsko rješenje 1C:Enterprise 8 može biti i pružatelj web usluga i potrošač web usluga koje objavljuju drugi provajderi.

Sistemi koji koriste proizvoljne hardverske i softverske platforme mogu djelovati kao potrošači. Tehnologija web usluga je nezavisna od platforme.


Tehnička implementacija web servisa

Ako je aplikativno rješenje provajder web servisa, tada se iu fajl i klijent-server verziji rada interakcija između aplikativnog rješenja i korisnika web servisa odvija preko web servera, koristeći modul proširenja web servera.

U ovom slučaju, kada potrošač pristupi web servisu aplikacijskog rješenja, izvršava se modul web usluge. Ovaj modul je sadržan u konfiguraciji i sadrži procedure koje se izvode prilikom pozivanja određenih operacija web servisa.

U slučaju klijent-server operacije, ovaj modul će se izvršavati u klasteru. U slučaju verzije datoteke rada - u modulu proširenja web servera.

Ako je aplikativno rješenje potrošač web usluge treće strane, tada je interakcija između rješenja aplikacije i dobavljača web usluga

Osim primitivnih tipova podataka koji se mogu naći u bilo kojem programskom jeziku, u 1C postoje jedinstveni tipovi. Svaki od njih ima svoja svojstva, metode, funkcije, svrhu i nijanse upotrebe u sistemu. Jedna od ovih vrsta je dinamička lista, koja uvelike pojednostavljuje mnoge primijenjene zadatke. Zbog toga bi programeri trebali znati i biti sposobni da rukuju ovim svestranim alatom.

Značajke dinamičkih lista u 1C

Svrha ovog tipa je da prikaže informacije iz bilo koje tabele baze podataka, bez obzira na njen tip. Mehanizam je kreiran na bazi SKD-a i ima slične mogućnosti. Ali to ne znači da ćete sigurno morati napisati upit na 1C jeziku, iako ta mogućnost postoji i morate je koristiti. Možete jednostavno odrediti tablicu, informacije iz kojih ste zainteresirani, a 1C će samostalno generirati jednostavan upit.

Da biste vidjeli kako se formira dinamička lista i koje podatke prikazuje, potrebno je da u konfiguratoru otvorite upravljane forme, gdje se nalaze: u listi detalja otvorite njena svojstva kroz kontekstni meni i obratite pažnju na „Prilagođeno Zahtjev”. Ako ne postoji potvrdni okvir, tada parametar "Glavna tabela" odražava tabelu baze podataka iz koje su podaci preuzeti. Inače, dinamička lista odražava prilagođene podatke upita, što se može vidjeti otvaranjem postavke liste.

Šema proizvoljnog upita se mnogo češće koristi, jer pruža odličnu priliku za kombinovanje i prikaz širokog spektra podataka. Najčešće se ovaj mehanizam koristi za odraz stanja zaliha, cijena artikala, prihoda, troškova ili kupovine. Morate ga pažljivo koristiti, jer performanse mogu pasti sa složenim upitima.

Još jedno korisno svojstvo dinamičke liste otvara se klikom na natpis "Postavke liste". Ovaj meni omogućava, čak i kada se koristi standardni skup polja, da informacije budu pristupačnije i razumljivije krajnjim korisnicima. Bilo da se radi o proizvoljnom zahtjevu ili ne, vidjet ćete karticu "Postavke" gdje možete odrediti:

  • Izbor dinamičke liste;
  • grupacije;
  • sortiranje;
  • Registracija.

Upotreba parametara čini dinamičke liste svestranim i dovoljno fleksibilnim. Također ih možete povezati s rekvizitima na upravljanom obrascu, a podaci će se mijenjati ovisno o opcijama koje odabere korisnik. Upotreba ovih mehanizama može se razumjeti i cijeniti gledanjem primjera problema iz stvarnog svijeta.

Kao primjer, razmotrite problem odražavanja ostataka nomenklature na upravljanom obrascu. U stvarnoj praksi takvi su nalozi prilično česti u različitim konfiguracijama, a dinamička lista je idealna kao alat. Za ovaj zadatak morat ćemo koristiti proizvoljni upit, parametre dinamičke liste i njene postavke.

Radi veće jasnoće, napravimo posebnu eksternu obradu i postavimo dinamičku listu na nju. Za realizaciju naših planova biće nekoliko tabela sa nomenklaturom, tako da moramo dozvoliti proizvoljan zahtev. U njemu ćemo opisati lijevu vezu referentne knjige sa listom nomenklature i registrom ostataka i postaviti referentnu knjigu kao glavnu tabelu. Takva šema će omogućiti korisnicima da, dok rade sa dinamičkom listom, dodaju ili mijenjaju nomenklaturu.



Odaberite nomenklaturu.

Budući da je parametar CurrentDate korišten u našem zahtjevu, moramo postaviti njegovu vrijednost prije korištenja obrade. Da biste to učinili, u modulu obrasca u proceduri "On CreationOnServer" standardnom naredbom dodijelite mu funkciju "CurrentSessionDate" standardnom naredbom. Takođe moramo da prikažemo dinamičku listu na kontrolnom obrascu i promenimo redosled polja radi jasnoće. Prevucite rekvizite "Ostaci nomenklature" u elemente obrasca (gore lijevo) i koristite plave strelice da promijenite redoslijed polja u tabeli na obrascu.

&Na serverskoj proceduri pri kreiranju na serveru(failure, standardna obrada) nomenklatura ostaje.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


Već u ovoj fazi možemo otvoriti našu eksternu obradu u 1C i vidjeti da dinamička lista radi. Možemo pogledati bilanse, kreirati nomenklaturu i grupe i pretraživati. Često kupci traže da dodaju mogućnost izbora datuma za koji će vidjeti stanje. U slučaju obrasca sa dinamičkom listom, to je omogućeno dodatnim poljem i postavljanjem parametara pomoću njega.

Dodamo atribut “Remains Date” tipa “Date” i prenosimo ga u elemente obrasca. U polju događaji kreiramo događaj "OnChange" i pišemo kod za postavljanje parametra "CurrentDate" koji se koristi u dinamičkom upitu. Kako bi prilikom otvaranja obrasca korisnik odmah shvatio na koji datum vidi stanja, napravit ćemo male promjene u proceduri OnCreateOnServer.



&OnServerProcedureOnCreateOnServer(Failure, StandardProcessing)RemainsDate = CurrentSessionDate(); Stavka Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); Kraj procedure &na klijentu Procedura RemainsDateOnChange(Element) Stavka Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); EndProcedure

Kao rezultat, naš obrazac za dinamičku listu može prikazati stanja za bilo koji datum.

Pokrili smo samo mali dio mogućnosti ovog kompleta alata, ali to je već dovoljno da shvatimo pogodnost ove vrste dinamičke liste. Sličan mehanizam se koristi za mnoge zadatke, ali najčešće se nalazi u tipičnim konfiguracijama u upravljanim oblicima:

  1. selekcija;
  2. Liste.

Da bi dobio dinamičku listu i njen zahtjev u tipičnim upravljanim oblicima, programer treba da otvori traženi obrazac u konfiguratoru. U odjeljku atributa pronađite atribut sa tipom podataka "DynamicList" (najčešće je podebljan). Njegova svojstva sadrže tekst zahtjeva, odabire i druga podešavanja.

Konačno se ostvario san bilo kojeg "sedmo igrača". Koliko često korisnici programa 7.7 traže normalan odabir stavki. Tako da možete vidjeti stanja, cijene i postaviti filtere. Morao sam smisliti razne trikove, sve do pisanja vanjskih komponenti. U 1C 8.2 pojavile su se dinamičke liste. Predlažem da razmotrimo šta je to i šta nam mogu dati u 1C 8.3.

Uzmimo kao osnovu određenu testnu konfiguraciju 1C: "Enterprise Accounting 3.0". Nećemo sada vršiti selekciju, samo dodajte još jedan obrazac za izbor u referentnu knjigu "Nomenklatura" i učinite ga privremeno glavnim:

Kada se kreira, sistem će po defaultu dodati polje tabele sa tipom "Dinamička lista" u obrazac.

Hajdemo do njegovih posjeda i vidjeti šta se tu nalazi.

Prije svega, zanima nas polje za potvrdu "Proizvoljni zahtjev". On je taj koji će nam otkriti sve prednosti dinamičke liste. Imaćemo priliku da napišemo sopstveni upit, i to sa parametrima. Označite okvir i kliknite na link "Otvori":

Otvoriće se prozor sa gotovim kodom za . Do sada su tu jednostavno navedena sva polja imenika "Nomenklatura".

Nabavite 267 1C video lekcija besplatno:

Kao što vidite, postoji dugme za poziv "" i potvrdni okvir koji vam omogućava da dinamički menjate sadržaj liste. To jest, kada drugi korisnik promijeni nešto u direktoriju, to će se također promijeniti na našoj listi. Osim toga, postoji i kartica Postavke, ali ćemo se toga dotaknuti kasnije.

Prilagođeni upit u dinamičkoj listi

Prvo, kreirajmo upit koji nam je potreban sa stanjem i cijenama. Kao to:

Kartica Postavke

A sada najukusnije! Idite na karticu "Postavke". I odmah vidimo da na prvoj kartici možemo napraviti bilo koju selekciju za bilo koje polje u zahtjevu:

Programsko postavljanje parametara upita u dinamičkoj listi 1C 8.3

Ne zaboravite da imamo dva parametra u zahtjevu: "Period" i "Tip cijene". Moramo ih proslijediti zahtjevu, inače će doći do greške.

Zapišimo ove parametre u parametre obrasca i dodajmo sljedeće redove u modul obrasca:

&OnServerProcedure OnCreateOnServer(Failure, StandardProcessing) Lista. Parametri. SetParameterValue("Period", Parametri. Datum) ; Lista. Parametri. SetParameterValue("PriceType" , Parameters.PriceType) ; EndProcedure

Top Related Articles