Jak Tvůrce sestav a Tvůrce dotazů pracují s libovolným zdrojem dat. Práce tvůrce sestav a tvůrce dotazů s výběrem libovolného zdroje dat Tvůrce dotazů 1c 8.2

Osmá verze platformy 1C nabízí mnoho nových konfiguračních objektů, z nichž každý má své vlastní metody a vlastnosti, které umožňují zjednodušit proces vývoje aplikace a optimalizovat výkon. Jedním z nich je Report Builder.

O tom, co je tvůrce sestav 1c, jaké funkce provádí a jakou aplikaci našel v programování, o kterém bych rád mluvil v tomto článku.

1C Report Builder - co to je?

Jedná se o konfigurační objekt, který umožňuje výstup dat do tabulkového dokumentu nebo grafu. Zdrojem dat může být:

  1. Výsledek provedení dotazu;
  2. Oblast buněk tabulkového dokumentu;
  3. Tabulková část dokumentu nebo příručky;
  4. Sada položek registru.

Tvůrce sestav v 1C má navíc atribut „Text“, do kterého lze odeslat text dotazu, jehož výsledek je nutné zobrazit.

Obrázek 1 ukazuje část kódu, která umožňuje zobrazit libovolnou tabulku hodnot pomocí nástroje „Report Builder“

Zjevným případem použití pro stavitele je tedy navrhování sestav. Ne tak výslovný směr použití tvůrce je jeho použití k přizpůsobení různých prvků dotazu (seskupení, výběry atd.) Uživatelem.

Mimochodem, výsledek provádění kódu zobrazeného na obr. 1 lze vidět na obr. 2. Obr

Obr

Nastavení tvůrce

Tvůrce sestav v jistém smyslu připomíná systém složení dat a lze jej použít v případech, kdy je ACS z nějakého důvodu nedostupný, nebo existuje možnost, že bude fungovat nesprávně.

Stejně jako ACS obsahuje stavitel:

  • Seskupení (úrovně hierarchie při zobrazování informací);
  • Indikátory (hodnoty, pro které chcete získat celkem);
  • Další vypočítaná pole (atributy prvků, výsledky akcí s hodnotami);
  • Filtry (výběr);
  • Třídění.

Nastavení vzhledu vzhledu Builderu předpokládá různé úrovně a přesnost detailů.

Algoritmus pro použití tvůrce

Přirozeně, v závislosti na situaci, se může kód programu pro použití nástroje pro tvorbu sestav značně lišit. Základní algoritmus použití se nemění:

  1. Deklarujeme vytvoření nového objektu typu ReportBuilder;
  2. V této fázi můžete buď použít QueryBuilder k vytvoření textu výběru, nebo pomocí objektu DataSourceDescription použít existující výběr;
  3. Nastavení nástroje pro vytváření sestav lze nastavit pomocí metody objektu tvůrce FillSettings ();
  4. Můžete odmítnout použít standardní návrhové rozložení vytvořené metodou automatické generování definováním vlastnosti objektu Layout ve staviteli;
  5. Pokud se DataSourceDescription nepoužívá, je v této fázi nutné provést požadavek, použijte metodu Execute ();
  6. Posledním krokem je spuštění metody Output (), výstup lze provést v dokumentu tabulky nebo v odpovídajícím prvku formuláře.

Použití dešifrování ve staviteli

Třetí řádek na obr. 1 zahrnuje dekódování buněk ve výsledku provedení builderu.

K tomu jsme použili vlastnost FillDecryption. Typ této vlastnosti je ReporterDecodingFillType, může mít jednu ze tří hodnot:

  1. Seskupovací hodnoty - při aktivaci buňky bude použita hodnota seskupení v ní uvedená;
  2. Nevyplňovat - výchozí hodnota, což znamená, že pro konečný výsledek nebude použita žádná dešifrování;
  3. Dešifrování - struktura dešifrování bude vyplněna hodnotami všech seskupení původního vzorku.

Kromě toho může uživatel nastavit dešifrování sám pomocí metody ConfigureDecryption (). Část kódu, která spouští tuto metodu, je znázorněna na obr

Obr

Příklad použití tvůrce k zahrnutí výběrů do sestavy

Trochu z praktické části. Někdy nastane situace, kdy je nutné vytvořit sestavu s některými výběry. Tento problém můžete vyřešit pomocí ACS, nebo můžete použít Builder:

  1. Začněme vytvořením externí zpráva a přidání proměnné s libovolným názvem a zadáním Report Builderu (obr. 4);

Obr

  1. Vytvořte formulář zprávy a umístěte na něj objekt rozhraní TabularField, zadejte jej jako Výběr a propojte jej s vlastností Výběr vytvořeného atributu Obr. 5

Obr

  1. Vytvoříme proceduru OnOpen () spojenou s odpovídající událostí našeho formuláře;

Obr

  1. Kód v něm napsaný musí nutně obsahovat dotaz na tvůrce sestav, příklad kódu je uveden na obr. 6, pro vytvoření textu stavitele můžete použít konstruktor dotazu, v konstruktoru podmínky stavitele a jeho další nastavení jsou označeny na odpovídající záložce obr. 7;

Obr

  1. Podmínky výběru uvedené v závorkách textu dotazu budou provedeny pouze v případě, že uživatel aktivuje a používá odpovídající výběr;

  2. Postup, který zobrazuje výsledek tvůrce, je zobrazen na obr. 8 a je spojen se stiskem tlačítka Generovat;

Obr

  1. Uložíme naši zprávu.

Vzhled zprávy, kterou jsme vytvořili, a její výsledek je uveden na obr. 9

Obr

Samozřejmě je docela obtížné předvést všechny schopnosti nového objektu v rámci jednoho článku, ale zdá se nám, že je možné o něm získat představu a začít jej používat s přihlédnutím k získaným znalostem.

1. Co je Report Builder?

Tvůrce sestav je objekt, který na základě zadaného textu dotazu a nastavení umožňuje získat výsledek a zobrazit jej v tabulkovém dokumentu nebo grafu.

Nastavení nástroje Report Builder zahrnují:

  • seskupení (příklad: „Nomenklatura“, „Protistrana“ ...),
  • indikátory (příklad: „Množství“, „Částka“ ...),
  • další pole (příklad: „Nomenclature.Service“, „Counterparty.code“ ...),
  • filtr (příklad: pro konkrétní položku, pro skupinu protistran ...) a
  • třídění (příklad: „Nomenclature.Code“, „Counterparty.Name“ ...)

Nastavení tvůrce má vizualizační nástroje, které umožňují programátorovi poskytnout uživateli rozhraní pro jeho instalaci s minimálním úsilím.

Před výstupem můžete rozložení nástroje pro tvorbu sestav stylovat pomocí rozvržení rozvržení.

Výstup výsledku provedení dotazu tvůrce sestav se provádí jedním příkazem.

2. Kde můžete použít Report Builder?

Pomocí nástroje pro tvorbu sestav můžete navrhnout většinu přehledů (příklad: „Bilance akcií“, „Tržby za období“ ...). Zároveň se výrazně zkrátí čas na jejich vývoj a programový kód a zvýší se kvalita designu a funkčnosti.

Tvůrce sestav lze navíc použít v případech, kdy výstup výsledku není potřeba, ale uživatel potřebuje přizpůsobit prvky dotazu, například seskupení nebo filtr (například: vyložení položky v souboru XML nebo zpracování účtování dokumentů zadaným filtrem).

Protože nástroj pro tvorbu sestav není k dispozici na serveru 1C: Enterprise a nepoužívá se v modulu externího připojení, je v těchto případech nutné použít Tvůrce dotazů, který je podobný tvůrci sestav, ale nemá vizuální vlastnosti a metody („Layout“, „OutputReportHeader“, „Output ()“, „CheckoutLayout ()“ ...).

3. Trochu o pojmech

Ve srovnání s verzí 7.7 prošla verze 8.0 mírnou změnou v koncepcích, takže stojí za to se jí trochu zabývat.

Pojem

Popis

Měření čar Seznam seskupení, podle kterých bude výstup prováděn podle řádků (příklad: „Nomenklatura“, „Protistrana“ ...)
Sloupcová měření Seznam seskupení, podle kterých bude výstup prováděn podle sloupců (příklad: „Sklad“, „Měsíc“ ...).
Výběr Sada různých filtrů (příklad: skupinou dodavatelů, danou organizací ...).
Objednat Sada třídicích polí (příklad: „Nomenclature.Code“, „DocumentSales.Responsible“ ...).
Pole Jedno z polí pro výběr dotazu (příklad: „Nomenklatura“, „Counterparty.code“, „Množství“, „Částka“ ...).
Vybraná pole Seznam vybraných polí obsahuje ukazatele (příklad: „Množství“, „Částka“ ...) a další pole (podrobnosti o seskupení) (příklad: „Nomenclature.Group“, „Counterparty.code“ ...).
Dostupná pole Seznam polí, která jsou k dispozici pro přidání do skupin, filtrování, řazení a vybraných polí. Je vyplněn zpravidla seznamem polí pro výběr dotazů, ale lze jej programově upravovat (můžete přidávat, měnit a mazat dostupná pole).

Je důležité pochopit, že seskupení, filtr, řazení a vybraná pole nesouvisejí přímo s dostupnými poli, jsou to různé objekty.

Hlavní rozdíl spočívá v tom, že dostupné pole nemá vlastnost „Data Path“ (příklad: „Nomenclature.Code“, „Quantity“), protože se jedná pouze o druh popisu pole, kterým bude proveden pokus o v daném okamžiku vyhledejte shodu mezi poli pro výběr dotazu a přidejte je do seznamu seskupení, filtrů, řazení nebo vybraných polí.

Současně není možné programově přidat jedno z dostupných polí do žádného z výše uvedených seznamů, protože na jedné straně dostupné pole nemá metody jako „AddWelected ()“ nebo „AddInSelectedFields ()“ , ale na druhou stranu při přidávání nové položky do kteréhokoli z výše uvedených seznamů musíte zadat vlastnost „Data path“, která se nemusí vždy shodovat s názvem pole (například: „Nomenclature.Parent“ a Pole „Nomenclature.Parent.Parent“ mají stejný název „Parent“).

4. Typický případ použití tvůrce sestav

Sekvence akcí při práci s nástrojem pro tvorbu sestav je obecně následující:

  1. Vytvořte nový objekt „Report Builder“;
  2. Přiřaďte text požadavku k vlastnosti „Text“;
  3. Pokud nebyla v textu dotazu uvedena nastavení nástroje pro tvorbu sestav, proveďte metodu „FillSettings ()“;
  4. Poskytnout uživateli možnost změnit nastavení nástroje pro tvorbu sestav;
  5. V případě potřeby můžete odmítnout automatické generování rozložení pomocí nástroje pro tvorbu sestav a přiřadit pevné rozložení vlastnosti Layout;
  6. V případě potřeby můžete vlastnosti „Rozložení“ přiřadit jedno ze standardních nebo vlastních rozvržení, a pokud bylo automaticky generované rozložení nástroje pro tvorbu sestav nahrazeno pevným, proveďte metodu „Rozložení pokladny ()“;
  7. Zavolejte metodu „Run ()“;
  8. Zavolejte metodu "Output ()".
Builder = Nový "Tvůrce sestav"; Postroitel.Tekst = "Vyberte rozlišení | DenezhnyeSredstvaKompaniiOstatki.StrukturnayaEdinitsa, | Částka (DenezhnyeSredstvaKompaniiOstatki.SummaOstatok) jako součet | | FROM | RegistrNakopleniya.DenezhnyeSredstvaKompanii.Ostatki (*) CELKOVÉ VÝSLEDKY (Částka) PODLE | OBECNĚ, | Strukturální jednotka "; Builder.FillSettings (); // Zde můžete dát uživateli příležitost // změnit nastavení nástroje pro tvorbu sestav Builder.Layout = GetLayout ("CustomLayout");
Builder.LayoutLayout = GetLayoutLayout (StandardLayout.Classic);
Builder.CheckLayout ();
Builder.Run ();
Builder.Display ();

5. Popis některých vlastností nástroje pro tvorbu sestav

Vlastnictví

Popis

Text Obsahuje text dotazu tvůrce sestav. Pokud text dotazu v nástroji pro tvorbu sestav neobsahuje položky nastavení „(…)“, můžete použít metodu FillSettings () k automatickému vyplnění nastavení na základě textu dotazu.
TextHeader Text, který se zobrazí v nadpisu sestavy (příklad: „Stav zásob k 1. 1. 2004“, „Tržby za leden 2004“ ...).
Název výstupní zprávy
DisplayHatTable
Zobrazit obecné výsledky
Tabulky DisplayBasement
Zpráva DisplayFooter
Tyto vlastnosti určují, zda se zobrazí název sestavy, záhlaví tabulky, celkové součty, zápatí tabulky a zápatí sestavy.
DisplayDetailedRecords Vlastnost odpovídá za vynucené zobrazení nebo zákaz zobrazování podrobných záznamů.
AutoDetailed Entries Pokud je vlastnost „AutoDetailedRecords“ nastavena na True, pak se každý podrobný záznam zobrazí, pouze pokud se liší od skupinového.
Dostupná pole Obsahuje seznam polí k dispozici pro přidání do seskupení, filtr, vybraná pole a řazení.
Měření Řetězce
Sloupce měření
Obsahuje seznam seskupení podle řádků a sloupců.
Výběr Obsahuje seznam filtrů definovaných tvůrcem sestav.
Vybrané pole obsahuje seznam vybraných indikátorů a atributů seskupení.
Objednat obsahuje seznam třídicích polí.
Parametry Obsahuje seznam parametrů stavitele (deklarovaných v textu dotazu stavitele pomocí symbolu „&“).
Výsledek Obsahuje výsledek provedení dotazu na tvůrce sestav (objekt typu QueryResult).

6. Zpracování přepisů pomocí nástroje Report Builder

Vlastnost „FillDecryption“ obsahuje jednu ze tří možností pro vyplnění dešifrování ve výstupu:

1. možnost: nevyplňujte (nepoužívejte dešifrování).

2. možnost: seskupení hodnot (při dešifrování buňky se otevře seskupená hodnota zobrazená v ní).

3. možnost: dešifrování (dešifrování bude vyplněno strukturou obsahující hodnoty všech seskupení). V tomto případě je nutné zpracovat událost tabulkového dokumentu „Zpracování dešifrování“, kde je nutné analyzovat přenesenou strukturu a provést určité akce.

Důležitým bodem je, že ve třetí možnosti není možné výstup do generovaného tabulkového dokumentu, protože od té doby není možné zpracovat dešifrování, jehož událost je zpracována v modulu formuláře, na kterém je pole tabulkového dokumentu je umístěn.

Pokud pro vyplnění dešifrování použijete třetí možnost, můžete použít metodu „ConfigureDecryption ()“ určenou ke spuštění a zobrazení sestavy s přihlédnutím k dešifrování provedenému uživatelem.

Tvůrce sestav může být stejný nebo nový. Když přizpůsobíte dešifrování, budou odebrány všechny vlastní filtry tvůrce sestav a všechny nainstalované filtry původní nástroj pro tvorbu dotazů plus filtry na hodnoty seskupení z dešifrování.

7. Podávání zpráv

Vlastnost "Rozložení" obsahuje rozložení, které se používá při výstupu výsledku do tabulkového dokumentu. Pokud není definováno, rozvržení se vygeneruje automaticky.

Vlastnosti „ReportHeader Layout“, „TableHeader Layout“, „DetailRecords Layout“, „GeneralTotals Layout“, „TableFootboard Layout“ a „ReportFootboard Layout“ obsahují název oblasti v rozvržení sestavitele sestav nebo jednotlivá rozvržení použitá ve výstupu, tabulky, záhlaví podrobné zprávy, celkové součty záhlaví, zápatí tabulky a zápatí zprávy do tabulkového dokumentu. Pokud se názvy oblastí shodují se jmény v rozvržení Tvůrce sestav, nemusíte vlastnosti vyplňovat.

Vlastnost „Vzhled rozvržení“ obsahuje rozvržení použité ke stylu rozvržení nástroje pro tvorbu sestav. Dekorace buněk v rozvržení vzhledu bude použita na buňky rozvržení Tvůrce sestav.

Chcete-li získat jednu ze standardních možností návrhu, můžete použít globální kontextovou metodu „GetDesignLayout ()“.

Pokud bylo k vlastnosti „Rozvržení“ tvůrce sestav přiřazeno pevné rozložení, je pro jeho návrh vyžadována metoda „Rozvržení rozložení ()“.

Vlastnost „PlacementDimensionsInstrings“ definuje jednu ze tří možností pro zobrazení seskupení podle řádků.
1. možnost: společně (v jednom sloupci).
Příklad:

2. možnost: samostatně (v různých sloupcích).
Příklad:


Příklad:

Vlastnost "PlacementDimensionsInColumns" definuje jednu ze tří možností pro zobrazení seskupení podle sloupců.
1. možnost: společně (v jednom řádku).
Příklad:

2. možnost: samostatně (v různých řádcích).
Příklad:

3. možnost: samostatně a pouze v součtech.
Příklad:

Vlastnost "PlacementTotalsInLows" definuje jeden ze čtyř způsobů zobrazení součtů v řádcích.
1. možnost: v názvu (pouze nad následujícími seskupeními a podrobnými položkami).

2. možnost: v záhlaví a zápatí (nad a pod následnými seskupeními a podrobnými položkami).

3. možnost: v suterénu (pod následnými seskupeními a podrobnými záznamy, nad nimi je zobrazen pouze popis seskupení).

4. možnost: pouze v suterénu (pouze pod následujícími seskupeními a podrobnými záznamy).

Vlastnictví " Umístění výsledků do sloupců”Definuje jeden ze čtyř způsobů zobrazení součtů ve sloupcích.

1. možnost: v názvu (pouze nalevo od následujících seskupení a podrobných záznamů).

2. možnost: v záhlaví a zápatí (nalevo a napravo od dalších seskupení a podrobných záznamů).

3. možnost: v suterénu (napravo od následujících seskupení a podrobných záznamů, nalevo od nich je zobrazen pouze popis seskupení).

4. možnost: pouze v suterénu (pouze napravo od dalších seskupení a podrobných záznamů).

Vlastnictví " Umístění atributů kóty do řádků”Definuje jednu ze tří možností pro zobrazení atributů seskupení podle řádků.

1. možnost: společně (v jednom dalším sloupci).
Příklad:

2. možnost: společně s měřením (ve sloupcích se seskupeními).
Příklad:

3. možnost: samostatně (v různých dalších sloupcích).
Příklad:

Vlastnictví " PlacingDimensionAttributesInColumns”Definuje jednu ze tří možností pro zobrazení podrobností seskupení podle sloupců.

1. možnost: společně (v jednom dalším řádku).
Příklad:

2. možnost: společně s měřeními (v řadách se seskupením).
Příklad:

3. možnost: samostatně (v různých dalších řádcích).
Příklad:

8. Výstup tvůrce sestav

Metoda „Run ()“ provede dotaz tvůrce sestav a vyplní vlastnost „Výsledek“.
Pomocí metody GetRequest () můžete získat dotaz tvůrce sestav, který se provede při volání metody Run ().

Metoda "Output ()" odešle výsledek do tabulkového dokumentu nebo grafu. Pokud nezadáte objekt, do kterého chcete odeslat výstup, bude vytvořen nový tabulkový dokument.

Příklad výstupu do nového tabulkového dokumentu:
Builder.Display ();

Příklad výstupu do existujícího tabulkového dokumentu:
Builder.Output (FormElements.ResultTable);

Příklad výstupu do diagramu:
Builder.Output (FormElements.ResultDiagram, "Množství");

Pokud potřebujete zobrazit výsledek nástroje pro tvorbu sestav v kontingenční tabulce nebo kontingenčním grafu, neměli byste používat metodu „Output ()“, ale vyplňte vlastnost „DataSource“ kontingenční tabulky nebo kontingenčního grafu. Zdrojem může být buď výsledek tvůrce sestav, nebo samotný tvůrce sestav. Výsledek nástroje pro tvorbu sestav nevyžaduje přepsání dotazu, ale tvůrce sestav vám umožňuje změnit složení seskupení.

9. Ukládání a obnovování nastavení tvůrce

Metoda „GetSettings ()“ vám umožňuje získat aktuální nastavení tvůrce sestav s možností určit, která z nich (příklad: pouze filtr, filtr a řazení ...).

Metoda „SetSettings ()“ umožňuje načíst nastavení nástroje pro tvorbu sestav se schopností určit, která z nich (příklad: pouze filtr, filtr a řazení ...).

10. Seskupení a pole tvůrce sestav

Dimenze nástroje pro tvorbu sestav je seskupena podle řádku nebo sloupce.

Hlavní podrobnosti seskupení jsou

  • „Název“ (identifikátor proměnné) (příklad: „Nomenklatura“, „Protistrana“ ...),
  • „Prezentace“ (prezentace na výstupu) (příklad: „Prodejní doklad“, „Měrná jednotka“ ...),
  • „DataPath“ (cesta k poli pro výběr požadavku) (příklad: „Nomenklatura“, „DocumentSales.Organization“ ...)

a pokud je seskupení sestaveno podle příručky, pak také

  • DimensionType (jedna z možností filtrování podle hodnot polí: hierarchie (členové a skupiny), pouze hierarchie (pouze skupiny) nebo členové (pouze členové)).

Kromě toho existuje několik vlastností, které vám umožňují přiřadit rozvržení ke skupině, která se použije při výstupu do tabulkového dokumentu.

  • „Rozvržení“ je název oblasti v rozvržení nástroje pro tvorbu sestav nebo samostatné rozvržení použité při zobrazení seskupení.
  • „LayoutHierarchy“ je název oblasti v rozložení Tvůrce sestav nebo samostatného rozložení použitého při zobrazení hierarchie seskupení.
  • „FooterLayout“ je název oblasti v rozložení stavitele nebo samostatné rozložení použité při zobrazení zápatí seskupení.
  • „HierarchyFooterLayout“ je název oblasti v rozvržení stavitele nebo samostatné rozvržení použité při zobrazení zápatí hierarchie seskupení.
  • „BasementLevels Layouts“ - řada rozvržení suterénu pro různé úrovně seskupení.
  • „Úrovně rozvržení“ - řada rozvržení pro různé úrovně seskupení.

Pole Tvůrce sestav je jedním z vybraných polí. Hlavní detaily oboru jsou

  • „Název“ (identifikátor pole) (příklad: „Množství“, „Kód nomenklatury“, „Období“ ...),
  • „Prezentace“ (prezentace ve výstupu) (příklad: „Množství“, „Kód“, „Období“ ...) a
  • „Data path“ (cesta k poli pro výběr dotazu) (příklad: „Množství“, „Nomenklatura. Kód“, „Období“ ...).

Existuje několik věcí, které můžete udělat se seznamem seskupení nebo polí.

  • „Insert ()“ - přidá seskupení / pole na zadanou pozici.
  • „Přidat ()“ - přidá seskupení / pole na konec seznamu.
  • „Index ()“ - zobrazí index seskupení / pole v seznamu.
  • „Number ()“ - zobrazí počet seskupení / polí v seznamu.
  • „Najít ()“ - vyhledá seskupení / pole v seznamu podle názvu.
  • „Clear ()“ - vymaže seznam seskupení / polí.
  • „Get ()“ - získejte seskupení / pole podle indexu.
  • "Přesunout ()" - přesune seskupení / pole o zadaný počet pozic.
  • „Odebrat ()“ - odebere seskupení / pole ze seznamu.

11. Jazyk stavitele

Tvůrce sestav má svůj vlastní jazyk. Toto je běžný dotazovací jazyk, doplněný konstrukty „(…)“. Pomocí těchto konstrukcí můžete opustit metodu FillSettings () a přizpůsobit tvůrce sestav v těle dotazu.
Můžete tedy přizpůsobit položky „VÝBĚR“, „KDE“, „OBJEDNAT PODLE“, „VÝSLEDKY PODLE“ a také provést některé další zajímavé věci. V tomto případě bude hlavním textem dotazu tvůrce výchozí nastavení, zatímco konstrukce (...) budou popisovat dostupná nastavení.

Pokud vám pole pro výběr umožní něco přes tečku, můžete zadat „. *“ Po poli bude uživatel moci vybrat podrobnosti pole. Například „Nomenclature. *“ Umožňuje třídění podle „Nomenclature.Code“ nebo filtrování podle „Nomenclature.Service“. Ale „Množství. *“ Nedává smysl, protože pole „Množství“ nemá žádné podrobnosti, což znamená, že stačí jednoduše označit „Množství“.

Pole uvedená v konstrukci SELECT omezují seznam polí dostupných uživateli.
Pole specifikovaná v konstrukci „KDE“ omezují seznam polí, která lze použít ve filtru.
Pole specifikovaná v konstrukci „OBJEDNÁVKA“ omezují seznam polí, která mají být tříděna.
Pole uvedená v konstrukci „PODLE CELKEM“ omezují seznam polí pro seskupování součtů.

A teď k těm zajímavostem.

Za prvé, v hlavním textu požadavku můžete také použít konstrukce (...) v parametrech zdrojů. Například pokud místo
| OD
| Akumulační registr. Komoditní zůstatky společnosti. Zbytky (& Datum ukončení)
poukázat
| OD
| Akumulační registr. Komoditní zůstatky společnosti. Zbývá ((& Datum ukončení))
v takovém případě bude možné nastavit filtr pomocí pole „Datum ukončení“.

Současně je v prvním případě nutné nastavit parametr tvůrce sestav „Datum ukončení“, ve druhém případě to není nutné, navíc pokud výběr v poli „Datum ukončení“ není zadán, pak se tento parametr tabulky „Akumulační registr. nepočítá.

Za druhé, zdroje v textu dotazu lze označit jako nepovinné jejich umístěním do konstrukce „(...)“. Například pokud vytvoříte text požadavku, jako je tento

| VYBERTE si


| LotProductsCompaniesBalances.QuantityBalance AS QuantityByBatch
| (VYBRAT
| Zůstatky komodit společnosti Zůstatky. Nomenklatura AS Nomenklatura,
| Balance of Commodities of the Company Balance. Množství Balance AS Množství,
| Lot of GoodsCompaniesBalances.QuantityBallow AS QuantityByBatch)
| OD
| Registr akumulace. Komoditní zůstatky společnosti. Zůstává jako komoditní zůstatky společnosti Zůstatky společnosti
| (REGISTRACE AKUMULACE LEVÉHO PŘIPOJENÍ.VELKÉ ZBOŽÍSpolečnost.
| Podle zůstatků komodit Společnosti Balances.Nomenklatura = Spousta komodit Společnosti Balances.Nomenklatura)
| CELKEM SUM (kvantita), SUMA (kvantityByLots) BY
| VŠEOBECNÉ,
| Nomenklatura

pak se levé spojení dávkovým registrem provede pouze v případě, že je v seznamu vybraných polí pole „QuantityByBatch“.

Za třetí, v parametrech zdrojů můžete určit, že v případě nastavení filtrů je, pokud je to možné, použít nikoli na výsledek provedení dotazu pomocí prvku „WHERE“, ale na samotný zdroj. Tedy místo
| Akumulační registr. Zůstatek zboží. Společnost.

má smysl psát

| Registr akumulace. Komoditní zůstatky společnosti. Zbývá (, (Nomenklatura. *, Sklad společnosti. *, Objednávka. *, Maloobchodní cena, Charakteristika nomenklatury. *))

Studna, za čtvrté, podle mě nejchutnější. Pokud je ve zdroji uveden parametr „Frekvence“ (u tabulek, které umožňují získání obratu), lze jej také nastavit jako „(…)“ a v důsledku malé manipulace s textem dotazu stavitele můžeme používat seskupení podle teček.

Příklad: | VYBERTE POVOLENÉ | PartyGoodsCompanyObotory.Nomenklatura, | AMOUNT (Spousta zbožíCompaniesTurnover.CostArrival) AS CostInvest, | ČÁSTKA (spousta zbožíCompaniesTurnover.CostExpense) AS náklady nákladů | | OD | Accumulation Register.PartyCompanyGoods.Turnover (, (& Periodicity), | (Nomenclature. *)) AS BatchCompanyGoodsTurnovers | | Načíst | PartyGoodsSpolečnostiObototy.Nomenklatura | | CELKEM SUM (CostPrihod), SUM (CostExpenditure) ON | OBECNĚ, | Nomenklatura | | (SELECT | Dávka ProductsCompanyTurnovers.Nomenclature. *, | Registrátor. *, | BeginningPeriod (Period, Day) AS PeriodDay, | BeginningPeriod (Period, Week) AS PeriodWeek, | BeginningPeriod (Period, Decade) AS PeriodDecade, | Beginninger ) AS Období Měsíc, | Začátek Období (Období, Čtvrtletí) AS Období Čtvrtletí, | Začátek Období (Období, Pololetní) AS Období Pololetní, | Začátek Období (Období, Rok) AS Období Rok, | SUM (spousta CommoditiesCompaniesNáklady na vstupy (CostExpense) AS CostExpense) | | (OBJEDNAT PODLE | (WHERE | Lots of GoodsCompanyTurnooms.Nomenclature. *, | Registrar. *, | AMOUNT (Lots ofGoodsCompanyTurnovers.CostIncoming) AS CostIncome, | SUM (Lots ofGoodsCompanyTurnovers.CostExpense) AS CostExpense) | | (CELKEM PODLE | Názvosloví. *, | Registrátor *, | Začátek období (období, den) AS PeriodDay, | Začátek období (období, týden) AS PeriodWeek, | Začátek období (období, desetiletí) AS PeriodDecade, | Začátek období (Období, Měsíc) AS Období Měsíc, | Začátek Období (Období, Čtvrtletí) AS Období Čtvrtletí, | Začátek období (Období, Půl roku) AS Období Půl roku, | Začátek období (Období, Rok) AS PeriodYear)

Existuje jedna nuance, aby seskupování podle období fungovalo, je třeba přidat filtr podle parametru „Frekvence“. Abyste to nedělali ručně, můžete jej pro pohodlí programově přidat před spuštěním Tvůrce sestav a po spuštění jej smazat, aby vás to neobtěžovalo, protože je nemožné takový filtr pochopit z hlediska zdravý rozum. To se děje něco takového

IfReportBuilder.AvailableFields.Find („Frekvence“)<>Nedefinováno Potom Periodicita = Nedefinováno; IfReportBuilder.DimensionsRows.Find ("PeriodYear")<>Undefined OR Report Builder.DimensionsColumns.Find ("PeriodYear")<>Nedefinováno Potom Periodicita = 9; EndIf; IfReportBuilder.DimensionsRows.Find ("PeriodSemyear")<>Undefined OR Report Builder.DimensionsColumns.Find ("PeriodHalf Year")<>Nedefinováno pak Periodicita = 8; EndIf; IfReportBuilder.DimensionsRows.Find („PeriodQuarter“)<>Nedefinovaný NEBO Tvůrce sestav.DimensionsColumns.Find ("PeriodQuarter")<>Nedefinováno pak periodicita = 7; EndIf; Pokud ReportBuilder.DimensionsRows.Find ("PeriodMonth")<>Undefined OR Report Builder.DimensionsColumns.Find ("PeriodMonth")<>Nedefinováno Potom Periodicita = 6; EndIf; IfReportBuilder.DimensionsStrings.Find ("PeriodDecade")<>Undefined OR Report Builder.DimensionsColumns.Find ("PeriodDecade")<>Nedefinováno Potom Periodicita = 5; EndIf; IfReportBuilder.DimensionsStrings.Find ("PeriodWeek")<>Undefined OR Report Builder.DimensionsColumns.Find ("PeriodWeek")<>Nedefinováno Potom Periodicita = 4; EndIf; IfReportBuilder.DimensionsRows.Find („PeriodDay“)<>Nedefinováno NEBO Tvůrce sestav.DimensionsColumns.Find ("PeriodDay")<>Nedefinováno pak periodicita = 3; EndIf; IfReportBuilder.DimensionsStrings.Find ("registrátor")<>Undefined OR Report Builder.DimensionsColumns.Find ("Logger")<>Undefined OR Report Builder.SelectedFields.Find ("Logger")<>Nedefinováno Potom Periodicita = 2; EndIf; Pokud frekvence<>Undefined Then SelectionFieldByFrequency = ReportBuilder.Selection.Add ("Frequency"); SelectionFieldBy Periodicity.Value = Periodicity; SelectionFieldByFrequency.Usage = True; EndIf; EndIf; Builder.Run (); Pokud je pole výběru podle frekvence<>Undefined ThenReportBuilder.Collection.Remove (ReportBuilt.Selection.Index (FeedFieldBy Periodic)); EndIf;

12. Přizpůsobení stavitele

Aby měl uživatel možnost změnit seznam seskupení, filtr, vybraná pole nebo řazení, stačí vytvořit v sestavě atribut „Tvůrce“ a umístit pole tabulky do formuláře sestavy a zadat jej jako údaj zdroj „Builder.DimensionsRows“, „Builder.DimensionsColumns“, „Builder.Choose“, „Builder.ChosenFields“ nebo „Builder.Order“.

Kromě toho můžete také zadat „Builder.AvailableFields“ jako zdroj dat, a tak nejprve zobrazit seznam dostupných polí a za druhé pomocí kontextová nabídka přidat pole do seskupení, výběru, vybraných polí nebo filtru.

Dotazovací jazyk v 1C 8 je zjednodušenou analogií známého „strukturovaného programovacího jazyka“ (jak se často nazývá SQL). Ale v 1C se používá pouze pro čtení dat, objektový datový model se používá ke změně dat.

Dalším zajímavým rozdílem je ruská syntaxe. I když ve skutečnosti můžete použít anglické konstrukce.

Příklad požadavku:

VYBRAT
Banky.
Banks.CorrAccount
Z
Adresář Banky AS Banky

Tento požadavek nám umožní zobrazit informace o názvu a korespondenčním účtu všech bank existujících v databázi.

Dotazovací jazyk je nejjednodušší a efektivní metoda získávání informací. Jak vidíte z výše uvedeného příkladu, v dotazovacím jazyce se musíte odvolat pomocí názvů metadat (toto je seznam systémových objektů, které tvoří konfiguraci, tj. Adresáře, dokumenty, registry atd.).

Popis konstruktů dotazovacího jazyka

Struktura dotazů

K získání dat stačí použít konstrukce „SELECT“ (vybrat) a „FROM“ (z). Nejjednodušší požadavek jak následuje:

VYBERTE * Z adresářů.Nomenklatura

Kde „*“ znamená výběr všech polí tabulky a References.Nomenclature je název tabulky v databázi.

Podívejme se na složitější a obecnější příklad:

VYBRAT
<ИмяПоля1>JAK<ПредставлениеПоля1>,
Součet(<ИмяПоля2>) JAK<ПредставлениеПоля2>
Z
<ИмяТаблицы1>JAK<ПредставлениеТаблицы1>
<ТипСоединения>SLOUČENINA<ИмяТаблицы2>JAK<ПредставлениеТаблицы2>
NA<УсловиеСоединениеТаблиц>

KDE
<УсловиеОтбораДанных>

Načíst
<ИмяПоля1>

SEŘAZENO PODLE
<ИмяПоля1>

VÝSLEDEK
<ИмяПоля2>
NA
<ИмяПоля1>

V tento požadavek vybereme data polí „FieldName1“ a „FieldName1“ z tabulek „TableName1“ a „TableName“, přiřadíme synonyma k polím pomocí operátoru „AS“, spojíme je určitou podmínkou „TableCondition“.

Z přijatých dat vybereme pouze data, která splňují podmínku z „KDE“ „Podmínka DataFeed“. Dále dotaz seskupíme podle pole „FieldName1“ a sečteme „FieldName2“. Vytvoříme součty pro pole „FieldName1“ a závěrečné pole „FieldName2“

Posledním krokem je seřadit požadavek pomocí konstrukce OBJEDNAT PODLE.

Obecné konstrukce

Uvažujme o obecných konstrukcích dotazovacího jazyka 1C 8.2.

PRVNÍn

Přes tento operátor můžete získat n počet prvních záznamů. Pořadí záznamů je určeno pořadím v požadavku.

VYBERTE PRVNÍ 100
Banky.
Banky Kód AS BIC
Z
Adresář Banky AS Banky
SEŘAZENO PODLE
Banky.

Žádost obdrží prvních 100 položek adresáře „Banky“ seřazených podle abecedy.

POVOLENO

Tento design je relevantní pro práci s mechanismem. Podstatou mechanismu je omezit čtení (a další akce) na uživatele pro konkrétní záznamy v databázové tabulce, a nikoli v tabulce jako celku.

Pokud se uživatel pokusí pomocí požadavku přečíst záznamy, které jsou pro něj nepřístupné, zobrazí se mu chybová zpráva. Abyste tomu zabránili, měli byste použít konstrukci „POVOLENO“, to znamená, že požadavek bude číst pouze záznamy, které jsou pro něj povoleny.

VYBRAT POVOLENO
Další informace Store.Link
Z
Odkaz Uložení dalších informací

ROZLIČNÝ

Použití "DIFFERENT" vám umožní vyloučit duplicitní řetězce ze zadávání výsledku dotazu 1C. Duplikace znamená, že se všechna pole požadavku shodují.

VYBERTE PRVNÍ 100
Banky.
Banky Kód AS BIC
Z
Adresář Banky AS Banky

EmptyTable

Tato konstrukce se používá velmi zřídka ke kombinování dotazů. Při připojování může být nutné určit prázdnou vnořenou tabulku v jedné z tabulek. K tomu se právě hodí operátor „EmptyTable“.

Příklad z nápovědy 1C 8:

VYBERTE Referenční číslo, PRÁZDNOU TABULKU. (Nom, Tov, Množství) AS Složení
Z dokumentu. Náklady
KOMBINUJTE VŠE
SELECT Reference.Number, Composition. (LineNumber, Item, Quantity)
OD DocumentInvoice Document.Invoice.Content. *

JE NULL

Velmi užitečná funkce, která se vyhne mnoha chybám. YesNULL () umožňuje nahradit hodnotu NULL požadovanou. Velmi často se používá v testech na přítomnost hodnoty v spojených tabulkách, například:

VYBRAT
Nomenklatura Ref. Ref.
K dispozici je NULL (zůstatek položky, zůstatek množství, 0) jako množství zůstatku
Z


Můžete jej použít jiným způsobem. Pokud například pro každý řádek není známo, ve které tabulce hodnota existuje:

JE NULL (InvoiceReceived.Date, InvoiceEdited.Date)

AS je operátor, který nám umožňuje přiřadit název (synonymum) tabulce nebo poli. Výše jsme viděli příklad použití.

Tyto konstrukce jsou velmi podobné - umožňují získat řetězcovou reprezentaci požadovaná hodnota... Jediným rozdílem je, že REPRESENTATION převádí všechny hodnoty na typ řetězce a REFERENCE REPRESENTATION převádí pouze referenční hodnoty. REFERENCE REPRESENTATION se doporučuje použít v dotazech systému kompozice dat pro optimalizaci, pokud samozřejmě není ve filtrech plánováno použití pole referenčních dat.

VYBRAT
Pohled (odkaz), // řádek, například „Předběžná zpráva č. 123 ze dne 10. 10. 2015
Zastoupení (značka pro odstranění) AS Značka pro odstranění Text, // řetězec, „Ano“ nebo „Ne“
Odkazující zobrazení (značka odstranění) AS značka odstranění Boolean // Boolean, True nebo False
Z
Zpráva o pokroku

VYJÁDŘIT

Express vám umožňuje převést hodnoty polí na požadovaný datový typ. Hodnotu můžete převést na primitivní nebo referenční typ.

Typ Express for reference se používá k omezení požadovaných datových typů v polích komplexního typu, často používaných k optimalizaci výkonu systému. Příklad:

EXPRESS (tabulka Cost.Subconto1 jako reference.Cost články) .ActivityTypePro účtování daňových nákladů

U primitivních typů se tato funkce často používá k omezení počtu znaků v polích s neomezenou délkou (s takovými poli nelze porovnávat). Abyste se vyhnuli chybě “ Neplatné parametry v operaci porovnání. Nelze porovnávat pole
neomezená délka a pole nekompatibilních typů
", Je nutné taková pole vyjádřit následovně:

EXPRESS (komentář AS Line (150))

ROZDÍL

Získejte zdarma 267 1C videonávodů:

Příklad použití IS NULL v požadavku 1C:

VYBRAT Z
Spr
LEFT JOIN Akumulační registr. Produkty ve skladech. Vlevo AS Zbývající zboží
Softwarová nomenklaturaRef.Ref = ImplementedCommentsComponentsRemains.Nomenclature
KDE JE BILANCE ZBOŽÍ. Množství Zůstatek JE NULL

Datový typ můžete v dotazu definovat takto: pomocí funkcí TYPE () a TYPE () nebo pomocí logický operátor ODKAZ. Obě funkce jsou podobné.

Předdefinované hodnoty

Kromě použití předaných parametrů v požadavcích v dotazovacím jazyce 1C můžete použít předdefinované hodnoty nebo. Například výčty, předdefinované adresáře, účetní osnovy atd. K tomuto účelu se používá konstrukce „Value ()“.

Příklad použití:

WHERE Nomenclature.NomenclatureType = Hodnota (Directory.NomenclatureTypes.Product)

WHERE Counterparties.Type of Contact Information = Value (Enumeration.Types of Contact Information.Phone)

WHERE Account Balances.Account = hodnota (plán účtů. Self-support.ProfitsLoss)

Připojení

Existují 4 typy připojení: VLEVO, ODJET, ŽE JO, KOMPLETNÍ, VNITŘNÍ.

PŘIPOJTE SE VLEVO a VPRAVO

Spojení se používají k propojení dvou tabulek podle konkrétní podmínky. Funkce na VLEVO KLOUB v tom, že vezmeme první uvedenou tabulku v plném rozsahu a spojíme druhou tabulku podle podmínky. Pole druhé tabulky, která nemohla být vázána podmínkou, jsou vyplněna hodnotou NULA.

Například:

Vrátí celou tabulku protistran a vyplní pole „banka“ pouze na těch místech, kde bude splněna podmínka „protistrany.název = banky.název“. Pokud podmínka není splněna, nastaví se pole Banka NULA.

SPRÁVNÝ SPOJ v jazyce 1C naprosto stejné VLEVO připojení, s výjimkou jednoho rozdílu - v SPRÁVNÉ PŘIPOJENÍ„Hlavní“ tabulka je druhá, nikoli první.

PLNÉ PŘIPOJENÍ

PLNÉ PŘIPOJENÍ liší se zleva a doprava v tom, že zobrazuje všechny záznamy ze dvou tabulek, spojuje pouze ty, ke kterým se může připojit podle podmínky.

Například:

Z

PLNÉ PŘIPOJENÍ
Adresář Banky AS Banky

NA

Dotazovací jazyk vrátí obě tabulky v plném rozsahu pouze v případě, že je splněna podmínka spojování záznamů. Na rozdíl od připojení vlevo / vpravo je možné, aby se hodnoty NULL objevily ve dvou polích.

VNITŘNÍ PŘIPOJENÍ

VNITŘNÍ PŘIPOJENÍ se liší od úplného v tom, že zobrazuje pouze ty záznamy, které by mohly být spojeny zadanou podmínkou.

Například:

Z
Adresář Dodavatelé jako klienti

VNITŘNÍ PŘIPOJENÍ
Adresář Banky AS Banky

NA
Clients.Name = Banks.Name

Tato žádost vrátí pouze linky, ve kterých má banka a protistrana stejný název.

Sdružení

Konstrukce COMBINE a COMBINE ALL kombinuje dva výsledky do jednoho. Ty. výsledek provedení dvou bude „sloučen“ do jednoho, běžného.

To znamená, že systém funguje stejným způsobem jako obvykle, pouze pro dočasnou tabulku.

Jak používat INDEXOVÝ SOFTWARE

Je však třeba vzít v úvahu jeden bod. Vytvoření indexu na dočasné tabulce také vyžaduje čas na dokončení. Proto je vhodné použít konstrukci "" pouze v případě, že je jisté, že v dočasné tabulce nebudou 1-2 záznamy. Jinak může být účinek opačný - výkon indexovaných polí nekompenzuje dobu vytváření indexu.

VYBRAT
Kurzy měny SliceLast.Currency AS Měna,
Měnové kurzySliceLast.Course
Kurzy měn POST
Z
Information Register.Currency Rates.SliceLast (& Period,) AS Currency RatesSliceLast
INDEX PODLE
Měna
;
VYBRAT
Ceny
Ceny Názvy. Cena,
Ceny Nomenklatura. Měna,
Kurzy měn.
Z
Information Register.NomenclaturePrices.SliceLast (& období,
Nomenklatura B (& Nomenklatura) AND PriceType = & PriceType) AS Ceny
LEVÉ UNIE Měnové kurzy AS Měnové kurzy
ON RatesNomenclature.Currency = RatesCurrency.Currency

Seskupení

Jazyk dotazu 1C umožňuje při seskupování výsledků dotazu používat speciální agregační funkce. Seskupení lze také použít bez agregačních funkcí k "odstranění" duplikátů.

K dispozici jsou následující funkce:

Množství, počet, počet různých, maximum, minimum, průměr.

Příklad č. 1:

VYBRAT
Prodej zboží, služeb, zboží, nomenklatury,
SUMA (prodej zboží, služeb, zboží, množství) JAKO množství,
SUMA (prodej zboží zboží, služby. Zboží) AS částka
Z

Načíst
Realizace zbožíSlužbyZboží.Nomenklatura

Žádost přijímá všechny řádky se zbožím a shrnuje je podle množství a množství v kontextu položky.

Příklad č. 2

VYBRAT
Bankovní kód,
MNOŽSTVÍ (RŮZNÉ Banks.Link) JAKO QuantityDoubles
Z
Adresář Banky AS Banky
Načíst
Bankový kód

Tento příklad zobrazí seznam BIC v adresáři „Banky“ a ukáže, kolik duplikátů pro každou z nich existuje.

Výsledky

Součty jsou způsob, jak získat data z hierarchického systému. U souhrnných polí lze použít agregační funkce, stejně jako u seskupení.

Jedním z nejpopulárnějších způsobů, jak v praxi využívat součty, jsou dávkové odpisy zboží.

VYBRAT




Z
Document.Realization ofGoodsServices.Goods AS Prodej ofGoodsServicesGoods
SEŘAZENO PODLE

VÝSLEDEK
SUM (množství),
SUM (částka)
NA
Nomenklatura

Výsledek dotazu bude následující hierarchicky:

Obecné shrnutí

Pokud chcete získat součty pro všechny „součty“, použijte operátor „OBECNÉ“.

VYBRAT
Realizace ZbožíSlužbyZboží.Nomenklatura AS Nomenklatura,
Realizace dokumentu GoodsServicesGoods.Link AS,
Realizace zboží, služeb, zboží. Množství AS Množství,
Prodej zbožíSlužbyZboží.Částka ČÁSTKA
Z
Document.Realization ofGoodsServices.Goods AS Prodej ofGoodsServicesGoods
SEŘAZENO PODLE
Implementace GoodsServicesGoods.Link.Date
VÝSLEDEK
SUM (množství),
SUM (částka)
NA
VŠEOBECNÉ,
Nomenklatura

V důsledku provedení dotazu získáme následující výsledek:

Ve které 1. úrovni seskupení je agregace všech požadovaných polí.

Objednání

Operátor ORDER BY se používá k řazení výsledku dotazu.

Řazení pro primitivní typy (řetězec, číslo, logická hodnota) se řídí obvyklými pravidly. U polí typů odkazů dochází ke třídění podle interní reprezentace odkazu (jedinečný identifikátor), nikoli podle kódu nebo reprezentace odkazu.

VYBRAT

Z
Reference.Nomenclature AS Nomenclature
SEŘAZENO PODLE
název

Dotaz zobrazí seznam názvů referenční příručky nomenklatury seřazený podle abecedy.

Automatické objednávání

Výsledkem dotazu bez řazení je chaoticky prezentovaná sada řádků. Vývojáři platformy 1C nezaručují výstup řetězců ve stejném pořadí při provádění stejných dotazů.

Pokud potřebujete zobrazit záznamy tabulky v konzistentním pořadí, musíte použít konstrukci "Autoorder".

VYBRAT
Název nomenklatury Název AS
Z
Reference.Nomenclature AS Nomenclature
AUTO OBJEDNÁVKA

Virtuální tabulky

Virtuální tabulky v 1C jsou jedinečnou vlastností dotazovacího jazyka 1C, která se v jiných podobných syntaxích nenachází. Virtuální tabulka - rychlý způsob získávání informací o profilu z registrů.

Každý z typů registrů má vlastní sadu virtuálních tabulek, které se mohou lišit v závislosti na nastavení registru.

  • plátek prvního;
  • část z toho druhého.
  • zbytky;
  • otáčky;
  • zůstatky a obraty.
  • pohyby z podkonta;
  • otáčky;
  • RPM Dt Kt;
  • zbytky;
  • zůstatky a obraty
  • subconto.
  • základna;
  • grafová data;
  • skutečné období platnosti.

Pro vývojáře řešení jsou data převzata z jedné (virtuální) tabulky, ale ve skutečnosti platforma 1C přebírá z mnoha tabulek a transformuje je do požadované formy.

VYBRAT
Produkty ve skladechZůstatky a obraty.Nomenklatura,
Produkty Ve skladech Zůstatky A Obrat Množství Počáteční zůstatek,
Zboží ve skladech zůstatky a obraty. Množství obrat,
Zboží ve skladech Zůstatky a obraty.
Zboží ve skladech Váha a Obraty Množství Spotřeba,
ProduktyVe skladechBilanceA Obraty.MnožstvíKonečný zůstatek
Z
Akumulační registr. Zboží ve skladech. Zůstatky a obraty Zboží ve skladech.

Taková žádost vám umožňuje rychle přijímat velký počet data.

Parametry virtuální tabulky

Velmi důležitý aspekt práce s virtuálními tabulkami - pomocí parametrů. Parametry virtuální tabulky - specializované parametry pro výběr a ladění.

U takových tabulek se považuje za nesprávné použít výběr v konstrukci „WHERE“. Kromě toho, že požadavek není optimální, je možné přijímat nesprávná data.

Příklad použití takových parametrů:

Registr akumulace.Produkty ve skladech.RemainsAndTurnovers (& BeginningPeriod, & EndPeriod, měsíc, pohyby a hranice období, nomenklatura = & požadovaná nomenklatura)

Algoritmus virtuálních tabulek

Například nejčastěji používaná virtuální tabulka typu „Residuals“ ukládá data dvou fyzických tabulek - zůstatků a pohybů.

Při použití virtuální tabulky systém provádí následující manipulace:

  1. Vypočítanou hodnotu dostaneme nejblíže z hlediska data a rozměrů v tabulce součtů.
  2. „Přidejte“ částku z pohybové tabulky k částce z tabulky součtů.


Takové jednoduché akce mohou výrazně zlepšit výkon systému jako celku.

Použití nástroje Query Builder

Konstruktor dotazu- nástroj zabudovaný do podnikového systému 1C, který výrazně usnadňuje vývoj dotazů do databáze.

Konstruktor dotazu má poměrně jednoduchý a intuitivní přehledné rozhraní... Podívejme se však blíže na použití konstruktoru dotazů.

Konstruktor textového dotazu se spouští pomocí kontextové nabídky (pravým tlačítkem myši) na správném místě v kódu programu.

Popis konstruktoru dotazu 1C

Podívejme se blíže na každou záložku návrhu. Výjimkou je záložka Tvůrce, což je téma pro další diskusi.

Tabulky a pole záložek

Tato karta určuje zdroj dat a pole, která chcete zobrazit v sestavě. Ve skutečnosti si stavby VYBERÍ .. Z.

Zdrojem může být tabulka fyzické databáze, tabulka virtuálních registrů, dočasné tabulky, vnořené dotazy atd.

V místní nabídce virtuálních tabulek můžete nastavit parametry virtuální tabulky:

Karta Odkazy

Záložka slouží k popisu spojení několika tabulek, vytváří konstrukce se slovem PŘIPOJENÍ.

Karta Seskupení

Na této kartě vám systém umožňuje seskupit a shrnout požadovaná pole výsledku tabulky. Popisuje použití konstrukcí SKUPINA PODLE, SOUČET, MINIMÁLNÍ, PRŮMĚRNÁ, MAXIMÁLNÍ, MNOŽSTVÍ, POČET JINÝCH.

Karta Podmínky

Odpovídá za vše, co jde v textu požadavku po konstrukci WHERE, tedy za všechny podmínky kladené na přijatá data.

Karta Upřesnit

Tab dodatečně je plný všech druhů parametrů, které jsou velmi důležité. Zvažme každou z vlastností.

Seskupení Načítání záznamů:

  • První n- parametr, který vrací do dotazu pouze N záznamů (operátor FIRST)
  • Žádné opakování- zajišťuje jedinečnost přijatých záznamů (operátor DIFFERENT)
  • Povoleno- umožňuje vybrat pouze ty záznamy, které vám systém umožňuje vybrat s přihlédnutím (konstrukce POVOLENO)

Seskupení Typ požadavku určuje, jaký typ dotazu bude: načítání dat, vytvoření dočasné tabulky nebo zničení dočasné tabulky.

Dole je vlajka Blokovat přijatá data pro pozdější změnu... Umožňuje vám povolit možnost nastavit datový zámek, který zajišťuje bezpečnost dat od jejich načtení až do jejich změny (relevantní pouze pro Automatický režim zámky, provedení ZA ZMĚNU).

Záložka Odbory / Aliasy

Na této kartě návrháře dotazů můžete nastavit možnost kombinovat různé tabulky a aliasy (JAK konstrukce). Tabulky jsou uvedeny vlevo. Pokud nastavíte příznaky před tabulkou, bude použita konstrukce UNION, jinak - UNION ALL (rozdíly mezi těmito dvěma metodami). Pravá strana zobrazuje korespondenci polí v různé tabulky pokud není zadána shoda, vrátí dotaz hodnotu NULL.

Karta objednávky

Zde určíte pořadí řazení hodnot (ORDER BY) - sestupně (DESCENT) nebo vzestupně (RETURN).

K dispozici je také zajímavá vlajka - Automatické objednávání(v požadavku - AUTO OBJEDNÁVKA). Ve výchozím nastavení systém 1C zobrazuje data v „chaotickém“ pořadí. Pokud zaškrtnete toto políčko, systém seřadí data podle interních dat.

Karta Dotazový balíček

Na kartě návrháře dotazů můžete vytvořit nové a také je použít jako navigaci. V textu požadavku jsou pakety odděleny znakem „;“ (čárka).

Tlačítko Dotaz v Tvůrci dotazů

V levém dolním rohu konstruktoru dotazu je tlačítko Dotaz, pomocí kterého můžete text dotazu kdykoli zobrazit:

V tomto okně můžete požadavek upravit a provést jej.


Pomocí Query Console

Konzola dotazů je snadný a pohodlný způsob, jak ladit složité dotazy a rychle získat informace. V tomto článku se pokusím popsat, jak používat Query Console, a poskytnout odkaz ke stažení Query Console.

Pojďme se na tento nástroj podívat blíže.

Stáhněte si 1C Query Console

Nejprve je třeba začít s Query Console, abyste si jej odněkud stáhli. Procesy jsou obvykle rozděleny do dvou typů - řízené formy a pravidelné (nebo se někdy nazývají 8.1 a 8.2 / 8.3).

Pokusil jsem se tyto dva typy spojit do jednoho zpracování - v požadovaném provozním režimu se otevře požadovaný formulář (v řízený režim konzole funguje pouze v tučném režimu).

Popis konzoly dotazu 1C

Začněme se dívat na konzolu dotazů s popisem hlavního panelu zpracování:

V záhlaví konzoly dotazu můžete zobrazit čas provedení posledního dotazu s přesností na milisekundy, což vám umožní porovnat různé konstrukce z hlediska výkonu.

První skupina tlačítek na panelu příkazů je zodpovědná za uložení aktuálních požadavků do externího souboru. To je velmi výhodné, vždy se můžete vrátit k psaní složitého dotazu. Nebo si například nechte seznam typických příkladů určitých konstrukcí.

Vlevo v poli Dotaz můžete vytvářet nové dotazy a ukládat je do stromové struktury. Druhá skupina tlačítek je zodpovědná za správu seznamu požadavků. S ním můžete vytvořit, kopírovat, odstranit, přesunout požadavek.

  • Vykonatžádost- jednoduché provedení a získání výsledku
  • Spustit balíček- umožňuje zobrazit všechny mezilehlé požadavky v dávkové žádosti
  • Prohlížení dočasných tabulek- umožňuje zobrazit výsledky, které jsou vráceny dočasnými dotazy v tabulce

Parametry požadavku:

Umožňuje nastavit aktuální parametry požadavku.

V okně parametrů dotazu je zajímavé následující:

  • Knoflík Získejte z požadavku automaticky najde všechny parametry v požadavku pro pohodlí vývojáře.
  • Vlajka Jednotné parametry pro všechny požadavky- pokud je nainstalován, jeho zpracování nevymaže parametry při přechodu z požadavku na požadavek v obecný seznamžádosti.

Nastavit parametr jako seznam hodnot je to velmi jednoduché, když vyberete hodnotu parametru, stisknutím tlačítka vymažete hodnotu (křížek), systém nabídne výběr datového typu, kde musíte vybrat „Seznam hodnot“:

také v horní panel existuje tlačítko pro vyvolání nastavení konzoly dotazu:

Zde můžete určit možnosti pro automatické ukládání dotazů a možnosti pro provedení dotazu.

Text dotazu se zadává do pole dotazu konzoly. To lze provést pomocí jednoduché testovací sady dotazů nebo voláním speciálního nástroje - konstruktoru dotazu.

Konstruktor dotazu 1C 8 se volá z kontextové nabídky (pravé tlačítko myši), když kliknete na vstupní pole:

Také v tomto menu jsou takové užitečné funkce jako vymazání nebo přidání zalomení řádků („|“) k požadavku nebo získání kódu požadavku v tak pohodlné formě:

Žádost = Nový požadavek;
Request.Text = "
| VYBERTE si
| Měny. Odkaz
| OD
| Adresář. Měny AS Měny “;
QueryResult = Query.Run ();

Ve spodním poli konzoly dotazů se zobrazí pole s výsledkem dotazu, pro které bylo toto zpracování vytvořeno:



Konzola dotazů kromě seznamu dokáže zobrazit data ve formě stromu - pro dotazy obsahující součty.

Optimalizace dotazů

Jeden z kritické body při zvyšování produktivity 1C podniku 8,3 je optimalizacežádosti... Tento bod je také velmi důležitý, když absolvování certifikace... Níže si povíme o typických důvodech neoptimální práce na dotazech a metodách optimalizace.

Výběry ve virtuální tabulce pomocí konstrukce WHERE

Je nutné použít filtry na podrobnosti virtuální tabulky pouze prostřednictvím parametrů BT. V žádném případě byste pro výběr ve virtuální tabulce neměli používat konstrukci WHERE, jedná se o hrubou chybu z hlediska optimalizace. V případě výběru pomocí WHERE systém ve skutečnosti obdrží VŠECHNY záznamy a až poté vybere ty potřebné.

ŽE JO:

VYBRAT

Z
Akumulační registr. Vzájemná vypořádání s organizacemi deponentů.
,
Organizace = & Organizace
A jednotlivci = & jednotlivci) JAK Vzájemné dohody s organizacemi DeponentsOrganizations

NE SPRÁVNĚ:

VYBRAT
Vzájemné dohodyWithDeponentsOrganizationsBalances.AmountBalance
Z
Registr akumulace.Vzájemné vyrovnáníWith DeponentsOrganizations.Balances (,) AS Vzájemné vyrovnáníWithDeponentsOrganizationsBalances
KDE
SettlementsWith DeponentsOrganizationsBalances.Organization = & Organizace
A vzájemné dohody s DeponentsOrganizationsBalances.Personal = & Individual

Získání hodnoty pole komplexního typu pomocí tečky

Při přijímání dat složeného typu v dotazu pomocí tečky se systém spojí levým spojením přesně s takovým počtem tabulek, kolik je v poli typu složeného typu možné.

Například je pro optimalizaci vysoce nežádoucí odkazovat na pole záznamu registru - registrátor. Registrátor má složený datový typ, včetně všech možných typů dokumentů, které mohou zapisovat data do registru.

NE SPRÁVNĚ:

VYBRAT
Record Set.Recorder.Date,
Sada záznamů. Číslo
Z
Registr akumulace.ProduktyOrganizace AS SetRecords

To znamená, že takový požadavek ve skutečnosti nebude odkazovat na jednu tabulku, ale na 22 databázových tabulek (tento registr má 21 typů registrátorů).

ŽE JO:

VYBRAT
VÝBĚR
KDY GoodsOrg.Registrar LINK dokument. Realizace GoodsServices
POTOM VÝSLOVNĚ (dokument GoodsOrg.Registrar AS. Realizace GoodsServices). Datum
KDYŽ ZbožíOrg.Registrar ODKAZ Dokument. Příchod ZbožíSlužby
POTOM VÝSLOVNĚ (ZbožíOrg.Registrar AS Document. Příjezd GoodsServices). Datum
KONEC JAKO Datum,
ProduktyOrg. Množství
Z
Registr akumulace.ProduktyOrg

Nebo druhou možností je přidat tyto informace k rekvizitám, například v našem případě přidat datum.

ŽE JO:

VYBRAT
ProduktyOrganizace.Datum,
ProduktyOrganizace.Číslo
Z
Akumulační registr. Zboží organizací jako zboží organizací

Poddotazy ve stavu spojení

Pro optimalizaci je nepřijatelné používat poddotazy v podmínkách spojení, což výrazně zpomaluje dotaz. V takových případech je vhodné použít VT. Chcete -li se připojit, musíte použít pouze metadata a objekty BT, které jste předtím indexovali podle polí připojení.

NE SPRÁVNĚ:

VYBRAT …

LEVÝ KLOUB (
VYBERTE Z REGISTRU INFORMACÍ. Omezení
KDE ...
NAČÍT ...
) ZAPNUTO…

ŽE JO:

VYBRAT …
Limity POST
Z INFORMACE Registr. Limity
KDE ...
NAČÍT ...
INDEX PODLE ...;

VYBRAT …
Z dokumentu. Realizace služeb zboží
LEFT JOIN Limity
ZAPNUTO ...;

Spojování záznamů s virtuálními tabulkami

Existují situace, kdy systém nepracuje optimálně při spojování virtuální tabulky s ostatními. V tomto případě můžete optimalizovat výkon dotazu zkusit umístit virtuální tabulku do dočasné tabulky a zapamatovat si indexování spojených polí v dotazu dočasné tabulky. To je způsobeno skutečností, že BT jsou často obsaženy v několika fyzických tabulkách DBMS, ve výsledku je proveden poddotaz k jejich výběru a problém je podobný předchozímu bodu.

Použití filtrů na neindexovaná pole

Jednou z nejčastějších chyb při psaní dotazů je používání podmínek v neindexovaných polích, což je v rozporu pravidla optimalizace dotazu. Pokud dotaz překrývá neindexovaná pole, DBMS nemůže provést dotaz optimálně. Pokud se vezme dočasná tabulka, je také nutné indexovat pole spojení.

Pro každou podmínku musí existovat vhodný index. Vhodný je index, který splňuje následující požadavky:

  1. Rejstřík obsahuje všechna pole uvedená v podmínce.
  2. Tato pole jsou na samém začátku indexu.
  3. Tyto výběry jsou za sebou, to znamená, že hodnoty, které nejsou zahrnuty do podmínky dotazu, mezi ně „nevklíní“.

Pokud DBMS nenajde správné indexy, bude prohledána celá tabulka - to bude mít velmi negativní dopad na výkon a může to vést k prodlouženému blokování celé sady záznamů.

Použití logického NEBO v podmínkách

To je vše, tento článek se zabýval základy aspektů optimalizace dotazů, které by měl znát každý odborník na 1C.

Velmi užitečný bezplatný video kurz o vývoji a optimalizaci dotazů, vřele doporučuji pro začátečníky a nejen!

Při vývoji sestav je někdy nutné zobrazit sestavu, pro kterou nelze pomocí dotazovacího jazyka získat data. Taková situace může nastat například v případě, že je pro výpočet dat použit určitý složitý algoritmus nebo data pro výstup zprávy nejsou získána od informační základna, a například z externí soubor... Tvůrce sestav poskytuje možnost výstupu sestavy z libovolného zdroje dat.
Jako zdroj dat pro výstup sestavy lze použít následující:

  • Tabulka hodnot,
  • Výsledek požadavku,
  • Region buněk buněk tabulky,
  • Tabulková část,
  • Accumulation RegisterRecordSet,
  • DatasheetRecordSet,
  • Účetní registrRecordSet,
  • Výpočet RegisterRecordSet.
Aby mohl tvůrce sestav zobrazit sestavu pro libovolný zdroj dat, stačí nastavit popis zdroje dat na vlastnost Tvůrce DataSource. Vlastnost DataSource Report Builder může obsahovat hodnotu typu DataSource Description. Objekt DataSourceDescription obsahuje samotný zdroj dat a také obsahuje popis sloupců zdroje dat. Každý popis sloupce zdroje dat obsahuje:
  • Název - obsahuje název sloupce ve zdroji dat,
  • PathData - obsahuje popis vzájemné závislosti sloupců. Sloupec, jehož datová cesta je získána bodem z datové cesty jiného pole, je považován za atribut jiného sloupce. Pokud pole obsahuje slovo Reprezentace oddělené tečkou, pak je toto pole považováno za reprezentaci sloupce, z jehož datové cesty je reprezentace získána. Příklady. Pokud má sloupec „Nomenklatura“ cestu k údajům „Nomenklatura“ a sloupec „Kód“ obsahuje cestu k údajům „Nomenclature.Code“, bude tento sloupec považován za atribut sloupce „Nomenklatura“. Sloupec s cestou k datům "Nomenklatura. Zastoupení" bude považován za reprezentaci sloupce "Nomenklatura",
  • Pole - znamení, že tento sloupec lze použít jako pole zprávy,
  • Objednávka je znamením, že pro daný sloupec je možné objednávat,
  • Výběr je znamením, že je možné uložit výběr pro daný sloupec,
  • Dimenze - znamení, že tento sloupec lze použít jako seskupení sestavy,
  • Celkem je řetězec obsahující výraz pro výpočet součtu. Pro tvůrce sestav se výraz pro tento řetězec shoduje s výrazem pro výpočet celkové hodnoty použité v dotazovacím jazyce,
Při nastavování zdroje dat na objekt DataSourceDescription se vytvářejí a automaticky vyplňují popisy sloupců.

Objekt DataSourceDescription má konstruktor, jehož parametrem lze předat zdroj dat, pro který je vytvořen popis, zatímco vlastnost DataSource bude vyplněna přeneseným zdrojem dat, popisy sloupců budou vyplněny informacemi o sloupcích z zdroj dat.

Příklad nastavení zdroje dat pro tvůrce sestav:

ReportBuilder.DataSource = NewDataSourceDescription (ValueTableResult);

Další práce s Tvůrcem sestav se neliší od práce s Tvůrcem sestav v režimu práce s dotazem: Tvůrce sestav poskytuje svou plnou funkčnost, s výjimkou výstupu hierarchických součtů. Při práci s libovolným zdrojem dat navíc nemůžete obdržet dotaz od tvůrce sestav, který bude použit k načtení dat z infobase.

Práce s vlastním zdrojem dat Query Builder je stejná jako práce s vlastním Tvůrcem sestav.

Programování 1C spočívá nejen v psaní programu. 1C je ingot akcí uživatelů a dat, se kterými pracuje.

Data jsou uložena v databázi. 1C požadavky jsou způsob, jak získat data z databáze, aby je bylo možné ukázat uživateli ve formuláři nebo zpracovat.

Zásadní součástí zprávy je požadavek 1C. V případě zprávy ACS je to většina zprávy.

Sedni si. Nadechni se. Ber to s klidem. Nyní vám povím novinky.

K programování v 1C nestačí znát programovací jazyk 1C. Musíte také znát jazyk požadavků 1C.

Dotazovací jazyk 1C je zcela samostatný jazyk, který nám umožňuje určit, jaká data potřebujeme z databáze získat.

Je také dvojjazyčný - to znamená, že můžete psát v ruštině nebo v angličtině. Je výjimečně podobný jazyku SQL dotazy a ti, kteří ho znají, si mohou odpočinout.

Jak se používají požadavky 1C

Když uživatel spustí 1C v režimu Enterprise, ve spuštěném klientovi není ani jeden gram dat. Když tedy potřebujete otevřít adresář, 1C požaduje data z databáze, to znamená, že vytvoří požadavek 1C.

Požadavky 1C jsou:

  • Automatické požadavky 1C
    Systém je generuje automaticky. Vytvořili jste formulář seznamu dokumentů. Přidán sloupec. To znamená, že když otevřete tento formulář v režimu Enterprise, bude proveden požadavek a budou požadována data pro tento sloupec.
  • Poloautomatické dotazy 1C
    V jazyce 1C existuje mnoho metod (funkcí), při jejichž přístupu je požadavek na databázi. Např. GetObject ()
  • Ruční požadavky 1C (napsané programátorem konkrétně jako požadavek)
    Do kódu můžete napsat požadavek 1C sami a spustit ho.

Vytváření a provádění požadavků 1C

1C požadavek je skutečný text požadavku v dotazovacím jazyce 1C.
Text lze psát pery. To znamená brát a psát (pokud znáte tento jazyk).

Protože 1C propaguje koncept vizuálního programování, kde lze téměř vše provést bez psaní kódu pery, existuje speciální objekt Query Constructor, který vám umožní nakreslit text dotazu bez znalosti dotazovacího jazyka. Zázraky se však nedějí - k tomu potřebujete vědět, jak s konstruktérem pracovat.

Jakmile je text požadavku 1C připraven, musí být proveden. K tomu je objekt v 1C kódu Request (). Zde je příklad:

Žádost = Nový požadavek ();
Request.Text = "VYBRAT
| Nomenklatura.Ref.
| OD
| Reference.Nomenclature AS Nomenclature
| KDE
| Nomenklatura.Služba ";
Výběr = Query.Run (). Select ();

Report (Sample.Link);
Konec cyklu;

Jak vidíte v příkladu - po provedení požadavku 1C se k nám dostane výsledek a my ho musíme zpracovat. Výsledkem je jeden nebo několik řádků tabulky (ve speciálním formuláři).

Výsledek lze uložit do běžné tabulky:
Načíst = Query.Run (). Unload (); // Výsledek je tabulka hodnot

Nebo jen obejít řádky.
Výběr = Query.Run (). Select ();
While Sampling.Next () Loop
// Udělejte něco s výsledky dotazu
Konec cyklu;

Práce s požadavky 1C

Základní principy požadavků 1C

Základní principy vytváření dotazu 1C jsou -
VYBERTE ListFields Z TABULKY TABULKA KDE Podmínky

Příklad sestavení takového požadavku 1C:

VYBRAT
// seznam polí k výběru
Odkaz,
Název,
Kód
Z
// název tabulky, ze které vybereme data
// seznam tabulek je seznam objektů v okně konfigurátoru
Adresář. Nomenklatura
KDE
// specifikovat výběr
Typ produktu = & Služba // výběr podle externí hodnoty
Nebo Service // Proměnná „Service“ typu Boolean, výběr podle hodnoty True
SEŘAZENO PODLE
// Řazení
název

Seznam tabulek 1C

Názvy tabulek vidíte v okně konfigurátoru. Je pouze nutné napsat „Adresář“ místo „Adresáře“, například „Directory.Nomenclature“ nebo „Document.Realization of GoodsServices“ nebo „Accumulation Register.Sales“.

U registrů existují další tabulky (virtuální), které vám umožňují získat celkové údaje.

Information Register.RegisterName.Last Slice (& Date) - 1C požadavek z informačního registru, pokud je periodický, pro konkrétní datum

Registr akumulace. Název registru. Zůstatky (& datum) - požadavek 1C z registru zásob na konkrétní datum

Accumulation Register.RegisterName.Turnovers (& Start Date, & End Date) - 1C request from the turnover register for the period from the start date to the end date.

Další zásady

Když požadujeme seznam některých údajů, fungují základní principy. Můžeme ale také požádat o čísla a požadavek je může vypočítat za nás (přidejte například).

VYBRAT
// Množství (FieldName) - spočítá množství
// Pole AS OtherName - přejmenuje pole
Number (Link) AS Počet zaslaných dokumentů
Z

KDE
Odneseno

Tento požadavek 1C nám vrátí celkový počet dokumentů. Každý dokument má však pole Organizace. Řekněme, že chceme vypočítat počet dokumentů pro každou organizaci pomocí dotazu 1C.

VYBRAT
// pouze pole dokumentu
Organizace,
// spočítejte částku
Množství (reference) AS Množství podle organizace
Z
Dokument.Realizace služeb Zboží
KDE
Odneseno
Načíst

Organizace

Tento požadavek 1C nám vrátí počet dokumentů pro každou organizaci (říká se také „v kontextu organizací“).

Součet těchto dokumentů dodatečně vypočítáme pomocí požadavku 1C:

VYBRAT
// pouze pole dokumentu
Organizace,
// spočítejte částku

// vypočítat částku

Z
Dokument.Realizace služeb Zboží
KDE
Odneseno
Načíst
// musí být použit, pokud má seznam polí funkci počítání () a jedno nebo více polí současně - pak je třeba seskupit podle těchto polí
Organizace

Tento požadavek 1C nám také vrátí množství dokumentů.

VYBRAT
// pouze pole dokumentu
Organizace,
// spočítejte částku
Množství (odkaz) JAKO Množství podle organizace,
// vypočítat částku
Částka (částka dokladu) JAKO Částka
Z
Dokument.Realizace služeb Zboží
KDE
Odneseno
Načíst
// musí být použit, pokud má seznam polí funkci počítání () a jedno nebo více polí současně - pak je třeba seskupit podle těchto polí
Organizace
VÝSLEDKY OBECNĚ

Dotazovací jazyk 1C je rozsáhlý a komplexní a v jedné lekci nebudeme zvažovat všechny jeho možnosti - přečtěte si naše další lekce.

Krátce o další funkce 1C dotazovací jazyk:

  • Spojování dat z více tabulek
  • Vnořené dotazy
  • Dávková žádost
  • Vytváření vlastních virtuálních tabulek
  • Dotaz z tabulky hodnot
  • Použití vestavěných funkcí pro získání hodnoty a manipulaci s hodnotami.

1C Query Builder

Abychom text žádosti nepísali ručně - existuje návrhář dotazů 1C. Stačí kliknout pravým tlačítkem kdekoli v modulu a vybrat 1C Query Builder.

V návrháři dotazů 1C vyberte požadovanou tabulku vlevo a přetáhněte ji doprava.

Vyberte požadovaná pole v návrháři dotazů 1C z tabulky a přetáhněte doprava. Pokud si přejete pole nejen vybrat, ale použít na něj funkci součtu - po přetažení dvakrát klikněte na pole myší. Poté na kartě Seskupení budete muset vybrat (přetáhnout) požadovaná pole ke seskupení.

Na kartě Podmínky v návrháři dotazů 1C můžete stejným způsobem vybrat požadované filtry (přetažením polí, podle kterých provedete výběr). Nezapomeňte zvolit správný stav.

Na kartě Objednávka je uvedeno třídění. Na kartě Součty - součet součtů.

S pomocí návrháře dotazů 1C můžete studovat jakýkoli existující dotaz. Chcete -li to provést, klikněte pravým tlačítkem na text stávajícího požadavku a vyberte také návrháře dotazů 1C - a požadavek se otevře v návrháři dotazů 1C.