1c výkazy a zpracování. Přidání externího zpracování do databáze

Přejděte do horní části nabídky Servis->->.

Zobrazí se formulář seznamu referenční knihy externího zpracování. V horním menu stiskněte tlačítko Přidat.

Zobrazí se formulář pro přidání nového objektu. Stiskneme tlačítko Otevřít a vybereme soubor s požadovaným zpracováním. Poté, co jste si vybrali požadovaný soubor v případě potřeby uveďte název ošetření (pole Název). Poté musíte kliknutím na OK uložit provedené změny.

Poté se okno pro vytvoření položky katalogu zavře a vrátíte se zpět do formuláře seznamu, ve kterém je již nové zpracování.

To je vše! Proces přidávání zpracování do konfigurace je dokončen. Chcete-li toto zpracování otevřít později, postupujte podle staré cesty: Servis->Další reporty a zpracování->Další externí ošetření.

Pro BP 3.0, ZUP 3.0, UT 11, ERP 2.0.

Externí úpravy pro 1C: Enterprise 8 jsou několika typů. V tomto tutoriálu vám ukážu, jak připojit zpracování pro dávkovou úpravu a zpracování pro plnění konkrétních objektů.

Pro první případ přidejme zpracování pro vyplnění skladového listu z Excelu.

Přejděte do příslušné části programu:


Je nutné, aby byl nastaven znak použití dalších reportů a zpracování, následujte hypertextový odkaz na seznam externích objektů:

V seznamu klikněte na Vytvořit:


V dialogovém okně, které se otevře, vyberte požadovaný soubor se zpracováním:


Karta nového externího objektu v programu je vyplněna, zbývá pouze nakonfigurovat ubytování(části programu, ze kterých bude dostupné zpracování):


Vyberte libovolnou sekci (nebo několik) jako umístění:


Zapíšeme a zavřeme kartu externího objektu:


Nyní otevřeme zpracování z rozhraní:


Seznam je prázdný, klikněte Přizpůsobit seznam:


Vybíráme naše zpracování:


Nyní je k dispozici pro výběr. Chcete-li otevřít zpracování, musíte kliknout Vykonat:


Nyní se podívejme, jak se přidává zpracování pro vyplnění (úpravu) konkrétních objektů. Například vzít externí zpracování, který připojuje skeny k vybraným prvkům adresářů nebo dokumentů systému. Začátek přidávání takového zpracování se neliší od předchozí možnosti. Rozdíl je v tom, že v v tomto případě umístění se vyplní automaticky (a ne podle programové sekce, ale podle typů databázových objektů):


V případě potřeby lze seznam umístění upravit ( nepřidávejte další umístění, ale odstraňte nepotřebné):


Pro přijetí změny musí být zaznamenána také karta externího objektu.

Abyste mohli zpracování použít, musíte přejít na konkrétní základní objekt (ze seznamu umístění), kliknout Vyplnit na příkazovém panelu a vyberte příkaz:

Pozornost!
Veškerá zpracování z disků ITS jsou určena pro informační účely a výhradně pro registrované uživatele ITS.

Výběr a zpracování objektů. (Univerzální)

Vyhledá objekty v dokumentech a adresářích, které splňují určité podmínky. Zpracovává výsledky vyhledávání.

Skládání infobáze. (Univerzální)

Shrnuje typické konfigurace zabezpečení informací:

  • SCP 3.1.
  • TK 1.6.
  • UT 10.3.

Registrace změn pro výměnu. (Univerzální)

Upravuje v režimu spravované aplikace registraci změn výměnných objektů. Umožňuje změnit aktuální registraci na různých uzlech. Změní počty přijatých a odeslaných zpráv.

Převést protokol aktivity uživatele. (Univerzální)

Převede protokol aktivity uživatele na vestavěný program.

Fulltextové vyhledávání dat. (Univerzální)

Indexování a vyhledávání v datech.

Hledání a nahrazování hodnot. (Univerzální)

Vyhledává a nahrazuje referenční hodnoty v objektech IB.

Založení technologického deníku. (Univerzální)

Vytváří nebo upravuje soubor protokolu technologie. Má schopnost konfigurovat vytváření výpisu abnormálního ukončení, konfigurovat podmínky a události, při jejichž výskytu budou informace zapsány do tohoto protokolu.

Quest Console. (Univerzální)

Monitoruje pozadí a naplánované úlohy. Maže, vytváří nové.

Konverze externích ošetření. (Univerzální)

Změna důvěrných informací. (Univerzální)

Selektivní změna nebo vymazání informační bezpečnosti z určitých informací.

Skupinová změna detailů. (Univerzální)

Změní podrobnosti a tabulkové části v dokumentech a referenčních knihách.

Vykládání a načítání uživatelů. (Univerzální)

Uvolní a načte uživatele IB do souboru XML.

Nahrávání dat do externích databází. (Univerzální)

Nahrává datové struktury do externího DBMS pomocí ADO ve dvou režimech:

  • Vyložit vše
  • Nahrát změny (slouží k synchronizaci změn v pracovním IS, s IS - přijímačem). Tento režim využívá mechanismy výměnného plánu.

Podporuje následující DBMS:

  • Microsoft SQL
  • IBM DB2
  • Věštec
  • PostgreSQL
  • MySQL

Vykládání a načítání dat XML. (Univerzální)

Uvolňuje a načítá data do IB, a to jak celá, tak jejich část. Slouží k přenosu dat mezi konfiguracemi s podobným složením objektů.

Načítání dat z tabulkového dokumentu. (Univerzální)

Načítá data do adresářů a tabulkových sekcí z tabulkových dokumentů.

Běží v tlustém klientovi jako běžná aplikace.

Konzole dotazu. (Univerzální)

Poskytuje obrovskou pomoc při vytváření sestav a vytváření dotazů.

Docela často, když je během konzultace potřeba vyřešit obtížný problém, navrhuji svým klientům implementovat jej do programu 1C pomocí buď externí zpracování nebo externí tisková deska... A často se setkávám s tím, že se člověk v této možnosti programů na 1C Enterprise 8 prostě nevyzná. Někdy mi i nadávají v domnění, že vývoj a implementace takového zpracování v jejich konfiguraci povede k nemožnosti automatickou aktualizaci programu. Že za aktualizaci programu musíte zaplatit spoustu peněz.

Objasnit takové otázky a také mluvit o čem užitečné funkce dát vnější ošetření a vnější tištěné formuláře Rozhodl jsem se napsat tento článek. V tomto článku se nebudu zabývat technickou stránkou procesu tvorby zpracování. To bude pravděpodobně probráno v jiné publikaci. Zde se pokusím vysvětlit samotnou podstatu mechanismu a uvést konkrétní příklady těch případů, kdy externí zpracování a tisk forem může být pro uživatele přínosem.

Článek pojednává o následujících možnostech pro další externí zásuvné objekty:

  • Dodatečné externí zpracování tabulkových řezů;
  • Přídavné externí tiskové desky;
  • Další externí zprávy;
  • Další externí ošetření.

Co jsou další externí zpracování, sestavy a tiskopisy




Pro začátek bych chtěl mluvit obecně o co jsou to externí zpracování, sestavy a tiskové formuláře... Poměrně často při práci s typickou konfigurací, ať už se jedná o 1C ZUP nebo 1C Enterprise Accounting nebo nějakou jinou konfiguraci, existuje potřeba některých funkcí, které vývojáři 1C neposkytují. Můžete například potřebovat tištěná forma, která není regulována, ale slouží pro vnitřní potřeby organizace. Nebo je určitým způsobem vyžadováno zpracovat (změnit, opravit) dostupné v databázi. Například změnit určitý atribut v dokumentech za požadované období, což je nepohodlné dělat ručně s velkým množstvím informací.

V tomto případě jsou dvě možnosti. za prvé, můžeme upravit samotnou konfiguraci, samotný program. Poté přestane být typický a aktualizuje ho spíše těmito jednoduchými způsoby, o kterém jsem psal, nebude fungovat. Aktualizace atypické konfigurace je delší a serióznější proces, proto s tímto přístupem budete s největší pravděpodobností muset měsíčně platit specialistovi 1C za aktualizaci programu. Druhý možností je vyvinout nebo požádat o vypracování externího zpracování nebo tištěné formy (zprávy). Jedná se v podstatě o externí modul, který je rovněž vyvinut v programovacím jazyce 1C v Konfigurátoru, ale neprovádí změny typické konfigurace. Existuje nezávisle na konfiguraci samotné. K jejich uložení slouží speciální referenční knihy: položka hlavního menu "Servis" -> "Dodatečné výkazy a zpracování".

Dodatečné externí zpracování pro vyplňování tabulkových sekcí

Seminář "Life hacks na 1C ZUP 3.1"
Analýza 15 life hacků pro účetnictví v 1s ZUP 3.1:

KONTROLNÍ LIST pro kontrolu mezd v 1C ZUP 3.1
VIDEO - měsíčník vlastní kontrolaúčetnictví:

Mzdy v 1C ZUP 3.1
Návod krok za krokem pro začátečníky:

Nyní se podívejme na to, jaké příležitosti má každá ze čtyř k dispozici externí moduly... Začněme s externí zpracování tabulkových řezů... Zdá se mi, že toto zpracování tabulkových částí dokumentů nejúplněji ilustruje, jak můžete vážně upravit program, aniž byste se uchýlili k úpravě typické konfigurace, ale s použitím pouze externího zpracování.

Aby to bylo jasnější, uvedu konkrétní příklad ze své praxe, ve které jsem použil externí zpracování tabulkových řezů... V konfiguraci "1C Řízení platů a lidských zdrojů" verze 2.5 je dokument "Platba za svátky a víkendy"(tento dokument byl sepsán podrobně). PROTI typická forma tento dokument umožňuje automatické vyplnění tabulkové části zaměstnanci „Práce o svátcích“.

Účetní požádala o implementaci možnosti vyplnění tohoto dokladu zaměstnanci, jejichž pracovní dny připadly podle rozvrhu na víkendy, tzn. "Práce o víkendu".

Tento soubor byl nahrán do adresáře "Externí zpracování tabulkových sekcí"(položka menu "Servis" -> "Dodatečné sestavy a zpracování" -> "Dodatečné externí zpracování tabulkových sekcí"). Při vytváření prvku tohoto adresáře bylo uvedeno, ke kterému dokumentu patří načtené zpracování - "Platba za svátky a víkendy organizace", a také do které tabulkové sekce - "Zaměstnanci". V našem příkladu má dokument jeden tabulkový oddíl, ale v jiných dokumentech jich může být několik, proto je nutné konkrétně uvést, na který z nich se zpracování vztahuje.

V důsledku přidání tohoto zpracování do adresáře "Další externí zpracování pro vyplňování tabulkových sekcí" v dokladu "Platba za svátky a víkendy" bude tlačítko "Vyplnit" s rozbalovacím seznamem, ve kterém bude možné toto zpracování spustit. V našem případě je tlačítko "Vyplnit neděle" dostupné v rozevíracím seznamu. Jeho stisknutím se spustí algoritmus, který se zpracovává. V tomto příkladu bude tabulková část vyplněna zaměstnanci, jejichž pracovní dny připadly na víkend. Vezměte prosím na vědomí, že toto tlačítko dříve nebylo (snímek obrazovky výše).

Tento mechanismus umožňuje řešit velmi širokou škálu problémů, aniž byste museli upravovat samotnou konfiguraci. Proto poměrně často využívám této příležitosti k realizaci klientských úkolů.

Další externí tiskové desky

Seminář "Life hacks na 1C ZUP 3.1"
Analýza 15 life hacků pro účetnictví v 1s ZUP 3.1:

KONTROLNÍ LIST pro kontrolu mezd v 1C ZUP 3.1
VIDEO - měsíční samokontrola účetnictví:

Mzdy v 1C ZUP 3.1
Pokyny krok za krokem pro začátečníky:

Tato možnost je velmi podobná předchozí. S největší pravděpodobností jste viděli a víte, že téměř každý dokument a dokonce i některé prvky adresářů mají tisknutelné formy. Zpravidla jsou umístěny v pravém dolním rohu formuláře položky katalogu nebo dokumentu. Někdy standardní tištěné formuláře nestačí. Organizace může mít například vlastní formu pracovní smlouvy. Připomínám, že standardní tištěný formulář „Pracovní smlouva“ je zařazen ve formě adresáře „Zaměstnanci“.

K těmto tištěným formulářům příručky můžete přidat vlastní. Za tímto účelem je vytvořen externí tisknutelný s příponou „.epf“. Poté se pro něj vytvoří prvek adresáře. "Další externí tiskové desky"(položka menu "Servis" -> "Dodatečné zprávy a zpracování") a k tomuto prvku referenční knihy je přidán soubor s příponou ".epf". Je také nutné uvést, pro který dokument nebo odkaz se zpracování přidává.

V důsledku toho se v tištěných formulářích prvků adresáře "Zaměstnanci" objeví další formulář - "Pracovní smlouva (LLC Alpha)", která dříve neexistovala. A ona vzhled a plnění dat je definováno programátorem v souboru „.epf“.

Tato schopnost přidat potřebné tisknutelné formuláře pro dokumenty a referenční knihy je také velmi často žádaná a podle mého názoru je to docela pohodlná funkce programů na platformě 1C Enterprise.

Další externí zprávy

V tomto případě se můžete rozvíjet externí zpráva... Je to soubor „.erf“. Právě tento soubor určí vzhled sestavy, jaká konfigurační data bude používat a jaká konfigurační data bude od uživatele vyžadovat (například období, výběr podle zaměstnance nebo podle oddělení). Soubor je vytvořen v konfigurátoru 1C v programovacím jazyce 1C.

Externí report lze uložit jako součást konfigurace pomocí odkazu "Dodatečné externí reporty" (položka menu "Servis" -> "Dodatečné reporty a zpracování"). Nesouvisí s konkrétním dokumentem nebo referenční knihou, tyto informace nejsou povinné.

Při této možnosti uložení se sestava spouští ze stejného adresáře (dvojitým kliknutím).

Externí zprávu můžete také spustit pomocí položky nabídky "Soubor" -> "Otevřít". Tuto možnost lze použít, pokud je pro vás pohodlnější ukládat externí zprávy nikoli v rámci programu, ale jednoduše do složek počítače.

Další externí ošetření

Externí ošetření mají přibližně stejný význam jako externí zprávy. Ale na rozdíl od sestav, které se používají k prohlížení dat infobáze v uživatelsky přívětivém formátu, je zpracování navrženo tak, aby upravovalo, upravovalo nebo transformovalo data. informační základna... Rozsah úloh, které lze řešit pomocí externího zpracování, je poměrně široký.

například, zpracování pro vyložení výpisů k platbě mzdy... I přes přítomnost standardního zpracování v ZUP (přečtěte si o něm) někdy nemusí být pro konkrétní banku vhodné a je vyvinuto externí zpracování, které převádí a stahuje informace v požadovaném formátu.

dám ještě jeden příklad zcela nenáročné, ale vcelku náročné zpracování. Pokud v průběhu roku nevedete v 1C ZUP doklad „Převod daně z příjmů fyzických osob do rozpočtu“, pak při sestavování 2-DPH na rok bude pole „Vyčísleno“ u každého zaměstnance nulové, což je většinou vlastně nesprávné. Zadání dokladu „Převod daně z příjmu fyzických osob do rozpočtu“ za celý rok může být vzhledem ke zvláštnostem samotného dokladu značně zdlouhavé. Můžete ale provést externí zpracování, které ve vygenerovaném 2-NDFL jednoduše vyplní pole „Vyčísleno“ pro každého zaměstnance na základě hodnot v poli „Vypočteno“. Obvykle se účetním tato možnost opravdu líbí.

Externí zpracování má přesně stejné dvě možnosti pro uložení a spuštění: buď použít odkaz "Další externí ošetření"(položka menu "Nástroje" -> "Dodatečné sestavy a zpracování"), nebo položka hlavního menu "Soubor" -> "Otevřít".

To je pro dnešek vše!

Chcete-li se o nových publikacích dozvědět jako první, přihlaste se k odběru aktualizací mého blogu:

Zvažte vytvoření externí sestavy v 1c 8 bez použití systému skládání dat. Pro vytvoření externí sestavy použijeme konfiguraci Účetnictví 2.0, počáteční údaje: „Sepsat sestavu na účtu 62 účetnictví ve kterém se budou v kontextu zobrazovat obraty za zadané období Protistrany a Dodavatelské smlouvy.

1. Vytvořte zprávu

Nejprve si vytvoříme externí soubor reportu, k tomu přejdeme na 1c 8 v režimu Konfigurátor, přejděte do nabídky Soubor -> Nový nebo klikněte na ikonu nový dokument.

V seznamu vyberte položku Externí zpráva... Po vytvoření externí zprávy ji pojmenujte (např Nejjednodušší zpráva) a uložte jej na disk. Přidáme také dvě rekvizity: Začátek období a Konec období typ datum, budeme je potřebovat k omezení časového intervalu pro vzorkování dat při generování reportu.

2. Vytvoření rozvržení pro externí zprávu

Pro vygenerování sestavy v 1c 8 potřebujete layout, jedná se o šablonu pro zobrazení dat, ve které jsou všechny požadované parametry, kreslí se tabulky atd. Pojďme přidat nové rozvržení, za tímto účelem ve stromu metadat sestavy vyberte položku Rozvržení a stiskněte tlačítko Přidat, při vytváření vybereme typ pro rozvržení Tabulkový dokument.

Náš layout bude mít 4 oblasti:

  • Hlavička - v této oblasti zobrazíme název sestavy, období, za které byla vygenerována a hlavičku tabulky;
  • DataContractor - v této oblasti zobrazíme údaje o protistraně v tabulce;
  • Údaje o kontraktu dodavatele - v této oblasti zobrazíme v tabulce údaje o protistraně;
  • Suterén - v této oblasti zobrazíme součty za celý přehled pro pole Příjmy a Výdaje.

Začněme vytvářet oblasti rozložení. Pro vytvoření oblasti v rozvržení vyberte požadovaný počet řádků a stiskněte Nabídka Tabulka -> Jména -> Přiřadit název(Nebo Ctrl + Shift + N). Do oblasti Víčko napište název zprávy: Obrat 62 účtů, pojďme kreslit nástrojem Hranice záhlaví sestavy a také nastavení parametrů Začátek období a Konec období... Pomocí parametrů můžete zobrazit potřebné údaje v sestavě, tomu se budeme věnovat v další fázi vývoje, a to při psaní programového kódu sestavy. Chcete-li vytvořit parametr v rozvržení, vyberte požadovanou buňku, napište do něj název parametru (bez mezer), klikněte na něj pravým tlačítkem, v nabídce, která se otevře, vyberte položku Vlastnosti... Ve vlastnostech buňky na záložce Rozložení vyberte náplň Parametr.

Poté bude název parametru v buňce uzavřen v lomených závorkách (“<>“). V důsledku toho oblast Víčko by měl vypadat takto:

V oblasti DataContractor pomocí nástroje vytvoříme parametry pro zobrazení názvu protistrany a také pro příjem a výdaj pro 62 účtů Hranice Uspořádejme oblast ve formě řádku tabulky.

V oblasti Smlouva DataContractor vytvoříme parametry pro zobrazení názvu zakázky, dále pro příjmy a výdaje na účtu 62 pomocí nástroje Hranice, oblast uspořádáme formou řádku tabulky. Udělejme malou odrážku před parametrem Dohoda dodavatele(To lze provést rozdělením a sloučením buněk. Kliknutím pravým tlačítkem na buňku -> Zkombinovat nebo Rozbít buňku), je potřeba, aby bylo ve zprávě vidět, že řádek pod smlouvou je v hierarchii níže než řádek pro protistranu.

V oblasti Suterén Vytvořme parametry pro součty příjmů a výdajů.

V důsledku toho bychom měli získat rozložení takto:

3. Vytvoření formuláře zprávy

Pro výstup dat nastavení periody tvorby a tlačítka Tvarovat naše zpráva bude potřebovat formulář. Chcete-li vytvořit formulář, vyhledejte položku ve stromu metadat externí sestavy formuláře a stiskněte tlačítko Přidat... Na první stránce návrháře formulářů nemusíte provádět žádné změny, stačí kliknout na tlačítko Dále.

Na další strana konstruktor, vybereme obě dostupné rekvizity ( Začátek období, Konec období) pro umístění na formuláři.

V důsledku toho dostaneme následující formulář:

Ale v této podobě nám nevyhovuje, uděláme v něm nějaké změny:

  • Přetáhněte tlačítko Tvarovat ze spodního panelu sestavy do horního (to bude pro uživatele pohodlnější);
  • Roztáhněte tvar svisle a vodorovně;
  • Uspořádejte pole Začátek období a Konec období horizontálně;
  • Přidejte do formuláře ovládací prvek Pole tabulkového dokumentu (zobrazí se v něm naše sestava), pojmenujte jej TabDoc;
  • Vytvořme tlačítko pro výběr období (po jeho stisknutí se zobrazí dialog s pohodlnou volbou požadovaného období). Programový kód k němu zatím psát nebudeme, takže tlačítko jednoduše umístíme k políčkům období.

V důsledku toho bude náš formulář vypadat takto:

4. Programování

Po vytvoření formuláře sestavy se pustíme do programování. Pro začátek si vytvoříme postup pro zobrazení dialogu pro výběr období (tlačítko jsme k tomu již vytvořili v předchozím kroku). Klepněte pravým tlačítkem myši na tlačítko a vyberte položku nabídky Vlastnosti, ve vlastnostech tlačítka přejděte na kartu Události, kde pomocí tlačítka s ikonou lupy vytvoříme postup Tlačítko 1 Stiskněte v modulu formuláře.

Mezi formulářem a jeho modulem lze přepínat pomocí záložek ve spodní části formuláře

Pro vyvolání formuláře pro výběr období použijeme standardní postup Účetnictví 2.0 z obecného modulu WorkingWith Dialogs - HandlerSettingPeriodPressing, musíte do něj předat podrobnosti sestavy jako parametry Začátek období a Konec období.

Postup Tlačítko 1 Stiskněte (prvek) WorkingWith Dialogues.HandlerPeriodSettingPressing (PeriodBeginning, PeriodEnd); Konec procedury

Nyní přejdeme k psaní kódu, který vygeneruje a zobrazí naši zprávu. V modulu formuláře již postup existuje ButtonShapePress který se provede po stisknutí tlačítka Tvarovat, tam napíšeme náš kód. Začněme inicializací požadovaných proměnných. Nejprve si vytvořte proměnnou pro pole dokumentu tabulky do kterého budeme data vypisovat, to není nutné, pouze se zkrátí záznam hovorů do něj, což znamená, že programový kód bude pro čtení srozumitelnější.

TabDoc = Form Elements.TabDoc;

Získejte rozložení externí zprávy pomocí funkce Získat rozložení (<ИмяМакета>) , předáme parametru název layoutu a pokud takový layout existuje, tak ho funkce najde.

Rozvržení = Získat rozvržení ("Rozvržení");

Po obdržení layoutu vytvoříme proměnné pro každou z jeho oblastí, k tomu použijeme metodu layoutu GetArea (<ИмяОбласти>) .

AreaHeat = Layout.GetArea ("Záhlaví"); ScopeDataContractor = Layout.GetScope ( "DataContractor"); ScopeDataContract = Layout.GetScope ("ContractData"); AreaFooter = Layout.GetArea ("Zápatí");

Vyčistíme pole dokumentu tabulky. To je nutné, aby se při každém novém vygenerování sestavy smazala stará data.

TabDoc.Clear ();

Nyní, když je inicializace proměnných dokončena, přejděme ke střídavému vyplňování a zobrazování oblastí rozložení. Začněme čepicí. Pokud si vzpomínáte, vytvořili jsme v této oblasti dva parametry. Začátek období a Konec období, přeneseme tam hodnoty období generování sestavy, k tomu použijeme vlastnost Parametry plocha dispozice.

AreaHead.Parameters.PeriodStart = PeriodStart; AreaHead.Parameters.EndPeriod = EndPeriod;

Žádná další akce v oblasti Víčko výrobce není nutný, takže jeho pole zobrazíme v dokumentu tabulky.

TabDok.Display (AreaHap);

Dále zapíšeme dotaz do databáze, kterým odebereme obraty na účtu 62 z účetní evidence Samonosné... Definujme proměnnou, ve které se bude náš požadavek nacházet.

Žádost = nová žádost;

Než začneme psát text požadavku, předáme mu požadované parametry. Vzhledem k tomu, že píšeme žádost o fakturu 62 účetnictví, pak mu nejprve vytvoříme parametr

Request.SetParameter ("Account62", Account Plans. Self-supporting.FindByCode ("62"));

Do požadavku je také nutné přenést období generování reportu. Nezapomeňte, že pro období tvorby máme speciální detaily zprávy a předáváme je jako parametry.

Request.SetParameter ("PeriodBeginning", PeriodBeginning); Request.SetParameter ("EndPeriod", EndPeriod);

Začněme psát text požadavku, uděláme to pomocí konstruktoru dotazu. V mnoha učební pomůcky napište, že je potřeba umět napsat dotaz jak ručně, tak pomocí konstruktoru, ale v praxi to tak není. V úkolech, kterým neustále čelí programátor 1C, je prioritou rychle a efektivně psát kód a při ručním zápisu požadavku do databáze je téměř nemožné toho dosáhnout, strávíte spoustu drahocenného času snahou o správné reprodukovat všechny konstrukty dotazů, najít překlepy, které jste udělali při psaní atd. Proto neztrácejte čas pokusy o ruční psaní dotazů, ale použijte konstruktor dotazu. Ušetří vám to čas a zvláštní úsilí psát složité dotazy. Chcete-li začít psát text požadavku, napište kód:

Request.Text = "";

Poté umístěte kurzor mezi uvozovky, stiskněte pravé tlačítko myši a vyberte položku Konstruktéržádost. Otevře se okno návrháře dotazů.

Nyní musíme vybrat potřebnou tabulku databáze 1C 8. Potřebujeme virtuální tabulku Obratyúčetního registru Samonosné... Najdeme jej na levé straně okna konstruktoru

Přesuňme to do oblasti Tabulky a vyplníme parametry. Pro všechny tabulky virtuálních dotazů existuje speciální sada parametrů, která umožňuje vybrat požadovaná data z hlavní tabulky (v našem případě hlavní tabulky Účetní registr Samonosné). Otevřeme okno parametrů virtuální tabulky.

Vyplníme parametry období, které jsme předali požadavku. Chcete-li použít parametr v textu požadavku, napište symbol před jeho název ampersand (&)

Zbývá vyplnit podmínku pro účet bukh. účetnictví. K tomu najdeme v parametrech virtuální tabulky řádek Stav účtu a napište tam

Účet v HIERARCHII (& Účet62)

Konstruktor můžete také použít pro kreslení podmínek kliknutím na tlačítko se třemi tečkami.

Na virtuální stůl není potřeba klást další podmínky, tak stiskněte tlačítko OK v okně parametrů virtuální tabulky. Dále musíte z tabulky vybrat pole, která potřebujeme Samonosné. Obraty(a to: Protistrana, Dohoda protistrany, Výnosy a Výdaje). Chcete-li zobrazit seznam polí dostupných v tabulce, kterou jsme vybrali, stiskněte symbol „+“ vedle jejího názvu. Poté přetáhněte požadovaná pole do oblasti zcela vpravo v návrháři dotazu, která se nazývá Pole. Pokud otevřeme účtovou osnovu, uvidíme to u účtu 62 analytika pro Protistranou je Subconto1 a podle Smlouva dodavatele - Subconto2.

Proto z polí virtuální tabulky vybíráme Subconto1 a Subconto2... Protože potřebujeme příjem a výdaj podle částky, vybereme také pole ČástkaObratDt a Částka obratuKt

Vyplňte aliasy polí, která jsme vybrali, přejděte na kartu Odbory / Aliasy a nastavte požadované názvy polí.

Protože v naší sestavě budou data zobrazena hierarchicky (Protistrana je na první úrovni a všechny jeho smlouvy jsou na druhé), nastavíme výstup dat v hierarchii pomocí součtů. Pojďme k záložce v konstruktoru Výsledky... V polích seskupení táhněte postupně Protistrana a Dohoda dodavatele a ve finále Příchod a Spotřeba.

Tím je práce v konstruktoru dotazu dokončena, stiskněte tlačítko OK a vidíme, že text našeho požadavku se objevil v kódu programu.

Request.Text = "VYBRAT | Samonosné obraty.Subkonto1 JAKO Protistrana, | SamonosnýTurnover.Subkonto2 AS Smlouva dodavatele, | SamonosnýTurnover.AmountTurnoverDt AS Potvrzení, | SamonosnéTurnover.AmountTurnoverKt AS Spotřeba| OD | Účetní kniha Samonosná. Obraty (& Začátek období, & Konec období, Účet V HIERARCHII (& Účet62),) JAKO Samonosný obrat| VÝSLEDKY | SUM (Příjezd), | ČÁSTKA (Spotřeba) | Software | protistrana, | Dohoda dodavatele";

Poté, co dokončíme psaní žádosti, začněme vyplňovat oblasti DataContractor, DataAgreementContractor a Suterén... Všechny tyto oblasti vyplníme údaji získanými při realizaci požadavku. Protože náš dotaz obsahuje seskupení ( Protistrana a Dohoda dodavatele) vyberte z něj data následovně:

SelectContractor = Query.Run (). Select (QueryResultIndo.OnGroups);

Obdržíme tedy záznamy se součty za všechny protistrany.

Před procházením vzorových dat pomocí smyčky inicializujeme proměnné určené k výpočtu celkových součtů pro sestavu:

Celkový příjem = 0; Celková spotřeba = 0;

Aby byla data sestavy zobrazena s hierarchií (a rozložena podél „+“), nastavíme začátek automatického seskupování řádků dokumentu tabulky:

TabDoc.StartAutoGroupLines ();

Všechny přípravy jsou u konce, nyní začneme procházet výsledky dotazu. Průjezd provedeme pomocí smyčky Až do

WhileSelectionContractor.Next () Cyklus EndCycle;

Na začátku cyklu nastavte parametry na nulu Příchod a Spotřeba oblasti DataContractor... K čemu to je? Představte si situaci, která pro protistranu Strýček Vasja, příjem 10 a náklad 5 a za to další protistrana Strýček Péťa v tomto případě nedojde k příjmu ani výdaji, pokud parametry nenastavíme Příchod a Spotřeba, poté v řadě podle protistrany Strýček Péťa dostane příjem 5 a výdaj 10.

ScopeDataContractor.Parameters.Prihod = 0; ScopeDataContractor.Parameters.Expense = 0;

Poté oblast vyplníme DataContractor ukázková data položky

FillPropertyValues ​​​​(ScopeDataContractor.Parameters, SelectionContractor);

Po vyplnění dat můžete zobrazit oblast v Tabulkový dokument Vzhledem k tomu, že používáme automatické seskupování linek, musíme v seskupení uvést úroveň linky (v naší zprávě budou dvě úrovně, pro dodavatele je první pro smlouvy druhá).

TabDok.Withdraw (ScopeDataContractor, 1);

Nyní pro tuto protistranu provedeme výběr podle jeho smluv.

SelectionContractorAgreement = SelectionContractor.Choose (BypassResultResult.On Groupings);

Průjezd provedeme pomocí smyčky Až do.

Zatímco SelectionContractor Agreement.Next () Cyklus Konec cyklu;

V cyklu pod smlouvami protistran provedeme reset parametrů Příchod a Spotřeba, vyplňte oblast Smlouva o datech z výběru a zobrazit jej v tabulkovém dokumentu na druhé úrovni záznamů.

ScopeDataContract.Parameters.Prihod = 0; ScopeDataAgreement.Parameters.Expense = 0; Vyplňte hodnoty vlastností ​​(ScopeDataContract.Parameters, SelectionContractorAgreement); TabDok.Withdraw (ScopeDataContract, 2);

V tomto cyklu také přidáváme aktuální hodnoty k proměnným pro výpočet celkových hodnot příjmů a výdajů.

Celkový příjem = celkový příjem + smlouva SelectionContractor.Příjem; TotalExpense = TotalExpense + SampleContractor Agreement.Expense;

Tím je výstup dat v oblasti dokončen DataContractor, DataAgreementContractor dokončeno, zbývá dokončit automatické seskupování řádků dokumentu tabulky.

TabDoc.FinishAutoGroupLines ();

Plně smyčky zodpovědné za výstup dat v oblasti DataContractor a DataAgreementContractor vypadat takto:

TabDoc.StartAutoGroupLines (); While SampleContractor.Next () Cyklus RegionDataContractor.Parameters.Prihod = 0; ScopeDataContractor.Parameters.Expense = 0; FillPropertyValues ​​​​(ScopeDataContractor.Parameters, SelectionContractor); TabDok.Withdraw (ScopeDataContractor, 1); SelectionContractorAgreement = SelectionContractor.Choose (BypassResultResult.On Groupings); Zatímco SelectionDogovKontragenta.Sleduyuschiy () Cycle ScopeDataDogov.Parametry.Prihod = 0; ScopeDataAgreement.Parameters.Expense = 0; Vyplňte hodnoty vlastností ​​(ScopeDataContract.Parameters, SelectionContractorAgreement); TabDok.Withdraw (ScopeDataContract, 2); Celkový příjem = celkový příjem + smlouva SelectionContractor.Příjem; TotalExpense = TotalExpense + SampleContractor Agreement.Expense; Konec cyklu; Konec cyklu; TabDoc.FinishAutoGroupLines ();

Zbývá vypsat součty do oblasti Suterén a zobrazí samotnou oblast Tabulkový dokument.

AreaBoard.Parameters.TotalIncoming = TotalIncoming; AreaBoard.Parameters.TotalExpense = TotalExpense; TabDok.Display (Area Basement);

Tím je dokončen proces psaní externí zprávy pro 1C 8 bez použití ACS. Nyní jej lze vygenerovat v režimu 1C: Enterprise 8 a přidat do adresáře Externí zpracování Soubor zprávy zvažovaný v článku si můžete stáhnout od.

Podívejte se na video o vytvoření externího tisku pro spravovanou aplikaci:

Pro připojení externích zpracování, zpráv a tištěných formulářů pro platformu 1C: Enterprise byla vyvinuta platforma 8.2 nový standard pracovat ve spravované aplikaci (standardně ze subsystému standardní knihovny 8.2). Existovaly „čipy“, které tam dříve nebyly, konkrétně:

    Byl rozšířen typ zpracování: vyplnění objektu, vytvoření souvisejících objektů. Nyní do dokumentů můžete přidat vlastní tlačítka pro vyplnění celého dokumentu a také vlastní tlačítka pro zadávání na základě.

    Jedno zpracování může obsahovat seznam více operací (příkazů) najednou, tzn. můžete udělat jedno zpracování, kde bude více položek menu najednou: tisk a přepravní list, tisk účtenky, tisk záručního listu. (Pozn. autora: dříve ve starém standardu, abyste mohli dělat takové věci, museli jste udělat vše najednou (i když jste to nemuseli) a nemuseli jste zavírat nebo kreslit vlastní formulář na kde byla nezbytná tlačítka pro výběr požadované operace)

    Můžete zadat a vyplnit objekty založené na několika objektech najednou, nikoli na jednom

    Můžete naplánovat provádění příkazů serveru (na serveru).

    Můžete nastavit režim "Bezpečný" nebo "Nezabezpečený", tzn. zahájit zpracování s ohledem na omezení práv nebo je ignorovat (jako u plných práv)

    Můžete nastavit režim použití: Nepoužívat, ladit, používat. "Nepoužívat" - nepoužívá se, "Ladit" - viditelné pouze pro administrátory, "Použít v práci".

    Můžete zahrnout použití ve formulářích objektů a ve formě seznamu

    Zpracování nebo sestavu můžete propojit se všemi objekty najednou.

    Lze přizpůsobit rychlý přístup na konkrétní příkazy pro externí zpracování.

    Je možné určit, ve kterých částech rozhraní se má objevit další zpracování a reporty.

Co tedy lze zapojit do standardních konfigurací?

Z hlediska platformy můžete připojit:

  • externí zpracování (soubory s příponou „epf“);
  • externí zprávy (soubory s příponou „erf“).

Z hlediska aplikační oblasti (konfigurace) můžete externí zpracování a reporty propojit s pohledem *:

  • Dodatečné zpracování
    • Jen dodatečné zpracování. Je možné přizpůsobit
  • Dodatečná zpráva
    • Jen dodatečná zpráva
  • Naplnění objektu
    • Vlastní tlačítka pro vyplnění objektů (dokumentu), dříve zde byla pouze tlačítka pro vyplnění tabulkové části.
  • Tisknutelný formulář
    • Další možnost tisku (je přidáno tlačítko "Další možnost tisku")
  • Zpráva
    • Zpráva připojená k objektům (k adresářům a dokumentům).
  • Vytváření propojených objektů
    • Vaše zadání na základě (tlačítko "Vytvořit související objekty ..." je přidáno do položky nabídky "Zadání na základě")

* na příkladu redakce „Vedení malé firmy, ed. 1,2"

Pojďme se podívat, jak to celé funguje. Pro připojení externích procesorů a reportů existuje standard, který popisuje rozhraní pro interakci s externím zpracováním a reportem a pro všechny typy jsou obecné požadavky a pro každý typ zpracování nebo reportu jsou specifické.

Začněme obecnými požadavky na všechny typy zpracování a výkaznictví. Aby bylo možné vytvořit připojitelné externí zpracování nebo zprávu, je nutné v modulu objektu deklarovat funkci exportu ExternalProcessing Information (), která by měla vyplnit strukturu popisující chování. Příklad této funkce:

Externí informace o zpracování () Funkce Export
RegistrationData = Nová struktura;
RegistrationData. Vložte ("Jméno", "Příklad použití externího zpracování 8.2.");
RegistrationData.Insert ("SafeMode", True);
RegistrationData. Vložit ("Verze", "1.0");

// Další zpracování
// Další zpráva
// FillingObject
//Zpráva
// Tisk formuláře
// Vytvořit LinkedObjects
RegistrationData.Insert ("Zobrazit", "Další zpracování");

RegistrationData.Insert ("Informace", "Zpracování probíhá podle nového standardu pro připojení externích procesorů 8.2. Příklad zpracování" "Ahoj Word" "");

///////////// příkazy /////////////////////////
tzCommand = Nová tabulka hodnot;
tzComand.Columns.Add ("Identifikátor");
tzComand.Columns.Add ("Zobrazit");
tzComand.Columns.Add ("modifikátor");
tzKomand.Kolonki.Add ("ShowNotification");
tzComand.Columns.Add ("Použití");


CommandString.Identifier = "1";
lineCommand.View = "příkaz" "Ahoj Word" "(Otevření formuláře)";

CommandString.Usage = "Otevření formuláře";

CommandString = tzCommand.Add ();
CommandString.Identifier = "2";
CommandString.View = "příkaz" "Ahoj Word" "(CallClientMethod)";
CommandString.ShowNotification = True;
CommandString.Usage = "CallClientMethod";

CommandString = tzCommand.Add ();
CommandString.Identifier = "3";
CommandString.View = "příkaz" "Ahoj Word" "(CallServerMethod)";
CommandString.ShowNotification = True;
CommandString.Usage = "CallServerMethod";

RegistrationData.Insert ("Příkazy", tzKomand);

////////////// účel (v jakých objektech se používá) /////////////////////////
// pro tisk formulářů, vyplňování, zadávání propojených objektů
// Pole přiřazení = Nové pole;
//AssignmentArray.Add("Document.* "); // všechny dokumenty jsou přiřazeny
//AssignmentArray.Add("Document.AvailableReport ");
//ArrayAssignments.Add("Document.OrderBuyer");
//RegistrationData.Insert ("Assignment", AssignmentArray);

Vrácení registračních údajů;

EndFunction

Takže, jak vidíte, funkce vyplní strukturu RegistrationData, která má následující prvky (parametry):

    Název – krátký název léčby

    Verze - informace o verzi zpracování

    Nouzový režim- odpovídá za to, zda má být zpracování prováděno s přihlédnutím k právům uživatele. Pokud nastavíte hodnotu na "False", pak zpracování nebo hlášení bude provedeno bez ohledu na omezení práv (jako u plných práv). Tato funkce se objevila v 8.2, kde se při vytváření externích procesů a reportů jako druhý parametr zadává režim.

    Pohled – typ zpracování nebo sestavy. Možné hodnoty jsem uvedl na začátku článku a možné hodnoty pro nastavení v kódu jsou uvedeny v komentáři

  • Příkazy - Tabulka hodnot, která uvádí použité příkazy. Sloupce tabulky hodnot:
    • Identifikátor - libovolný řetězec (identifikátor příkazu)
    • Zobrazit - popis příkazu
    • Modifikátor - řetězec (používá se pro další tisknutelné formuláře)
    • ShowNotification - před a po provedení se zobrazí okno s upozorněním (pro klientské a serverové příkazy bez formuláře)
    • Použití - režim spuštění zpracování:
      • Otevření formuláře - otevře se formulář pro zpracování
      • Volání ClientMethod - formulář metody exportu klienta volání
      • Volání ServerMethod - volání metody exportu z modulu zpracování

V závislosti na typu zpracování nebo sestavy a také na režimu spouštění příkazu "Použít" jsou volány metody definované v modulu formuláře, modulu objektu. Liší se také seznam předávaných parametrů. Příklady volání a použití všech typů zpracování jsou připojeny.