Povezovanje nizov podatkov v sistemu za shranjevanje. Konstruktor diagrama postavitve podatkov – povezovanje naborov podatkov zavihkov 1s Pogoj povezovanja naborov podatkov SKD


41
Pred kratkim sem naredil poročilo z nedoločenim številom stolpcev. Nisem se želel ukvarjati s kodo, zato sem se odločil, da to storim na sistemu za nadzor dostopa. S tem ni bilo problema, rezultat je bilo treba raztegniti na poljubno postavitev (svoja glava +... 27
Čeprav študenti CDS naletijo na to prvi ali drugi dan, bi moralo biti v razdelku s pogostimi vprašanji. Preprost primer programskega izpisa poročila o postavitvi z uporabo privzetih nastavitev. //Pridobite diagram od ... 18
Pri generiranju poročil na sistemu za nadzor dostopa so privzeto vse skupine razširjene, včasih pa je potrebno takoj po generiranju prikazati poročilo s strnjenimi skupinami! Ta koda v modulu za poročilo vam omogoča, da strnete ... 9
Pri izdelavi poročil je potrebno, da se za uporabnika z omejenimi pravicami izdela poročilo popolnoma brez preverjanja pravic! Še posebej, če je RLS konfiguriran. To lahko storite na več načinov: 1. Namestite...

V tem primeru potrditveno polje Zahtevano določa, ali so omogočena polja, uporabljena v izvoru (nastavljeno na FALSE) ali v cilju (nastavljeno na TRUE), in na podlagi tega doda razmerje k postavitvi.

Za vsak nabor podatkov lahko nastavite preverjanje hierarhije:

Ta možnost se uporabi, če je treba izbirni pogoj za polje obdelati na nestandarden način. Polje je mogoče določiti z naborom podatkov, iz katerega se pridobijo podatki za preverjanje, ali povezava pripada hierarhiji določene vrednosti.

Vprašanje 11.33 izpita 1C: Platforma Professional. Ali je sprejemljiva uporaba več nizov podatkov?

  1. Samo pri uporabi naborov podatkov – objekt
  2. Samo pri uporabi naborov podatkov – poizvedba

Pravilen odgovor je prvi, sprejemljiv je v vsakem primeru.


Vprašanje 11.10 izpita 1C: Platforma Professional. Ko definirate razmerje med dvema nizoma podatkov v diagramu sestave podatkov

  1. Možnost povezave (levo, polno) izbere razvijalec
  2. Vedno se uporablja levi spoj prvega niza z drugim
  3. Vedno se uporablja levi spoj drugega niza s prvim
  4. Uporabi se levo združevanje prvega niza z drugim, v nekaterih primerih se vzpostavi notranje združevanje

Pravilen odgovor je četrti. Nizi podatkov so povezani samo z levim ali notranjim združevanjem.

Vprašanje 11.13 izpita 1C: Platform Professional. V katerih primerih je treba konfigurirati preverjanje hierarhije na zavihku "Nabori podatkov" v oknu oblikovalca diagrama postavitve

  1. Če morate prepovedati prejemanje vsot po lastni hierarhiji, ki se razlikuje od standardne
  2. Če morate dovoliti, da se vsote pridobijo po vaši lastni hierarhiji, ki se razlikuje od standardne
  3. Če morate prepovedati namestitev izbire za vstop v skupino lastne hierarhije, ki se razlikuje od standardne
  4. Če morate dovoliti, da se izbor vključi v skupino vaše lastne hierarhije, ki se razlikuje od standardne

Pravilen odgovor je številka štiri, opis v objavi.

Vprašanje 11.16 izpita 1C: Platforma Professional. Katere vrste združevanj med dvema nizoma podatkov je mogoče implementirati v sestavnem sistemu?

  1. Vse kot v poizvedovalnem jeziku: "Vsi vsem", "Levo", "Desno", "Notranje" in "Polno"
  2. Samo "Vsi vsem", "Levo", "Desno" in "Notranji"
  3. Samo "levo" in "notranje"
  4. Samo "Vsi vsem", "Levo" in "Notranji"
  5. Samo "levo", "desno", "notranje" in "polno"

Pravilen odgovor je četrti, glede na rezultat testa. Pravzaprav je tretji pravi.

Vprašanje 11.17 izpita 1C: Platforma Professional. Pri nastavljanju relacije med dvema nizoma podatkov je izbrana zastavica "Zahtevana relacija". V kakšnem primeru bodo dejanja uporabnika povzročila prekinitev povezave?

  1. Povezava podatkov iz obeh nizov bo izvedena ne glede na nastavitve uporabnika
  2. Na seznamu izbranih polj so prikazana le polja v levem nizu
  3. Na seznamu izbranih polj so navedena samo polja v desnem nizu
  4. Na seznamu izbranih polj so označena samo polja levega niza, polje desnega niza je izbrano
  5. Na seznamu izbranih polj so označena le polja desnega niza, polje levega niza je izbrano

Pravilen odgovor je drugi, če je samo en niz (in vir), potem ni ničesar za povezovanje.

Vprašanje 11.39 izpita 1C: Platforma Professional. Kako poteka prenos zunanjih podatkov v množico – objekt v sistemu za sestavljanje podatkov?

  1. S pomočjo vgrajenega jezika prek procesorja za sestavljanje podatkov
  2. Uporaba vgrajenega jezika prek graditelja postavitve
  3. S pomočjo vgrajenega jezika preko izhodnega procesorja sistema za sestavljanje podatkov

Pravilen odgovor je prvi, preko procesorja.

Sistem za sestavljanje podatkov lahko uporablja več nizov podatkov. In povsem logično je, da so ti nizi podatkov med seboj nekako povezani. Po analogiji z jezikom poizvedb 1C so nabori podatkov lahko ali. V tem članku bomo govorili o povezava podatkovnih nizov v sistem kontrole dostopa.

Na prvi pogled morda ni jasno, zakaj morate ustvariti več nizov podatkov in jih nato združiti, če pa lahko preprosto združite tabele znotraj enega niza podatkov. Razlog za to je vsaj en – v primeru uporabe zunanjega niza podatkov. Kot veste, ko pišemo poizvedbo za nabor podatkov ACS, vanj ne moremo posredovati na primer . Čeprav je za običajno zahtevo to storjeno precej preprosto. V primeru uporabe sistema za nadzor dostopa smo primorani vanj prenesti tabelo vrednosti kot . Zato je potrebna povezava podatkovnih nizov. Naj takoj opozorim, da je podatkovne nize mogoče povezati le z uporabo LEVI PRIKLJUČEK. Zato za razliko od tukaj ne boste videli potrditvenih polj, ki so odgovorna za vrsto povezave tabele.

Zdaj pa si omislimo situacijo, na primeru katere lahko razmislimo o povezovanju nizov podatkov v sistemu za nadzor dostopa. Recimo, da imamo imenik Blago, ki jih lahko prejmemo od različnih dobaviteljev in želimo ustvariti poročilo s cenami blaga po dobaviteljih, da izberemo dobavitelja z najugodnejšo ceno. In vzeli bomo cene, ki so trenutno aktualne, na primer prek spletnih storitev s spletnih mest dobaviteljev.

Skladno s tem bomo imeli za blago nabor podatkov, pridobljen z zahtevo, za cene pa nabor podatkov, pridobljen iz zunanjega vira.


Zdaj pa pojdimo na zaznamek Odnosi med nabori podatkov in konfigurirajte, kot je prikazano na sliki.

Na zaznamku nastavitve Najprej naredimo osnovni izpis podrobnih zapisov


Naj bo v našem imeniku Blago vsebuje naslednje vnose

Zaženemo poročilo in vidimo naslednjo sliko

Se pravi, vidimo, da so bili nizi podatkov med seboj povezani po vseh pravilih LEVI PRIKLJUČEK

Na zaznamku Odnosi med nabori podatkov V ustreznih poljih je mogoče določiti nekatere dodatne parametre. Vendar se uporabljajo precej redko. Več podrobnosti najdete v tehnični dokumentaciji in na ITS diskih.

Včasih je za pridobitev določenega rezultata postavitve potrebno ustvariti povezave med nizi podatkov v sistemu za nadzor dostopa. O tem, kdaj je to potrebno in kako to storiti, bomo poskušali govoriti v našem članku.

Shema postavitve podatkov, implementirana v 1C, podpira tri vrste virov podatkov (slika 1)

Viri podatkov

Najbolj očiten in pogosto uporabljen vir podatkov s strani razvijalcev je poizvedba.

Oblikovalec poizvedb, implementiran v različici 8 1C, je zelo priročen in v večini primerov lahko povežete več tabel skupaj in naredite potrebne skupine in izbire neposredno v njem.

V zapletenih primerih, ko je potrebno ali primerneje uporabiti izvajanje neke kode (na primer nalaganje podatkov iz datoteke tretje osebe) ali ko ni mogoče uporabiti poizvedbe, pride vir podatkov »Object« reševanje. Poljubna koda, ki se izvaja v modulu, mora imeti na izhodu določeno strukturo, do katere sistem za nadzor dostopa lahko dostopa.

Tretji vir podatkov je »Unija«. Dejansko lahko ta vir štejemo za eno od vrst komunikacije. Združuje (zmanjša več tabel v eno), brez ujemanja, ampak sovpadanja določenih polj. Če imata dve tabeli, ki ju združujete, 3 oziroma 4 vrstice, bo imel nastali vir podatkov 7 vrstic.

Oblikovanje problema

Kot poligon bomo izbrali osnovo UPP različice 1.3.92.3, ki deluje v normalnem aplikacijskem načinu.

Dobili smo naslednjo nalogo: samo s sistemom za nadzor dostopa izdelamo poročilo, ki bo prikazalo tabelo kupljenih artiklov iz dokumenta, s cenami vzetimi iz datoteke, ki jo je poslala nasprotna stranka.

Torej moramo:

  1. Vzemite tabelarični del potrdila o prejemu;
  2. Naložite datoteko v vir podatkov »Object«;
  3. Povežite ta dva vira z določenim parametrom (v našem primeru bo to koda);
  4. Prikažite nastalo tabelo.

Postopek izvedbe

Pojdimo skozi vse navedene korake:

  • Ustvarimo poizvedbo za tabelarični del potrdila o prejemu (slika 2)

Slika 2

  • Ustvarite objekt nabora podatkov (slika 3);

Slika 3

Tukaj je pomembno biti pozoren na "Ime predmeta, ki vsebuje podatke"; to ime bomo morali navesti v kodi modula poročila.

  • Gremo v modul poročila in tam ustvarimo postopek »Pri sestavljanju rezultata« (slika 4);


Slika 4

Ne bomo opisovali postopka pridobivanja podatkov iz zunanje datoteke, pozorni bomo na tisti del kode, ki mora biti prisoten v postavitvi, da lahko pridobimo podatke za “Data Set 2” (slika 5).

Slika 5

Pomembno! Pri ustvarjanju »predmeta« v kodi postopka med povezovanjem mora biti vrednost parametra StandardProcessing False.

Pojdite na zavihek »Povezave nabora podatkov«.

Povezovanje sklopov

Pojdite na ustrezen zavihek diagrama (slika 6).

Vidimo del tabele, ki je zelo podoben delu tabele, ki je v oblikovalniku poizvedb, z nekaterimi izjemami. Pri naboru vira komunikacije in naboru cilja komunikacije ne morete označiti potrditvenega polja »Vse«, vendar je bilo dodanih več dodatnih stolpcev.

V razmerjih nabora podatkov lahko vzpostavite le razmerje, podobno levemu zunanjemu spoju konstruktorja poizvedbe.

Preden ustvarimo povezavo, se odločimo za namen stolpcev:

  1. Vir povezave je prvi niz podatkov, iz katerega bodo vzete vse razpoložljive vrednosti;
  2. Komunikacijski sprejemnik – nabor podatkov, iz katerega bodo izbrane vrednosti, ki ustrezajo našemu stanju;
  3. Izvorni izraz – polje ali izraz prvega niza podatkov, s katerim bo izvedena primerjava;
  4. Ciljni izraz je polje ali izraz odvisnega niza;
  5. Parameter – če v tem polju navedete ime parametra, bo komunikacija s sprejemnikom potekala samo glede na vrednost, določeno v parametru;
  6. Seznam parametrov – določa možnost uporabe seznama vrednosti kot parametra;
  7. Pogoj povezave – s podajanjem izraza tukaj z uporabo izvornih polj lahko ustvarite pogoj, katerega izpolnitev bo služila kot signal za vzpostavitev povezave;
  8. Začetna vrednost – prikazuje začetno vrednost povezave;
  9. Obvezno razmerje – Določa, ali so omogočena polja, uporabljena v viru (nastavljeno na FALSE) ali cilj (nastavljeno na TRUE), in na podlagi tega doda razmerje k postavitvi.

Torej:

  • Vir komunikacije bo rezultat naše zahteve;
  • Predmet bo deloval kot sprejemnik;
  • Izvorni izraz bo »NomenclatureCode«;
  • Izraz prejemnika „Nomenklatura“;
  • Komunikacija bo obvezna (slika 7).

Če bi kot pogoj povezave navedli ime katere koli nomenklature ali njeno vrsto reprodukcije ali kaj drugega, bi lahko dobili natančnejši vzorec za našo nalogo. Rezultat naših dejanj je viden na sliki 8

Slika 8

Za spodnji dve vrstici poročila v datoteki s cenami ni bilo ujemanja.

Diagram postavitve podatkov (1C SKD)- priročen oblikovalec za ustvarjanje kompleksnih poročil v programskih izdelkih 1C:Enterprise, ki prispevajo k razvoju in sledenju avtomatizacije proizvodnje, kar jim omogoča, da postanejo čim bolj prilagodljivi in ​​lepi v najkrajšem možnem času. Dodatna prednost Data Composition Scheme (1C SKD) je avtomatsko generiranje kontroliranega obrazca poročila, ki je z nadaljnjim razvojem tega področja pomemben dejavnik pri izbiri metode za izdelavo poročila. Toda zaradi zapletenosti strukture sheme sestave podatkov (1C SKD) in ogromnega števila nastavitev pogosto vodi do daljšega razvoja poročila kot prek "oblikovalnika izhodnih obrazcev". Zato mora programer 1C razumeti vse podrobnosti sheme sestave podatkov (1C DCS), da bi še pospešil razvojni čas za ustvarjanje poročil.

Poglejmo si prve tri zavihke Sheme sestave podatkov (1C SKD) - nabor podatkov, povezave naborov podatkov in izračunana polja.

Nabor podatkov v 1C SKD

Nabor podatkov vključuje možnost ustvarjanja treh objektov - poizvedbe, predmeta in unije, poglejmo si vsakega od njih podrobneje:

To je običajna poizvedba, ki se ustvari z gumbom Query Builder. Če je nastavljena zastavica za samodejno izpolnjevanje, bodo vse izbrane podrobnosti samodejno padle v polja nabora podatkov. Prav tako je možno prilagoditi izpolnjevanje polj v zahtevku na zavihku Sestava podatkov, kjer so trije zavihki:

Tabele, tukaj se izberejo tabele, ki bodo sodelovale pri generiranju poročila, običajno so izbrani privzeti podatki, saj imamo na zavihku Tabele in polja že izbrane dokumente, imenike, registre, ki jih potrebujemo...

Polja, tukaj izberemo tiste objekte, ki naj bodo vključeni v poročilo, zastavica otrok označuje, ali bodo za objekt dostopni podrejeni elementi ali ne, logično je, da za nizovne, številske in podobne podatke ne bo mogoče nastaviti zastavico na True.

Pogoji, tukaj izberemo tiste objekte, ki jih lahko uporabljamo pod pogoji v sistemu kontrole dostopa.

Nekaj ​​dela je opravljenega v shemi sestavljanja podatkov, nekaj pa programsko, poglejmo preprost primer:

Najprej bomo izdelali diagram postavitve za postavitev podatkov dokumenta in ga poimenovali SKD (na primer: 1C SKD), v njem ustvarimo objekt nabora podatkov, nato izpolnimo polja, npr. imamo dokument s tabelarnim delom blaga s podrobnostmi - nomenklaturo, količino in ceno.

Dodajmo tri polja in izpolnimo vsak stolpec z imenom podrobnosti, preostali stolpci se bodo izpolnili samodejno:

Ustvarimo gumb na obrazcu dokumenta in opišemo mehanizem delovanja v nadzorovanih obrazcih:

&OnClient

Procedure Print()

NašePoročilo = PrintOnServer(); //pokliči funkcijo na strežniku

NašePoročilo.Pokaži(); //prikaži ustvarjeno poročilo

Konec postopka

&Na strežniku

Funkcija PrintOnServer()

DocumentObject = FormAttributeValue(“Object”);

//tabelarični del Izdelki umestimo v strukturo z imenom IzdelkiSKD na enak način, kot smo v sami SKD navedli ime objekta, ki vsebuje podatke

DataSet = nova struktura;

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

//dobimo našo postavitev in nastavimo privzete nastavitve, tako da so vse nastavitve izpisa poročila vzete iz naše postavitve

OurLayout = DocumentObject.GetLayout(“SKD”);

Nastavitve = OurLayout.DefaultSettings;

//ustvarite postavitev postavitve podatkov z našimi nastavitvami

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(OurLayout, Settings);

//izvedemo sestavljanje podatkov z našim naborom podatkov

DataCompositionProcessor = novDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//Ustvarimo tabelarni dokument in v njem prikažemo svoje poročilo

ReportDocument = Nov tabularni dokument;

OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

Poročilo o vrnitvi dokumenta;

EndFunction

Če želite, lahko dobite območja katere koli druge postavitve in jih tudi prikažete v tem poročilu, na primer imamo standardno postavitev za generiranje plačilnega naloga in v njej je zelo dobro ustvarjena glava, da ne bi nepotrebnega dela, najprej bomo dobili postavitev, prikazali glavo, nato pa bomo ustvarili in prikazali naše poročilo o sistemu za nadzor dostopa.

O poenotenje

Vanjo lahko postavimo svoje poizvedbe in objekte, vendar za razliko od povezave preprosto dodaja tabele eno drugi, to pomeni, da če povežemo dve enaki tabeli, dobimo eno, in ko jo združimo, se podvoji, poglejmo na preprostem primeru:

Imamo mize:

Po komunikaciji bomo prejeli:

In v kombinaciji:

Poglejmo zdaj izpolnjevanje stolpcev v nizih podatkov (nekatere bomo preskočili, ker so povezani z drugimi zavihki; k njim se bomo vrnili v prihodnjih člankih):

- polje, navedite splošno ime atributa;

­­- pot, navedite ime podrobnosti, po katerih ga bomo kontaktirali v sistemu za nadzor dostopa, na primer v Izračunana polja;

- naslov, označite ime atributa, ki bo prikazan v poročilu;

- omejitev polja, navedite razpoložljivost tega rekvizita;

- omejitev podrobnosti, označujemo razpoložljivost podrejenih elementov, pomembno je, da če je navedena razpoložljivost podrobnosti, bo na voljo samo polje, morda bo ta mehanika spremenjena v prihodnjih izdajah;

- izraz, s katerim se izračuna predstavitev polja, priročno ga je uporabljati, ko moramo nekoliko spremeniti izpis podrobnosti, na primer, potrebujemo za imenom nomenklatura je bilo prikazano zaloga, kjer se nahaja, nato izpolnite: Artikel + “je v skladišču” + Skladišče. Ponavljam, da se dostop do podrobnosti izvaja prek imena, navedenega v stolpcu pot;

- urejanje izrazov, priročen mehanizem za nastavitev naročanja poročil, kjer lahko pogoj nastavite ročno, podobno kot v prejšnji točki, vendar kot kaže praksa, ta mehanizem pogosto ne deluje tako, kot bi želeli, zato vam svetujem, da uporabite standardno razvrščanje;

- vrsta vrednosti, označuje vrsto vrednosti atributa, ki ga je treba izpolniti, če uporabljate naslednje polje;

- razpoložljive vrednosti, deluje samo, ko je poln vrsta vrednosti, odprite obrazec in v stolpcu Pomen označimo element, ki ga je treba spremeniti, glede na vrsto so lahko vnaprej določeni predmeti ali številski, na primer podrobnosti imajo enostavne vrednosti, v predstavitev Navedemo, kaj moramo spremeniti, primer logičnega tipa:

- dekor– standardne nastavitve formata polja, podobne nastavitvam v upravljanih obrazcih, vam omogočajo natančnejšo in lepšo konfiguracijo izpisa določenih podrobnosti.

Povezave podatkovnih nizov v 1C SKD

Nameščen samo tukaj levo se pridruži, po podobnem principu povezave v prošnjah, v vir komunikacije določite glavno tabelo za povezavo, v sprejemnik dodatno. IN izvir izraza in sprejemnik izraza Navedemo podrobnosti, po katerih bo potekala komunikacija. Preostale stolpce si bomo podrobneje ogledali, ko bomo pogledali zavihek. Opcije. Če ni dodatne povezave s parametri, je priporočljivo narediti povezavo v zahtevi, to bo pospešilo poročilo.