Přidání externího zpracování do databáze. Přidání externího zpracování do databáze Externí reporty v 1c

Poměrně často, když během konzultace vyvstane potřeba vyřešit nějaký složitý 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 lidé prostě nejsou obeznámeni s touto možností programů na platformě 1C Enterprise 8. Někdy mi i nadávají v domnění, že vývoj a implementace takového zpracování v rámci jejich konfigurace povede k tzv. neschopnost automaticky aktualizovat program. Že za aktualizaci programu budete muset zaplatit spoustu peněz.

Abych tyto otázky objasnil a také o tom, jaké užitečné příležitosti poskytují externí zpracování a externí tiskové formy, 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 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í připojitelné objekty:

  • Dodatečné externí zpracování tabulkových dílů;
  • Doplňkové externí tiskové formy;
  • Další externí zprávy;
  • Dodatečné externí zpracování.

Co jsou další externí zpracování, sestavy a tištěné formuláře?




Pro začátek bych chtěl mluvit obecně o co jsou to externí zpracování, zprávy a tištěné formuláře?. Poměrně často při práci se standardní konfigurací, ať už je to 1C ZUP nebo 1C Enterprise Accounting nebo nějaká jiná konfigurace, je potřeba nějaká funkce, kterou 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řebu organizace. Nebo je určitým způsobem vyžadováno zpracovat (změnit, upravit) data dostupná v databázi. Například změna určitých detailů v dokumentech za požadované období, což je nepohodlné provádět ručně při velkém objemu informací.

V tomto případě jsou dvě možnosti. První, můžeme upravit samotnou konfiguraci, samotný program. Poté přestane být typický a nebude možné jej aktualizovat pomocí poměrně jednoduchých metod, o kterých jsem psal. Aktualizace nestandardní konfigurace je delší a serióznější proces, takže s tímto přístupem budete pravděpodobně 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 standardní konfigurace. Existuje nezávisle na konfiguraci samotné. K jejich uložení slouží speciální adresáře: položka hlavního menu „Servis“ -> „Dodatečné výkazy a zpracování“.

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

Seminář „Lifehacks pro 1C ZUP 3.1“
Analýza 15 životních hacků pro účetnictví v 1C ZUP 3.1:

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

Výpočet mezd v 1C ZUP 3.1
Pokyny krok za krokem pro začátečníky:

Nyní se podíváme jednotlivě na to, jaké schopnosti nám každý ze čtyř dostupných externích modulů poskytne. Začněme s externí zpracování tabulkových dílů. Zdá se mi, že toto zpracování tabulkových částí dokumentů nejúplněji ilustruje, jak lze docela vážně upravit program, aniž byste museli upravovat standardní konfiguraci, ale vystačíte si pouze s externím zpracováním.

Aby to bylo jasnější, uvedu konkrétní příklad ze své praxe, na kterém jsem řešil problém, který jsem použil externí zpracování tabulkových dílů. V konfiguraci "1C Správa mezd a personálu" vydání 2.5 je dokument "Platba za svátky a víkendy"(O tomto dokumentu se podrobně psalo). Tento dokument ve své standardní podobě poskytuje zaměstnancům možnost automaticky vyplnit tabulkovou část „Práce o svátcích“.

Účetní požádala o implementaci možnosti vyplňování tohoto dokladu zaměstnanci, jejichž pracovní dny měly připadat na víkendy, tzn. "Práce o víkendu".

Tento soubor byl nahrán do adresáře "Externí zpracování tabulkových částí"(položka menu „Servis“ -> „Dodatečné výkazy a zpracování“ -> „Dodatečné externí zpracování tabulkových částí“). Při vytváření prvku tohoto adresáře bylo uvedeno, ke kterému dokumentu se stažené zpracování vztahuje - „Platba za svátky a víkendy organizace“, a také ke které tabulkové části - „Zaměstnanci“. V našem příkladu má dokument jednu tabulkovou část, ale v jiných dokumentech jich může být více, proto je potřeba konkrétně uvést, které z nich se zpracování týká.

V důsledku přidání tohoto zpracování do adresáře „Další externí zpracování pro vyplňování tabulkových částí“ v samotném dokladu „Platba za svátky a víkendové části“ se objeví tlačítko „Vyplnit“ s rozbalovacím seznamem, ve kterém bude možné toto zpracování spustit. V našem případě je v rozevíracím seznamu k dispozici tlačítko „Vyplňování nedělí“. Jeho stisknutím se spustí algoritmus obsažený ve zpracování. V tomto příkladu bude tabulková část vyplněna zaměstnanci, jejichž pracovní dny připadly na den pracovního volna. Upozorňujeme, že toto tlačítko dříve neexistovalo (snímek obrazovky výše).

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

Volitelné externí tiskové desky

Seminář „Lifehacks pro 1C ZUP 3.1“
Analýza 15 životních hacků pro účetnictví v 1C ZUP 3.1:

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

Výpočet mezd 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 referenčních knih mají tištěné formy. Jsou zpravidla umístěny v pravém dolním rohu formuláře prvku adresáře 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 součástí formuláře adresáře „Zaměstnanci“.

K těmto tištěným formulářům adresáře můžete přidat vlastní. Za tímto účelem je vytvořen externí tištěný formulář s příponou „.epf“. Poté se pro něj vytvoří prvek adresáře "Další externí tiskové desky"(položka menu „Nástroje“ -> „Další reporty a zpracování“) a do tohoto adresářového prvku je přidán soubor s příponou „.epf“. Dále je nutné uvést, pro který dokument nebo referenční knihu se zpracování přidává.

V důsledku toho se jako součást tištěných formulářů prvků adresáře „Zaměstnanci“ objeví další formulář - „Dohoda o zaměstnání (Alpha LLC)“, který dříve neexistoval. A jeho vzhled a naplnění dat určuje programátor v souboru „.epf“.

Tato schopnost přidat potřebné tištěné formuláře pro dokumenty a referenční knihy je také velmi často žádaná a je podle mého názoru poměrně pohodlnou funkcí programů na platformě 1C Enterprise.

Další externí zprávy

V tomto případě se můžete rozvíjet externí zpráva. Toto je soubor ve formátu „.erf“. Právě tento soubor určí vzhled sestavy, jaké konfigurační údaje bude používat a které 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í zprávu lze uložit jako součást konfigurace pomocí referenční knihy „Další externí zprávy“ (položka nabídky „Nástroje“ -> „Dodatečné zprávy a zpracování“). Nesouvisejí 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 jako součást 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 měnilo, upravovalo nebo transformovalo data databáze. Rozsah problémů řešených pomocí externího zpracování je poměrně široký.

Například, zpracování pro nahrání mzdových výkazů. 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.

Přinesu vám ještě jeden příkladúplně jednoduchá, ale docela oblíbená léčba. Pokud v 1C ZUP nevedete v průběhu roku doklad „Převod daně z příjmu fyzických osob do rozpočtu“, pak při generování daně z příjmu 2 osob za rok bude pole „Převedeno“ u každého zaměstnance nulové, což je obvykle fakticky nesprávné. Zadávání dokumentu „Převod daně z příjmu fyzických osob do rozpočtu“ za celý rok může být vzhledem ke specifikům samotného dokumentu poměrně únavné. Můžete však provést externí zpracování, které ve vygenerovaném 2-NDFL jednoduše vyplní pole „Listed“ pro každého zaměstnance na základě hodnot v poli „Vypočítané“. Tato možnost se účetním většinou velmi líbí.

Externí zpracování má přesně stejné dvě možnosti ukládání a spuštění: buď použít adresář "Další externí zpracování"(položka nabídky „Nástroje“ -> „Dodatečné zprávy a zpracování“) nebo položka hlavní nabídky „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:

Pro připojení externího zpracování, sestav a tištěných formulářů pro platformu 1C:Enterprise 8.2 byl vyvinut nový standard pro práci ve spravované aplikaci (standard ze standardního knihovního subsystému 8.2). Objevily se „č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ákladně.

    Jedno zpracování může obsahovat seznam více operací (příkazů), tzn. můžete udělat jedno zpracování, kde bude více položek menu najednou: tisk a dodací list, tisk prodejního dokladu, 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ž to nebylo nutné) a nemuseli jste zavírat nebo kreslit vlastní formulář, který měl potřebná tlačítka pro výběr požadovaná operace)

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

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

    Režim můžete nastavit na „Bezpečný“ nebo „Nebezpečný“, tzn. provozovat zpracování s ohledem na omezená práva nebo je ignorovat (stejně jako u plných práv)

    Můžete nastavit režim použití: Nepoužívat, ladit, používat. „Nepoužívat“ – není v provozu, „Ladění“ – viditelné pouze pro administrátory, „Použít v provozu“.

    Lze použít v objektových formulářích a ve formulářích seznamů

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

    Můžete nakonfigurovat rychlý přístup k určitým příkazům externího zpracování.

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

Co tedy lze připojit ke standardním konfiguracím?

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 formulářem*:

  • Dodatečné zpracování
    • Jen nějaké zpracování navíc. Je možné přizpůsobit
  • Dodatečná zpráva
    • Jen dodatečná zpráva
  • Vyplnění objektu
    • Vlastní tlačítka pro vyplňování objektů (dokumentů), dříve zde byla pouze tlačítka pro vyplňování tabulkové části.
  • Tisknutelný formulář
    • Dodatečný tiskopisný formulář (je přidáno tlačítko „Další tisknutelné formuláře“)
  • Zpráva
    • Zpráva připojená k objektům (adresáře a dokumenty).
  • Vytváření propojených objektů
    • Vaše vlastní 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 vyd. 1,2"

Pojďme se podívat, jak to celé funguje. Pro propojení externího zpracování a reportingu existuje standard, který popisuje rozhraní pro interakci s externím zpracováním a reportováním 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 vykazování. Chcete-li vytvořit externí zpracování nebo sestavu modulu plug-in, musíte v modulu objektu deklarovat funkci exportu InformationOnExternalProcessing(), která musí vyplnit strukturu popisující chování. Příklad této funkce:

Funkce InformationOnExternalProcessing() Export
RegistrationData = Nová struktura;
Registrační data.Insert("Jméno", "Příklad použití externího zpracování 8.2.");
RegistrationData.Insert("SafeMode", True);
RegistrationData.Insert("Verze", "1.0");

//Další zpracování
//Dodatečná zpráva
//Vyplnění objektu
//Zpráva
//PrintForm
//Vytváření souvisejících objektů
RegistrationData.Insert("Zobrazit", "Další zpracování");

Registrace Data.Insert("Informace", "Zpracování provedeno podle nového standardu pro připojení externího zpracování 8.2. Příklad zpracování ""Ahoj Word"" ");

///////////// příkazy /////////////////////////
tzCommand = Nová tabulka hodnot;
tzCommand.Columns.Add("Identifikátor");
tzCommand.Columns.Add("Zobrazit");
tzCommand.Columns.Add("Modifier");
tzCommand.Columns.Add("Zobrazit upozornění");
tzCommand.Columns.Add("Použití");


stringCommands.Identifier = "1";
stringCommands.View = "příkaz ""Ahoj Word"" (OtevřítFormulář)";

stringCommands.Use = "OtevřítFormulář";

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

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "příkaz""Ahoj Word""(CallServerMethod)";
stringCommands.ShowAlert = True;
stringCommand.Use = "CallServerMethod";

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

////////////// účel (v jakých objektech se používá) /////////////////////////
//pro tisk formulářů, vyplňování, zadávání souvisejících objektů
//ArrayAssignments = Nové pole;
//Array of Assignments.Add("Document.*"); // všechny dokumenty jsou přiřazeny
//Array of Assignments.Add("Document.Advance Report");
//Array of Assignments.Add("Document.Buyer's Order");
//Data registrace.Insert("Cíl", Pole cíle);

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

EndFunction

Jak tedy vidíte, funkce vyplňuje strukturu Registračních dat, která má následující prvky (parametry):

    Název – krátký název ošetření

    Verze - informace o verzi zpracování

    Nouzový režim – odpovídá za to, zda má být zpracování prováděno s ohledem na uživatelská práva. Pokud je nastaveno na False, zpracování nebo hlášení budou prováděny bez zohlednění omezení práv (stejně jako u plných práv). Tato funkce se objevila právě v 8.2, kde při vytváření externího zpracování a sestav druhý parametr určuje režim.

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

  • 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ší tištěné formuláře)
    • Zobrazit upozornění – okno s upozorněním se zobrazí před zahájením a po ukončení provádění (u příkazů klienta a serveru bez formuláře)
    • Použití – režim spuštění zpracování:
      • OpenForm – otevře se formulář pro zpracování
      • CallClientMethod – volání metody klientského exportu formuláře
      • Call ServerMethod – Volání metody exportu z modulu zpracování

V závislosti na typu zpracování nebo sestavy a také na režimu spuštění příkazu „Použít“ jsou volány metody definované v modulu formuláře nebo objektu. Liší se také seznam předávaných parametrů. Přikládám ukázky volání a použití všech typů zpracování.

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

Zobrazí se formulář seznamu adresářů pro externí zpracování. V horním menu stiskněte tlačítko Přidat.

Zobrazí se formulář Přidat nový objekt. Klikněte na tlačítko Otevřít a vyberte soubor s požadovaným zpracováním. Po výběru požadovaného souboru zadejte v případě potřeby název zpracování (pole Název). Poté musíte kliknout na OK pro uložení provedených změn.

Poté se okno pro vytvoření položky adresáře zavře a vrátíte se zpět do formuláře seznamu, který již obsahuje 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, přejděte po staré cestě: Servis->Další reporty a zpracování->Další externí ošetření.

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

Externí zpracování pro 1C:Enterprise 8 je k dispozici v několika typech. V tomto návodu vám ukážu, jak připojit zpracování pro skupinovou úpravu a zpracování pro vyplnění konkrétních objektů.

Pro první případ přidáme zpracování pro vyplnění nomenklaturního adresáře z Excelu.

Pojďme do příslušné části programu:


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

V seznamu klikněte Vytvořit:


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


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


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


Zapište a zavřete kartu externího objektu:


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


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


Vyberte si 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ů. Vezměme si například externí zpracování, které připojuje skeny k vybraným prvkům adresářů nebo systémových dokumentů. Začátek přidávání takového zpracování se neliší od předchozí možnosti. Rozdíl je v tom, že v tomto případě je umístění vyplněno 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 je třeba zapsat také kartu externího předmětu.

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

Zvažme 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, výchozí údaje: „Napište sestavu na účetní účet 62, ve které se v kontextu zobrazí obrat za zadané období. Protistrany A Smlouvy protistran.

1. Vytvořte zprávu

Nejprve si vytvořte externí soubor sestavy, k tomu přejdeme na 1s 8 v režimu Konfigurátor, pojďme do menu Soubor -> Nový nebo klikněte na ikonu nový dokument.

Vyberte položku ze seznamu 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é dva detaily: 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řte externí rozvržení sestavy

Chcete-li vygenerovat zprávu v 1C 8, potřebujete rozvržení, jedná se o šablonu pro zobrazení dat, ve které jsou nastaveny všechny potřebné parametry, jsou nakresleny tabulky atd. Pojďme přidat nové rozvržení; za tím účelem vyberte položku ve stromu metadat sestavy Rozvržení a stiskněte tlačítko Přidat, při vytváření vyberte typ 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;
  • Údaje o protistraně - v této oblasti zobrazíme údaje o protistraně v tabulce;
  • DataSmlouva protistrany - v této oblasti zobrazíme údaje o smlouvě protistrany v tabulce;
  • Zápatí - v této oblasti zobrazíme celkové hodnoty za celý přehled pro pole Příjmy a Výdaje.

Začněme vytvářet oblasti rozložení. Chcete-li vytvořit oblast v rozvržení, vyberte požadovaný počet řádků a klikněte Tabulka nabídky -> Jména -> Přiřadit jméno(Nebo Ctrl + Shift + N). Do regionu Čepice Napišme název zprávy: Obrat 62 se počítá, nakreslete pomocí nástroje Hranice záhlaví sestavy a také nastavte parametry Začátek období A Konec období. Pomocí parametrů můžete v reportu zobrazit potřebné údaje, tomu se budeme věnovat v další fázi vývoje, a to při psaní kódu reportu. Chcete-li vytvořit parametr v rozložení, vyberte požadovanou buňku, napište do ní název parametru (bez mezer), klikněte na něj pravým tlačítkem myši a vyberte položku v nabídce, která se otevře Vlastnosti. Ve vlastnostech buňky na kartě Rozložení vyberte výplň Parametr.

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

V oblasti DataCounterparty vytvoříme pomocí nástroje parametry pro zobrazení názvu protistrany a také pro příjmy a výdaje pro účet 62 Hranice Navrhneme oblast jako řádek tabulky.

V oblasti DataCounterparty Agreement Vytvořme parametry pro zobrazení názvu smlouvy a také pro příjmy a výdaje na účet 62, pomocí nástroje Hranice navrhneme oblast jako řádek tabulky. Udělejme před parametrem malou odrážku Smlouva o protistraně(to lze provést rozdělením a sloučením buněk. Klepněte pravým tlačítkem myši na buňku -> Spojit nebo Rozdělit buňku), je potřeba, aby zpráva viděla, že řádek pro smlouvu 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í jako toto:

3. Vytvořte formulář zprávy

Chcete-li zobrazit data, nastavte periodu tvorby a tlačítko Formulář naše zpráva bude vyžadovat 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ší stránce návrháře vyberte oba dostupné podrobnosti ( Začátek období, Konec období) pro umístění na formuláři.

V důsledku toho získáme tento formulář:

Ale nejsme s ním v této podobě spokojeni, udělejme v něm několik změn:

  • Přetáhneme tlačítko Formulář ze spodního panelu sestavy nahoru (pro uživatele to bude pohodlnější);
  • Roztáhněte tvar svisle a vodorovně;
  • Uspořádáme pole Začátek období A Konec období horizontálně;
  • Do formuláře přidáme ovládací prvek Pole dokumentu tabulky (zobrazí se v něm naše sestava), pojmenujeme jej TabDoc;
  • Vytvořme tlačítko pro výběr období (po kliknutí se objeví dialog s pohodlnou volbou požadovaného období). Zatím pro něj nebudeme psát programový kód, takže jen umístíme tlačítko vedle polí 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í. Nejprve si vytvoříme postup pro zobrazení dialogu pro výběr období (tlačítko jsme pro to vytvořili již v předchozí fázi). 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 ze společného modulu Práce s dialogy - HandlerPeriodSettingPress, musíte mu předat podrobnosti sestavy jako parametry Začátek období A Konec období.

Postup Button1Press (prvek) Práce s Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Konec procedury

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

TabDoc = FormElements.TabDoc;

Pomocí funkce získáme rozložení externí sestavy GetLayout(<ИмяМакета>) , předáme název rozvržení jako parametr, a pokud takové rozvržení existuje, funkce jej najde.

Layout = GetLayout("Layout" );

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

AreaHeader = Layout.GetArea("Header" ); AreaDataAccount = Layout.GetArea( "Údaje dodavatele"); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Footer" );

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

TabDoc.Clear();

Nyní, když je inicializace proměnných dokončena, přejděme k vyplnění a zobrazení oblastí rozvržení jednu po druhé. Začněme hlavičkou. Pokud si vzpomínáte, vytvořili jsme v této oblasti dva parametry Začátek období A Konec období, předáme tam hodnoty období generování sestavy, k tomu použijeme vlastnost Možnosti rozložení ploch.

AreaHeader.Parameters.PeriodStart = PeriodStart; AreaHeader.Parameters.EndPeriod = EndPeriod;

Žádné další akce s oblastí Čepice Výrobce není potřeba, takže jeho pole zobrazíme v tabulkovém dokumentu.

TabDoc.Output(AreaHead);

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

Žádost = nová žádost;

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

Request.SetParameter("Účet62", Účtové osnovy. Samonosné. Najít podle kódu("62" ));

Do požadavku je také nutné předat období generování reportu. Nezapomeňte, že pro období generování máme speciální podrobnosti sestavy a předáváme je jako parametry.

Request.SetParameter("Začátek období", Začátek období); Request.SetParameter("Konec období", Konec období);

Začněme psát text dotazu, uděláme to pomocí návrháře dotazů. V mnoha tutoriálech píšou, že je potřeba umět napsat dotaz jak ručně, tak pomocí konstruktoru, ale v praxi to tak není. V úkolech, kterým programátor 1C neustále čelí, je prioritou rychle a efektivně psát kód a při ručním zápisu dotazu do databáze je toho téměř nemožné dosáhnout; strávíte spoustu drahocenného času správnou reprodukcí všech struktur dotazů. a hledání překlepů, které jste dělali při psaní atd. Proto neztrácejte čas ručním psaním dotazů, ale použijte konstruktor dotazů. Ušetří váš čas a umožní vám psát složité dotazy bez velkého úsilí. Chcete-li začít psát text požadavku, napište kód:

Request.Text = "" ;

Poté umístěte kurzor mezi uvozovky, klikněte pravým tlačítkem a vyberte Konstruktéržádost. Otevře se okno návrháře dotazů.

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

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

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

Zbývá vyplnit podmínku pro účetní účet. účetnictví. Chcete-li to provést, vyhledejte řádek v parametrech virtuální tabulky Stav účtu a napíšeme tam

Účet V HIERARCHII (&Účet62)

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

Na virtuální stůl není třeba klást žádné další podmínky, takže klikneme na tlačítko OK v okně parametrů virtuální tabulky. Dále musíme z tabulky vybrat pole, která potřebujeme Samonosné. Obrat(a to: Protistrana, Dohoda protistrany, Výnosy a Výdaje). Chcete-li zobrazit seznam polí dostupných v tabulce, kterou jsme vybrali, klikněte na 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 účtový rozvrh, uvidíme to u účtu 62 analytika zapnutá Pro protistranu je to Subconto1 a podle Smlouva o protistraně - Subconto2.

Proto z polí virtuální tabulky vybereme Subconto1 A Subconto2. Protože potřebujeme příjmy a výdaje 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 její smlouvy jsou na druhé), nakonfigurujeme zobrazení dat v hierarchii pomocí součtů. Pojďme na kartu v návrháři Výsledek. Přetáhněte do polí seskupení postupně Protistrana A Smlouva o protistraně a ve finále Příchod A Spotřeba.

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

Query.Text = "VYBRAT | Self-supportingTurnover.Subconto1 AS Counterparty, | Self-supportingTurnover.Subconto2 AS Dohoda protistrany, | SamonosnýTurnover.AmountTurnoverDt AS Potvrzení, | SamonosnýTurnover.AmountTurnoverKt AS Expense|OD | Účetní evidence Samoúčetnictví Obraty (&Začátek období, &Konec období, Účet V HIERARCHII (&Účet 62),) AS SamoúčetnictvíObrat| VÝSLEDKY | AMOUNT(Příjmy), | ČÁSTKA(výdaj) |PO | protistrana, | Dohoda protistrany";

Poté, co dokončíme sepsání žádosti, začněme vyplňovat oblasti DataCounterparty, DataAgreement Counterparty A Suterén. Všechny tyto oblasti vyplníme údaji přijatými při realizaci požadavku. Protože náš dotaz obsahuje seskupení ( Protistrana A Smlouva o protistraně) vyberte z něj data takto:

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

Tímto způsobem obdržíme 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é pro výpočet celkových výsledků pro sestavu:

TotalIncoming = 0; Celková spotřeba = 0;

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

TabDoc.StartAutoGroupingRows();

Všechny přípravy jsou dokončeny, nyní začneme procházet výsledky dotazu. Průjezd provedeme pomocí smyčky sbohem

While Select Account.Next() Cycle EndCycle ;

Na začátku cyklu resetujte parametry Příchod A Spotřeba kraj DataCounterparty. K čemu to je? Představme si situaci, kdy protistrana Strýček Vasya, příjem je 10 a náklad 5 a pro další protistranu Strýček Péťa v tomto případě nedojde k žádnému příjmu ani výdaji, pokud parametry neresetujeme Příchod A Spotřeba, pak v řadě podle protistrany Strýček Péťa bude příjem 5 a výdaj 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

Poté plochu zaplníme DataCounterparty ukázková data prvku

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Po vyplnění údajů můžete zobrazit oblast v tabulkový dokument, Protože používáme automatické seskupování řádků, musíme v seskupení uvést úroveň řádku (náš přehled bude mít dvě úrovně, pro protistrany první pro smlouvy).

TabDoc.Output(AreaDataAccount,1);

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

SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Průjezd provedeme pomocí smyčky sbohem.

Zatímco SelectionCounterparty Agreement.Next() Loop EndCycle ;

V cyklu pro dohody protistrany resetujme parametry Příchod A Spotřeba, vyplňte oblast DataContract ze vzorku a zobrazit jej v tabulkovém dokumentu na druhé úrovni záznamů.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; VyplňtePropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Také v tomto cyklu přidá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 + SelectionCounterpartyAgreement.Receipt; Celkové náklady = Celkové náklady + Vzorová dohoda s protistranou. Náklady;

Tím je výstup dat v oblasti ukončen DataCounterparty, DataAgreement Counterparty dokončeno, zbývá pouze dokončit automatické seskupování řádků dokumentu tabulky.

TabDoc.FinishAutoGroupingRows();

Úplné cykly odpovědné za výstup dat do oblasti DataCounterparty A DataAgreement Counterparty vypadat takto:

TabDoc.StartAutoGroupingRows(); While SelectionAccount.Next() Loop AreaDataAccount.Parameters.Receipt = 0 ; AreaDataAccount.Parameters.Expense = 0 ; FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups); While SelectionCounterparty Agreement.Next() Loop AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ; VyplňtePropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2); Celkový příjem = Celkový příjem + SelectionCounterpartyAgreement.Receipt; Celkové náklady = Celkové náklady + Vzorová dohoda s protistranou. Náklady; EndCycle ; EndCycle ; TabDoc.FinishAutoGroupingRows();

Zbývá zobrazit finální data v oblasti Suterén a výstup na samotnou oblast tabulkový dokument.

AreaBasement.Parameters.TotalIncoming = TotalIncoming; AreaBasement.Parameters.TotalConsumption = TotalConsumption; TabDoc.Output(AreaFooter);

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

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

Pozornost!
Veškeré zpracování z disků ITS je určeno 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í.

Konvoluce informační základny. (Univerzální)

Provádí souhrnné zabezpečení informací v typických konfiguracích:

  • UPP 3.1.
  • TK 1.6.
  • UT 10.3.

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

V režimu spravované aplikace upravuje registraci změn vyměněný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.

Konverze protokolu aktivity uživatele. (Univerzální)

Převádí protokol uživatelských akcí na program ve vestavěném jazyce.

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

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

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

Vyhledává a nahrazuje referenční hodnoty v objektech zabezpečení informací.

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

Vytváří nebo upravuje soubor protokolu procesu. Má schopnost konfigurovat vytváření výpisu zhroucení, konfigurovat podmínky a události, při jejichž výskytu budou informace zaznamenány do tohoto protokolu.

Pracovní konzole. (Univerzální)

Monitoruje pozadí a rutinní úkoly. Maže, vytváří nové.

Konverze externího zpracování. (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í)

Mění detaily a tabulkové části v dokumentech a referenčních knihách.

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

Nahrává a načítá uživatele zabezpečení informací do souboru XML.

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

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

  • Vyložit všechny
  • Nahrát změny (slouží k synchronizaci změn v pracovním IS s přijímajícím IS). 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

Nahrávání a načítání XML dat. (Univerzální)

Nahrává a načítá data do informační bezpečnosti, a to úplně i částečně. Používá se k přenosu dat mezi konfiguracemi, které jsou podobné složením objektů.

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

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

Pracuje v tlustém klientovi v normálním aplikačním režimu.

Vyžádejte si konzoli. (Univerzální)

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