1s 8.3 Stanje komunikacije SKD. Odnosi skupova podataka u sustavu kontrole pristupa i principi njihove upotrebe

Ponekad je za dobivanje određenog rezultata izgleda potrebno napraviti veze između skupova podataka u sustavu kontrole pristupa. Pokušat ćemo razgovarati o tome kada je to potrebno i kako to učiniti u našem članku.

Shema rasporeda podataka implementirana u 1C podržava tri vrste izvora podataka (Sl. 1)

Izvori podataka

Najočitiji i najčešće korišten izvor podataka od strane programera je upit.

Dizajner upita implementiran u verziji 8 od 1C vrlo je zgodan i, u većini slučajeva, možete povezati nekoliko tablica zajedno i napraviti potrebna grupiranja i odabire izravno u njemu.

U složenim slučajevima, kada je potrebno ili prikladnije koristiti izvršavanje nekog koda (na primjer, učitavanje podataka iz datoteke treće strane) ili kada nije moguće koristiti upit, izvor podataka “Object” dolazi do spašavanje. Proizvoljni kod koji se izvršava u modulu mora imati određenu strukturu na izlazu kojoj sustav kontrole pristupa može pristupiti.

Treći izvor podataka je "Unija". Zapravo, ovaj izvor se može smatrati jednom od vrsta komunikacije. Kombinira (svodi više tablica u jednu), bez podudaranja, već slučajnosti pojedinih polja. To jest, ako dvije tablice koje se spajaju imaju 3 odnosno 4 retka, tada će rezultirajući izvor podataka imati 7 redaka.

Formulacija problema

Kao poligon za testiranje odabrat ćemo UPP bazu, verzija 1.3.92.3, koja radi u normalnom modu aplikacije.

Dobili smo sljedeći zadatak: koristeći samo sustav kontrole pristupa izraditi izvještaj koji će prikazati tablicu kupljenih artikala iz dokumenta, s cijenama preuzetim iz datoteke poslane od strane druge ugovorne strane.

Stoga moramo:

  1. Uzeti tablični dio dokument o primitku;
  2. Učitajte datoteku u izvor podataka “Object”;
  3. Povežite ova dva izvora određenim parametrom (u našem slučaju to će biti kod);
  4. Prikažite dobivenu tablicu.

Proces izvršenja

Prođimo kroz sve navedene korake:

  • Kreiramo upit za tablični dio dokumenta o primitku (slika 2)

sl.2

  • Stvorite objekt skupa podataka (Slika 3);

sl.3

Ovdje je važno obratiti pozornost na "Naziv objekta koji sadrži podatke"; to je ime koje ćemo morati navesti u kodu modula izvješća.

  • Idemo u modul izvješća i tamo kreiramo proceduru "Prilikom sastavljanja rezultata" (slika 4);


sl.4

Nećemo opisivati ​​proceduru dobivanja podataka iz vanjske datoteke, već ćemo obratiti pozornost na onaj dio koda koji mora biti prisutan u layoutu kako bismo mogli dobiti podatke za “Data Set 2” (slika 5).

sl.5

Važno! Prilikom stvaranja “objekta” u kodu procedure tijekom povezivanja, vrijednost parametra StandardProcessing mora biti False.

Idite na karticu "Veze skupa podataka".

Povezivanje skupova

Idite na odgovarajuću karticu dijagrama (Sl. 6).

Vidimo dio tablice koji je vrlo sličan dijelu tablice koji se nalazi u dizajneru upita, uz neke iznimke. Potvrdni okvir “Sve” ne može se označiti za skup izvora komunikacije i skup odredišta komunikacije, ali je dodano nekoliko dodatnih stupaca.

U odnosima skupova podataka možete uspostaviti samo odnos sličan lijevom vanjskom spoju konstruktora upita.

Prije stvaranja veze, odlučimo o svrsi stupaca:

  1. Izvor veze je prvi skup podataka iz kojeg će se uzeti sve dostupne vrijednosti;
  2. Komunikacijski prijamnik – skup podataka iz kojih će se odabrati vrijednosti koje odgovaraju našem stanju;
  3. Izvorni izraz – polje ili izraz prvog skupa podataka s kojim će se izvršiti usporedba;
  4. Odredišni izraz je polje ili izraz ovisnog skupa;
  5. Parametar – ako navedete naziv parametra u ovom polju, tada će se komunikacija sa skupom prijemnika provoditi samo prema vrijednosti navedenoj u parametru;
  6. Popis parametara – određuje mogućnost korištenja popisa vrijednosti kao parametra;
  7. Uvjet povezivanja – određivanjem izraza ovdje koristeći izvorna polja, možete stvoriti uvjet čije će ispunjenje poslužiti kao signal za uspostavljanje veze;
  8. Početna vrijednost – prikazuje početnu vrijednost veze;
  9. Obavezan odnos - Određuje jesu li polja korištena u izvoru (postavljeno na FALSE) ili odredištu (postavljeno na TRUE) omogućena i na temelju toga dodaje odnos u izgled.

Tako:

  • Izvor komunikacije bit će rezultat našeg zahtjeva;
  • Objekt će djelovati kao prijemnik;
  • Izvorni izraz bit će "NomenclatureCode";
  • Izraz primatelja „Nomenklatura”;
  • Komunikacija će biti obavezna (slika 7).

Da smo kao uvjet veze naveli naziv bilo koje nomenklature, ili njegovu vrstu reprodukcije, ili nešto drugo, mogli smo dobiti točniji uzorak za naš zadatak. Rezultat našeg djelovanja može se vidjeti na sl. 8

sl.8

Nije bilo podudaranja za donja dva retka izvješća u datoteci s cijenama.

Sustav za sastavljanje podataka može koristiti više skupova podataka. I sasvim je logično da se ti skupovi podataka na neki način međusobno povežu. Po analogiji s jezikom upita 1C, skupovi podataka mogu biti ili. U ovom članku ćemo govoriti o povezivanje skupova podataka u sustav kontrole pristupa.

Na prvi pogled može biti nejasno zašto trebate kreirati nekoliko skupova podataka i zatim ih spajati, ako jednostavno možete spojiti tablice unutar jednog skupa podataka. Za to postoji barem jedan razlog – u slučaju korištenja vanjskog skupa podataka. Kao što znate, kada napišemo upit za ACS skup podataka, ne možemo u njega proći, na primjer, . Iako se za normalan zahtjev to radi prilično jednostavno. U slučaju korištenja sustava kontrole pristupa, prisiljeni smo u njega prenijeti tablicu vrijednosti kao . Stoga postoji potreba za povezivanjem skupova podataka. Odmah ću napomenuti da se skupovi podataka mogu povezati samo pomoću LIJEVI SPOJ. Stoga, za razliku od ovdje, nećete vidjeti potvrdne okvire koji su odgovorni za vrstu veze tablice.

Sada osmislimo situaciju na čijem primjeru možemo razmotriti povezivanje skupova podataka u sustavu kontrole pristupa. Pretpostavimo da imamo imenik Roba, koje možemo dobiti od različitih dobavljača, a želimo generirati izvješće s cijenama robe po dobavljačima kako bismo odabrali dobavljača s najviše povoljna cijena. A mi ćemo uzeti cijene koje su trenutno aktualne, na primjer, putem web usluga s web stranica dobavljača.

Sukladno tome, za robu ćemo imati skup podataka dobiven putem zahtjeva, a za cijene ćemo imati skup podataka dobiven iz vanjskog izvora.


Sada idemo na knjižnu oznaku Odnosi skupova podataka i izvršite postavke kao što je prikazano na slici.

Na knjižnoj oznaci postavke Prvo, napravimo osnovni izlaz detaljnih zapisa


Neka bude u našem imeniku Roba sadrži sljedeće unose

Pokrećemo izvješće i vidimo sljedeću sliku

Odnosno, vidimo da su skupovi podataka međusobno povezani prema svim pravilima LIJEVI SPOJ

Na knjižnoj oznaci Odnosi skupova podataka Moguće je navesti neke dodatne parametre u odgovarajućim poljima. Ali koriste se prilično rijetko. Više možete pročitati u tehničkoj dokumentaciji i na ITS diskovima.

Dijagram rasporeda podataka (1C SKD)- zgodan dizajner za izradu složenih izvješća u softverskim proizvodima 1C:Enterprise koji pridonose razvoju i praćenju automatizacije proizvodnje, omogućujući im da budu što fleksibilniji i ljepši u minimalnom vremenu. Dodatna prednost Data Composition Scheme (1C SKD) je automatsko generiranje kontroliranog obrasca izvješća, a daljnjim razvojem ovog područja važan je čimbenik pri odabiru metode izrade izvješća. Ali zbog složenosti strukture sheme sastava podataka (1C SKD) i ogromnog broja postavki, to često dovodi do duljeg razvoja izvješća nego kroz "dizajner izlaznog obrasca". Stoga, 1C programer mora razumjeti sve zamršenosti sheme sastava podataka (1C DCS) kako bi dodatno ubrzao vrijeme razvoja za generiranje izvješća.

Pogledajmo prve tri kartice Sheme sastavljanja podataka (1C SKD) - skup podataka, veze skupova podataka i izračunata polja.

Skup podataka u 1C SKD

Skup podataka uključuje mogućnost stvaranja tri objekta - upita, objekta i unije, pogledajmo pobliže svaki od njih:

Ovo je uobičajeni upit koji se generira pomoću gumba Query Builder. Ako je postavljena zastavica Automatsko popunjavanje, tada će svi odabrani detalji automatski biti uključeni u polja skupa podataka. Također je moguće prilagoditi popunjavanje polja u zahtjevu na kartici Sastav podataka gdje se nalaze tri kartice:

Tablice, ovdje se biraju tablice koje će sudjelovati u generiranju izvještaja, obično se odabiru zadani podaci, budući da smo na kartici Tablice i polja već odabrali dokumente, imenike, registre koji su nam potrebni...

Polja, ovdje biramo one objekte koji bi trebali biti uključeni u izvješće, zastavica djeca označava hoće li biti dostupnih podređenih elemenata za objekt ili ne, logično je da za niz, numeričke i slične podatke neće biti moguće postaviti zastavu na True.

Uvjeti, ovdje biramo one objekte koji se mogu koristiti pod uvjetima u sustavu kontrole pristupa.

Dio posla se obavlja u shemi sastavljanja podataka, a dio se radi programski; pogledajmo jednostavan primjer:

Prvo ćemo izraditi dijagram izgleda za izgled podataka dokumenta i nazvati ga SKD (na primjer: 1C SKD), u njemu kreiramo objekt skupa podataka, zatim popunjavamo polja, na primjer, imamo dokument s tabelarnim dijelom robe s detaljima - nomenklatura, količina i cijena.

Dodajmo tri polja i ispunimo svaki stupac s nazivom detalja, preostali stupci će se automatski popuniti:

Kreirajmo gumb na obrascu dokumenta, opišite mehanizam rada u njemu kontrolirani oblici:

&NaKlijentu

Ispis postupka()

Naš izvještaj = Ispis na poslužitelju(); //poziv funkcije na poslužitelju

Naš izvještaj.Prikaži(); //prikaz generiranog izvješća

Kraj postupka

&Na poslužitelju

Funkcija PrintOnServer()

DocumentObject = FormAttributeValue(“Object”);

//tablični dio Proizvodi postavljamo u strukturu s nazivom ProizvodiSKD na isti način kao što smo u samom SKD-u naznačili naziv objekta koji sadrži podatke

DataSet = nova struktura;

DataSet.Insert(“ProizvodiSKD”, DocumentObject.Proizvodi);

//dobivamo naš izgled i postavljamo zadane postavke tako da su sve postavke izlaza izvješća preuzete iz našeg izgleda

OurLayout = DocumentObject.GetLayout(“SKD”);

Postavke = OurLayout.DefaultSettings;

//izraditi izgled izgleda podataka s našim postavkama

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(OurLayout, Settings);

//izvesti komponiranje podataka s našim skupom podataka

DataCompositionProcessor = noviDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//Izrađujemo dokument proračunske tablice i prikazujemo svoje izvješće u njemu

ReportDocument = Novi tabularni dokument;

IzlazniProcesor = Novi IzlazniProcesorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

IzlazniProcesor.Izlaz(ProcesorKompozicijePodataka);

Return DocumentReport;

EndFunction

Ako želite, možete dobiti područja bilo kojeg drugog izgleda i također ih prikazati u ovom izvješću, npr. imamo standardni izgled za generiranje naloga za plaćanje iu njemu je jako dobro kreirano zaglavlje, da ne bi nepotrebnog posla, samo ćemo prvo dobiti izgled, prikazati zaglavlje, zatim ćemo generirati i prikazati naše izvješće o sustavu kontrole pristupa.

OKO ujedinjenje

U nju možemo smjestiti svoje upite i objekte, ali za razliku od veze, ona jednostavno dodaje tablice jedna drugoj, odnosno ako spojimo dvije identične tablice, dobit ćemo jednu, a kada se spoji, ona će se udvostručiti, pogledajmo na jednostavnom primjeru:

Imamo stolove:

Nakon komunikacije primit ćemo:

A kada se kombinira:

Pogledajmo sada ispunjavanje stupaca u skupovima podataka (neke ćemo preskočiti jer su povezani s drugim karticama; vratit ćemo im se u budućim člancima):

- polje, navesti opći naziv atributa;

­­- staza, navesti naziv detalja po kojima ćemo ga kontaktirati u sustavu kontrole pristupa, npr. u Izračunata polja;

- titula, označiti naziv atributa koji će biti prikazan u izvješću;

- ograničenje polja, navedite dostupnost ovog rekvizita;

- ograničenje detalja, označavaju dostupnost dječji elementi, važno je da ako je dostupnost detalja naznačena, tada će samo polje biti dostupno, možda će se ova mehanika promijeniti u budućim izdanjima;

- izraz kojim se izračunava reprezentacija polja, prikladno je koristiti kada trebamo malo promijeniti izlaz pojedinosti, na primjer, trebamo nakon imena nomenklatura bio prikazan zaliha, gdje se nalazi, zatim ispuniti: Stavka + “je na skladištu” + Skladište. Ponavljam da se pristup pojedinostima vrši preko imena navedenog u stupcu staza;

- sređivanje izraza, prikladan mehanizam za postavljanje redoslijeda izvješća, gdje se uvjet može postaviti ručno, slično prethodnoj točki, ali kao što praksa pokazuje, ovaj mehanizam često ne radi onako kako bismo željeli, i savjetujem vam da koristite standardno sortiranje;

- vrsta vrijednosti, označava vrstu vrijednosti atributa; ovo mora biti ispunjeno ako koristite sljedeće polje;

- dostupne vrijednosti, radi samo kad je pun vrsta vrijednosti, otvorite obrazac i u stupcu Značenje označavamo element koji treba promijeniti, prema vrsti, to mogu biti predefinirani objekti ili numerički, npr. detalji imaju jednostavne vrijednosti, u prezentacija Naznačujemo što trebamo promijeniti, primjer Booleovog tipa:

- dekorstandardna postavka format polja, sličan postavkama u upravljanim obrascima, omogućuje točniju i ljepšu prilagodbu izlaza određenih detalja.

Veze skupova podataka u 1C SKD

Ovdje je samo instaliran lijevi spoj, po principu sličnom veze u zahtjevima, u izvor komunikacije navedite glavnu tablicu za vezu, u prijamnik dodatni. U izvor izraza I prijemnik izraza Navodimo detalje pomoću kojih će se odvijati komunikacija. Preostale stupce detaljnije ćemo pogledati kada pogledamo karticu. Mogućnosti. Ako nema dodatne veze s parametrima, preporuča se napraviti vezu u zahtjevu, to će ubrzati izvješće.

41
Nedavno sam napravio izvješće s neodređenim brojem stupaca. Nisam htio petljati s kodom, pa sam odlučio to učiniti na sustavu kontrole pristupa. Tu nije bilo problema, bilo je potrebno razvući rezultat na proizvoljan layout (vlastito zaglavlje +... 27
Iako studenti CDS-a naiđu na ovo prvi ili drugi dan, to bi trebalo biti u odjeljku FAQ. Jednostavan primjer programskog ispisa izvješća o izgledu, korištenjem zadanih postavki. //Preuzmi dijagram od... 18
Kod generiranja izvještaja na sustavu kontrole pristupa standardno su sve grupacije proširene, ali ponekad je potrebno odmah nakon generiranja prikazati izvještaj sa sažetim grupacijama! Ovaj kod u modulu izvješća omogućuje vam sažimanje... 9
Ono što je potrebno kod izrade izvještaja je da se za korisnika s ograničenim pravima, izvještaj generira potpuno bez provjere prava! Osobito ako je RLS konfiguriran. Postoji nekoliko načina za to: 1. Instalirajte...

U ovom slučaju, potvrdni okvir Obavezno određuje jesu li polja korištena u izvoru (postavljena na FALSE) ili u odredištu (postavljena na TRUE) omogućena i, na temelju toga, dodaje odnos izgledu.

Za svaki od skupova podataka možete postaviti provjeru hijerarhije:

Ova se opcija koristi ako uvjet odabira za polje treba obraditi na nestandardan način. Polje se može odrediti skupom podataka iz kojeg se dobivaju podaci za provjeru pripada li poveznica hijerarhiji određene vrijednosti.

Pitanje 11.33 ispita 1C: Platforma Professional. Je li prihvatljivo koristiti više skupova podataka?

  1. Samo pri korištenju skupova podataka – objekt
  2. Samo kada koristite skupove podataka - upit

Točan odgovor je prvi, prihvatljiv je u svakom slučaju.


Pitanje 11.10 ispita 1C: Platform Professional. Prilikom definiranja odnosa između dva skupa podataka u dijagramu sastava podataka

  1. Opciju povezivanja (lijevo, puna) odabire programer
  2. Uvijek se koristi lijevo spajanje prvog skupa s drugim
  3. Uvijek se koristi lijevo spajanje drugog skupa s prvim
  4. Koristi se lijevo spajanje prvog skupa s drugim, u nekim slučajevima uspostavlja se unutarnje spajanje

Točan odgovor je četvrti. Skupovi podataka povezani su samo lijevim ili unutarnjim spajanjem.

Pitanje 11.13 ispita 1C: Platforma Professional. U kojim slučajevima je potrebno konfigurirati provjeru hijerarhije na kartici "Skupovi podataka" u prozoru dizajnera dijagrama izgleda

  1. Ako trebate zabraniti primanje zbrojeva prema vlastitoj hijerarhiji koja se razlikuje od standardne
  2. Ako trebate omogućiti dobivanje ukupnih iznosa prema vlastitoj hijerarhiji, različitoj od standardne
  3. Ako trebate zabraniti instalaciju odabira za ulazak u grupu vlastite hijerarhije, različite od standardne
  4. Ako trebate dopustiti da odabir bude uključen u grupu vaše vlastite hijerarhije, različite od standardne

Točan odgovor je broj četiri, opis u objavi.

Pitanje 11.16 ispita 1C: Platforma Professional. Koje se vrste veza između dvaju skupova podataka mogu implementirati u sustav kompozicije?

  1. Sve kao u jeziku upita: "Svi svima", "Lijevo", "Desno", "Unutarnje" i "Puno"
  2. Samo "Svi svima", "Lijevo", "Desno" i "Unutarnje"
  3. Samo "lijevo" i "unutarnje"
  4. Samo "Svi svima", "Lijevo" i "Unutarnje"
  5. Samo "lijevo", "desno", "unutarnje" i "puno".

Točan odgovor je četvrti, prema rezultatu testa. Zapravo, treći je točan.

Pitanje 11.17 ispita 1C: Platforma Professional. Prilikom postavljanja odnosa između dvaju skupova podataka odabire se oznaka "Potreban odnos". U kojem slučaju će radnje korisnika uzrokovati neuspjeh veze?

  1. Povezivanje podataka iz oba skupa bit će implementirano bez obzira na postavke korisnika
  2. Popis odabranih polja prikazuje samo polja u lijevom skupu
  3. Na popisu odabranih polja navedena su samo polja u desnom skupu
  4. Na popisu odabranih polja naznačena su samo polja lijevog skupa, odabrano je polje desnog skupa
  5. U popisu odabranih polja naznačena su samo polja desnog skupa, odabrano je polje lijevog skupa

Točan odgovor je drugi, ako postoji samo jedan skup (i izvor), onda se nema što povezati.

Pitanje 11.39 ispita 1C: Platforma Professional. Kako se vanjski podaci prenose u skup – objekt u sustavu za slaganje podataka?

  1. Pomoću ugrađenog jezika kroz procesor za sastavljanje podataka
  2. Korištenje ugrađenog jezika putem alata za izradu izgleda
  3. Pomoću ugrađenog jezika kroz izlazni procesor sustava za komponiranje podataka

Točan odgovor je prvi, preko procesora.