ACS a externí zdroje dat. Sada dat je objekt. Datové sady 1S SKD předávají parametry externímu objektu

💖 Líbí se vám? Sdílejte odkaz se svými přáteli

Ahoj!
Dnes vám chci popsat téma, kterému bez potápěčské výbavy nerozumíte :) ;)

Potápění znamená, že ponor je poměrně hluboký. V literatuře je na toto téma jen málo odkazů a nebudete schopni tomu porozumět, dokud nedostanete nutkání. K takové akci nebude ani zpráva;) Mimochodem, dokumentace o tom mluví velmi špatně a nedůsledně, musíte se obrátit na literaturu třetích stran;

Například velmi doporučuji „Vývoj komplexních sestav v 1C:Enterprise 8.2“. Data Composition System", (konkrétněji viz strany 224, 267 a 473)

V ACS existují 2 typy zdrojů dat: Dotaz, objekt a sjednocení (tato věc se nepočítá, není to zdroj dat, ale zpracovatel existujících dat). Viz obrázek 1:


Pokud tedy víceméně rozumíme tomu, jak pracovat se zdrojem (množinou) dat typu „Query“, pak nastávají potíže s datovou sadou „Object“.

Nejprve popíšu, co chceme získat jako výstup:

Nahlásit, uživatel klikl na „ Formulář» a zobrazil se seznam položek (viz obr. 2):

Ano, udělal jsem jednu nepřesnost, konkrétně: není tam žádné tlačítko “ Formulář", ale je tam tlačítko" nová akce"(Trochu později vysvětlím, proč se to stalo;)

Ano ano! Další bod: celý tento seznam je odvozen z datové sady „Object“:

Řešení:

  1. Vytvořte externí zprávu;
  2. Přidejte rozvržení ACS, říkejme tomu „Schéma rozvržení hlavních dat“;
  3. Přidáme k němu datovou sadu „Object“, přiřadíme jí název „Nomenclature List“ (měl by být stejný jako na obr. 3);
  4. S nastavením reportu příliš neexperimentujeme, ať je vše jednoduché (viz obr. 4)

Ok, polovina práce ;)

Nyní vygenerujeme hlavní formulář zprávy (ano, ještě jedna věc! Moje konfigurace funguje na běžném rozhraní, ale myslím, že řešení najdete na spravovaných formulářích;) Takže formulář:

Tady nastává problém! Klikneme-li na tlačítko „generovat“ (obr. 5.), objeví se chyba!


Tento článek jsem věnoval řešení tohoto problému!

Událost tlačítka „Generate“ nebylo možné zachytit, tak jsem se rozhodl použít berličku. Spustil jsem konfiguraci v režimu ladění a pokusil se najít tlačítko „generovat“.

Do formuláře jsem vložil proceduru „Generovat“, ale nejsou v ní žádné záznamy, před otevřením formuláře jsem musel předefinovat akci tlačítka „formulář“:


Na Obr. Kromě změny akce formuláře je na obrázku 8 ukázka požadavku, jeho zpracování a předání vygenerovaných dat do systému řízení přístupu. Pojďme si to prostudovat pozorněji:

  1. Generujeme vstupní data pro systém řízení přístupu;
  2. Inicializujeme systém řízení přístupu;
  3. Výsledek zobrazujeme NA FORMULÁŘI (i na to si dejte pozor!).

Připomeňme si interakční diagram objektů systému složení dat:

Schéma rozložení dat v externí sestavě je k dispozici jako globální objekt v metodě formuláře Schéma DataComposition. Můžete k němu také přistupovat podle jména tím, že jej předáte metodě GetLayout(viz obr. 8)

Hlavní část kódu je níže:

Žádost = Nová žádost; Query.Text = "SELECT | Nomenclature.Name as Nomenclature |FROM | Directory.Nomenclature AS Nomenclature"; NomenclatureList = Request.Run().Upload(); DataSets = New Structure("NomenclatureList", NomenclatureList); //SKD = ​​​​GetLayout("MainData LayoutScheme"); SKD = ​​​​DataCompositionScheme; LayoutComp = nový DataLayoutComposer; layoutComp = LayoutComp.Run(SKD, SKD.DefaultSettings); CompDataProcessor = nový DataCompositionProcessor; ProcessorCompData.Initialize(layoutComp, DataSets); output = new DataCompositionResultOutputProcessorInTabularDocument; output.SetDocument(FormElements.Result); output.Output(ProcessorCompData, true);

Ano! Tady je další pěkný moment!!!

V tomto příkladu, jak vidíte (viz obr. 2), se výstup provádí ve formuláři, nikoli v tabulce. dokument! A to je velmi dobře, protože můžeme pracovat s formulářem (programově zachytit události prvku formuláře, dělat nejrůznější triky s drag and drop atd.;)

V tabulkovém dokumentu můžeme jednoduše zobrazit zpracovaná data na obrazovce a přenést kontrolu nad dokumentem na uživatele a nemůžeme žádným způsobem ovlivnit další proces úpravy tohoto obsahu!

Viz systém nápovědy " Pole tabulkového dokumentu “, a já poskytnu pouze výňatek z vestavěné dokumentace systému 1c Enterprise 8.2:

„Pole tabulkového dokumentu je tabulkový dokument umístěný na formuláři. Spolu s řadou možností návrhu tabulkového dokumentu vám to umožňuje organizovat zpracování událostí, ke kterým dochází při výběru buněk, obrázků a dalších ovládacích prvků umístěných v poli tabulkového dokumentu.“

Dobře, jak se říká, hodně štěstí v bitvě;)

Pozornost! Toto je úvodní verze lekce, jejíž materiály mohou být neúplné.

Přihlaste se na stránku jako student

Pro přístup ke školním materiálům se přihlaste jako student

Systém skládání dat 1C 8.3 pro začátečníky: prezentace reportu ve formě diagramu

Dnes doplníme zprávu z minulé lekce (nebo spíše její kopii) o možnost zobrazit stejná data ve formě grafu.

Stanovení cíle

  • Udělejte si kopii zprávy z minulé lekce.
  • Zobrazte stejná data ve formě grafu.
  • V tomto případě by řada (sloupce, osa Y) měla být produkty a body (osa X) by měly být zákazníky. Hodnoty sloupce (podél osy Y) budou představovat množství jídla, které si klient objednal.

Změna kopie předchozí zprávy

Zhotovíme kopii sestavy z minulé lekce pod názvem „Lekce 9“ a tuto kopii otevřeme v konfigurátoru databáze „Gastronom“.

Změňte název sestavy na „Lekce 9“ a klikněte na tlačítko „Otevřít diagram rozložení dat“:

Datové sady měnit nebudeme – naším úkolem je změnit jejich prezentaci pro uživatele.

Proto okamžitě přejdeme na kartu „Nastavení“ a obrátíme svou pozornost na levý sloupec s možnostmi přehledu.

S tímto sloupcem jsme ještě nepracovali, ale dnes vám řeknu, co to znamená.

Všechna nastavení, která na této kartě provedeme (pomocí návrháře kouzelné hůlky nebo ručně dole), se vztahují k jedné z možností sestavy, která je zvýrazněna na levé straně okna.

Ve výchozím nastavení je tato možnost vždy jedna a nazývá se „Hlavní“. Trik je v tom, že v uživatelském režimu můžete mezi těmito možnostmi snadno přepínat.

A nyní máme hlavní možnost, v jejímž nastavení je indikováno zobrazení dat ve formě tabulky:

Přejmenujme tuto možnost (dvojitým kliknutím) a hlavní na „Tabulka“:

Přidání nové možnosti přehledu

Nyní pomocí znaménka plus přidáme další možnost (kam vložíme nastavení pro zobrazení dat ve formě grafu):

Okamžitě tuto možnost nazvěme „Schéma“:

Nastavení nové verze přehledu

Jak vidíte, vpravo od této možnosti (označili jsme ji) je prázdné, to znamená, že zde nejsou žádná nastavení. Pojďme si je vytvořit pomocí naší kouzelné hůlky:

Tentokrát vybereme typ sestavy "Diagram...":

Jako pole k zobrazení vyberte „Množství“ (podobně jako v tabulce):

Jako řadu (osa Y) označujeme pole "Potraviny" a jako body (osa X) - pole "Zákazníci":

Dopadlo to takto:

Uložíme náš report do konfigurátoru a spustíme jej v uživatelském režimu:

Vidíme stůl... co to je?! Jde ale o to, že stačí vybrat jinou možnost přehledu. Klikněte na tlačítko "Vybrat možnost..." a vyberte možnost "Diagram":

Schéma je připraveno

Vygenerujeme sestavu znovu:

Skvělé, jaká krása

Zpracování referencí po dokončení všech kroků v tomto tutoriálu

Na konci modulu

Tím končí naše diskuse o základech systému skládání dat. Snažil jsem se na jednoduchých příkladech sdělit a vysvětlit základy nezbytné pro začátečníky při práci se systémy kontroly přístupu.

Pokud ve vaší budoucnosti ( Doporučuji vám to udělat po dokončení školy) bude potřeba hlubší studie systému skládání dat – existuje úžasná kniha E. Yu Khrustaleva „Vývoj komplexních zpráv v 1C: Enterprise 8“.

V tomto modulu jste získali dostatečné znalosti a praktické dovednosti, abyste mohli začít číst serióznější literaturu na toto téma.

Odvedli jsme skvělou práci, je čas si odpočinout!

Používání Systémy skládání dat 1C nemožné bez datové sady. V jednom schématu rozložení dat jich může být několik. A dokážou spolu určitým způsobem komunikovat. Nebo spíše buď a nebo sjednotit. V tomto článku se podíváme na slučování datových sad. Kombinování datových souborů v systému řízení přístupu je podobné.

Chcete-li kombinovat dvě nebo více datových sad v systému řízení přístupu, musíte přejít na kartu Datové sady předem vytvořit speciální datovou sadu - sjednocení


Dostáváme tento obrázek


A k tomuto vytvořenému objektu přidáme sady, které se budou přímo kombinovat. Přidejme dvě datové sady. Jedním z nich bude požadavek a druhým pro zpestření bude objekt (externí zdroj dat). Takhle:


Jako příklad zvažte kombinaci datových souborů s bilancí produktů.

V sadě, kterou budeme používat, ručně přidáme pole Produkt, Množství a zadejte název objektu obsahujícího data


Pro soubor dat, kde je dotaz použit, obdržíme data pomocí zbytků z následujícího akumulačního registru:


Udělejme jednoduchou žádost

SELECT Remaining Products.Product.View AS Product, Remaining Products.QuantityRemaining AS Remaining (SELECT Product, Remaining) FROM RegisterAccumulation.ProductsRemaining.Remaining AS Remaining Products

Abych se zbavil skladů, musel jsem v požadavku použít složení dat (vše ve složených závorkách) a vypnout příznak automatického doplňování dole. Také nebyl jako produkt brán prvek adresáře, ale jeho reprezentace, takže typ byl stejný jako v sadě s externím zdrojem dat. Aby data z různých sad spadala do jednoho pole, musí mít v poli stejný název Cesta. Proto do terénu Zbytky cesta byla ručně opravena Množství pro synchronizaci s druhou datovou sadou. Ve skutečnosti je samozřejmě lepší použít požadovaný alias okamžitě v požadavku. V tomto případě jsem to záměrně neudělal, abych na takovou funkci zaměřil pozornost.

Nyní se podíváme přímo na data.
V evidenci akumulace mám uloženy následující zůstatky zboží:

a v externím zdroji dat je tento obrázek

Pojďme nakonfigurovat schéma rozložení tím nejprimitivnějším způsobem.
Pole Množství Přirozeně z toho uděláme zdroj a na kartě nastavení jej jednoduše přidáme do struktury Podrobné záznamy. A samozřejmě nezapomeňme dát Produkt A Množství do vybraných polí. A pro úplné štěstí se zařídíme podle produktu.


V důsledku spuštění sestavy s těmito nastaveními ACS získáme následující tabulku

Jak vidíte, lampa, která je v obou sadách dat, je ve výsledku dotazu reprezentována dvěma řádky. Pro jejich sbalení do jednoho řádku je potřeba mírně upravit strukturu v nastavení ACS a místo podrobných záznamů seskupit podle polí Produkt.


A nyní dostaneme výsledek bez duplicitních řádků.

41
Nedávno jsem vytvořil sestavu s neurčitým počtem sloupců. Nechtěl jsem si lámat hlavu 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... 10
Na této záložce můžete určit, jaká spojení jsou vytvořena mezi dvěma nebo více datovými sadami, podle jakých parametrů a podmínek..png 1. “Zdroj připojení” - označuje první datovou sadu, z... 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 to provést: 1. Instalovat...

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 (spojuje 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 řízení 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. Vezměte tabulkovou část dokladu o příjmu;
  2. Nahrajte soubor do zdroje dat „Object“;
  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“ tento název 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 věnovat pozornost té části kódu, která musí být přítomna v layoutu, 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ů. Pro sadu zdrojů komunikace a sadu cílů komunikace nemůžete zaškrtnout políčko „All“, 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ího datového souboru, se kterým bude provedeno srovnání;
  4. Cílový výraz je pole nebo výraz závislé množiny;
  5. Parametr – pokud do tohoto pole zadáte 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).

Pokud bychom jako podmínku spojení uvedli název jakékoli nomenklatury, 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 cen nebyla nalezena žádná shoda pro dva spodní řádky přehledu.

říct přátelům