1s 8.3 Stav komunikace SKD. Vztahy mezi datovými soubory v systému řízení přístupu a principy jejich použití

Někdy je pro získání určitého výsledku rozvržení nutné vytvořit propojení mezi datovými sadami v systému řízení přístupu. O tom, kdy je to potřeba a jak to udělat, se pokusíme mluvit v našem článku.

Schéma rozložení dat implementované v 1C podporuje tři typy zdrojů dat (obr. 1)

Zdroje dat

Vývojáři nejviditelnějším a nejčastěji používaným zdrojem dat je Query.

Návrhář dotazů implementovaný ve verzi 8 1C je velmi pohodlný a ve většině případů můžete propojit několik tabulek a provést potřebná seskupení a výběry přímo v něm.

Ve složitých případech, kdy je nutné nebo vhodnější použít provedení nějakého kódu (například načtení dat ze souboru třetí strany) nebo kdy není možné použít dotaz, přichází na řadu datový zdroj „Objekt“. záchrana. Libovolný kód spouštěný v modulu musí mít na výstupu určitou strukturu, ke které má přístupový systém přístup.

Třetím zdrojem dat je „Unie“. Ve skutečnosti lze tento zdroj považovat za jeden z typů komunikace. Kombinuje (redukuje několik tabulek do jedné), bez párování, ale shodu určitých polí. To znamená, že pokud mají dvě spojované tabulky 3 a 4 řádky, bude mít výsledný zdroj dat 7 řádků.

Formulace problému

Jako testovací základnu zvolíme základnu UPP, verze 1.3.92.3, pracující v běžném aplikačním režimu.

Dostali jsme následující úkol: pouze pomocí systému kontroly přístupu vytvořit sestavu, která by zobrazila tabulku nakoupených položek z dokladu s cenami převzatými ze souboru zaslaného protistranou.

Takže musíme:

  1. Vzít tabulková část doklad o příjmu;
  2. Nahrajte soubor do zdroje dat „Objekt“;
  3. Propojte tyto dva zdroje určitým parametrem (v našem případě to bude kód);
  4. Zobrazte výslednou tabulku.

Proces provádění

Pojďme si projít všechny uvedené kroky:

  • Vytvoříme dotaz pro tabulkovou část příjmového dokladu (obr. 2)

Obr.2

  • Vytvořte objekt datové sady (obr. 3);

Obr.3

Zde je důležité věnovat pozornost „Název objektu obsahujícího data“, toto je název, který budeme muset uvést v kódu modulu sestav.

  • Přejdeme do modulu sestav a vytvoříme tam proceduru „Při sestavování výsledku“ (obr. 4);


Obr.4

Nebudeme popisovat postup získávání dat z externího souboru, budeme se věnovat té části kódu, která musí být v layoutu přítomna, abychom mohli získat data pro „Datovou sadu 2“ (obr. 5).

Obr.5

Důležité! Při vytváření „Object“ v kódu procedury během propojování musí být hodnota parametru StandardProcessing False.

Přejděte na kartu „Odkazy na soubor dat“.

Propojovací sady

Přejděte na odpovídající záložku diagramu (obr. 6).

Vidíme část tabulky, která je až na výjimky velmi podobná části tabulky, která je v návrháři dotazů. Zaškrtávací políčko „Vše“ nelze zaškrtnout pro sadu zdrojů komunikace a sadu cílů komunikace, ale bylo přidáno několik dalších sloupců.

Ve vztazích datové sady můžete vytvořit pouze vztah podobný levému vnějšímu spojení konstruktoru dotazu.

Před vytvořením připojení se rozhodněme o účelu sloupců:

  1. Zdroj odkazu je první datová sada, ze které budou převzaty všechny dostupné hodnoty;
  2. Komunikační přijímač – sada dat, ze kterých budou vybrány hodnoty odpovídající našemu stavu;
  3. Zdrojový výraz – pole nebo výraz první datové množiny, se kterou dojde k porovnání;
  4. Cílový výraz je pole nebo výraz závislé množiny;
  5. Parametr – zadáte-li do tohoto pole název parametru, bude komunikace s přijímačem probíhat pouze podle hodnoty uvedené v parametru;
  6. Seznam parametrů – určuje možnost použití seznamu hodnot jako parametru;
  7. Podmínka spojení – zadáním výrazu zde pomocí zdrojových polí vytvoříte podmínku, jejíž splnění bude sloužit jako signál k navázání spojení;
  8. Počáteční hodnota – zobrazuje počáteční hodnotu spojení;
  9. Povinný vztah - Určuje, zda jsou povolena pole použitá ve zdroji (nastaveno na FALSE) nebo v cíli (nastaveno na TRUE) a na základě toho přidá vztah k rozvržení.

Tím pádem:

  • Zdroj komunikace bude výsledkem naší žádosti;
  • Objekt bude fungovat jako přijímač;
  • Zdrojový výraz bude „NomenclatureCode“;
  • Výraz přijímače „Nomenklatura“;
  • Komunikace bude povinná (obr. 7).

Kdybychom jako podmínku spojení uvedli název jakékoli nomenklatury nebo její typ reprodukce nebo něco jiného, ​​mohli bychom získat přesnější vzorek pro náš úkol. Výsledek našeho jednání je vidět na obr. 8

Obr.8

V souboru s cenami nebyla nalezena žádná shoda pro dva spodní řádky přehledu.

Systém skládání dat může používat více sad dat. A je celkem logické, že by tyto datové sady měly být nějak propojeny. Analogicky s dotazovacím jazykem 1C mohou být datové sady buď nebo. V tomto článku budeme hovořit o připojení datových sad v systému řízení přístupu.

Na první pohled může být nejasné, proč potřebujete vytvořit několik datových sad a poté je spojit, pokud můžete jednoduše spojit tabulky v rámci jedné datové sady. Má to minimálně jeden důvod – v případě použití externí datové sady. Jak víte, když píšeme dotaz na datovou sadu ACS, nemůžeme do ní předat například . I když pro normální požadavek se to dělá docela jednoduše. V případě použití přístupového systému jsme nuceni do něj přenést tabulku hodnot jako . Z toho plyne potřeba propojovat datové sady. Okamžitě poznamenám, že datové sady lze připojit pouze pomocí LEVÉ PŘIPOJENÍ. Na rozdíl od tohoto zde tedy neuvidíte zaškrtávací políčka, která jsou zodpovědná za typ připojení tabulky.

Nyní si pojďme představit situaci, na jejímž příkladu můžeme uvažovat o propojení datových sad v systému řízení přístupu. Předpokládejme, že máme adresář Zboží, které můžeme přijímat od různých dodavatelů, a chceme vygenerovat report s cenami zboží podle dodavatele, abychom vybrali dodavatele s nejvíce příznivá cena. A ceny, které jsou v tuto chvíli aktuální, vezmeme například prostřednictvím webových služeb z webových stránek dodavatelů.

V souladu s tím budeme mít pro zboží soubor dat získaný pomocí poptávky a pro ceny budeme mít soubor dat získaný z externího zdroje.


Nyní přejdeme k záložce Vztahy datové sady a proveďte nastavení, jak je znázorněno na obrázku.

Na záložce Nastavení Nejprve si udělejme základní výstup podrobných záznamů


Nechte to být v našem adresáři Zboží obsahuje následující položky

Spustíme zprávu a uvidíme následující obrázek

To znamená, že vidíme, že datové sady byly propojeny podle všech pravidel LEVÉ PŘIPOJENÍ

Na záložce Vztahy datové sady V příslušných polích je možné zadat některé další parametry. Používají se ale poměrně zřídka. Více se dočtete v technické dokumentaci a na discích ITS.

Schéma rozložení dat (1C SKD)- pohodlný návrhář pro vytváření komplexních sestav v softwarových produktech 1C:Enterprise, které přispívají k rozvoji a sledování automatizace výroby, což jim umožňuje být co nejflexibilnější a nejkrásnější v minimálním čase. Další výhodou Data Composition Scheme (1C SKD) je automatické generování řízeného formuláře reportu a s dalším rozvojem této oblasti je důležitým faktorem při volbě způsobu zpracování reportu. Ale vzhledem ke složitosti struktury Data Composition Scheme (1C SKD) a obrovskému množství nastavení to často vede k delšímu vývoji sestavy než přes „výstupní návrhář formuláře“. Programátor 1C proto potřebuje porozumět všem složitostem schématu skládání dat (1C DCS), aby dále urychlil dobu vývoje pro generování zpráv.

Podívejme se na první tři záložky Data Composition Scheme (1C SKD) - datová sada, připojení datové sady a kalkulovaná pole.

Data nastavena v 1C SKD

Sada dat obsahuje možnost vytvořit tři objekty – dotaz, objekt a sjednocení, pojďme se na každý z nich podívat blíže:

Toto je běžný dotaz, který je generován pomocí tlačítka Query Builder. Pokud je nastaven příznak Automatické vyplňování, budou všechny vybrané podrobnosti automaticky zahrnuty do polí datové sady. Dále je možné přizpůsobit vyplnění polí v požadavku na záložce Složení dat, kde jsou tři záložky:

Tabulky, zde se vybírají tabulky, které se budou podílet na generování sestavy, většinou se volí výchozí data, jelikož na záložce Tabulky a pole jsme již vybrali dokumenty, adresáře, registry, které potřebujeme...

Pole, zde vybíráme ty objekty, které mají být zahrnuty do sestavy, příznak děti udává, zda budou pro objekt přístupné podřízené prvky, je logické, že u řetězcových, číselných a podobných údajů nebude možné nastavit příznak na True.

Podmínky, zde vybíráme ty objekty, které lze používat za podmínek v systému řízení přístupu.

Část práce se provádí ve schématu složení dat a část se provádí programově; podívejme se na jednoduchý příklad:

Nejprve si vytvoříme layout diagram pro datové rozložení dokumentu a nazveme jej SKD (například: 1C SKD), v něm vytvoříme objekt datové sady, poté vyplníme pole, např. máme dokument s tabulkovou částí zboží s podrobnostmi - nomenklatura, množství a cena.

Přidejte tři pole a vyplňte každý sloupec názvem podrobností, zbývající sloupce se vyplní automaticky:

Vytvořme tlačítko na formuláři dokumentu, popišme mechanismus fungování v kontrolované formy:

&OnClient

Tisk procedur()

OurReport = PrintOnServer(); //volání funkce na serveru

OurReport.Show(); //zobrazí vygenerovanou sestavu

Konec procedury

&Na serveru

Funkce PrintOnServer()

DocumentObject = FormAttributeValue(“Object”);

//tabulkovou část Produkty umístíme do struktury s názvem ProductsSKD stejným způsobem, jak jsme uvedli v samotném SKD název objektu obsahujícího data

DataSet = nová struktura;

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

//získáme naše rozložení a nastavíme výchozí nastavení tak, aby všechna nastavení výstupu sestavy byla převzata z našeho rozložení

OurLayout = DocumentObject.GetLayout(“SKD”);

Nastavení = OurLayout.DefaultSettings;

//vytvořit rozložení dat s našimi nastaveními

LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutComposer.Execute(OurLayout, Nastavení);

//provádět skládání dat s naší datovou sadou

DataCompositionProcessor = newDataCompositionProcessor;

DataCompositionProcessor.Initialize(LayoutLayout, DataSet);

//Vytvoříme tabulkový dokument a zobrazíme v něm naši sestavu

ReportDocument = Nový tabulkový dokument;

OutputProcessor = Nový OutputProcessorDataCompositionResultInTabularDocument;

OutputProcessor.SetDocument(ReportDocument);

OutputProcessor.Output(DataCompositionProcessor);

Zpráva o vrácení dokumentů;

EndFunction

Pokud si přejete, můžete získat oblasti libovolného jiného rozložení a také je zobrazit v tomto přehledu, například pro generování platebního příkazu máme standardní rozložení a záhlaví je v něm velmi dobře vytvořeno, aby se nestalo zbytečná práce, jen nejprve získáme rozložení, zobrazíme záhlaví, poté vygenerujeme a zobrazíme naši zprávu o systému řízení přístupu.

O unifikace

Můžeme do něj umisťovat naše dotazy a objekty, ale na rozdíl od spojení k sobě tabulky prostě sčítá, to znamená, že když spojíme dvě stejné tabulky, skončíme u jedné a při spojení se zdvojnásobí, podívejme na jednoduchém příkladu:

Máme tabulky:

Po komunikaci obdržíme:

A v kombinaci:

Podívejme se nyní na vyplňování sloupců v datových sadách (některé vynecháme, protože souvisí s jinými kartami; vrátíme se k nim v budoucích článcích):

- pole, uveďte obecný název atributu;

­­- cesta, uveďte název údajů, kterými jej budeme kontaktovat v systému kontroly přístupu, například v Vypočítaná pole;

- titul, uveďte název atributu, který se zobrazí v přehledu;

- omezení pole, uveďte dostupnost tohoto požadavku;

- omezení detailů, uveďte dostupnost podřízené prvky, je důležité, že pokud je uvedena dostupnost podrobností, pak bude k dispozici i samotné pole, možná se tato mechanika v budoucích verzích změní;

- výraz, pomocí kterého se vypočítá reprezentace pole, je vhodné jej použít, když potřebujeme trochu změnit výstup detailů, například potřebujeme za jménem nomenklatura byla zobrazena skladem, kde se nachází, pak vyplňte: Položka + „je na skladě“ + Sklad. Opakuji, že přístup k podrobnostem se provádí prostřednictvím jména uvedeného ve sloupci cesta;

- řazení výrazů, pohodlný mechanismus pro nastavení řazení sestav, kdy lze podmínku nastavit ručně, podobně jako v předchozím bodě, ale jak ukazuje praxe, tento mechanismus často nefunguje tak, jak bychom si přáli, a radím vám použít standardní řazení;

- typ hodnoty, označuje typ hodnoty atributu, toto je nutné vyplnit, pokud použijete následující pole;

- dostupné hodnoty, funguje pouze při naplnění typ hodnoty, otevřete formulář a ve sloupci Význam označujeme prvek, který je třeba změnit, podle typu to mohou být předdefinované objekty nebo číselné, například detaily mají jednoduché hodnoty, v prezentace Uvádíme, na co potřebujeme změnit, příklad booleovského typu:

- výzdobastandardní nastavení formát pole, podobný nastavení ve spravovaných formulářích, umožňuje přesněji a krásněji přizpůsobit výstup určitých detailů.

Připojení datové sady v 1C SKD

Zde je pouze nainstalován levé připojení, na principu podobném spojení v žádostech, v zdroj komunikace zadejte hlavní tabulku pro připojení, in přijímač další. V zdroj výrazu A přijímač výrazu Uvádíme podrobnosti, kterými bude komunikace probíhat. Na zbývající sloupce se podíváme podrobněji, když se podíváme na záložku. Možnosti. Pokud není žádné další spojení s parametry, pak se doporučuje provést spojení v požadavku, urychlí se tím report.

41
Nedávno jsem vytvořil sestavu s neurčitým počtem sloupců. Nechtěl jsem se vrtat s kódem, tak jsem se rozhodl to udělat v systému kontroly přístupu. Nebyl s tím žádný problém, výsledek bylo nutné natáhnout na libovolné rozložení (vlastní hlavička +... 27
I když na to studenti CDS narazí první nebo druhý den, mělo by to být v sekci FAQ. Jednoduchý příklad programového výstupu sestavy v rozvržení s použitím výchozího nastavení. //Získejte diagram z... 18
Při generování sestav v systému řízení přístupu jsou standardně všechna seskupení rozbalena, ale někdy je nutné zobrazit sestavu se sbalenými seskupeními ihned po vygenerování! Tento kód v modulu sestav umožňuje sbalit... 9
Při vytváření sestav je vyžadováno, aby pro uživatele s omezenými právy byla sestava generována zcela bez kontroly práv! Zejména pokud je nakonfigurováno RLS. Existuje několik způsobů, jak toho dosáhnout: 1. Instalovat...

V tomto případě zaškrtávací políčko Required určuje, zda jsou pole použitá ve zdroji (nastaveno na FALSE) nebo v cíli (nastaveno na TRUE) povolena a na základě toho přidá vztah k rozvržení.

Pro každý soubor dat můžete nastavit kontrolu hierarchie:

Tato možnost se používá, pokud je potřeba zpracovat podmínku výběru pro pole nestandardním způsobem. Pole může být specifikováno s datovou sadou, ze které se získají data, aby se ověřilo, zda odkaz patří do hierarchie určité hodnoty.

Otázka 11.33 zkoušky 1C: Platform Professional. Je přijatelné používat více sad dat?

  1. Pouze při použití datových sad – objekt
  2. Pouze při použití datových sad - dotaz

Správná odpověď je první, v každém případě je přijatelná.


Otázka 11.10 zkoušky 1C: Platform Professional. Při definování vztahu mezi dvěma datovými sadami v diagramu složení dat

  1. Možnost připojení (levý, plný) je vybrán vývojářem
  2. Vždy se použije levé spojení první sady s druhou
  3. Vždy se použije levé spojení druhé sady s první
  4. Používá se levé spojení první sady s druhou, v některých případech je vytvořeno vnitřní spojení

Správná odpověď je čtvrtá. Datové sady jsou spojeny pouze levým nebo vnitřním spojením.

Otázka 11.13 zkoušky 1C: Platform Professional. V jakých případech je nutné konfigurovat kontrolu hierarchie na záložce "Datové sady" v okně návrháře diagramu rozložení

  1. Pokud potřebujete zakázat příjem součtů podle vaší vlastní hierarchie, která se liší od standardní
  2. Pokud potřebujete povolit získávání součtů podle vaší vlastní hierarchie, odlišné od standardní
  3. Pokud potřebujete zakázat instalaci výběru pro vstup do skupiny vlastní hierarchie, odlišné od standardní
  4. Pokud potřebujete povolit zařazení výběru do skupiny vaší vlastní hierarchie, odlišné od standardní

Správná odpověď je číslo čtyři, popis v příspěvku.

Otázka 11.16 zkoušky 1C: Platform Professional. Jaké druhy spojení mezi dvěma sadami dat lze implementovat v kompozičním systému?

  1. Vše jako v dotazovacím jazyce: „Vše všem“, „Vlevo“, „Vpravo“, „Vnitřní“ a „Úplné“
  2. Pouze „All to All“, „Left“, „Right“ a „Inner“
  3. Pouze "vlevo" a "vnitřní"
  4. Pouze „All to All“, „Left“ a „Inner“
  5. Pouze "Left", "Right", "Inner" a "Full".

Správná odpověď je podle výsledku testu čtvrtá. Ve skutečnosti je to třetí správně.

Otázka 11.17 zkoušky 1C: Platform Professional. Při nastavování vztahu mezi dvěma datovými sadami je vybrán příznak "Požadovaný vztah". V jakém případě způsobí akce uživatele selhání připojení?

  1. Spojení dat z obou sad bude realizováno bez ohledu na to, jaká nastavení uživatel provedl
  2. Seznam vybraných polí zobrazuje pouze pole v levé sadě
  3. V seznamu vybraných polí jsou specifikována pouze pole v pravé sadě
  4. V seznamu vybraných polí jsou označena pouze pole levé sady, vybráno je pole pravé sady
  5. V seznamu vybraných polí jsou označena pouze pole pravé sady, vybráno je pole levé sady

Správná odpověď je druhá, pokud je pouze jedna sada (a zdroj), tak není co spojovat.

Otázka 11.39 zkoušky 1C: Platform Professional. Jak se externí data přenášejí do množiny - objektu v systému skládání dat?

  1. Pomocí vestavěného jazyka prostřednictvím procesoru kompozice dat
  2. Použití vestavěného jazyka prostřednictvím nástroje pro tvorbu rozložení
  3. Pomocí vestavěného jazyka přes výstupní procesor systému skládání dat

Správná odpověď je první, prostřednictvím procesoru.