Povezivanje skupova podataka u sistemu skladištenja. Konstruktor dijagrama rasporeda podataka - kartica za povezivanje skupova podataka 1s SKD stanje povezivanja skupova podataka


41
Nedavno sam napravio izvještaj sa neograničenim brojem kolona. Nisam želeo da petljam sa kodom, pa sam odlučio da to uradim na sistemu kontrole pristupa. Nije bilo problema s tim, bilo je potrebno rezultat rastegnuti na proizvoljan izgled (vaše vlastito zaglavlje +... 27
Iako studenti CDS-a nailaze na ovo prvog ili drugog dana, to bi trebalo biti u odjeljku FAQ. Jednostavan primjer programskog izlaza izvještaja o izgledu, koristeći zadane postavke. //Preuzmi dijagram iz... 18
Prilikom generisanja izveštaja na sistemu kontrole pristupa, podrazumevano se proširuju sve grupe, ali je ponekad potrebno prikazati izveštaj sa skupljenim grupama odmah nakon generisanja! Ovaj kod u modulu izvještaja vam omogućava da sažimate... 9
Ono što je potrebno prilikom izrade izvještaja je da se za korisnika sa ograničenim pravima izvještaj generiše u potpunosti bez provjere prava! Pogotovo ako je RLS konfigurisan Postoji nekoliko načina da se to uradi: 1. Instalirajte...

U ovom slučaju, polje za potvrdu Obavezno određuje da li su polja koja se koriste u izvoru (postavljena na FALSE) ili na odredištu (postavljena na TRUE) omogućena i, na osnovu toga, dodaje odnos u izgled.

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

Ova opcija se koristi ako se uvjet odabira za polje treba obraditi na nestandardan način. Polje se može specificirati sa skupom podataka iz kojeg se dobivaju podaci kako bi se provjerilo pripada li veza hijerarhiji određene vrijednosti.

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

  1. Samo kada se koriste skupovi podataka – objekt
  2. Samo kada koristite skupove podataka - upit

Tač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 veze (lijevo, puno) odabire programer
  2. Uvijek se koristi lijevo spajanje prvog seta na drugi
  3. Uvijek se koristi lijevo spajanje drugog skupa s prvim
  4. Koristi se lijevo spajanje prvog skupa s drugim, u nekim slučajevima se uspostavlja unutrašnji spoj

Tačan odgovor je četvrti. Skupovi podataka su povezani samo lijevim ili unutrašnjim spajanjem.

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

  1. Ako trebate zabraniti primanje ukupnih iznosa prema vlastitoj hijerarhiji koja se razlikuje od standardne
  2. Ako trebate dozvoliti dobivanje ukupnih vrijednosti prema vašoj vlastitoj hijerarhiji, različitoj od standardne
  3. Ako trebate zabraniti instalaciju selekcije za ulazak u grupu vlastite hijerarhije, različitu od standardne
  4. Ako trebate dozvoliti da se selekcija uključi u grupu vaše vlastite hijerarhije, različite od standardne

Tačan odgovor je broj četiri, opis u postu.

Pitanje 11.16 ispita 1C: Platform Professional. Koje se vrste veza između dva skupa podataka mogu implementirati u kompozitni sistem?

  1. Sve kao u jeziku upita: "Svi za sve", "Lijevo", "Desno", "Unutarnje" i "Puno"
  2. Samo "Svi za sve", "Lijevo", "Desno" i "Unutarnje"
  3. Samo "lijevo" i "unutrašnje"
  4. Samo "Svi za sve", "Lijevo" i "Unutarnje"
  5. Samo "lijevo", "desno", "unutrašnje" i "puno".

Tačan odgovor je četvrti, prema rezultatu testa. U stvari, treći je tačan.

Pitanje 11.17 ispita 1C: Platforma Professional. Prilikom postavljanja odnosa između dva skupa podataka, odabrana je zastavica "Potreban odnos". U kom slučaju će radnje korisnika uzrokovati neuspjeh veze?

  1. Povezivanje podataka iz oba skupa će biti implementirano bez obzira na to koje postavke je korisnik napravio
  2. Lista odabranih polja prikazuje samo polja u lijevom skupu
  3. U listi odabranih polja navedena su samo polja iz desnog skupa
  4. U listi selektovanih polja prikazana su samo polja levog skupa, izabrano je polje desnog skupa
  5. U listi selektovanih polja označena su samo polja desnog skupa;

Tačan odgovor je drugi, ako postoji samo jedan skup (i izvor), onda nema šta da se poveže.

Pitanje 11.39 ispita 1C: Platforma Professional. Kako se eksterni podaci prenose u skup - objekat u sistemu za sastavljanje podataka?

  1. Pomoću ugrađenog jezika kroz procesor sastava podataka
  2. Korištenje ugrađenog jezika preko layout buildera
  3. Pomoću ugrađenog jezika kroz izlazni procesor sistema za sastav podataka

Tačan odgovor je prvi, preko procesora.

Sistem sastava podataka može koristiti više skupova podataka. I sasvim je logično da se ovi skupovi podataka nekako međusobno povežu. Po analogiji sa 1C jezikom upita, skupovi podataka mogu biti ili. U ovom članku ćemo govoriti o povezivanje skupova podataka u sistem kontrole pristupa.

Na prvi pogled može biti nejasno zašto trebate kreirati nekoliko skupova podataka, a zatim ih spojiti, ako jednostavno možete spojiti tabele unutar jednog skupa podataka. Postoji barem jedan razlog za to - u slučaju korištenja vanjskog skupa podataka. Kao što znate, kada pišemo upit za ACS skup podataka, ne možemo proći u njega, na primjer, . Iako se za normalan zahtjev to radi prilično jednostavno. U slučaju korištenja sistema kontrole pristupa, primorani smo da mu prenesemo tablicu vrijednosti kao . Otuda potreba za povezivanjem skupova podataka. Odmah da napomenem da se skupovi podataka mogu povezati samo pomoću LIJEVA KONEKCIJA. Stoga, za razliku od ovdje, nećete vidjeti potvrdne okvire koji su odgovorni za tip konekcije tablice.

Hajde sada da smislimo situaciju, koristeći primjer za koji možemo razmotriti povezivanje skupova podataka u sistemu kontrole pristupa. Pretpostavimo da imamo imenik Roba, koje možemo dobiti od različitih dobavljača, a želimo generirati izvještaj sa cijenama robe po dobavljačima kako bismo odabrali dobavljača sa najpovoljnijom cijenom. I uzimat ćemo cijene koje su trenutno aktualne, na primjer, putem web servisa sa web stranica dobavljača.

Shodno tome, za robu ćemo imati skup podataka dobijen na osnovu zahteva, a za cene ćemo imati skup podataka dobijen iz eksternog izvora.


Sada idemo na bookmark Odnosi skupa podataka i izvršite podešavanja kao što je prikazano na slici.

Na obeleživaču Postavke Prvo, napravimo osnovni izlaz detaljnih zapisa


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

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

Odnosno, vidimo da su skupovi podataka međusobno povezani po svim pravilima LIJEVA KONEKCIJA

Na obeleživaču Odnosi skupa podataka Moguće je navesti neke dodatne parametre u odgovarajućim poljima. Ali se koriste prilično rijetko. Više detalja možete pronaći u tehničkoj dokumentaciji i na ITS diskovima.

Ponekad je, da bi se dobio određeni rezultat rasporeda, potrebno kreirati veze između skupova podataka u sistemu 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 (slika 1)

Izvori podataka

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

Dizajner upita implementiran u verziji 8 1C je vrlo zgodan i, u većini slučajeva, možete povezati nekoliko tabela zajedno i napraviti potrebna grupisanja i odabire direktno u njoj.

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

Treći izvor podataka je “Unija”. Zapravo, ovaj izvor se može smatrati jednom od vrsta komunikacije. Kombinira (svodi nekoliko tabela u jednu), bez podudaranja, već podudarnost određenih polja. To jest, ako dvije tabele koje se spajaju imaju 3 i 4 reda, respektivno, tada će rezultirajući izvor podataka imati 7 redova.

Formulacija problema

Kao poligon za testiranje izabraćemo UPP bazu, verzija 1.3.92.3, koja radi u normalnom režimu aplikacije.

Dobili smo sledeći zadatak: koristeći samo sistem kontrole pristupa, kreiramo izveštaj koji će prikazati tabelu kupljenih artikala iz dokumenta, sa cenama preuzetim iz fajla koji je poslala druga strana.

Dakle, moramo:

  1. Uzmite tabelarni dio dokumenta prijema;
  2. Otpremite 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 rezultujuću tabelu.

Proces izvršenja

Prođimo kroz sve navedene korake:

  • Kreiramo upit za tabelarni dio dokumenta prijema (sl. 2)

Fig.2

  • Kreirajte objekat skupa podataka (slika 3);

Fig.3

Ovdje je važno obratiti pažnju na “Naziv objekta koji sadrži podatke” mi ćemo morati navesti ovo ime u kodu modula izvještaja.

  • Idemo do modula izvještaja i tamo kreiramo proceduru “Pri sastavljanju rezultata” (slika 4);


Fig.4

Nećemo opisivati ​​proceduru za dobijanje podataka iz eksterne datoteke, obratićemo pažnju na onaj deo koda koji mora biti prisutan u izgledu da bismo mogli da dobijemo podatke za „Set podataka 2“ (slika 5).

Fig.5

Bitan! Prilikom kreiranja “Objekta” u kodu procedure tokom povezivanja, vrijednost parametra StandardProcessing mora biti False.

Idite na karticu "Veze skupa podataka".

Povezivanje skupova

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

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

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

Prije kreiranja veze, odlučimo o namjeni kolona:

  1. Izvor veze je prvi skup podataka iz kojeg će se uzeti sve dostupne vrijednosti;
  2. Komunikacijski prijemnik – skup podataka iz kojih će biti odabrane vrijednosti koje odgovaraju našem stanju;
  3. Izvorni izraz – polje ili izraz prvog skupa podataka prema kojem će se izvršiti poređenje;
  4. Odredišni izraz je polje ili izraz zavisnog skupa;
  5. Parametar – ako u ovom polju navedete naziv parametra, tada će se komunikacija sa prijemnim setom odvijati samo prema vrijednosti navedenoj u parametru;
  6. Lista parametara – određuje mogućnost korištenja liste vrijednosti kao parametra;
  7. Uslov veze – navođenjem izraza ovde koristeći izvorna polja, možete kreirati uslov čije će ispunjenje poslužiti kao signal za uspostavljanje veze;
  8. Početna vrijednost – prikazuje početnu vrijednost veze;
  9. Obavezna relacija – Određuje da li su polja koja se koriste u izvoru (postavljena na FALSE) ili odredište (postavljena na TRUE) omogućena i na osnovu toga dodaje odnos u izgled.

ovako:

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

Da smo kao uslov veze naveli naziv bilo koje nomenklature, ili njen tip reprodukcije, ili nešto drugo, mogli bismo dobiti precizniji uzorak za naš zadatak. Rezultat naših akcija može se vidjeti na slici 8

Fig.8

Nije bilo podudaranja za donja dva reda izvještaja u datoteci s cijenama.

Dijagram rasporeda podataka (1C SKD)- zgodan dizajner za kreiranje složenih izvještaja u softverskim proizvodima 1C:Enterprise koji doprinose razvoju i praćenju automatizacije proizvodnje, omogućavajući im da budu što fleksibilniji i ljepši u minimalnom vremenu. Dodatna prednost Šeme sastavljanja podataka (1C SKD) je automatsko generisanje kontrolisanog obrasca izveštaja, a daljim razvojem ove oblasti važan je faktor pri izboru metode za izradu izveštaja. Ali zbog složenosti strukture šeme sastavljanja podataka (1C SKD) i ogromnog broja postavki, to često dovodi do dužeg razvoja izvještaja nego kroz „dizajner izlazne forme“. Stoga, 1C programer mora razumjeti sve zamršenosti šeme sastava podataka (1C DCS) kako bi dodatno ubrzao vrijeme razvoja za generiranje izvještaja.

Pogledajmo prve tri kartice Šeme sastava podataka (1C SKD) - skup podataka, veze skupa podataka i izračunata polja.

Skup podataka u 1C SKD

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

Ovo je običan upit koji se generiše pomoću dugmeta Query Builder. Ako je postavljena zastavica Autofill, 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 postoje tri kartice:

Tabele, ovde se biraju tabele koje će učestvovati u generisanju izveštaja, obično se biraju podrazumevani podaci, pošto smo na kartici Tabele i polja već izabrali dokumente, imenike, registre koji su nam potrebni...

Polja, ovdje biramo one objekte koji bi trebali biti uključeni u izvještaj, zastavica djece označava da li će za objekt biti dostupni podređeni elementi ili ne, logično je da za string, numeričke i slične podatke neće biti moguće postaviti zastavicu na True.

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

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

Prvo ćemo kreirati 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 sa tabelarnim dijelom robe sa detaljima - nomenklaturom, količinom i cijenom.

Dodajmo tri polja i popunimo svaku kolonu imenom detalja, preostale kolone će se popuniti automatski:

Kreirajmo dugme na obrascu dokumenta i opišemo mehanizam rada u kontrolisanim oblicima:

&OnClient

Procedura Print()

OurReport = PrintOnServer(); //pozovite funkciju na serveru

OurReport.Show(); //prikaz generiranog izvještaja

Kraj procedure

&Na serveru

Funkcija PrintOnServer()

DocumentObject = FormAttributeValue(“Objekat”);

//tabelarni dio Proizvodi stavljamo u strukturu s nazivom ProductsSKD na isti način kao što smo u samom SKD-u naveli naziv objekta koji sadrži podatke

DataSet = nova struktura;

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

//dobijamo naš izgled i postavljamo podrazumevane postavke tako da su sve postavke izlaza izveštaja preuzete iz našeg izgleda

OurLayout = DocumentObject.GetLayout(“SKD”);

Postavke = OurLayout.DefaultSettings;

//kreirajte raspored podataka sa našim postavkama

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(OurLayout, Settings);

//izvršimo sastavljanje podataka sa našim skupom podataka

DataCompositionProcessor = newDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//Kreiramo tabelarni dokument i u njemu prikazujemo naš izvještaj

ReportDocument = Novi TabularDocument;

OutputProcessor = Novi OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

Return DocumentReport;

EndFunction

Ako želite, možete dobiti područja bilo kojeg drugog izgleda i također ih prikazati u ovom izvještaju, na primjer, imamo standardni izgled za generiranje naloga za plaćanje i u njemu je zaglavlje vrlo dobro kreirano, da ne bi radili nepotreban posao, prvo ćemo dobiti izgled, prikazati zaglavlje, a zatim ćemo generirati i prikazati naš izvještaj o sistemu kontrole pristupa.

O ujedinjenje

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

Imamo stolove:

Nakon komunikacije dobićemo:

A kada se kombinuju:

Pogledajmo sada popunjavanje kolona u skupovima podataka (neke ćemo preskočiti, jer se odnose na druge kartice; na njih ćemo se vratiti u budućim člancima):

- polje, naznačite opći naziv atributa;

­­- put, navedite naziv detalja pomoću kojih ćemo ga kontaktirati u sistemu kontrole pristupa, na primjer, u Izračunata polja;

- naslov, naznačiti naziv atributa koji će biti prikazan u izvještaju;

- ograničenje polja, naznačiti dostupnost ovog rekvizita;

- ograničenje detalja, ukazujemo na dostupnost podređenih elemenata, važno je da ako je naznačena dostupnost detalja, tada će i samo polje biti dostupno, možda će se ova mehanika promijeniti u budućim izdanjima;

- izraz kojim se izračunava reprezentacija polja, zgodno je koristiti kada trebamo malo promijeniti izlaz detalja, na primjer, trebamo nakon imena nomenklatura je prikazano dionica, gdje se nalazi, zatim popunite sljedeće: Artikal + „nalazi se u magacinu“ + Magacin. Ponavljam da se pristup detaljima vrši preko imena navedenog u koloni put;

- naručivanje izraza, zgodan mehanizam za podešavanje redosleda izveštaja, gde se uslov može postaviti ručno, slično kao u prethodnoj tački, ali kao što praksa pokazuje, ovaj mehanizam često ne radi kako bismo želeli, i savetujem vam da koristite standardno sortiranje;

- tip vrijednosti, označava tip vrijednosti atributa koji se mora popuniti ako koristite sljedeće polje;

- dostupne vrijednosti, radi samo kada je puna tip vrijednosti, otvorite obrazac i u koloni Značenje označavamo element koji treba promijeniti, prema vrsti, to mogu biti unaprijed definirani objekti ili numerički, npr. detalji imaju jednostavne vrijednosti, u prezentacija Naznačavamo u šta treba da se promenimo, primer Booleovog tipa:

- dekor– standardne postavke formata polja, slične postavkama u upravljanim obrascima, omogućavaju vam da preciznije i ljepše konfigurirate izlaz određenih detalja.

Veze skupa podataka u 1C SKD

Ovdje je samo instaliran lijevo spojiti, po principu sličnom veze u zahtjevima, u izvor komunikacije navedite glavnu tabelu za vezu, u prijemnik dodatno. IN izvor izraza I prijemnik izraza Navodimo detalje po kojima će se komunikacija odvijati. Pogledaćemo preostale kolone detaljnije kada pogledamo karticu. Opcije. Ako nema dodatne veze sa parametrima, onda je preporučljivo izvršiti vezu u zahtjevu, to će ubrzati izvještaj.