Vytvoření formuláře pro tisk v 1C 8. Přidání externího formuláře pro tisk do databáze. Připojení externí tiskové formy k základně

Provádí se podle standardního uspořádání tištěná forma, zabudované do aplikace vývojáři (toto se nazývá „dodané“ rozvržení).

V případě potřeby můžete změnit standardní rozvržení a v budoucnu vytisknout dokument na základě vašeho osobního („vlastního“) rozvržení. Pro úpravu rozvržení tištěného formuláře je k dispozici mechanismus pro nahrání do místního počítače. Úprava rozvržení se provádí v místní verzi systémové aplikace 1C:Enterprise (zejména můžete použít bezplatná aplikace 1C:Enterprise - Práce se soubory).


Chcete-li změnit rozvržení pro tisk:




Úprava rozvržení tištěného formuláře je dokončena, při tisku dokumentu se použije rozvržení, na kterém byly provedeny změny.

Pokud se chcete vrátit k předchozímu rozvržení pro tisk, klikněte na tlačítko Použijte standardní rozložení. V tomto případě bude upravený layout na serveru stále přítomen a lze jej znovu zapnout stisknutím tlačítka Změna.

Přejeme příjemnou práci!

Jak vložit logo společnosti do rozvržení tištěného formuláře?

Zde je konkrétní příklad úpravy rozvržení tištěného formuláře Faktury k platbě, totiž zvážíme, jak do něj vložit obrázek, například logo společnosti (tento obrázek je třeba nejprve připravit a uložit jako grafický soubor, například ve formátu png nebo jpg).


Nyní tedy budou faktury, které připravíte k převodu protistranám, obsahovat logo vaší společnosti. Chcete-li přidat logo k dalším dokumentům, budete muset zopakovat popsané kroky pro odpovídající tištěné formy těchto dokumentů.

Přejeme příjemnou práci!

Externí tištěné formuláře pro běžnou aplikaci (pro konfiguraci Podnikové účetnictví 2.0, Řízení mezd a lidských zdrojů 2.5, Řízení obchodu 10.3 atd.) se oproti externím tištěným formulářům pro řízenou aplikaci vytvářejí zcela jednoduše.

Proč vytvářet externí tiskové formuláře?

Výhodou externí tiskové desky oproti konvenční je, že se vyhne změnám konfigurace informační základna. To znamená, že proces následných aktualizací konfigurace nebude komplikovaný. Kromě toho jsou externí tiskové formy spolu s externím zpracováním jedinou možností pro rozšíření funkčnosti základní verze 1C konfigurace, které nelze vůbec změnit.

A poslední věc: externí tištěné formuláře se snadněji replikují, protože jedná se o samostatný soubor, který lze rychle připojit k infobázi.

Jak vytvořit externí tiskový formulář

Podívejme se na proces vytváření externího tištěného formuláře 1C krok za krokem:

  1. Vytváříme externí zpracování. Chcete-li to provést, vyberte položku nabídky v konfigurátoru Soubor - Nový... A v dialogovém okně, které se otevře - Externí zpracování.
  2. Vytvořte atribut externího zpracování s názvem Odkaz na objekt. Typ atributu je odkaz na adresář nebo dokument, pro který se vytváří externí tištěný formulář. Stejný formulář lze použít pro několik typů objektů, v tomto případě datový typ atributu Odkaz na objekt musí být kompozitní.
  3. V objektovém modulu vytvoříme exportní funkci s názvem Těsnění, který by měl vrátit hotový vytištěný tabulkový dokument.

Často se stává, že potřebujete mírně upravit rozvržení stávajícího tištěného formuláře a udělat jej externí. Do rozvržení přidejte například pečeť organizace a podpis manažera.

Vytvoření externí tiskové formy na základě standardní s drobnými změnami

Uvažujme tento postup na příkladu vytvoření externí tištěné formy univerzálního převodního dokladu pro doklad Prodej zboží a služeb 1C: Účetnictví. Od standardního tištěného formuláře se bude lišit přítomností pečeti organizace.

  1. Vytváření externího zpracování s rekvizitami Reference objektu, datový typ - DocumentLink.Prodej zboží a služeb.
  2. Najdeme rozvržení standardního tištěného formuláře UPD (nachází se v obecných rozvrženích) a zkopírujeme (přetáhneme) do okna externího zpracování. Nákresy jiných tištěných formulářů mohou být umístěny v samotných dokumentech nebo referenčních knihách.
  3. Provádíme potřebné změny ve zkopírovaném rozložení tištěného formuláře.
  4. Najdeme funkci zodpovědnou za generování tištěného formuláře. Tato funkce by měla vrátit vygenerovaný tabulkový dokument. Zkopírujte jeho obsah do funkce exportu Těsnění() v modulu objektu externího zpracování.
    V našem případě je to funkce Export PrintUniversalTransferDocument(). z modulu objektu dokumentu Prodej zboží a služeb.
    Pokud byly změny rozvržení významné (změnily se oblasti a/nebo parametry), je třeba provést příslušné úpravy funkce tisku.
  5. Snažíme se ušetřit externí zpracování. Pravděpodobně se však zobrazí chybové zprávy, které naznačují, že některé procedury a funkce volané funkcí tisku chybí. Tyto funkce a procedury musí být nalezeny ve zdrojovém dokumentu a také zkopírovány do modulu objektu externího zpracování. Nebo upravte odkaz, pokud je exportována původní funkce nebo postup.
  6. (není nezbytné). Pro testování externí tiskové formy je vhodné vyrobit formu, na kterou umístíte rekvizity Odkaz na objekt. Knoflík Vykonat musí zavolat proceduru Těsnění() z objektového modulu. Chcete-li to provést, událost kliknutí na tlačítko má postup:

Tak! Existuje konfigurace (například „Trade Management“, vydání 10.3) a pro ni je nutné vyvinout externí tištěnou formu. Vezměme si například standardní dokument „Faktura k platbě kupujícímu“ (i když externí tištěné formuláře lze vytvářet nejen pro dokumenty, ale i pro adresáře).

Příklad pro 1C 8.3 (spravované formuláře)

Lze si prohlédnout příklad vývoje externího tištěného formuláře pro spravovanou aplikaci.

Úkol

Vypracujte externí tištěný formulář, který bude dostupný z dokumentu „Faktura k zaplacení kupujícímu“, a který bude obsahovat název organizace, protistrany a seznam zboží s cenou, množstvím a množstvím.

Jít!

První věc, kterou musíte udělat, je vytvořit soubor externího zpracování. Zpracování by mělo obsahovat tři hlavní body:
  1. Atribut „Object Link“ s typem „DocumentLink.Invoice for Payment to Buyer“
  2. Rozvržení, které bude vytištěno
  3. Funkce exportu "Print()", která vrátí tabulkový dokument
Tyto akce jsou vidět na obrázku 1

"Kreslení rozvržení"

Náš layout bude obsahovat dvě oblasti:
  1. Název (záhlaví) dokumentu (v této oblasti budou umístěny názvy organizace a protistrany) a záhlaví tabulky (s názvy sloupců)
  2. Tabulka se zbožím (sloupce s názvem, množstvím a množstvím)
Na obrázku č. 2 je znázorněno rozložení externí tiskové formy. Vezměte prosím na vědomí, že buňky tabulky a záhlaví obsahují parametry, nikoli pouze text.

Funkce "Print()"

Forma je téměř hotová. Zbývá pouze napsat programové vyplnění polí tabulkového dokumentu. Tyto akce se provádějí v modulu zpracování objektu ve funkci zvané „Tisk“, která MUSÍ být exportovatelná.
Etapa č. 1. Příjem dat pro záhlaví, vyplnění parametrů záhlaví a jejich výstup do tabulkového dokumentu TabularDocument = Nový TabularDocument; Layout = GetLayout("Naše rozvržení"); Požadavek na data = Nový požadavek("VYBRAT | PROHLÁŠENÍ(Faktura k platbě kupujícímu. Protistrana) JAKO Protistrana, | ZASTOUPENÍ (Faktura k platbě kupujícímu. Organizace) JAKO Organizace | OD | Dokument. Faktura k platbě kupujícímu JAKO Faktura pro platbu kupujícímu | KDE | Faktura pro platbu kupujícímu. Odkaz = &Odkaz"); Data Request.SetParameter("Link", ObjectLink); Hlavička = DataRequest.Execute().Select(); Cap.Next(); Oblast = Layout.GetArea("Záhlaví"); Area.Options.Fill(Header); TabularDocument.Output(Area); Etapa č. 2. Příjem tabulkových dat a výstup produktů po řádcích
Data Request.Text = "SELECT | _Products.Line Number, | REPRESENTATION(_Products.Nomenclature) AS Nomenklatura, | _Products.Quantity, | _Products.Price, | _Products.Amount |FROM | Document.Fuice for Payment for the Buyer.Products AS _Produkty | KDE | _Produkty. Odkaz = &Odkaz"; Fetch = DataRequest.Execute().Select(); Oblast = Layout.GetArea("Data"); While Selection.Next() Loop Area.Parameters.Fill(Selection); TabularDocument.Output(Area); EndCycle; Etapa č. 3. Vrácení tabulkového dokumentu a funkce tisku return TabularDocument;

Přidání našeho externího tiskového formuláře do 1C

Přejděte do menu "Servis - Externí tiskové formy a zpracování - Externí tiskové formuláře"

V okně vytvoření prvku, které se otevře, proveďte následující akce:

  1. Načítání souboru externího zpracování
  2. Uvádíme, pro který konfigurační dokument (nebo adresář) je tištěný formulář určen
  3. Záznam změn

Pojďme tisknout!

Otevřete libovolný dokument „Faktura k zaplacení kupujícímu“ (s vyplněnou tabulkovou částí „Produkty“, protože tam získáváme údaje k vyplnění), klikněte na tlačítko „Tisk“, v okně, které se otevře, vyberte NÁŠ tištěný formulář a klikněte na „Tisk“


POZORNOST! Tento vývojový algoritmus je vhodný POUZE pro „běžnou aplikaci“. Tisknutelné formuláře pro konfigurace v "režimu" Spravovaná aplikace"odlišný!

Soubor tištěného formuláře zobrazený v příkladu může být

Život jde dál, legislativa se mění, vývojář vydává aktualizace konfigurace a my máme opět na výběr: aktualizaci si nainstalujeme sami nebo znovu zavoláme programátorovi, aby „nainstaloval nové vydání“...

Pojďme se seznámit s mechanismem pro změnu tiskových forem bez změny konfigurace.


V praxi každého účetního používajícího 1C se někdy objevila potřeba upravit konfiguraci pro sebe: někdo upravil přesnost ceny nebo částky na faktuře, někdo vložil logo a upravil vzhled faktura. Všechno by bylo v pořádku, ale v průběhu času se takových změn nahromadí velké množství, a když přijde čas na aktualizaci vydání, nastává dilema: buď ztratit všechny provedené změny, nebo zavolat programátora, aby všechny změny přenesl do nového vydání (např. kurz za příplatek). Jak být? Aby vývojáři nějak zjednodušili aktualizace konfigurací, vytvořili nový mechanismus: „Externí zpracování, tištěné formuláře, zpracování pro vyplňování tabulkových částí“. Dnes se podíváme pouze na část tohoto mechanismu – tiskové formy.


Jakýkoli předmět se nejlépe učí na příkladu. Stanovme si následující úkol: přidat do konfigurace možnost tisku faktury (doklad "Prodej zboží a služeb") s logem naší společnosti. Kromě toho je nutné, aby v záhlaví dokumentu byly nápisy "poskytovatel" A "kupující" byly zvýrazněny tučně a nakonec je nutné, aby v dolní části dokumentu bylo místo pro podpis bezpečnostní služby, která zásilku autorizovala.


Uveďme dvě další podmínky:

  • Nový tištěný formulář by měl nahradit starý formulář "Faktura"
  • Konfiguraci nelze změnit, protože chceme v budoucnu používat automatickou aktualizaci konfigurace

No, jaký je úkol? Zdá se vám to příliš složité? No, čím je to složitější, tím je to zajímavější a tím víc to chcete řešit. Pak se pusťte do práce.


Spouštíme naši databázi v režimu Konfigurátor. Otevřete konfiguraci výběrem příkazu v hlavní nabídce "Konfigurace > Otevřít konfiguraci". Samotnou konfiguraci za žádných okolností měnit nebudeme. Použijeme jej jako prototyp. Zde uděláme hlavní práci, ale upravíme externí zpracování. Externí zpracování vytvoříme příkazem v hlavní nabídce "Soubor > Nový". Výběr typu dokumentu "Externí zpracování". Pro první zpracování nastavme název "Značková faktura"


Důležité! Název zpracování nesmí obsahovat mezery, stejně jako názvy proměnných.


Teď to trochu uděláme "plagiátorství". Zkopírujeme rozložení "Faktura" z dokumentu "Prodej zboží a služeb". K tomu jej najdeme ve větvi "Dokumentace" konfigurační strom. Rozbalte toto vlákno kliknutím na ikonu «+» a najít rozložení, které potřebujeme "Faktura"(je to ve vláknu "Rozvržení"). Chcete-li zkopírovat tento objekt, musíte vybrat toto rozvržení ve stromu a spustit příkaz "Upravit > Kopírovat"(stejná akce nastane s kombinací CTRL+C). Nyní přejdeme ke zpracování, které jsme vytvořili, vyberte štítek ve stromu "Rozvržení" a v hlavní nabídce vyberte položku - "Upravit > Vložit" (CTRL+V). Výsledek by měl vypadat jako na obrázku 1.


Nyní dvojklikem otevřete rozvržení.

Co je to "layout"

Řekněme si pár slov o účelu rozložení.

Rozložení- úložný prostor "stavební bloky", plochy, ze kterých se jako cihly staví tabulkový dokument, kterému jsme zvyklí říkat tištěná forma. Oblasti jsou definovány pomocí vodorovných a svislých řezů nebo jejich průsečíků. Naše rozložení má pouze vodorovné části: „Záhlaví“, „Dodavatel“, „Kupující“, „Záhlaví tabulky“, „Řádek“ (viz obr. 2). Oblast je soubor buněk. Stejně jako v MS Excel lze buňky slučovat, měnit barvy textu a pozadí, písma a podobně. Všechna nastavení buňky lze zobrazit a změnit v okně vlastností buňky. Okno nastavení můžete vyvolat kliknutím pravým tlačítkem myši na buňku a výběrem položky místní nabídky "Vlastnosti"(stejného výsledku dosáhnete klávesovou zkratkou Alt+Enter).


Buňka může obsahovat jeden ze tří typů hodnot:

  1. text– hodnota tohoto typu bude vytištěna ve stejném tvaru;
  2. parametr– buňka tohoto typu obsahuje název proměnné, jejíž hodnota bude vytištěna.
  3. vzorek– buňky tohoto typu jsou kombinací první a druhé možnosti. Buňka může obsahovat text a proměnné. Aby program rozlišil text od proměnné, musí být proměnné uzavřeny v hranatých závorkách: "Dnes je [Datum]".

Důležité! Editor tabulky zobrazuje hodnoty buněk druhého a třetího typu v trojúhelníkových závorkách. Na obrázku 2 je buňka s textem "Kupující"- vypadá jako text a napravo od buňky "Prezentace kupujícího"- parametr.

Proč to všechno říkám? Nyní víte, ve kterých buňkách můžete snadno změnit obsah a ve kterých je nežádoucí cokoliv měnit, protože budete muset provést změny v tiskovém algoritmu.

Vraťme se nyní k našemu úkolu. Vytvořili jsme zpracování, zkopírovali layout a jsme připraveni si ho upravit podle sebe. Nejprve se na to podíváme blíže.

Co je součástí rozvržení pro tisk

Struktura rozvržení všech dokumentů je velmi podobná. Po pečlivém prozkoumání jednoho dokumentu můžeme porozumět ostatním. První oddíl "Titul". Po zobrazení této sekce se vygeneruje hlavička dokladu skládající se z typu, data a čísla dokladu. Po něm následují oddíly "Dodavatel" a "Kupující", ve kterém program zobrazí informace o dodavateli a kupujícím, resp. Následuje zajímavější sekce "Dodatečné informace", které vývojáři používají k zobrazení dalších informací na dokumentu, například informace o smlouvě s jejím číslem a datem. Zvláštností této sekce je, že může být zobrazena mnohokrát a pokaždé může obsahovat jiné informace. Co přesně tisknout a kdy je popsáno v tiskovém algoritmu.

Tím je záhlaví dokumentu dokončeno. Za záhlavím obvykle následuje tabulková část. Zajímavé je, že rozložení popisuje dvě možnosti zobrazení tabulkové části: "Záhlaví tabulky", "String" a "HeaderTablePlaces" A "StringPlace". V závislosti na tom, zda je váš sloupec vyplněn nebo ne "Mest" v dokumentu se použije první nebo druhá možnost zobrazení tabulkové části dokumentu. Zvědavého čtenáře už nejspíš napadlo: proč v sekci výstup záhlaví "Cena" A "Součet" jsou umístěny v trojúhelníkových závorkách, jako by to byly proměnné? Správně – jedná se o proměnné, ve kterých se v závislosti na nastavení dokumentu zobrazí nápis "Cena", "Cena s DPH" nebo "Cena bez DPH" a podobně pro částku.

Níže v rozložení jsou sekce, pomocí kterých se zobrazují výsledky dokumentu a podpisu.

Úprava rozvržení

Bylo by hezké umístit logo nad informace o dodavateli a kupujícím. Navrhuji upravit oblast rozložení "Titul". Je nutné zmenšit velikost buňky obsahující obsah "Text názvu". Tato buňka se skládá z několika sloučených buněk. Možnost změny velikosti následujícím způsobem:

  1. Pečlivě zkopírujeme obsah sloučené buňky "Text názvu"(k tomu musíte vybrat buňku a použít příkaz „Upravit > Kopírovat“ nebo klávesovou zkratkou CTRL+C)
  2. Po výběru této buňky vyberte položku v hlavní nabídce "Stůl - sloučení", což povede k opačnému efektu – sloučená buňka se rozdělí na mnoho původních buněk
  3. Nyní vybereme menší počet buněk - místo buňky 2 sloupce začneme slučovat od sloupce 6 a skončíme u sloupce 32 - a znovu klikneme na tlačítko "Spojit"
  4. tým "Upravit > Vložit" (CTRL+V) vložte obsah předchozí sloučené buňky do nové sloučené buňky
  5. Jednoduše vymažeme uvolněné buňky ve sloupcích 2 – 5 (označíme je a stiskneme klávesu Delete)

Nyní můžete do volného prostoru vložit obrázek s logem. Chcete-li to provést, vyberte položku v nabídce "Tabulka > Obrázky > Obrázek...". Najděte soubor s naším logem na disku a klikněte na „ OK" Nyní přesuneme obrázek na volné místo. Výsledek by měl vypadat jako na obrázku 3.


Nyní zvýrazněme hodnoty v buňkách tučně "poskytovatel" A "Kupující"(obr. 4). Chcete-li to provést, vyhledejte parametr ve vlastnostech buňky "písmo" a nastavte styl na tučné.



A nakonec zbývá přidat podpis bezpečnostní služby. Tyto informace zveřejníme v sekci "podpisy". Chcete-li získat prostor pro podpisy, musíte sekci rozbalit. Vyberte řádek 37, klikněte na něj pravým tlačítkem a vyberte "Rozšířit" a tak dále dvakrát. V jednom z přidaných řádků umístíme místo pro podpis bezpečnostní služby. Ve výsledku by vše mělo vypadat jako na obrázku 5.



Důležité! V typická konfigurace se používají dva jazyky: ruština a ukrajinština. Rozvržení ukládá textovou reprezentaci v obou jazycích (návrh buňky je obecný). Abyste mohli zadat ukrajinskou verzi nápisu, který jsme přidali, musíte přejít do vlastností buňky a do pole "Text" zmáčknout tlačítko "Vyhledávání". Otevře se okno pro zadání textových reprezentací v různých jazycích (obr. 6).

Jak zajistit tisk

Takže rozložení je připraveno. Nyní je čas pracovat na algoritmu pro jeho tisk.

Abychom mohli toto rozložení bezbolestně integrovat do konfigurace a používat jej, musí námi vytvořené zpracování splňovat následující podmínky:

  1. Při zpracování je potřeba vytvořit rekvizity "Odkaz na objekt" s typem "Jakýkoli odkaz"
  2. Musíte vytvořit proceduru v modulu zpracování "Print() Export"žádné parametry a musí být specifikovány klíčové slovo "Vývozní"

První bod je potřeba k tomu, aby tiskový algoritmus věděl, kde má získat data pro tisk, a druhý je samotný tiskový algoritmus. Splňme tyto podmínky.

V panelu okna vybereme okno pro editaci našeho zpracování (na obrázku 7). Otevře se okno se stromem objektů pro naše zpracování. Výběr pobočky "Náležitosti" a stiskněte tlačítko "Přidat",. Otevře se okno vlastností atributu. Zadáme jméno - "Odkaz na objekt" a uveďte typ "Jakýkoli odkaz". Nyní můžeme přejít k textu tiskového modulu. Nebudeme to psát od začátku, místo toho to zkopírujeme z dokumentu "Prodej zboží a služeb".



Chcete-li to provést, vyhledejte ve stromu konfigurace mezi dokumenty "Prodej zboží a služeb", klikněte na něj pravým tlačítkem a vyberte "Otevřený objektový modul"(viz obrázek 8).



Tím se otevře modul dokumentu. Potřebujeme první funkci "Vytisknout dokument". Jeho text je třeba vybrat a zkopírovat. Je velmi vhodné zvýraznit text funkce, když je sbalená, ale musíte zvýraznit i řádek pod ním, jinak riskujete zkopírování pouze názvu.

Viz obrázek 9, zvýraznili jsme nadpis a řádek pod ním. Poté jej zkopírujte do schránky. Hlavní menu "Upravit > Kopírovat" (nebo CTRL+C).



Text ve schránce jsme si zapamatovali, nyní znovu přejdeme k našemu zpracování "Značková faktura". Klikněte na tlačítko "Akce > Otevřít modul objektu"(obr. 10).



Vložte zkopírovaný text: "Upravit > Vložit" (nebo CTRL+V).

Nyní je nutné zkopírovaný text mírně upravit, protože byl napsán pro tisk dokumentu ze samotného dokumentu a shromažďujeme jej z externího zpracování. K tomu potřebujete:

  1. Přejmenovat funkci na "Tisk"
  2. Nahradit "TentoObjekt" na "Odkaz na objekt"
  3. Nahradit "TentoObjekt" na "Odkaz na objekt"
  4. Nahradit "Bankovní účet organizace" na „Odkaz na bankovní účet Object.Organization“
  5. Nahradit "Produkty. Souhrn" na "LinkToObject.Products.Total"

Pro tyto akce můžete použít položku hlavního menu "Upravit > Nahradit".

Poté musíte zkontrolovat syntaxi. Existuje na to kouzelná kombinace: CTRL+F7. V důsledku toho by se měla zobrazit následující zpráva: "Nebyly nalezeny žádné syntaktické chyby!"

No, tímto jsme dokončili všechnu špinavou práci. Nyní můžeme výsledky naší práce uložit například do souboru "Značková faktura.epf". K tomu je potřeba aktivovat okno pro toto zpracování a uložit jej pomocí hlavního menu programu "Soubor > Uložit jako...". Název souboru zpracování – "Značková faktura.epf"(bude nabízena ve výchozím nastavení). Můžete si jej dočasně uložit na plochu, abyste jej později rychleji našli.

Důležité! Jak jste viděli, v naší konfiguraci jsme neprovedli žádné změny. U všech výše popsaných akcí jej ani nemusíte odstraňovat z podpory (to znamená povolit možnost změny).

Připojení externího zpracování ke konfiguraci

Nyní můžeme spojit zpracování s naší fakturou. Chcete-li to provést, spusťte v režimu. Přejděte do nabídky "Servis", kde jsou tři body související s mechanismem „Externí zpracování, tisk formulářů, zpracování pro vyplňování tabulkových částí“. V našem případě potřebujeme pouze položku "Externí tiskové formuláře"(viz obr. 11).



Tím se otevře adresář. "Externí zpracování", s výběrem podle typu "tištěné formuláře". Uloží seznam všech externích tištěných formulářů s uvedením, pro jaké dokumenty jsou určeny a v jakých případech je třeba je zobrazit.



Důležité! Samotné zpracování bude uloženo v databázi spolu s dalšími daty, to znamená, že po uložení zpracování uvnitř databáze nebudeme potřebovat externí soubor.

Musíme vytvořit nový prvek v adresáři. Klikněte Vložit. Nyní se podívejme na obsah prvku. Přidáme význam názvu Stručný popis podstatou této formy je např. "Firemní faktura". Jako každý jiný adresář má také kód. Necháme to jako výchozí. Atribut typu je standardně vyplněn a nelze jej upravovat – "tiskový formulář". A posledním prvkem záhlaví je komentář. Zde je jako obvykle více podrobností o účelu tiskové formy. Prvky tohoto adresáře mají kromě záhlaví dvě záložky. Druhá obsahuje informace o omezení přístupových práv k tomuto zpracování. Toto téma je nad rámec tohoto článku (o tomto a dalších nastaveních přístupových práv si povíme bez úpravy konfigurace v některém z nadcházejících vydání).

Podívejme se blíže na první záložku.

Karta obsahuje čtyři sloupce. Reprezentace objektu– typ dokumentu, pro který bychom chtěli použít naši tiskovou formu,

Výběr– podmínka, za které by měl být tento tištěný formulář dostupný. Předělali jsme například tištěnou podobu faktury a přeložili ji do angličtiny. A my chceme pro klienty ze složky "Evropský" místo standardního tištěného formuláře "Prodejní faktura" byl publikován nový formulář, na anglický jazyk. K tomu můžete použít sloupec "Výběr". Příklad takového výběru je na obrázku 13.



Ale v našem úkolu nejsou potřeba žádné výběry.

Soubor formuláře pro tisk– označuje soubor, ze kterého se má převzít postup rozvržení a tisku. V této buňce musíte vybrat soubor, který jsme uložili na plochu.

Vyměnitelná tisková deska– pokud chceme, aby námi vytvořený tištěný formulář nahradil jeden ze standardních pro tento dokument, musíme uvést, který je třeba vyměnit. Pokud není co vybrat, objeví se další tištěný formulář.

V našem případě musíme "Značková faktura" byla vytištěna místo obvyklé faktury. Chcete-li to provést, vyberte v tomto poli "Prodejní faktura".

Nyní tento prvek uložíme. A otevřete jakoukoli fakturu.

Mělo by to vypadat jako na obrázku 14.



No a tím končí úkol, který jsme si stanovili na začátku článku. Věříme, že se nám podařilo ilustrovat možnosti, které uživateli otevírá použití mechanismu externího zpracování.

Pro upevnění svých dovedností můžete zkusit samostatně přidat do konfigurace dodatečný tištěný formulář „Na sklad“ pro doklad „Příjem zboží a služeb“, který by opakoval obvyklou fakturu, ale bez cen a částek a také by obsahují pole pro zadání přijímaného množství.

Jak vytvořit externí tiskovou formu na základě hotové? 1C 8,0/8,1
_______________________________________________________

Předpokládá se, že již máte znalosti získané četbou tématu, takže se podrobně řeší pouze nové otázky.

Takže: potřebovali jsme mírně změnit rozložení faktury pro platbu kupujícímu (budeme pracovat s konfigurací Účetnictví 1.6):
- odstranit hlavičku v rozložení faktury pro platbu (text „Pozor! Platba této faktury..., na základě plné moci a cestovního pasu.“)
- změnit prezentaci dodavatele (tedy nás) na žádost banky
(problém z reálný život s pracovní dobou 15-20 minut)

Vytvoření zpracování bude sestávat ze dvou fází:
1 - vytvoření kompletní obdoby původní tiskové formy
2 - úprava dle vlastních potřeb

První fáze

Nejprve vytvoříme prázdné externí zpracování, ale nevytvoříme rozvržení -
zkopírujeme pro pozdější úpravu z hlavní konfigurace. Pro zkopírování layoutu do zpracování z konfigurace to stačí
vyberte jej ve stromu objektů a poté přejděte do nabídky Upravit-kopírovat, pak ve stromu zpracování dat ve větvi rozvržení vyberte
v nabídce Upravit-Vložit Více pohodlný způsob- přímo přetáhněte toto rozložení z hlavní konfigurace do stromu dat pomocí myši
zpracovává se.

A napíšeme tento kód:

Funkce Print() Export //... zde napíšeme něco později End of Function

Co jsme udělali: Aby externí tiskový formulář fungoval, je vyžadována funkce exportu (tj. viditelná pro jiné konfigurační objekty) Těsnění,
který by měl vrátit vygenerovaný tabulkový dokument do hlavního programu k náhledu a následnému tisku.

Abychom znovu nevynalézali kolo, podívejme se, jak se tvoří tabulkový dokument v hlavní konfiguraci: na to půjdeme
do modulu dokumentů Faktura k platbě kupujícímu Najdeme funkci v modulu Těsnění, který vypadá asi takto:

// Procedura vytiskne dokument. Tisk můžete nasměrovat na // obrazovku nebo tiskárnu a vytisknout požadovaný počet kopií. // // Jako parametr je předán název rozvržení tisku, // pomocí zadaného jména najdeme název rozvržení v souladu. // // Parametry: // LayoutName - řetězec, název rozložení. // Postup Print(LayoutName, Počet instancí = 1, OnPrinter = False, DirectPrint = False) Export // Získání kopie dokumentu pro tisk If LayoutName = "Invoice" Then TabDocument = PrintOrderInvoice(LayoutName); endIf; Universal Mechanisms.PrintDocument(TabDocument, Počet instancí, OnPrinter, WorkWithDialogs.GenerateDocumentTitle(ThisObject, ""), DirectPrint); EndProcedure // Tisk

V našem případě se ukazuje, že pro tisk faktury je této funkci předán parametr LayoutName rovná se řetězcové proměnné "šek",
pokud se podíváme na kód, uvidíme, že funkce slouží ke generování standardní faktury Tisková objednávka faktury(...), což je nyní
Musíme to najít v kódu modulu dokumentu. Obvykle se nachází těsně nad funkcí těsnění(...)
Zde je tedy zkrácený text této funkce:

// Funkce vygeneruje tabulkový dokument s tištěnou podobou objednávky nebo faktury, // vyvinutá metodiky // // Návratová hodnota: // tabulkový dokument- vygenerovaný tištěný formulář // Funkce PrintOrderInvoice(Type) Požadavek = Nový požadavek; Request.SetParameter("CurrentDocument", ThisObject.Link); // ...kód programu...Layout Area.Parameters.Fill(Header); TabDocument.Output(LayoutArea); return TabDocument; EndFunction // PrintOrderInvoice()

Jak vidíme, na konci této funkce je vrácen vygenerovaný tabulkový dokument - vše, co musíme udělat, je celý text zkopírovat
tuto funkci (začínající řádkem "Request = New Query;" a končící řádkem "Return TabDocument;") a vložte ji do těla připravené funkce
Těsnění v našem modulu zpracování.

Poté, co vložíme funkční text, zkusme uložit zpracování. Konfigurátor nás upozorní, že zjistil chyby v modulu a displeji
v okně servisních zpráv. Zde je příklad testu pro tyto chyby:

(ExternalProcessing.ExternalProcessing1(102,7)): Proměnná není definována (Type) Pokud<>Typ = "Účet" Potom (ExternalProcessing.ExternalProcessing1(224,7)): Proměnná není definována (Typ) Pokud<>Typ = "Účet" Potom (ExternalProcessing.ExternalProcessing1(107,15)): Proměnná není definována (StructuralUnit) IfValueType(<>StructuralUnit) = Type("DirectoryLink.BankAccounts") Then (ExternalProcessing.ExternalProcessing1(108,40)): Proměnná není definována (StructuralUnit) Bank = ?(NOT ValueFilled(<>StructuralUnit.BankForSettlements), StructuralUnit.Bank, StructuralUnit.BankForSettlements); (ExternalProcessing.ExternalProcessing1(108,77)): Proměnná není definována (StructuralUnit) Bank = ?(NOT ValueFilled(StructuralUnit.BankForSettlements),<>StructuralUnit.Bank, StructuralUnit.BankForSettlements); (ExternalProcessing.ExternalProcessing1(108,102)): Proměnná není definována (StructuralUnit) Bank = ?(NOT ValueFilled(StructuralUnit.BankForSettlements), StructuralUnit.Bank,<>StructuralUnit.BankForSettlements); (ExternalProcessing.ExternalProcessing1(112,38)): Proměnná není definována (StructuralUnit)AccountNumber = ReturnAccount(<>StructuralUnit); (ExternalProcessing.ExternalProcessing1(123,21)): Proměnná není definována (StructuralUnit) If EmptyString(<>StructuralUnit.CorrespondentText) Then (ExternalProcessing.ExternalProcessing1(125,27)): Proměnná není definována (StructuralUnit) If ValueFilled(<>StructuralUnit.BankForSettlements) Potom (ExternalProcessing.ExternalProcessing1(126,59)): Proměnná není definována (StructuralUnit)CorrespondentText =CorrespondentText + "r/s" +<>StructuralUnit.AccountNumber (ExternalProcessing.ExternalProcessing1(127,15)): Proměnná není definována (StructuralUnit) + " v " +<>StructuralUnit.Bank + " " + StructuralUnit.Bank.City; (ExternalProcessing.ExternalProcessing1(127,47)): Proměnná není definována (StructuralUnit) + " in " + StructuralUnit.Bank + " " +<>Strukturální jednotka.Bank.Město; (ExternalProcessing.ExternalProcessing1(130,26)): Proměnná není definována (StructuralUnit) Odpovídající text =<>StructuralUnit.TextCorrespondent; (ExternalProcessing.ExternalProcessing1(112,17)): Procedura nebo funkce se zadaným názvem není definována (Return Account) Číslo účtu =<>ReturnAccount(StructuralUnit);

Podívejme se na tyto chyby:
*** 1. Proměnná není definována (typ)- když se podíváte na zdrojový kód funkce, je jasné, že proměnná typu byla parametrem:
Funkce PrintInvoiceOrder (Typ), tento parametr jsme odstranili. V v tomto případě- tento parametr obsahoval řádek s názvem rozvržení
pro tisk. Protože potřebujeme vytisknout pouze jeden layout - definujme tuto proměnnou takto: změníme nadpis
funkcí Těsnění v modulu zpracování:

Funkce Tisk (Typ = "Účet")

Co znamená tento zápis: znamená to, že pokud funkci nebyl předán žádný parametr, pak parametr Typ bude mít hodnotu
výchozí "Šek", což je to, co k práci potřebujeme.

*** 2. Proměnná není definována (StructuralUnit)- tato proměnná je atribut dokumentu Faktura k platbě kupujícímu, protože
v modulu externího tištěného formuláře tento atribut nevidíme (nejsme v těle objektu dokumentu), tuto proměnnou získáme přes
odkaz na dokument, tzn. prostřednictvím detailů zpracování Odkaz na objekt, kterému program předá odkaz na aktuální dokument.
Na začátek funkce přidejte následující řádek:

*** 3. Procedura nebo funkce se zadaným názvem není definována (Return Account)- tato funkce je definována (tj. popsána) v modulu
dokumentu, potřebujeme tedy pouze kompletně přenést kód této funkce do našeho zpracování.

Nyní tedy modul zpracování vypadá asi takto:

Funkce ReturnCurrentAccount(CounterpartyAccount) BankForSettlements = CounterpartyAccount.BankForSettlements; Vysledek = ?(BankForSettlements.Empty(), Account Counterpart.AccountNumber, Counterparty Account.Bank.CorrespondentAccount); Návratový výsledek; Konec funkce // Vrátit běžný účet() // Funkce vygeneruje tabulkový doklad s tištěným formulářem pro objednávku nebo fakturu, // vyvinutá metodiky // // Návratová hodnota: // Tabulkový doklad - vygenerovaný tištěný formulář // Funkce Print(Type = "Faktura") Export StructuralUnit = ObjectLink.StructuralUnit; Žádost = Nová žádost; Request.SetParameter("CurrentDocument", ThisObject.Link); // ...text programu...Layout Area.Parameters.Fill(Header); TabDocument.Output(LayoutArea); return TabDocument; EndFunction // PrintOrderInvoice()

Pokud je vše provedeno správně, můžeme nyní zpracování uložit a získáme kompletní externí analog vestavěné tiskové formy.

Druhá fáze

Nyní proveďte potřebné změny rozvržení při tisku (za předpokladu, že víte, jak s rozvržením pracovat), a také změňte
text dodavatele v záhlaví faktury.

Jak vidíme z kódu programu, text příjemce je vyplněn na tomto místě:

If EmptyString(StructuralUnit.CorrespondentText) ThenCorrespondentText = SupplierInformation.FullName; Pokud je hodnota vyplněna (StructuralUnit.BankForSettlements) Then CorrespondentText = CorrespondentText + "account" + StructuralUnit.AccountNumber + " in " + StructuralUnit.Bank + " " + StructuralUnit.Bank.City; endIf; Jinak CorrespondentText = StructuralUnit.CorrespondentText; endIf; LayoutArea.Parameters.ProviderView = CorrespondentText;

Zákazník v platebních příkazech nastavil podmínku, že text pro toto pole bude přebírán ze jména plátce
převod daní. Tento text je uložen v atributu prvku adresáře Organizace- vše, co nám zbývá, je
přístup k němu. Pokud se podíváme na detaily dokumentu, uvidíme, že obsahují informace o organizaci,
podle kterého byl dokument vydán a požadovaný text je uložen v detailech organizace - nyní víme, jak získat přístup:

Layout Area.Parameters.SupplierView = LinkToObject.Organization.Název plátce při převodu daní;

To je vše - rozložení je připraveno k použití a lze jej připojit ke konfiguraci!

V tématu si můžete vzít léčbu, která měla nakonec vyústit.

PS. Diskuze, dotazy, návrhy – vše je k tématu.