Pripojenie dátových súborov v úložnom systéme. Konštruktor diagramu rozloženia dát - záložka prepájanie množín údajov 1s SKD podmienka prepojenia množín údajov


41
Nedávno som vytvoril prehľad s neurčitým počtom stĺpcov. Nechcel som sa vŕtať v kóde, tak som sa rozhodol urobiť to v systéme kontroly prístupu. Nebol s tým problém, výsledok bolo potrebné natiahnuť na ľubovoľné rozloženie (vlastná hlavička +... 27
Aj keď študenti CDS na to narazia prvý alebo druhý deň, malo by to byť v sekcii FAQ. Jednoduchý príklad programového výstupu zostavy v rozložení s použitím predvolených nastavení. //Získajte diagram z... 18
Pri generovaní zostáv v systéme kontroly prístupu sa štandardne rozbalia všetky zoskupenia, niekedy je však potrebné ihneď po vygenerovaní zobraziť zostavu so zbalenými zoskupeniami! Tento kód v module prehľadov vám umožňuje zbaliť... 9
Pri vytváraní zostáv sa vyžaduje, aby pre používateľa s obmedzenými právami bola zostava vygenerovaná úplne bez kontroly práv! Najmä ak je nakonfigurované RLS Existuje niekoľko spôsobov, ako to urobiť: 1. Nainštalovať...

V tomto prípade začiarkavacie políčko Required určuje, či sú polia použité v zdroji (nastavené na FALSE) alebo v cieli (nastavené na TRUE) povolené a na základe toho pridá vzťah k rozloženiu.

Pre každú z množín údajov môžete nastaviť kontrolu hierarchie:

Táto možnosť sa používa, ak je potrebné spracovať podmienku výberu pre pole neštandardným spôsobom. Pole môže byť špecifikované pomocou množiny údajov, z ktorej sa získavajú údaje, aby sa skontrolovalo, či odkaz patrí do hierarchie určitej hodnoty.

Otázka 11.33 skúšky 1C: Platform Professional. Je prijateľné používať viacero súborov údajov?

  1. Iba pri použití datasetov - objekt
  2. Iba pri použití datasetov - dotaz

Správna odpoveď je prvá, v každom prípade je akceptovateľná.


Otázka 11.10 skúšky 1C: Platform Professional. Pri definovaní vzťahu medzi dvoma množinami údajov v diagrame zloženia údajov

  1. Možnosť pripojenia (ľavé, plné) vyberie vývojár
  2. Vždy sa používa ľavé spojenie prvej sady s druhou
  3. Vždy sa používa ľavé spojenie druhej sady s prvou
  4. Používa sa ľavé spojenie prvej sady s druhou, v niektorých prípadoch sa vytvorí vnútorné spojenie

Správna odpoveď je štvrtá. Dátové sady sú spojené iba ľavým alebo vnútorným spojením.

Otázka 11.13 skúšky 1C: Platform Professional. V akých prípadoch je potrebné konfigurovať kontrolu hierarchie na karte "Súbory údajov" v okne návrhára diagramu rozloženia

  1. Ak potrebujete zakázať príjem súčtu podľa vašej vlastnej hierarchie, ktorá sa líši od štandardnej
  2. Ak potrebujete povoliť získavanie súčtov podľa vašej vlastnej hierarchie, odlišnej od štandardnej
  3. Ak potrebujete zakázať inštaláciu výberu pre vstup do skupiny vlastnej hierarchie, odlišnej od štandardnej
  4. Ak potrebujete povoliť začlenenie výberu do skupiny vašej vlastnej hierarchie, odlišnej od štandardnej

Správna odpoveď je číslo štyri, popis v príspevku.

Otázka 11.16 skúšky 1C: Platform Professional. Aké druhy spojení medzi dvoma súbormi údajov možno implementovať v systéme kompozície?

  1. Všetko ako v jazyku dopytu: „Všetci všetkým“, „Vľavo“, „Vpravo“, „Vnútorné“ a „Úplné“
  2. Iba „Všetci všetkým“, „Doľava“, „Vpravo“ a „Vnútorné“
  3. Iba „ľavý“ a „vnútorný“
  4. Iba „Všetci všetkým“, „Vľavo“ a „Vnútorné“
  5. Iba "ľavý", "pravý", "vnútorný" a "úplný"

Správna odpoveď je štvrtá, podľa výsledku testu. V skutočnosti je to tretie správne.

Otázka 11.17 skúšky 1C: Platform Professional. Pri nastavovaní vzťahu medzi dvoma množinami údajov sa vyberie príznak "Požadovaný vzťah". V akom prípade akcie používateľa spôsobia zlyhanie pripojenia?

  1. Spojenie údajov z oboch súborov bude realizované bez ohľadu na to, aké nastavenia má používateľ
  2. Zoznam vybraných polí zobrazuje iba polia v ľavej množine
  3. V zozname vybratých polí sú špecifikované iba polia v pravej množine
  4. V zozname vybraných polí sú označené len polia ľavej množiny, vybrané je pole pravej množiny
  5. V zozname vybraných polí sú označené len polia pravej množiny, vybrané je pole ľavej množiny

Správna odpoveď je druhá, ak je len jedna množina (a zdroj), tak nie je čo spájať.

Otázka 11.39 skúšky 1C: Platform Professional. Ako sa externé dáta prenášajú do množiny – objektu v systéme skladania dát?

  1. Pomocou vstavaného jazyka cez procesor na zostavovanie údajov
  2. Používanie vstavaného jazyka prostredníctvom nástroja na tvorbu rozloženia
  3. Pomocou vstavaného jazyka cez výstupný procesor systému na zostavovanie dát

Správna odpoveď je prvá, prostredníctvom spracovateľa.

Systém skladania údajov môže používať viacero súborov údajov. A je celkom logické, že tieto súbory údajov by mali byť navzájom prepojené. Analogicky s dopytovacím jazykom 1C môžu byť súbory údajov buď alebo. V tomto článku budeme hovoriť o pripojenie dátových súborov v systéme kontroly prístupu.

Na prvý pohľad môže byť nejasné, prečo potrebujete vytvoriť niekoľko súborov údajov a potom ich spojiť, ak môžete jednoducho spojiť tabuľky v rámci jedného súboru údajov. Má to minimálne jeden dôvod – v prípade použitia externého súboru údajov. Ako viete, keď napíšeme dotaz na súbor údajov ACS, nemôžeme do neho prejsť, napríklad . Hoci pri bežnej požiadavke sa to robí celkom jednoducho. V prípade použitia systému kontroly prístupu sme nútení preniesť doň tabuľku hodnôt ako . Z toho vyplýva potreba spájať súbory údajov. Dovoľte mi okamžite poznamenať, že súbory údajov možno pripojiť iba pomocou ĽAVÉ PRIPOJENIE. Preto na rozdiel od tohto neuvidíte začiarkavacie políčka, ktoré sú zodpovedné za typ pripojenia tabuľky.

Teraz si predstavme situáciu, na ktorej príklade môžeme zvážiť prepojenie súborov údajov v systéme kontroly prístupu. Predpokladajme, že máme adresár Tovar, ktoré môžeme prijímať od rôznych dodávateľov a chceme vygenerovať report s cenami za tovar podľa dodávateľa, aby sme vybrali dodávateľa s najvýhodnejšou cenou. A ceny, ktoré sú momentálne aktuálne, vezmeme napríklad prostredníctvom webových služieb z webových stránok dodávateľov.

V súlade s tým budeme mať pre tovar súbor údajov získaný pomocou dopytu a pre ceny budeme mať súbor údajov získaný z externého zdroja.


Teraz poďme k záložke Vzťahy množiny údajov a nakonfigurujte tak, ako je znázornené na obrázku.

Na záložke nastavenie Najprv urobme základný výstup podrobných záznamov


Nech je to v našom adresári Tovar obsahuje nasledujúce položky

Spustíme prehľad a uvidíme nasledujúci obrázok

To znamená, že vidíme, že súbory údajov boli prepojené podľa všetkých pravidiel ĽAVÉ PRIPOJENIE

Na záložke Vzťahy množiny údajov V príslušných poliach je možné zadať niektoré ďalšie parametre. Ale používajú sa pomerne zriedka. Viac podrobností nájdete v technickej dokumentácii a na diskoch ITS.

Niekedy, aby sa dosiahol určitý výsledok rozloženia, je potrebné vytvoriť spojenia medzi súbormi údajov v systéme riadenia prístupu. V našom článku sa pokúsime hovoriť o tom, kedy je to potrebné a ako to urobiť.

Schéma rozloženia údajov implementovaná v 1C podporuje tri typy zdrojov údajov (obr. 1)

Zdroje dát

Najzrejmejším a najčastejšie používaným zdrojom údajov vývojármi je Query.

Návrhár dotazov implementovaný vo verzii 8 1C je veľmi pohodlný a vo väčšine prípadov môžete prepojiť niekoľko tabuliek a urobiť potrebné zoskupenia a výbery priamo v ňom.

V zložitých prípadoch, keď je potrebné alebo vhodnejšie použiť spustenie nejakého kódu (napríklad načítanie údajov zo súboru tretej strany) alebo keď nie je možné použiť dotaz, príde na zdroj údajov „Objekt“. záchrana. Ľubovoľný kód vykonávaný v module musí mať na výstupe určitú štruktúru, ku ktorej má prístupový systém prístup.

Tretím zdrojom údajov je „Union“. V skutočnosti možno tento zdroj považovať za jeden z typov komunikácie. Kombinuje (redukuje niekoľko tabuliek do jednej), bez párovania, ale zhodu určitých polí. To znamená, že ak majú dve spájané tabuľky 3 a 4 riadky, výsledný zdroj údajov bude mať 7 riadkov.

Formulácia problému

Ako testovaciu plochu zvolíme základňu UPP, verziu 1.3.92.3, fungujúcu v bežnom aplikačnom režime.

Dostali sme nasledujúcu úlohu: len pomocou systému kontroly prístupu vytvoriť zostavu, ktorá by zobrazila tabuľku nakúpených položiek z dokladu s cenami prevzatými zo súboru zaslaného protistranou.

Takže musíme:

  1. Vezmite tabuľkovú časť dokladu o prijatí;
  2. Nahrajte súbor do zdroja údajov „Object“;
  3. Prepojte tieto dva zdroje pomocou určitého parametra (v našom prípade to bude kód);
  4. Zobrazte výslednú tabuľku.

Proces vykonávania

Poďme si prejsť všetky uvedené kroky:

  • Vytvoríme dotaz na tabuľkovú časť príjmového dokladu (obr. 2)

Obr.2

  • Vytvorte objekt súboru údajov (obr. 3);

Obr.3

Tu je dôležité venovať pozornosť „Názov objektu, ktorý obsahuje údaje“, tento názov budeme musieť uviesť v kóde modulu výkazu.

  • Prejdeme do modulu výkazov a vytvoríme tam procedúru „Pri zostavovaní výsledku“ (obr. 4);


Obr.4

Nebudeme popisovať postup získavania dát z externého súboru, budeme venovať pozornosť tej časti kódu, ktorá musí byť prítomná v layoute, aby sme mohli získať dáta pre “Data Set 2” (obr. 5).

Obr.5

Dôležité! Pri vytváraní „Object“ v kóde procedúry počas prepojenia musí byť hodnota parametra StandardProcessing False.

Prejdite na kartu „Odkazy na množinu údajov“.

Prepojovacie súpravy

Prejdite na príslušnú kartu diagramu (obr. 6).

Vidíme časť tabuľky, ktorá je veľmi podobná časti tabuľky, ktorá je v návrhárovi dotazov, s niektorými výnimkami. Pre sadu zdrojov komunikácie a sadu cieľov komunikácie nemôžete začiarknuť políčko „Všetky“, ale bolo pridaných niekoľko ďalších stĺpcov.

Vo vzťahoch množiny údajov môžete vytvoriť iba vzťah podobný ľavému vonkajšiemu spojeniu konštruktora dotazu.

Pred vytvorením spojenia sa rozhodneme o účele stĺpcov:

  1. Zdroj odkazu je prvý súbor údajov, z ktorého sa prevezmú všetky dostupné hodnoty;
  2. Komunikačný prijímač – súbor údajov, z ktorých sa vyberú hodnoty zodpovedajúce nášmu stavu;
  3. Zdrojový výraz – pole alebo výraz prvého súboru údajov, s ktorým sa uskutoční porovnanie;
  4. Cieľový výraz je pole alebo výraz závislej množiny;
  5. Parameter – ak do tohto poľa zadáte názov parametra, komunikácia s prijímačom bude prebiehať iba podľa hodnoty uvedenej v parametri;
  6. Zoznam parametrov – určuje možnosť použitia zoznamu hodnôt ako parametra;
  7. Podmienka spojenia – zadaním výrazu tu pomocou zdrojových polí vytvoríte podmienku, ktorej splnenie bude slúžiť ako signál na nadviazanie spojenia;
  8. Počiatočná hodnota – zobrazuje počiatočnú hodnotu spojenia;
  9. Povinný vzťah – určuje, či sú polia použité v zdroji (nastavené na FALSE) alebo v cieli (nastavené na hodnotu TRUE) povolené a na základe toho pridáva vzťah do rozloženia.

Takto:

  • Zdroj komunikácie bude výsledkom našej požiadavky;
  • Objekt bude pôsobiť ako prijímač;
  • Zdrojový výraz bude „NomenclatureCode“;
  • Výraz prijímača „Nomenklatúra“;
  • Komunikácia bude povinná (obr. 7).

Ak by sme ako podmienku spojenia uviedli názov akéhokoľvek názvoslovia, jeho typ reprodukcie alebo niečo iné, mohli by sme získať presnejšiu vzorku pre našu úlohu. Výsledok nášho konania je možné vidieť na obr.8

Obr.8

V súbore s cenami sa nenašla žiadna zhoda pre dva spodné riadky prehľadu.

Diagram rozloženia údajov (1C SKD)- pohodlný dizajnér na vytváranie komplexných správ v softvérových produktoch 1C:Enterprise, ktoré prispievajú k vývoju a sledovaniu automatizácie výroby, čo im umožňuje, aby boli čo najflexibilnejšie a najkrajšie v minimálnom čase. Ďalšou výhodou Data Composition Scheme (1C SKD) je automatické generovanie riadeného formulára reportu a s ďalším rozvojom tejto oblasti je dôležitým faktorom pri výbere spôsobu vypracovania reportu. Ale kvôli zložitosti štruktúry Data Composition Scheme (1C SKD) a obrovskému množstvu nastavení to často vedie k dlhšiemu vývoju reportu ako cez “výstupného formulára dizajnéra”. Preto musí programátor 1C pochopiť všetky zložitosti schémy zloženia údajov (1C DCS), aby sa ešte viac urýchlil čas vývoja na generovanie správ.

Pozrime sa na prvé tri záložky schémy skladania údajov (1C SKD) – množina údajov, pripojenia množiny údajov a vypočítané polia.

Dáta sú v 1C SKD

Súbor údajov obsahuje možnosť vytvoriť tri objekty – dotaz, objekt a spojenie, pozrime sa na každý z nich bližšie:

Toto je bežný dotaz, ktorý sa generuje pomocou tlačidla Query Builder. Ak je nastavený príznak Automatické dopĺňanie, všetky vybrané podrobnosti sa automaticky zahrnú do polí množiny údajov. Taktiež je možné prispôsobiť vyplnenie polí v požiadavke na záložke Zloženie údajov, kde sú tri záložky:

Tabuľky, tu sa vyberajú tabuľky, ktoré sa budú podieľať na generovaní zostavy, väčšinou sa vyberú predvolené údaje, keďže na záložke Tabuľky a polia už máme vybraté doklady, adresáre, registre, ktoré potrebujeme...

Polia, tu vyberáme tie objekty, ktoré majú byť zahrnuté do zostavy, príznak deti označuje, či budú pre objekt prístupné podradené prvky alebo nie, je logické, že pre reťazcové, číselné a podobné údaje nebude možné nastaviť vlajka na True.

Podmienky, tu vyberáme tie objekty, ktoré je možné použiť za podmienok v systéme kontroly prístupu.

Časť práce sa vykonáva v schéme zloženia údajov a časť sa vykonáva programovo, pozrime sa na jednoduchý príklad:

Najprv si vytvoríme layout diagram pre dátové rozloženie dokumentu a nazveme ho SKD (napríklad: 1C SKD), v ňom vytvoríme objekt množiny dát, následne vyplníme polia, napríklad máme dokument s tabuľkovou časťou tovaru s podrobnosťami - nomenklatúra, množstvo a cena.

Pridajme tri polia a do každého stĺpca vyplňte názov podrobností, zvyšné stĺpce sa vyplnia automaticky:

Vytvorme tlačidlo na formulári dokumentu a popíšeme mechanizmus fungovania v riadených formulároch:

&OnClient

Tlač postupu()

OurReport = PrintOnServer(); //zavolajte funkciu na serveri

OurReport.Show(); //zobrazenie vygenerovanej zostavy

EndProcedure

&Na serveri

Funkcia PrintOnServer()

DocumentObject = FormAttributeValue(“Object”);

//tabuľkovú časť Produkty umiestnime do štruktúry s názvom ProduktySKD rovnakým spôsobom, ako sme uviedli v samotnom SKD názov objektu obsahujúceho údaje

DataSet = nová štruktúra;

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

//získame naše rozloženie a nastavíme predvolené nastavenia tak, aby sa všetky nastavenia výstupu zostavy prevzali z nášho rozloženia

OurLayout = DocumentObject.GetLayout(“SKD”);

Nastavenia = OurLayout.DefaultSettings;

//vytvorte rozloženie údajov pomocou našich nastavení

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(OurLayout, Nastavenia);

//vykonať kompozíciu údajov pomocou nášho súboru údajov

DataCompositionProcessor = newDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//Vytvoríme tabuľkový dokument a zobrazíme v ňom našu zostavu

ReportDocument = Nový tabuľkový dokument;

OutputProcessor = Nový OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

Správa o vrátení dokumentov;

EndFunction

Ak chcete, môžete získať oblasti akéhokoľvek iného rozloženia a zobraziť ich aj v tomto prehľade, napríklad na generovanie platobného príkazu máme štandardné rozloženie a hlavička je v ňom veľmi dobre vytvorená, aby sa nerobilo zbytočná práca, najprv získame rozloženie, zobrazíme hlavičku, potom vygenerujeme a zobrazíme našu správu o systéme kontroly prístupu.

O zjednotenie

Môžeme do nej umiestňovať naše dopyty a objekty, ale na rozdiel od spojenia jednoducho pridáva tabuľky k sebe, to znamená, že ak spojíme dve rovnaké tabuľky, skončíme pri jednej a po spojení sa zdvojnásobí, pozrime sa na jednoduchom príklade:

Máme tabuľky:

Po komunikácii dostaneme:

A keď sa skombinuje:

Pozrime sa teraz na vypĺňanie stĺpcov v množinách údajov (niektoré preskočíme, keďže súvisia s inými kartami; vrátime sa k nim v budúcich článkoch):

- lúka, uveďte všeobecný názov atribútu;

­­- cesta, uveďte názov údajov, ktorými ju budeme kontaktovať v systéme kontroly prístupu, napríklad v Vypočítané polia;

- titul, uveďte názov atribútu, ktorý sa zobrazí v prehľade;

- obmedzenie poľa, uveďte dostupnosť tejto požiadavky;

- obmedzenie detailov, označujeme dostupnosť podradených prvkov, je dôležité, že ak je uvedená dostupnosť podrobností, potom bude k dispozícii samotné pole, možno sa táto mechanika v budúcich vydaniach zmení;

- výraz, pomocou ktorého sa vypočíta reprezentácia poľa, je vhodné použiť, keď potrebujeme trochu zmeniť výstup detailov, napríklad potrebujeme za menom nomenklatúry bola zobrazená zásob, kde sa nachádza, potom vyplňte: Tovar + “je na sklade” + Sklad. Opakujem, že prístup k podrobnostiam sa vykonáva prostredníctvom mena uvedeného v stĺpci cesta;

- zoradenie výrazov, pohodlný mechanizmus na nastavenie radenia zostáv, kde sa dá podmienka nastaviť ručne, podobne ako v predchádzajúcom bode, no ako ukazuje prax, tento mechanizmus často nefunguje tak, ako by sme chceli, a radím vám použiť štandardné triedenie;

- typ hodnoty, označuje typ hodnoty atribútu, toto je potrebné vyplniť, ak použijete nasledujúce pole;

- dostupné hodnoty, funguje len pri naplnení typ hodnoty, otvorte formulár a v stĺpci Význam označujeme prvok, ktorý je potrebné zmeniť, podľa typu to môžu byť preddefinované objekty alebo číselné, napríklad detaily majú jednoduché hodnoty, v prezentácia Uvádzame, čo musíme zmeniť, napríklad booleovský typ:

- dekor– štandardné nastavenia formátu poľa, podobné nastaveniam v spravovaných formulároch, umožňujú presnejšie a krajšie prispôsobiť výstup určitých detailov.

Pripojenie dátového súboru v 1C SKD

Tu je iba nainštalovaný ľavé pripojenie, na podobnom princípe ako spojenia v žiadostiach, v zdroj komunikácie zadajte hlavnú tabuľku pre pripojenie, v prijímač dodatočné. IN zdroj výrazu A prijímač výrazu Uvádzame podrobnosti, podľa ktorých bude komunikácia prebiehať. Na zvyšné stĺpce sa pozrieme podrobnejšie, keď sa pozrieme na kartu. možnosti. Ak nie je k dispozícii žiadne ďalšie spojenie s parametrami, odporúča sa vykonať spojenie v požiadavke, urýchli sa tým report.