Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • U kontaktu s
  • Postavljanje dinamičke liste 1s 8.3. Rukovanje i formatiranje podataka dinamičkog popisa

Postavljanje dinamičke liste 1s 8.3. Rukovanje i formatiranje podataka dinamičkog popisa

Napokon se ostvario san bilo kojeg "sedmoigrača". Koliko često korisnici programa 7.7 traže normalan odabir stavki. Tako da možete vidjeti stanja, cijene i postaviti filtere. Morao sam smišljati razne trikove, sve do pisanja vanjskih komponenti. U 1C 8.2 pojavili su se dinamički popisi. Predlažem da razmotrimo što je to i što nam mogu dati u 1C 8.3.

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

Kada je kreiran, sustav će prema zadanim postavkama u obrazac dodati polje tablice s tipom "Dinamički popis".

Idemo do njegovih posjeda i vidjeti što se tamo nalazi.

Prije svega, zanima nas potvrdni okvir "Proizvoljni zahtjev". On će nam otkriti sve prednosti dinamičnog popisa. Imat ćemo priliku napisati vlastiti upit, i to s parametrima. Označite okvir i kliknite vezu "Otvori":

Otvorit će se prozor s gotovim kodom za . Do sada su tamo jednostavno navedena sva polja imenika "Nomenklatura".

Dobijte 267 1C video lekcije besplatno:

Kao što vidite, postoji gumb za poziv "" i potvrdni okvir koji vam omogućuje dinamičku promjenu sadržaja popisa. Odnosno, kada drugi korisnik promijeni nešto u imeniku, to će se također promijeniti na našem popisu. Osim toga, tu je i kartica Postavke, ali ćemo se toga dotaknuti kasnije.

Prilagođeni upit u dinamičkom popisu

Prvo kreirajmo upit koji nam je potreban sa stanjem i cijenama. Manje-više ovako:

Kartica Postavke

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

Programsko postavljanje parametara upita u dinamički popis 1C 8.3

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

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

&OnServerProcedure Popis OnCreateOnServer(Neuspjeh, Standardna obrada). Mogućnosti. SetParameterValue("Period", Parametri. Datum) ; Popis. Mogućnosti. SetParameterValue("PriceType" , Parameters.PriceType) ; EndProcedures Početna Bilješke kroz ogledalo

21.04.2014. Dobivanje podataka o dinamičkoj listi

Implementirano u verziji 8.3.6.1977.

Implementirali smo mogućnost jednostavnog i praktičnog dobivanja podataka prikazanih pomoću dinamičkog popisa.

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

Osim toga, postoji niz zadataka u kojima korisnik, osim popisa elemenata, želi vidjeti i zbirne podatke povezane s tim popisom. 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.

Sam dinamički popis ne može vam pružiti ove informacije. Svrha dinamičkog popisa je pružiti brzi pregled velikih količina podataka. Stoga čita podatke u dijelovima potrebnim za prikaz na jednom ili dva zaslona. I "ne zna ništa", na primjer, o ukupnoj količini podataka koju mora pročitati.

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

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

Sada je ovaj zadatak lako riješen. Tablica dinamičkog popisa ima dvije nove metode:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Tako dobivate samu shemu sastava podataka i, što je najvažnije, sve njegove postavke, zahvaljujući kojima korisnik vidi popis točno onakav kakav jest. Sve što trebate učiniti je programski sastaviti izgled i ispisati ga u zbirku vrijednosti (za programsku obradu) ili dokument proračunske tablice (za prikaz):

Kao rezultat, dobit ćete strukturu (ili izvješće) koja sadrži stupce i retke koji se prikazuju u tablici dinamičkog popisa.

Važna je točka da izgled i postavke koje dobivate iz tablice dinamičkog popisa uzimaju u obzir, između ostalog, vidljivost stupaca i primijenjenu pretragu. Budući da se postavke dobivaju zasebno, možete promijeniti sastav polja za vlastite potrebe i dobiti, na primjer, sve stupce popisa, a ne samo one koji su vidljivi korisniku.

Prilikom ispisa u dokument proračunske tablice, postoji još jedan lijep trenutak. Općenito, izgled izvješća će odgovarati izgledu tablice dinamičkog popisa u trenutku prijema sheme i postavki. Uključujući uvjetni dizajn stola. Neke dodatne radnje trebat će vam samo ako želite prenijeti i uvjetni dizajn obrasca u izvješće.

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 korištenja u sustavu. Jedna od tih vrsta je dinamički popis, koji uvelike pojednostavljuje mnoge primijenjene zadatke. Zato bi programeri trebali znati i znati rukovati ovim svestranim alatom.

Značajke dinamičkih popisa u 1C

Svrha ove vrste je prikaz informacija iz bilo koje tablice baze podataka, bez obzira na njen tip. Mehanizam je stvoren na temelju SKD-a i ima slične mogućnosti. Ali to ne znači da ćete sigurno morati napisati upit na jeziku 1C, iako ta mogućnost postoji i trebate 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čki popis i koje podatke prikazuje, morate otvoriti upravljane obrasce, gdje se nalazi, u konfiguratoru: na popisu detalja otvorite njegova svojstva kroz kontekstni izbornik i obratite pozornost na "Prilagođeno Zahtjev" predmet. Ako nema potvrdnog okvira, tada parametar "Glavna tablica" odražava tablicu baze podataka iz koje su podaci preuzeti. Inače, dinamički popis odražava prilagođene podatke upita, što se može vidjeti otvaranjem postavke popisa.

Proizvoljna shema upita mnogo se češće koristi, jer pruža sjajnu priliku za kombiniranje i prikaz širokog spektra podataka. Najčešće se ovaj mehanizam koristi za odraz stanja zaliha, cijena artikala, prihoda, rashoda ili kupnje. Morate ga pažljivo koristiti, jer izvedba može pasti sa složenim upitima.

Još jedno korisno svojstvo dinamičkog popisa otvara se klikom na natpis "Postavke popisa". Ovaj izbornik omogućuje, čak i kada se koristi standardni skup polja, da informacije budu pristupačnije i razumljivije krajnjim korisnicima. Bez obzira radi li se o proizvoljnom zahtjevu ili ne, vidjet ćete karticu "Postavke" na kojoj možete odrediti:

  • Odabir dinamičkog popisa;
  • grupiranje;
  • sortiranje;
  • Registracija.

Korištenje 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. Korištenje ovih mehanizama može se razumjeti i cijeniti promatranjem primjera problema iz stvarnog svijeta.

Kao primjer, razmotrite problem odražavanja ostataka nomenklature na upravljanom obrascu. U stvarnoj praksi takve su narudžbe prilično česte u raznim konfiguracijama, a dinamički popis idealan je kao alat. Za ovaj zadatak morat ćemo koristiti proizvoljni upit, parametre dinamičkog popisa i njegove postavke.

Radi veće jasnoće, napravimo zasebnu vanjsku obradu i postavimo dinamički popis na nju. Za provedbu naših planova bit će malo tablica s nomenklaturom, tako da moramo dopustiti proizvoljan zahtjev. U njemu ćemo opisati lijevu vezu referentne knjige s popisom nomenklature i registra ostataka i postaviti referentnu knjigu kao glavnu tablicu. Takva shema omogućit će korisnicima, dok rade s dinamičkim popisom, da dodaju ili mijenjaju nomenklaturu.



Odaberite nomenklaturu Naziv Naziv kao naziv, roba i trošak prodaje Sklad kao skladište, roba i prodajni trošak Odjeća kao broj instalacija iz imenika Nomenklatura kao nomenklatura lijevog spoja registra Kontinuitet. Rezultati (& & ruralni

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 "Na CreationOnServeru" standardnom naredbom dodijelite mu funkciju "CurrentSessionDate" standardnom naredbom. Također moramo prikazati dinamički popis na kontrolnom obrascu i promijeniti redoslijed polja radi jasnoće. Povucite rekvizite "Ostaci nomenklature" u elemente obrasca (gore lijevo) i koristite plave strelice da promijenite redoslijed polja u tablici na obrascu.

&Procedura na poslužitelju pri stvaranju na poslužitelju (failure, standardna obrada) Nomenklatura ostaje.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


Već u ovoj fazi možemo otvoriti našu vanjsku obradu u 1C i vidjeti da dinamički popis radi. Možemo gledati bilance, kreirati nomenklaturu i grupe i pretraživati. Često kupci traže da dodaju mogućnost odabira datuma za koji će vidjeti stanje. U slučaju obrasca s dinamičkim popisom, 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 upisujemo 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(Neuspjeh, Standardna obrada)RemainsDate = CurrentSessionDate(); Stavka Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); Kraj postupka &na klijentu Procedura RemainsDateOnChange(Element) Stavka Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); EndProcedure

Kao rezultat toga, naš obrazac za dinamički popis 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 praktičnost ove vrste dinamičkog popisa. Sličan mehanizam koristi se za mnoge zadatke, ali najčešće se nalazi u tipičnim konfiguracijama u upravljanim oblicima:

  1. izbor;
  2. Popisi.

Da bi dobio dinamički popis i njegov zahtjev u tipičnim upravljanim oblicima, programer mora otvoriti traženi obrazac u konfiguratoru. U odjeljku atributi pronađite atribut s tipom podataka "DynamicList" (najčešće je podebljan). Njegova svojstva sadrže tekst zahtjeva, odabire i druge postavke.

U procesu finaliziranja konfiguracija, svaki 1C programer susreće se s dinamičkim popisima.
Dinamički popis je objekt sučelja koji se koristi za prikaz raznih popisa objekata baze podataka ili neobjektnih podataka – unosa registra.
Na primjer, dinamički popis koristi se za prikaz popisa stavki:

Da bismo demonstrirali mogućnosti dinamičkog popisa, napravimo vanjsku obradu, dodajmo glavni obrazac. Dodajmo novi atribut s tipom "Dynamic List" u obrazac. Idemo do njegovih posjeda i vidjeti što se tamo nalazi.
Zanima nas nekretnina "Prilagođeni zahtjev". Omogućavanje će nam pokazati sve mogućnosti dinamičkog popisa. Moći ćemo napisati upit koristeći gotovo sve značajke jezika upita sustava 1C: Enterprise. Označite okvir i kliknite vezu "Otvori":

Prema zadanim postavkama, naš popis će prikazati popis artikala s ukupnim stanjem za sva skladišta. Da biste implementirali takav popis, dodajte sljedeći upit:


Kao glavnu tablicu odabrat ćemo "Imenik. Nomenklatura", to će nam omogućiti rad s dinamičkim popisom, kao i s popisom nomenklature - dodaj, promijeni, označi za brisanje elemenata imenika. Također, postavljanjem glavne tablice dostupna je mogućnost dinamičkog čitanja podataka - to znači da će se odabir vršiti u dijelovima, prema potrebi.
Zatim moramo stvoriti elemente obrasca za naš popis:

Ako pokušamo pokrenuti našu obradu u ovom obliku, dobit ćemo pogrešku:


Da biste ga eliminirali, morate postaviti vrijednost parametra "Razdoblje". Da biste to učinili, možete koristiti metodu "SetParameterValue" zbirke "Parameters" dinamičkog popisa. Metoda ima dva parametra:
. "Parametar" - Vrsta: String; DataCompositionParameter. Naziv parametra ili parametra sastava podataka čija vrijednost treba postaviti;
. "Vrijednost" - Vrsta: proizvoljna. Vrijednost koju treba postaviti.
Može se pozvati u rukovatelju obrasca "OnCreateOnServer":

Imate pitanje, trebate li pomoć konzultanta?


Damo korisniku mogućnost promjene razdoblja za primanje stanja. Da bismo to učinili, dodajmo atribut i element obrasca "Datum" povezan s njim:


U rukovatelju "OnChange" elementa obrasca "Date", pozovite metodu "SetParameterValue", prosljeđujući vrijednost pridruženog atributa kao vrijednost. Slično ćemo promijeniti proceduru "On CreationAtServer" obrasca. Budući da je metoda dostupna na klijentu, nema potrebe pozivati ​​poslužitelj:


Sada, kada se datum promijeni, stanja će se automatski ažurirati:




Pretpostavimo da korisnici žele vidjeti trenutna stanja ili predviđene primitke. Razmotrimo jednu od mogućnosti implementacije. Dodajmo Booleov atribut obrasca i pripadajući radio gumb:


Prilikom promjene vrijednosti prekidača, promijenit ćemo tekst zahtjeva. Da bismo to učinili, koristit ćemo obrađivač događaja "OnChange" elementa obrasca "DisplayQuantityToReceipt". Moramo promijeniti svojstvo "QueryText" dinamičkog popisa ovisno o vrijednosti atributa. Budući da ovo svojstvo nije dostupno na klijentu, potreban je poziv poslužiteljskoj proceduri:


Rezultat izvršenih promjena:



Vrhunski povezani članci