Query console 1s 8.3 je běžná aplikace. Práce s Query Console

Domov / Brzdy

Začněme tedy něčím jednoduchým: vytvořte v konfigurátoru Nové zpracování, pojmenujte jej Query Console nebo Query Builder, jak chcete.

Okamžitě můžeme přidat tabulku v „Data“ pro budoucí parametry, které potřebujeme, takže v naší Console nespustíme ten nejprimitivnější požadavek, ale s parametry a odkazy, například pro naši práci vytvoříme požadavek na periodické registry , ale zde bez instrukce Parametr=&Datum nikde.

Abychom vytvořili naši tabulku Parameters, na záložce „Data“ v její „Tabulární části“ přidáme novou tabulku, nazveme ji Parametry dotazu, zde přidáme sloupce této tabulky: 1) ParametrName, napište řetězec = 25 znaků; ParametrValue, zde je složený datový typ, viz obr.

Proto, jak je znázorněno na obrázku, vybereme pro sloupec Hodnota parametru složený typ: v nabídce typu, která se otevře, zaškrtněte políčko „Složený typ“, vyberte číslo, řetězec (určete 20 znaků), datum, Boolean a zaškrtněte spodní zaškrtávací políčko - AnyLink - to znamená, co následuje, když specifikujeme parametry našeho požadavku, můžeme odkazovat na jakýkoli objekt naší konfigurace, například adresáře nebo dokumenty.

Nyní musíme vytvořit formu naší budoucí Query Console. Při zpracování přejdeme na záložku "Formuláře" a přidáme nový Zadáme tento formulář a již existuje neomezené pole pro kreativitu - můžete si uspořádat dva detaily, které jste právě vytvořili, a talíř s parametry, jak chcete! K tomu můžete použít standardní prvky formuláře, jako je Skupina nebo Stránka se stránkami (pokud dáváte přednost překlápění stránek.

Hlavní je zde jedna věc: po přetažení atributu „TextValues“ do levého pole úpravy formuláře nezapomeňte v jeho vlastnostech nastavit „View“=Textové pole dokumentu.

Ve vlastnostech atributu „Tabulka dotazů“ můžete volitelně zadat „Zobrazovací mřížku“ a „Zobrazit záhlaví“.

Dále v pravém okně pro úpravu formuláře přejděte na kartu „Příkazy“ a přidejte nové tlačítko, po kliknutí provede naše konzole určitou akci. Vytvořme Button "Query Constructor", pokud chcete, můžete k tlačítku přidat ikonu, hlavní je umístit samotné tlačítko do levého okna pro editaci formuláře - tak, abychom ho viděli ve správném tvaru editačním okně klikněte pravým tlačítkem na naše tlačítko a vyberte vlastnosti - ve vlastnostech klikněte na položku "Akce", objeví se modální okno s otázkou - kde přesně bude naše programový kód, které tlačítku přiřadíme - vyberte „Na klientovi“.

Modul formuláře se otevře s připravenou prázdnou procedurou „Procedure Query Constructor (Command)“. Uvnitř tohoto postupu popíšeme volání standardního 1c8 Query Builderu. Je to velmi snadné: Konstruktor = Konstruktor nového požadavku; Ale jsou zde úskalí - Query Constructor zabudovaný do platformy funguje v uživatelském režimu POUZE pod tlustým klientem! Proto vložíme podmínku preprocesorové instrukce #Pokud, ale zde se rozhodnete sami, na základě vaší platformy nebo máte běžné formuláře, pak vyberte " FatClientRegularApp"nebo máte platformu založenou na spravovaných formulářích" ThickClientManagedApplication".viz obr.

Nyní zbývá k tomuto postupu přidat podmínku pro záznam textu požadavku, který nám Query Builder vygeneruje v detailech našeho formuláře „Text požadavku“:

If Constructor.OpenModal()=True Then Object.RequestText=Constructor.Text;

endIf;

Můžeme ale ručně něco změnit v textu požadavku (v uživatelském režimu – v okně atributu „Text požadavku“), aby se naše změny dostaly do Query Constructoru při jeho opětovném vyvolání – zde přidáme jednoduchou podmínku:

Pokud ne EmptyString(Object.QueryText) Then Constructor.Text = Object.QueryText;

endIf;

Takže máme spuštěný Query Constructor, můžeme v něm začít skládat náš budoucí dotaz, ale zajímá nás, jak bude fungovat námi vytvořený dotaz! A abychom to udělali, musíme v konfigurátoru vytvořit další tlačítko při úpravě našeho konzolového formuláře, nazvěme ho „Spustit dotaz“. Ve vlastnostech tlačítka „Spustit dotaz“ klikněte na „Akce“, znovu se objeví nabídka, ve které jsme dotázáni, kde bude zpracován náš programový kód, v v tomto případě vyberte „Jak na klientovi, tak na serveru“, opět se ocitneme v ModuleForms.

V proceduře Execute Query(), kterou máme na klientovi, napíšeme podmínku, pokud uživatel nezadal text dotazu, ale žádá o jeho provedení:

If EmptyString(Object.QueryText) Then report("Zadejte text dotazu!");

endIf;

Systém již automaticky vygeneroval odkaz na proceduru Execute RequestOnServer(); - to je dobře, pojďme na tuto proceduru, která se provádí na serveru, a napíšeme sem kód pro provedení našeho zadaného požadavku. Zde jsou možnosti: Všechny výrazy týkající se stavebních dotazů si můžete napsat sami, tzn. ručně, ale je toho víc jednodušší varianta

- uvnitř postupu klikněte pravým tlačítkem myši a v rozevírací nabídce vyberte „Tvůrce dotazů se zpracováním výsledků, viz obrázek.“:

Pokud jste klikli na položku „Návrhář dotazu se zpracováním výsledků“, objeví se modální okno „Text dotazu nebyl nalezen, klikněte na ano Otevře se vestavěný návrhář dotazu, ve kterém na jeho první záložce „Zpracování výsledku“ - vyberte první položku „ Obejití výsledku, to je vše, nic dalšího od tohoto konstruktoru nepotřebujeme, klikněte na tlačítko „Ok“ - objeví se modální okno: „Ne.“ pole v žádosti, klikněte na "OK".

Poté se v naší proceduře ExecuteRequestOnServer() objeví následující hotová šablona:

Přejděme k výrazu vytvořenému konstruktorem:

Request.Text = "";

Je to tak jednoduché, naše tlačítko „Execute Request“ na zpracovatelském formuláři je již prakticky funkční, zatím umí zpracovat pouze jednoduché požadavky bez parametrů, ale hlavní je, že to funguje! Zbývá pouze vizuálně zobrazit výsledky našeho požadavku v atributu „Value Table“ na formuláři zpracování. Dovolte mi připomenout, že náš atribut „Value Table“ je typu „Tabular Document“, protože jinak neuvidíme naše výsledky v uživatelském režimu. Výstup tabulkových dat pro uživatele je vždy řešen buď tabulkovým dokumentem nebo rozložením. Opravdu bych si přál, aby bylo možné zobrazovat data prostřednictvím tabulky hodnot - protože je to velmi snadné a známé, ale. , bohužel tabulka hodnot je pouze nástroj, který vývojář potřebuje, nelze pomocí ní zobrazit data na obrazovce...

Podívejme se blíže na to, co je Tabulkový dokument - je to jako list Excelu - k záznamu v konkrétní buňce se dostanete pouze pomocí Buňky tabulky, zde jim říkáme oblast, ale sami si můžeme vybrat rozsah této oblasti do jedné konkrétní buňky:

Přišli jsme tedy na to, co je tabulkový dokument, a sami jsme si určili, že budeme muset definovat data z našeho dotazu v konkrétní buňce tohoto tabulkového dokumentu. Ale pojďme se zamyslet: co je to „výsledek dotazu“, který pro nás návrhář tak rychle vygeneroval? Otevřít nápovědu - Výsledkem dotazu je tabulka, která má příslušné vlastnosti! viz obr.

A když teď napíšeme za výraz Query Result = Query.Execute( (vytvořený konstruktorem), tady je takový jednoduchý cyklus pro Collections:

Pro každý ColumnName From Query Result.Columns Loop report(ColumnName.Name);

EndCycle;

Po tomto cyklu si prozatím poznamenejte všechny výrazy vytvořené automaticky konstruktorem. A spusťte 1C:Enterprise8 pod tlustým klientem Vytvořte libovolný jednoduchý dotaz (můžete použít Query Builder - už funguje pro nás) a klikněte na tlačítko „Spustit dotaz“:

Poté uvidíte ve spodní části okna zprávy - že tabulka Query Result ukládá názvy polí, která jsme právě vybrali vytvořením jednoduchého dotazu.

Nyní zobrazme tato jména polí našeho utrpení v tabulkovém dokumentu:

Chcete-li zobrazit podrobnosti dat dotazu, analyzujme výrazy vytvořené automaticky návrhářem a vložíme do třídicí smyčky „SelectionDetailedRecords“ samotného dotazu přesně stejnou smyčku, kterou jsme použili k zobrazení názvů sloupců, pouze nyní musíme přenést nikoli data z tabulky „Výsledek dotazu“ do textu buňky a data samotného výběru, podívejme se v nápovědě, jak se dostanete do pole Podrobný výběr požadavku:

SelectionDetailRecords = QueryResult.Select();

Zatímco SelectionDetailedRecords.Next() Loop //v prvním řádku již máme zapsané názvy sloupců tabulky, načteme tedy data pod prvním řádkemDocRowNumber=Object.QueryTable.TableHeight+1;

Pro každý ColumnName From Query Result.Columns Cycle Cell=Object.QueryTable.Area(DocRowNumber,QueryResult.Columns.Index(ColumnName)+1);

Cell.Text = SelectionDetailedRecords[Název_sloupce.Název];

EndCycle; EndCycle; To je vše, můžeme zkontrolovat, načíst podnik pod tlustým klientem, zadat jednoduchý požadavek bez parametrů, kliknout na tlačítko „Spustit dotaz“, viz obrázek:

Hurá, vše funguje!!!

Je velmi výhodné, když se při otevírání/zavírání naší Query Console opět do pole “Query Text” zapíše náš text dotazu, se kterým jsme pracovali před zavřením konzole. Chcete-li to provést, stačí povolit vlastnost formuláře = Autosave, viz obr:

To je vše, naše konzole funguje. Abychom mohli psát složitější dotazy s parametry v nich specifikovanými, musíme vytvořit další tlačítko „Najít parametry“ a také kód pro tlačítko „Spustit dotaz“ - bude spuštěn kód pro tlačítko „Najít parametry“ na klientovi i na serveru. Dále v proceduře serveru spustíme požadavek přesně stejným způsobem s textem, který do něj předáme z okna „Text požadavku“, pomocí výrazu „Request.FindParameters()“ najdeme předané parametry a jednoduše je zadáme do smyčka

Soubor ke stažení obsahuje ukázku konzole Query Console, kterou jsme právě vytvořili.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Upgrade Query Console:

1) Nyní naše domácí Query Console s vestavěným Query Builderem poběží pod jakýmkoli klientem: pod tlustým klientem běžných a spravovaných formulářů a pod tenkým a webovým klientem.

p.s. Forma a vzhled vestavěného Query Builderu se liší - podle toho, pod kterým klientem jsme spustili naši Console (osobně známější a pohodlnější formu Query Builderu pod tlustým klientem)

&Na Konstruktoru dotazů klientské procedury (Command) //volání standardního konstruktoru dotazů je možné pouze pod tlustým klientem #If ThickClientManagedApplication nebo ThickClientNormalApplication Then Constructor=Nový konstruktor dotazu;

Pokud ne EmptyString(Object.QueryText) Then Constructor.Text = Object.QueryText;

endIf;

If Constructor.OpenModal()=True Then Object.RequestText=Constructor.Text;

SELECT ExternalData.Product, ExternalData.Quantity PLACE ExternalData FROM &ExternalData AS ExternalData; ///////////////////////////////////////////////// /////////////////////////// SELECT ExternalData.Product, ExternalData.Quantity, ISNULL(RemainingProductRemaining.QuantityRemaining, 0) AS Pole1, ISNULL(Zbývající ProductsRemainings.QuantityRemaining, 0) - ExternalData.Quantity AS Remaining FROM ExternalData AS ExternalData LEFT JOIN Registrovat Accumulations.Remaining Products.Remainings(&Date, Product IN (SELECT ExternalData.Product FROM ExternalData AS ExternalData)) AS Remaining External ProductsRemaining.Product software ki RemainingProductRemaining

Pomocí příkladu a podobnosti výše uvedeného kódu dotazu můžete vytvořit svůj vlastní komplexní dotaz s ohledem na vaše datové objekty.

Takže v návrháři dotazů jsme vytvořili výše uvedený dotaz, zavřeme konstruktor - text dotazu přejde do pole naší konzoly "Text dotazu", klikněte na tlačítko "Najít parametry", vidíme, že v tabulce Parametry se objevil řádek = "Externí data", Typ hodnoty="Tabulka hodnot", viz obr.

V této tabulce parametrů - zadejte parametr Datum, například dnešní datum, poté kliknutím zkuste upravit náš parametr dočasné tabulky "Externí data", klikněte do pole s "Tabulkou hodnot" na tři tečky - výběr typů se zobrazí klikněte na Řádek, náš mechanismus nás otočí na stránku formuláře, kde musíme ručně zadat tuto velmi dočasnou tabulku.

Zde si všimněte, že v tomto případě se na stránce „Rozvrhy“ dole v poli „Dočasný název tabulky v parametrech“ objeví název naší dočasné tabulky (je zkopírován z tabulky Parametry).

Na stránce „Časové tabulky“ zatím vidíme pouze jednu prázdnou tabulku – jedná se o tabulku Typů naší budoucí dočasné tabulky Pomocí tlačítka „Přidat“ doplníme název atributu a typ budoucí tabulky . Buďte opatrní – název a typ se musí shodovat s tím, co jsme zadali v požadavku na &ExternalData:

Nyní stiskneme tlačítko "Aktualizovat dočasnou tabulku" - a budeme zde mít druhou tabulku - přímo ji naplníme daty dočasné tabulky pomocí tlačítka "Přidat".

To je vše, můžeme si ještě jednou zkontrolovat, zda jsme zadali primitivní údaje parametrů dotazu do tabulky parametrů na 1. stránce zpracování a kliknout na tlačítko "Spustit dotaz" - vše se vypočítá a vybere podle toho omezení dat předávaných v parametru naší dočasné tabulky

p.s. Pokud jste udělali chybu při zadávání názvu detailů a jejich typů (v první tabulce) - stačí zavřít Konzolu a znovu ji otevřít - dočasná tabulka dat bude vymazána - a tabulku Typy lze znovu upravit a vytvořit lze znovu vytvořit novou datovou tabulku.

To je vše, vlastníma rukama si dokážeme vytvořit velmi výkonný pracovní nástroj, navíc naše konzole je oproti profesionálním stále velmi rychlá – a to je pro vývojáře velmi velké plus! A samozřejmě nyní naše konzole funguje pod jakýmkoli klientem! Hodně štěstí ve vašem kreativním vývoji!!!

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Neustále pracuji se svojí Query Console a nedávno jsem narazil na velmi zajímavý dotaz, ve kterém Dočasné tabulky nebyly v prvním balíčku dotazů, ale v dalších - a tady moje konzole dostala trochu depresi... Musel jsem udělat další upgrade.

Správce dočasných tabulek v dotazu tedy ne vždy chápe, že s ním pracují)) Proto musíte explicitně nastavit tohoto správce dočasných tabulek:

&Na serveru Procedura Provést dotaz Na serveru () //upgrade2 - explicitní definice správce dočasných tabulek!

ManagerVT=Nový TemporaryTablesManager;

Žádost = Nová žádost;

//upgrade2 - explicitní definice správce dočasných tabulek!

Query.TemporaryTableManager = VTManager;

Request.Text = Object.RequestText;

Tato verze konzole je ve třetím stažení. A rychle získat informace. V tomto článku se pokusím popsat, jak používat Query Console a poskytnout odkaz na stažení Query Console. Pojďme se na tento nástroj podívat blíže. Stáhněte si konzoli dotazů 1C).

Za prvé, abyste mohli začít pracovat s konzolí dotazů, musíte ji odněkud stáhnout. Zpracování se obvykle dělí na dva typy – řízené formy a konvenční (nebo někdy nazývané 8.1 a 8.2/8.3).

Zkusila jsem tyto dva druhy zkombinovat v jednom ošetření – in

požadovaný režim

práce otevře požadovaný formulář (

ve spravovaném režimu konzola funguje pouze v tlustém režimu

První skupina tlačítek na panelu příkazů je zodpovědná za ukládání aktuálních dotazů do externího souboru. To je velmi pohodlné, vždy se můžete vrátit k psaní složitého požadavku. Nebo si například uložte seznam typických příkladů určitých vzorů.

Vlevo v poli „Požadavek“ můžete vytvářet nové požadavky a ukládat je do stromové struktury. Druhá skupina tlačítek je zodpovědná za správu seznamu požadavků. Pomocí něj můžete vytvořit, kopírovat, mazat, přesouvat požadavek.

Získejte 267 videolekcí na 1C zdarma:

  • Provést požadavek— jednoduché provádění a dosahování výsledků;
  • Spustit balíček— umožňuje zobrazit všechny mezilehlé požadavky v
  • Zobrazení dočasných tabulek— umožňuje zobrazit výsledky vrácené 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í:

  • Tlačítko Získejte z žádosti automaticky najde všechny parametry v požadavku pro pohodlí vývojáře.
  • Vlajka Společné parametry pro všechny požadavky— když je nainstalován, jeho zpracování nevymaže parametry při přechodu z požadavku na požadavek v obecném seznamu požadavků.

Nastavte parametr se seznamem hodnot Je to velmi jednoduché, stačí při výběru hodnoty parametru kliknout na tlačítko smazat hodnotu (křížek), systém vás vyzve k výběru datového typu, kde je třeba vybrat „Value List“:

V horním panelu je také tlačítko pro vyvolání nastavení konzoly dotazu:

Kde můžete zadat parametry automatického ukládání dotazu a parametry provádění dotazu.

Text požadavku se zadává do pole požadavku konzoly. To lze provést jednoduše zadáním testu dotazu nebo zavoláním speciálního nástroje – návrháře dotazů.

Volání z kontextové nabídky ( pravé tlačítko myši) při kliknutí na vstupní pole:

Také v této nabídce jsou takové užitečné funkce, jako je vymazání nebo přidání pomlček („|“) k požadavku nebo získání kódu požadavku v této pohodlné formě:

Žádost = Nová žádost; Žádost. Text = " |SELECT | Currencies.Link |FROM| Directory.Currencies AS Currencies"

;

RequestResult = požadavek. Run() ;

Spodní pole konzoly dotazu zobrazuje pole výsledku dotazu, proto bylo toto zpracování vytvořeno:

Na internetu najdete mnoho různých konzolí. U běžných a spravovaných formulářů se obvykle jedná o zcela odlišné konzole. Pomocí tohoto si můžete stáhnout univerzální dotazovací konzoli 1C 8.3 a 8.2, která bude fungovat v obou případech. Jen mějte na paměti, že konzola na spravovaném rozhraní se otevře pouze v tlustém klientovi.

Práce s Query Console

V programu 1C se konzola dotazu otevře stejným způsobem jako jakékoli externí zpracování: nabídka „Soubor“ - „Otevřít“ nebo pomocí kombinace kláves „Ctrl + O“. Při častém používání je možné jej přidat k externímu zpracování samotné infobáze.

Na levé straně konzoly požadavků se zobrazí seznam vašich požadavků. To vám umožní uložit nejen jeden požadavek, ale několik najednou. Strom dotazů má hierarchickou strukturu, což je velmi výhodné pro jejich seskupování.

Kliknutím na tlačítko „Přidat“ můžete přidat novou žádost a sami ji pojmenovat. Vestavěná funkce také umožňuje vytvářet dotazy s kopírováním, pohybovat se v seznamu nahoru nebo dolů a mnoho dalšího.

Samotný text požadavku je zobrazen na pravé straně zpracovatelského formuláře. Lze jej zapsat ručně nebo pomocí nástroje pro tvorbu dotazů. Tvůrce dotazů funguje pouze v tlustém klientovi.

Napravo od tlačítka návrháře je tlačítko „Vložit příkazy dotazu“. Okamžitě přidá prázdnou strukturu dotazu s podmínkou, seskupením, pořadím a součty.

Vpravo jsou velmi užitečná tlačítka, která pomohou, pokud tuto žádost používáte při vývoji řešení na 1C.

Tlačítko umožňuje převést vaši písemnou žádost na text. V našem případě to bude vypadat jako na obrázku níže.

Samotné požadavky můžete uložit do souboru nebo je z něj načíst. To je velmi výhodné pro budoucí použití.

Před přímým provedením požadavku musíte nastavit jeho vstupní parametry (pokud existují) a poté kliknout na tlačítko „Spustit požadavek“. Je také možné provádět požadavky ne jako celek, ale samostatně jako balíček.

Režim zobrazení určuje, jak bude výsledek dotazu zobrazen: jako seznam, hierarchický seznam nebo strom.

Výsledek provedení se zobrazí úplně dole v konzole požadavku. Zobrazuje také počet přijatých řádků a čas provedení. V případě potřeby můžete přesunout řádky výsledků dotazu.

Uživatelé velmi často žádají o výběr některých dat a jejich uložení v Excelu. Možná budete potřebovat i tohle. K dokončení úkolu stačí vybrat „Zobrazit seznam“ v nabídce „Více“. Program vás vyzve k označení požadovaných sloupců.

Kromě zadání seznamu sloupců pro výstup zde můžete také zadat konkrétní řádky. To je implementováno zvýrazněním řádků v samotném dotazu. Dále ve formuláři pro výběr sloupců stačí nastavit příznak v nastavení „Pouze vybrané“.

V našem příkladu jsme zobrazili všechna data výsledků dotazu. Uložte je externí soubor, lze zkopírovat z otevřeného tabulkového dokumentu nebo pomocí kombinace kláves „Ctrl+O“. Existuje mnoho možností pro ukládání formátů, které jsme vybrali „*. xlsx".

Jak vidíte, práce v dotazovací konzoli je velmi pohodlná a užitečná, proto důrazně doporučujeme si ji stáhnout a uvést do praxe.

Jeden z nejvíce mocné nástroje 1C Enterprise 8 je bezpochyby Query Builder. Konstruktor je vizuální nástroj pro práci s dotazy v jazyce 1C. Konstruktor má ale jednu velkou nevýhodu – neukazuje výsledek provádění dotazů. Tuto nevýhodu pociťují zejména začínající vývojáři aplikačních řešení na platformě 1C:Enterprise 8.3 a 8.2.

Navíc i zkušení 1C programátoři se často potýkají se situací, kdy je potřeba udělat „jednorázovou“ analýzu dat informační báze v různých sekcích, ale nechtějí kvůli tomu psát plnohodnotnou zprávu. takového „jednorázového závěru“.

Pro všechny tyto a mnohé další případy vám rádi nabídneme externí zpracování Dotazovací konzole se schopností zpracovávat výsledky pro 1C 8.3 a 1C 8.2!


Hlavní funkce Query Console pro 1C 8.3 a 1C 8.2:

Univerzální zpracování, běží na jakékoli konfiguraci platforem 1C: Enterprise 8.1 – 8.3;
- běží v režimu 1C:Enterprise;
- dotaz lze napsat ručně, nebo můžete zavolat Query Builder;
- zobrazuje výsledek požadavku;
- parametry sestavy můžete specifikovat přímo v Query Console;
- umí ukládat a načítat soubory požadavků.

Chcete-li spustit Query Console, musíte spustit konfiguraci v režimu 1C:Enterprise a otevřít externí zpracování Query Console jako jakýkoli jiný soubor uložený na disku. Toto zpracování bude fungovat úplně stejně, jako kdyby bylo součástí aplikačního řešení.


Externí zpracování Konzole dotazu se opakuje známé rozhraní a většina funkčnost standardní nástroje pro vytváření dotazů systému 1C:Enterprise 8.3 a 8.2. Umožňuje také načíst výsledky dotazů, dávkových dotazů a dočasných tabulek.

Dotazová konzole se spouští v operačním režimu systému klient-server i souborový server, a to jak pod tlustými, tak tenkými klienty! Query Console integruje standardní Query Builder, nazývaný via kontextové menu v textovém poli požadavku.

DŮLEŽITÉ! Návrhář dotazů v tenkém klientovi nefunguje tato položka v nabídce otevření návrháře není k dispozici. V tlustém klientovi je k dispozici Tvůrce dotazů!


V tenkém klientovi můžeme požadavky psát pouze ručně, všechny ostatní funkce fungují beze změn.

© 2024 ermake.ru -- O opravě PC - Informační portál