Schody.  Vstupní skupina.  Materiály.  Dveře.  Hrady a zámky  Design

Schody. Vstupní skupina. Materiály. Dveře. Hrady a zámky Design

» Tisk na formulář 1c. Publikace. Výstup zápatí vytištěného formuláře do tabulkového dokumentu

Tisk na formulář 1c. Publikace. Výstup zápatí vytištěného formuláře do tabulkového dokumentu

Kolegové!

Pokračujeme v tématu vytváření sestav v 1C. Nedávno měl náš klient problém s přenosem dokumentace z 1C 8.3.

Zadání doplňujících informací do tištěného formuláře, číslování tiskových listů s uvedením data, času a uživatele, který sestavu vystavil.

O podobném příkladu jsme hovořili v konfiguraci 8.2 v předchozí verzi. Nyní se podíváme na nastavení tisku, které nám toto vše umožňuje v konfiguraci 8.3.

Většina z toho je navíc ve verzi 8.3 automatizována.

Jak tedy můžete začlenit výše uvedené informace do svého tisku? Co je třeba v tomto případě udělat?

Nabízíme náš přehled možností, možná se vám bude také hodit.

Možnost 1. Přímo z tištěné podoby vygenerované sestavy nebo dokumentu:

Vytvořte tištěný formulář faktury pro platbu a zavolejte jej prostřednictvím Ch. menu – Tabulka – Nastavení tisku – Záhlaví a zápatí a nakonfigurujte podle potřeby.
Toto se provádí jednou pro jakoukoli VYTVOŘENOU tiskovou formu.

Nastavení polí záhlaví a zápatí

Věnujte pozornost ikonám v levém horním rohu formuláře:

Ty jsou v pořadí: číslo stránky, počet stránek, datum a čas. Umístěte myš na požadované místo v záhlaví nebo zápatí a klikněte na požadovanou ikonu. Po kliknutí na tlačítko. OK, po vytištění se tato data zobrazí v tištěné podobě tam, kde jste uvedli.

Možnost 2. Nakonfigurováno pro jakýkoli tisk (zpráv, dokumentů, certifikátů) z programu

Pokud nechcete pokaždé ručně konfigurovat záhlaví a zápatí, můžete pomocí sekce Administrace – Nastavení záhlaví a zápatí nakonfigurovat obecný vzhled záhlaví a zápatí pro tisk.

Vypadá to takto:

Existuje více možností pro zobrazení informací v tištěných formulářích: jsou přidány údaje „Název sestavy“ a „Uživatel“. To je přesně náš případ.

Výběr údajů v záhlaví a zápatí se provádí tak, jak je popsáno u možnosti 1, pouze místo ikon vybereme textová tlačítka „Čas“, „Datum“, „Název sestavy“ atd. Podstata se však nemění. Po zadání požadovaných informací na požadovaných místech formuláře se nastavení uloží.

Po vytištění tištěného formuláře se v něm zobrazí všechna zadaná data.

Možnost 3: Upravte rozvržení ve vlastním režimu

Proč zde uvažuji o této metodě, která má svou funkcionalitu a která se přísně vzato nevztahuje k uvažovanému tématu.

Často se totiž stává, že k dosažení požadovaného výsledku musíte použít kombinaci této metody a nastavení tisku. Úpravy rozvržení tištěných formulářů nám umožňují nakreslit některé věci, které potřebujeme, přímo v rozvržení tohoto tištěného formuláře.

Rozvržení lze měnit v sekci Administrace – Tiskové formuláře, sestavy, zpracování – Rozvržení tiskových formulářů.

Zde je příklad úpravy rozvržení faktury objednávky (dokladová faktura pro platbu kupujícímu):

Vybereme rozvržení, u vstupu označíme, že jej upravíme, a na konec přidáme nějaké textové informace.

Například takto:

Uložte změny a vytvořte formulář pro tisk.

A tiskneme se změnami.
Ale možnosti takové úpravy jsou omezené.)

Možnost 3 je tedy vhodná pro zadávání konstantních, neměnných informací, vše ostatní bude vyžadovat úpravu tištěné formy programátorem.

Ale často to stačí. 🙂

Pokračujeme ve studiu programu 1C Enterprise. Dnes do dokumentu 1C přidáme tlačítko pro tisk. V předchozích článcích věnovaných programování 1C jsem již psal o tom, jak vytvořit novou databázi, jak vytvořit nový dokument pro tuto databázi a také jsme psali postupy, které vypočítaly součet sloupce a celkového součtu. Nyní vytvoříme tlačítko tisku pro náš dokument.

Aby se náš dokument vytiskl, musíme do něj přidat příslušné tlačítko. Tlačítko pro tisk vytvoříme pomocí speciálního konstruktoru, nebudu se pouštět do psaní procedur a funkcí.

A tak začínáme, nejprve spustíme naši databázi, otevřeme dokument a přejdeme na kartu Rozvržení. Dále klikněte na Návrhář v dolní části a vyberte Návrhář tisku.

V okně, které se otevře, na nic nesahejte a klikněte na Další.

V dalším okně je potřeba vybrat, co se bude tisknout v záhlaví dokumentu. Vybereme všechny tři položky Číslo, Datum, Dodavatel a klikneme na další.

Nyní je třeba vybrat, co se bude tisknout uprostřed dokumentu. Označíme také všechny body a přesuneme je na pravou stranu a klikneme na další.

Nyní musíte uvést, co bude vytištěno v suterénu, například si poznamenejte datum.

Zde nic neměníme a klikneme na OK.

Poté se otevře rozvržení tisku.

Nyní spustíme 1C a zkontrolujeme, co máme. Nejprve by se v dokumentu mělo objevit tlačítko pro tisk.

Po kliknutí na něj by se měl otevřít náhled.

Každý elektronický dokument 1C lze vytisknout na papír, a to pomocí tištěných formulářů 1C. Položky pro tisk se skládají z pojmenovaných bloků, jako je záhlaví, řádek a zápatí.

Jak udělat tištěnou formu je již jasné. Jak to rozdělit na bloky - taky. Jak ale probíhá tisk celé této věci v 1C? A hlavně – jak zobrazit nejen text layoutu, ale obsah elektronického dokumentu?

Na to se právě teď podíváme.

Příprava rozvržení pro tisk v 1C

Pro začátek budete muset začít s nejjednodušší věcí a vyplnit rozvržení pro tisk v 1C statickým textem a řádky tabulky. Koneckonců, někdo musí dělat tuhle nudnou práci?

Statický text pro tisk umístíme do 1C

Dobrým místem pro začátek by bylo umístění názvu naší tisknutelné stránky. Vyberte několik buněk v řadě a vyberte položku nabídky Tabulka/Sloučit. V důsledku toho bude několik buněk sloučeno do jedné.

Nyní do této buňky napíšeme název dokumentu. Vzhledem k tomu, že se jedná o nadpis, zřejmě jej chceme udělat tučným velkým písmem (viz obrázek) a umístit doprostřed.

Návrh layoutu pro tisk umístíme do 1C

Máme pojmenovanou oblast String. V něm se při tisku v 1C zobrazí každý řádek tabulky dokumentu Produkty. Asi bychom chtěli, aby tabulka při tisku v 1C vypadala jako tabulka? Pak je třeba pro to vymezit hranice.

Chcete-li to provést, vyberte buňky řádku a na panelu vyberte tlačítko Ohraničení. Zvolili jsme možnost Border Everywhere – kreslí hranice buněk ze všech stran najednou. Pokud se potřebujete omezit pouze na jednu stranu, musíte vybrat příslušné tlačítko.

Chcete-li zajistit, aby čáry použité k nakreslení hranic nebyly stejné jako standardní, vyberte buňky a klikněte pravým tlačítkem. V zobrazené nabídce vyberte Vlastnosti.

V obvyklém okně vlastností můžete vybrat typ a barvu čar pro kreslení hranic.

Obrázky a další pozlátka pro tisk umisťujeme do 1C

Mnoho lidí se ptá - jak umístit něco jiného než text na tištěný formulář 1C? Například obrázek.

A je to velmi jednoduché. Navíc hned řeknu, že čárový kód (pokud jej potřebujete vytisknout) je také obrázek.

Umístíme kurzor na libovolnou buňku. Vyberte nabídku Tabulka/Obrázky. Toto je celá podnabídka, která vám umožňuje vložit do rozvržení pro tisk v 1C nejen obrázek nebo nakreslený objekt, ale také objekty mimo 1C, registrované v počítači pomocí třídy COM (například rozevírací seznam řízení).

Pro ty, kteří mají zájem vytvářet složité návrhy pro tisk v 1C na rozvržení, se také podívejte na rozbalovací nabídku Tabulka/Nastavení tisku. Zde můžete nastavit oblast opakování na každé stránce, záhlaví a zápatí a oblast tisku.

Jak umístit obsah elektronického dokumentu při tisku v 1C

K umístění obsahu elektronického dokumentu na rozvržení při tisku v 1C se používá metoda substituce. Skládá se ze dvou částí.

Část první. Na layout je nutné umístit parametry, do kterých budete dosazovat hodnoty při tisku v 1C.

Umístíme kurzor do buňky. Zadáme název parametru (jedním slovem, bez mezer či jiného smetí). Dále přejdeme do vlastností této buňky (jak je uvedeno výše) a vybereme Výplň = Parametr.

Část druhá. Náhrada hodnot se neprovádí při programování v konfigurátoru, ale při tisku dokumentu v 1C. V souladu s tím musíte pomocí programování určit 1C, co je třeba v tomto parametru nahradit.

To se provádí následovně:

Layout = GetLayout("LayoutName");
regionSomething = Layout.GetArea("AreaName");
regionSomething.Parameters.ParameterName = "Co chci nahradit z databáze";

Jak vidíte, jednoduše získáme samotné rozložení podle názvu, poté jednu z jeho oblastí a pak jednoduše přistoupíme k parametru podle jeho názvu.

Přirozeně může být hodnotou buď řetězec nebo číslo, nebo hodnota uvedená v dokumentu.

Jak vytisknout rozvržení v 1C

Jakmile je rozvržení připraveno, je čas přemýšlet o naprogramování procesu tisku v 1C.

Tisk v 1C je obvykle naprogramován pomocí několika procedur, které jsou umístěny v modulu objektu dokumentu. .

Procedura Print() je obvykle označena jako Export a řídí tisk dokumentu v 1C pomocí parametru LayoutName, který sděluje, co byste chtěli vytisknout.

Pro každou možnost rozvržení se provede procedura PrintLayoutName(), která specifikuje tisk konkrétního rozvržení. Na to se teď podíváme.

Programování tisku v 1C se skládá ze tří bodů.

Před tiskem elektronického dokumentu v 1C si musíme vyžádat jeho data z databáze. Je zřejmé, že pro tisk dokumentu jej uživatel obvykle „zadá“ (otevře jeho formulář) a klikne na tlačítko Tisk. Proto by se v postupu tisku mohl jednoduše odkazovat na podrobnosti dokumentu (co to je - zde probíráno) jménem.

To je však považováno za ošklivé, ne univerzální atd. Například se najednou využije hromadného tisku dokumentů (jak často se to používá?). Proto je při tisku běžné provádět databázový dotaz, který požaduje data dokumentu. Například takto:

Žádost = Nová žádost;
Query.Text = "VYBRAT
Datum,
Číslo,
Organizace
Z
Document.DocumentName
KDE
Odkaz = &DocumentForPrint";
Request.SetParameter("DocumentForPrint", Link);
Select = Query.Run().Select();
Selection.Next();

Bod 2. Vyplnění rozvržení pro tisk v 1C

Tisk v 1C se provádí v tabulkovém dokumentu. Jedná se o speciální objekt 1C, který vám umožňuje zobrazovat tabulky, jako je Excel, na obrazovce a v tisku. Samozřejmě se tiskne rozvržení, respektive jeho plochy jedna po druhé.

V souladu s tím musíme nejprve získat tabulkový dokument a poté rozložení. Plochy tiskneme jednu po druhé, vyplníme parametry rozložení.

TabDoc = Nový tabulkový dokument;
Layout = GetLayout("LayoutName"); //nebo GetGeneralLayout("")

areaHeader = Layout.GetArea("Header");
TabDoc.Output(regionCap);

regionRow = Layout.GetArea("Řádek");
Zatímco SelectingDocumentLines.Next() Loop
regionLine.Parameters.Product = SelectionDocumentLines.Product;
TabDoc.Output(regionString);
EndCycle;

areaCap = Layout.GetArea("Zápatí");
TabDoc.Output(regionFootroom);

Bod 2. Tisk dokumentu v 1C

Posledním bodem je výstup přijatého dokumentu na obrazovku nebo tiskárnu. V typických konfiguracích se k tomu používá standardní postup (každá může mít svůj), například Universal Mechanisms.PrintDocument().

V ostatních případech můžete jednoduše použít standardní funkce objektu TabularDocument: TabDoc.Show() nebo TabDoc.Print() .