Atviras
Uždaryti

Išorinės spausdinimo formos įtraukimas į duomenų bazę. Išorinės spausdinimo formos įtraukimas į duomenų bazę Spausdinimo formų nustatymas 1s 8.2

Šiame straipsnyje bus išsamiai pasakyta, kaip pradedantysis, mažai išmanantis 1C 8, gali sukurti spausdintą formą. Pavyzdžiui, paimkime vieną iš labiausiai paplitusių 1C 8 konfigūracijų - Apskaita 2.0. Spausdintos formos kūrimas 1C rašymo etapai:

  • Išorinės spausdinimo formos failo kūrimas;
  • Spausdintos formos maketo kūrimas;
  • Programos kodo rašymas atspausdintų formų duomenims rodyti ekrane;
  • Atspausdintos formos automatinio registravimo parametrų kūrimas;
  • Išorinės spausdinimo formos prijungimas prie pagrindo 1C įmonės.

Spausdintos formos 1C sukūrimas. Problemos formulavimas

Mes esame reikalingi konfigūracijoje Apskaita 2.0 sukurti spausdintą dokumento formą Prekių ir paslaugų gavimas. Išspausdintos formos antraštėje pateikite šiuos duomenis:

  • Organizavimas;
  • Sandorio šalis;
  • Sandorio šalies sutartis;
  • Čekio data.

Rodyti duomenis lentelės skyriuje kaip lentelę Prekės dokumentas. Lentelėje turėtų būti šie stulpeliai:

  • Nomenklatūra;
  • Kiekis;
  • Kaina;
  • Suma;
  • Taip pat prekės kaina einamajai datai (pagal kainos tipą iš dokumento).

Išorinis apdorojimo failas

Pereikime prie problemos sprendimo. Pirmiausia atidarykime 1C 8 režimu Konfigūratorius. Būtent šiuo režimu visi tobulinimai atliekami 1C 8 platformoje. Dabar turime sukurti išorinį apdorojimo failą. Norėdami tai padaryti, spustelėkite meniu Failas -> Naujas… arba naujo failo piktograma.

Atsidariusiame lange pasirinkite elementą Išorinis apdorojimas.

Toliau lauke vardas Turite įvesti išorinio apdorojimo pavadinimą. Mūsų atveju mes tiesiog pavadinsime jį „PrintForm“ sinonimo laukas bus užpildytas automatiškai. Atkreipkite dėmesį, kad lauke Vardas, išorinis apdorojimas, pavadinimas turėtų būti rašomas be tarpų ar skyrybos ženklų.

Pridėkite išorinių apdorojimo atributų LinkToObject ir pasirinkite tipo jam DocumentLink Prekių ir paslaugų gavimas. Norėdami tai padaryti, 1C išorinio apdorojimo metaduomenų medyje pasirinkite elementą Rekvizitai ir paspauskite mygtuką Papildyti(mygtukas su žaliu pliusu). Atributo ypatybių langas atsidarys dešinėje ekrano pusėje, lauke vardas parašykime - ReferenceToObject. IN lauke Tipas paspauskite mygtuką su trimis taškais.

Išplėskime šaką tipo medyje Dokumento nuoroda, ir ten raskite elementą Prekių ir paslaugų gavimas, pažymėkite šalia jo esantį langelį ir spustelėkite GERAI.

Išsaugokime išorinio apdorojimo failą kietajame diske, kad tai padarytumėte, naudokite meniu Failas -> Išsaugoti, piktograma Sutaupyti(mėlynas diskelis) arba spartusis klavišas Ctrl + S. Pavadinkime išsaugotą failą „PrintForm“.

Spausdintos formos maketo kūrimas

Pradėkime kurti 1C spausdinimo formos maketą. Maketas tarnauja kaip spausdintos formos išvedimo šablonas, todėl jei norite, kad jūsų atspausdinta forma atrodytų gerai, turėtumėte į tai atkreipti dėmesį.

Pridėkime naują išdėstymą išorinio apdorojimo metaduomenų medyje, maketavimo kūrimo lange nieko nepakeisime ir spustelėkite mygtuką Paruošta.

Atsidariusiame naujame makete sukursime keletą sričių, reikalingų spausdintai formai rodyti. Visos mums reikalingos išdėstymo sritys bus horizontalios, todėl norėdami sukurti naują sritį, pasirinkite reikiamą išdėstymo eilučių skaičių ir eikite į meniu Lentelė -> Vardai -> Priskirti pavadinimą arba naudokite sparčiuosius klavišus Ctrl + Shift + N, tada laukelyje įveskite regiono pavadinimą. Kurdami išdėstymo sritį, nebijokite suklysti su eilučių skaičiumi, visada galite jas pridėti arba pašalinti. Norėdami ištrinti 1C išdėstymo eilutę, pasirinkite norimą eilutę ir pasirinkite elementą kontekstiniame meniu Ištrinti. Norėdami į maketą įtraukti naują eilutę, pasirinkite bet kurią išdėstymo eilutę ir pasirinkite elementą kontekstiniame meniu Išskleisti.

Išdėstymo antraštės pridėjimas

Pirmiausia sukurkime sritį Kepuraitė, bus rodomi spausdinimo formos antraštės duomenys. Šiai sričiai mums reikės septynių išdėstymo eilučių. Pažymime juos ir, kaip rašiau aukščiau, paspauskite klavišų kombinaciją Ctrl + Shift + N, lauke vardas parašykite "Kepurę" ir paspauskite mygtuką Gerai.

Užpildykime maketo sritį reikalingais duomenimis. Paprastai nė viena spausdinta forma nėra baigta be pavadinimo, todėl sukurkime ją ir savo maketo antraštėje. Kadangi pavadinime be spausdintos formos pavadinimo dar rodysime ir dokumento, iš kurio jis buvo atspausdintas, numerį, makete kaip parametrą nustatysime pavadinimo tekstą. Išdėstymo parametras yra specialiai paskirtas išdėstymo langelis, į kurį galima išvesti įvairius duomenis naudojant integruotą 1C 8 kalbą. Pavadinimas turi būti rodomas per visą spausdintos formos plotį, todėl nuspręskime, kiek išdėstymo langelių užteks, kad galėtume spausdinti ant standartinės gulsčios lapo orientacijos.

Paprastai pakanka trylikos ar keturiolikos išdėstymo langelių, pažymėkite juos pirmoje srities eilutėje Kepuraitė ir sujungti į vieną ląstelę ( Kontekstinis meniu -> Sujungti). Po to dukart spustelėkite gautą didelę langelį ir parašykite parametro pavadinimą, mūsų atveju „TitleText“. Kad įvestas tekstas taptų visaverčiu parametru, dešiniuoju pelės mygtuku spustelėkite langelį ir kontekstiniame meniu pasirinkite elementą Savybės. Ant žymės Išdėstymas susiraskime lauką Užpildymas ir pasirinkite vertę Parametras. Parametrai 1C išdėstyme pažymėti skliausteliuose “<>».

Spausdintos formos antraštė turi išsiskirti tarp kito teksto, todėl dar kartą pasirinkite langelį ir naudokite piktogramas maketo formatavimo skydelyje, kad nustatytumėte teksto lygiavimą Centruota ir šrifto dydis 14.

Po pavadinimo teksto mes jį rodysime srityje Kepuraitė informacija apie organizaciją, sandorio šalį, sandorio šalies sutartį ir prekių gavimo datą. Kadangi visi šie duomenys taip pat paimti iš dokumento, tai irgi įforminsime parametrais. Be to, prieš kiekvieną parametrą turėtumėte parašyti aiškinamąjį tekstą, kad vartotojas galėtų lengvai suprasti, kur yra organizacija, kur yra sandorio šalis ir pan. Visi šie veiksmai yra panašūs į pavadinimo kūrimą, todėl apie juos nesigilinsiu, tiesiog pateiksiu vaizdą, kas turėtų nutikti pabaigoje.

Paveikslėlyje parodyta, kaip išdėstymo parametrai skiriasi nuo įprasto teksto.

Išdėstymo lentelės antraštės pridėjimas

Paskutinis dalykas, kurį turime sukurti šioje išdėstymo srityje, yra lentelės antraštė, kurioje bus rodomi lentelės dalies duomenys Prekės. Lentelei reikalingi stulpeliai aprašyti skyriuje „Problemos pareiškimas“. Taip pat sukursime lentelės antraštę naudodami langelių derinį ir rašydami tekstą (stulpelių pavadinimus). Naudodami įrankį pasirinkite lentelės antraštės kraštus Rėmas, kuris yra išdėstymo formatavimo skydelyje.

Lentelės pridėjimas prie maketo

Sukurkime kitą maketo sritį - Duomenys. Joje bus rodoma lentelės dalies duomenų lentelė Prekės.Šiai sričiai mums reikia tik vienos išdėstymo eilutės. Kad visos lentelės dalies eilutės būtų rodomos spausdintoje formoje, šią sritį užpildysime ir rodysime reikiamą skaičių kartų. Stulpeliai rajone Duomenys turėtų sutapti su lentelės antraštės stulpeliais, todėl ją užpildyti nebus sunku. Vienintelis skirtumas yra srityje Duomenys mums reikia parametrų, o ne tik teksto. Taip pat atkreipkite dėmesį, kad pagal numatytuosius nustatymus skaitmeniniai parametrai formatuojami dešinėje, o teksto – kairėje. Norėdami pasirinkti stulpelius, taip pat turite naudoti įrankį Rėmas.

Poraštės pridėjimas prie maketo

Paskutinė mums reikalinga išdėstymo sritis yra Rūsys. Jame bus rodomos sumos pagal kiekį ir sumą. Kūrimas panašus į srities kūrimą Duomenys, bet papildomai rezultatai turėtų būti paryškinti pusjuodžiu šriftu.

Galutinis rezultatas turėtų būti toks išdėstymas:

Spausdintos formos 1C sukūrimas. Programavimas

Pradėkime programuoti – tai svarbiausias etapas kuriant spausdintą formą. Visų pirma, eikime į išorinį spausdinimo formos objektų modulį, čia mes užprogramuosime. Norėdami tai padaryti, pagrindiniame išorinio apdorojimo lange spustelėkite Veiksmai -> Atidaryti objekto modulį.

Išoriniame spausdinimo formos objekto modulyje turite sukurti eksportavimo funkciją Antspaudas ().

Funkcija Spausdinti() Eksportuoti EndFunction

Atminkite, kad ši funkcija reikalinga išorinėms spausdinimo formoms konfigūracijose naudojant įprastą programą. Visas paskesnis programos kodas, reikalingas atspausdintai formai rodyti, bus įrašytas šios funkcijos viduje.

Pagrindinių kintamųjų inicijavimas

Sukurkime kintamąjį TabDoc, kuriame bus skaičiuoklės dokumentas – būtent tokia atspausdinta forma, į kurią rodysime užpildytas maketo sritis.

TabDoc = naujas lentelės dokumentas;

Į kintamąjį Išdėstymas Gausime savo sukurtą spausdintos formos maketą. Norėdami tai padaryti, naudojame įmontuotą funkciją GetLayout (<ИмяМакета>).

Išdėstymas = GetLayout("Išdėstymas");

Visas maketo sritis paversime kintamaisiais. Norėdami tai padaryti, naudojame išdėstymo metodą GautiArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Antraštė"); AreaData = Layout.GetArea("Duomenys"); AreaFooter = Layout.GetArea("Poraštė");

Spausdintos formos antraštės išvedimas į skaičiuoklės dokumentą

Visi reikalingi kintamieji inicijuojami. Pradėkime pildyti ir rodyti išdėstymo sritis skaičiuoklės dokumente. Pirmiausia užpildykime spausdinamos formos pavadinimą, tam turime įvesti parametrą Pavadinimo tekstas, kurį sukūrėme makete, mums reikalingą tekstą. Norėdami užpildyti parametrų reikšmes, išdėstymo srityje yra specialus rinkinys, vadinamas - Galimybės. Iš kurio per „. galite gauti bet kokį parametrą. Antraštės tekste perkelsime tekstą: „Spausdinta forma“, taip pat dokumento numerį.

Antraštės sritis.Parameters.TitleText = "Spausdinti formą"+LinkToObject.Number;

Panašiai užpildysime ir likusius antraštės parametrus, iš detalių gausime visas jiems reikalingas reikšmes Objekto nuoroda, kuriame yra nuoroda į spausdintiną dokumentą.

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; Antraštės sritis.Parameters.Counterparty Agreement = LinkToObject.Counterparty Agreement;

Užpildyti visi antraštės parametrai, parodysime jį sukurtame skaičiuoklės dokumente, tam naudojame metodą Išvestis (<Область>) .

TabDoc.Output(Antraštės sritis);

Prašymo dėl spausdinto invalidumo rašymas

Pradėkime užpildyti ir piešti plotą Duomenys. Kuriant 1C spausdintą formą taip pat reikia parašyti užklausą, kad gautume lentelės duomenis Prekės ir kainos Nomenklatūros dabartinei datai naudosime Prašymas. 1C 8 užklausos kalba yra panaši į SQL, tiksliau, praktiškai kopijuoja savo operatoriaus SELECT galimybes, tačiau visa užklausa parašyta rusų kalba. Todėl, jei bent jau miglotai esate susipažinęs su SQL, tuomet nesunkiai suprasite 1C 8 užklausos kalbą.

Šioje spausdintoje formoje prašymas bus gana paprastas ir daugelis sakys, kad būtų galima apsieiti ir be jo, tačiau užklausos kalbos žinios ir gebėjimas ją kompetentingai naudoti yra vienas pagrindinių 1C programuotojo įgūdžių. Užklausos leidžia gauti sudėtingus duomenų pavyzdžius naudojant mažiau išteklių, o užklausos tekstas yra daug lengviau suprantamas nei programos kodas, parašytas nenaudojant užklausos (arba ją naudojant minimaliai). Be to, 1C 8 turi labai gerą užklausų dizainerį, leidžiantį interaktyviai surinkti užklausą iš reikalingų lentelių.

Sukurkime kintamąjį, kuriame bus užklausa.

Užklausa = nauja užklausa;

Užklausos tekstą sudarysime naudodami užklausos konstruktorių. Norėdami pradėti, parašykime:

Request.Text = "";

Padėkite pelės žymeklį tarp kabučių ir paspauskite dešinįjį pelės mygtuką. Atsidariusiame kontekstiniame meniu pasirinkite elementą Prašyti konstruktoriaus, tai mums labai padės kuriant 1C spausdinimo formą. Po to atsidarys užklausos kūrėjo langas, kuriame yra daug skirtukų, tačiau mūsų užklausai reikės tik keturių: „Lentelės ir laukai“, „Ryšiai“, „Sąlygos“, „Prisijungimai / slapyvardžiai“.

Mūsų užklausai mums reikės dviejų lentelių: lentelės dalies Prekės dokumentas Prekių ir paslaugų gavimas ir naujausios informacijos apie esamą registro datą momentinę nuotrauką Prekių kainos.

Kairėje dizainerio lango pusėje randame stulpelį Duomenų bazė. Jame yra visų metaduomenų objektų medis, suraskime tuos, kurių mums reikia. Norėdami tai padaryti, atidarykime temą Dokumentacija ir suraskite dokumentą Prekių ir paslaugų gavimas, atidarykime jį ir raskime lentelės dalį Prekės, vilkite jį į užklausos kūrėjo stulpelį Lentelės. Galite vilkti trimis būdais: vilkdami, dukart spustelėdami lentelę arba pažymėdami ją ir spustelėdami mygtuką „>“. Atidarykime giją Informaciniai registrai ir surask ten lentelę KainosNomenklatūra.Shortcut Naujausi, taip pat vilkite jį į stulpelį Lentelės. Mūsų užklausai pakanka šių dviejų lentelių.

Iš gautų lentelių išsirinkime mums reikalingus laukus. Norėdami tai padaryti, stulpelyje Lentelės atidarykime stalą ir raskite laukus: Nomenklatūra, kiekis, kaina, kiekis ir vilkite juos į trečiąjį konstruktoriaus stulpelį - Laukai. Išplėskime lentelę , suraskime lauką Kaina ir taip pat vilkite jį į Laukai.

Mūsų užklausos lentelių ir laukų struktūra yra paruošta, dabar pereikime prie sąlygų. Mums reikia lentelės duomenų Prekės buvo paimti ne iš visų kvitų, o tik iš to, kurį spausdiname. Norėdami tai padaryti, mes nustatysime lentelę sąlygą Prekių gavimasPaslaugosPrekės. Eikime į užklausų kūrėjo skirtuką „Sąlygos“. Stulpelyje Laukai lentelės, kurias pasirinkome anksčiau, yra, tokiai sąlygai mums reikės lauko Nuoroda nuo stalo Prekių ir paslaugų prekių gavimas, Nuvilkime jį į langą Sąlygos.

1C užklausose galite naudoti parametrus, kurie reikalingi duomenims perkelti į užklausą. Pavyzdžiui, jei norime apriboti dokumentų pasirinkimą iki konkretaus dokumento, tada mes galime naudoti parametrą, kad perduotume nuorodą į šį dokumentą į užklausą ir naudotume šį parametrą sąlygoje. Būtent tai ir padarysime savo prašyme.

Po langu Sąlygos pridėjome lauką Nuoroda, pats užklausos kūrėjas sukurs parametrą tuo pačiu pavadinimu ir įdės jį po „=“ ženklo. Jei pageidaujama, šį parametrą galima pervardyti. Prašymo tekste parametrai pažymėti „&“ ženklu, tačiau šiuo atveju tai nėra būtina, nes daroma prielaida, kad antroje sąlygos dalyje yra parametras, tereikia tai atsiminti. Kaip perduoti reikšmę 1C užklausos parametrui, bus aptarta toliau.

Kadangi užklausoje naudojame ne pilną produktų kainų lentelę, o virtualią (šiuo atveju pastarosios gabalėlį), turime nustatyti šios virtualios lentelės formavimo sąlygas, mūsų atveju tai yra terminas ir kainų tipo sąlyga (kainos turi griežtai apibrėžtą kainos tipą yra tas, kuris yra nurodytas kvito dokumente, kurį spausdiname).

Norėdami užpildyti virtualiosios lentelės parametrus, eikite į skirtuką Lentelės ir laukai užklausos konstruktorius, stulpelyje Lentelės pasirinkite lentelę KainosNomenklatūraPjovimasVėliau ir paspauskite mygtuką Virtualios lentelės parinktys, esantis viršuje. Atsidariusiame lange, lauke Laikotarpis turėtumėte nustatyti parametrą, iki kurio bus pereita data, kada bus sumažinta kaina. Mūsų atveju tai bus dabartinė data (tai yra šiandien), todėl parametrą vadinsime „&CurrentDate“. Sąlygų laukelyje rašysime sąlygas kainos tipui, taip pat perduosime parametre, kurį pavadinsime „&TypePrice“. Gauta sąlyga atrodys taip (kur TipasKaina- registruokite matavimą Prekių kainos):

Kainos tipas = &Kainos tipas

Užpildyti virtualios lentelės parametrai, spustelėkite mygtuką Gerai.

Dabar, kai apribojome pasirinkimą tik mums reikalingu dokumentu, sukurkime ryšius tarp užklausų lentelių. Jei to nepadarysite, kainos iš lentelės PricesNomenclatureSliceLast nebus susietos su preke iš kvito. Eikime į skirtuką Jungtys užklausų dizaineris. Sukurkime ryšį visoje srityje Nomenklatūra tarp mūsų dviejų stalų. Norėdami tai padaryti, paspauskite mygtuką Papildyti, lauke 1 lentelė pasirinkite lentelę Prekių gavimasPaslaugosPrekės, o lauke 2 lentelė – PricesNomenclature SliceLast. Ryšio sąlygose pasirinkite laukus Nomenklatūra iš abiejų lentelių.

Taip pat reikia pažymėti, kad užklausos pasirinkime turime gauti visas eilutes iš skirtuko dalies Prekės ir kainas tik tuo atveju, jei jos yra prieinamos esamą dokumento kainos tipo datą. Taigi, lentelės duomenys Prekės yra privalomi, tačiau kainų paskirstymo duomenų nėra. Todėl ryšiuose tarp šių lentelių būtina naudoti vadinamąjį LEFT JOIN, o kairioji (arba reikalinga) lentelė bus Prekių gavimasPaslaugosPrekės, ir teisingą (arba pasirenkamą) PriceNomenclatureSliceLast. Kad kairysis užklausų lentelių sujungimas veiktų taip, kaip aprašiau aukščiau, turite pažymėti langelį Visi po lauko 1 lentelė.


Prašymas beveik paruoštas, belieka šiek tiek padirbėti su lauko slapyvardžiais. Eikime į žymę Sąjungos / slapyvardžiai ir nustatykite lauko slapyvardį Kainos Nomenklatūra Slice Naujausias.Kaina. Slapyvardis bus - KainaŠiandien, jis reikalingas, kad sutaptų užklausos pasirinkimo laukų pavadinimai ir parametrų pavadinimai spausdintos formos makete.

Užklausų kūrėjo darbas baigtas, spustelėkite Gerai. Kai dizainerio langas užsidarys, pamatysite, kad eilutė su užklausos tekstu yra užpildyta ir atrodo taip:

Request.Text = "SELECT | Prekių gavimasPaslaugosProduktai.Nomenklatūra, | Prekių gavimasPaslaugosProduktai.Suma, | Prekių gavimasPaslaugosProduktai.Kaina, | Prekių gavimasPaslaugųProduktai.Kiekis, | FKainų gavimas.Kainų gavimas.Ikipaskolos data | PrekėsPaslaugos.Prekės AS Kvitas ProduktaiPaslaugosProduktai |. KAIRĖS PRIJUNGIMAS

Prašymo vykdymas

Perduokime reikalingus parametrus užklausai, tam naudosime užklausos metodą SetParameter(<ИмяПараметра>,<Значение>). Norėdami gauti dabartinę datą, naudokite įtaisytąją funkciją Dabartinė data (), jis grąžina kompiuterio datą ir laiką.

Vykdykime užklausą, kad gautume pavyzdį su reikalingais duomenimis. Norėdami tai padaryti, pirmiausia naudokite užklausos metodą Vykdyti (), o tada metodas Pasirinkite ().

Select = Query.Run().Select();

Atspausdintos formos lentelės pildymas

Dėl to kintamajame Pavyzdys bus užklausos rezultatų pasirinkimas, galite naršyti jį naudodami metodą Kitas(), o norint pereiti visą reikalą, reikia kilpos Ate. Dizainas bus toks:

Nors Select.Next() Loop EndLoop;

Būtent šioje kilpoje užpildysime ir parodysime išdėstymo sritį Duomenys. Bet pirmiausia inicijuokime du skaitinio tipo kintamuosius. Juose mes surinksime sumas pagal kiekį ir sumą, kurią turime rodyti srityje Rūsys.

Bendra suma = 0; TotalQuantity = 0;

Kilpos viduje užpildysime plotą Duomenys duomenis iš dabartinio pasirinkimo elemento į kintamuosius Visas kiekis Ir TotalQuantity pridėkite sumos ir kiekio reikšmes ir galiausiai parodykite sritį skaičiuoklės dokumente naudodami mums jau žinomą metodą Išvestis (). Kadangi mūsų užklausos laukų pavadinimai visiškai sutampa su srities parametrų pavadinimais Duomenys, tada užpildymui naudosime įmontuotą procedūrą FillPropertyValues(<Приемник>, <Источник>), kuris kopijuoja nuosavybės vertes<Источника>į nuosavybes<Приемника>.

Nors Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDoc.Output(AreaData); EndCycle;

Spausdintos formos poraštės išvedimas į skaičiuoklės dokumentą

Belieka užpildyti ir parodyti paskutinę maketo sritį - Rūsys. Duomenis pildymui jau paruošėme, pildymas ir išėmimas vykdomi pagal tą pačią schemą.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

Skaičiuoklės dokumentas yra pilnai užpildytas, belieka jį parodyti ekrane, kad vartotojas galėtų peržiūrėti atspausdintą formą ir prireikus ją atsispausdinti. Tačiau įprastose 1C 8 konfigūracijose specialių modulių procedūros yra atsakingos už išorinių spausdintų formų išvedimą. Todėl pakanka grįžti iš funkcijos Antspaudas () užpildytas skaičiuoklės dokumentas.

Grąžinti TabDoc;

Šiuo metu programavimo etapas baigtas ir 1c spausdinimo formos sukūrimas beveik baigtas. Visas funkcijos tekstas Antspaudas ()Čia jo nepateiksiu, galite pažiūrėti spausdinamos formos faile, kurį galite atsisiųsti straipsnio apačioje.

Spausdintos formos 1C sukūrimas. Automatinės registracijos parinktys

Prijungiant išorinę spausdinimo formą prie duomenų bazės, sistema automatiškai nenustato, kuriam dokumentui ar žinynui skirta spausdinimo forma, ją reikia pasirinkti rankiniu būdu. Ir jei spausdintą formą parašė kitas asmuo, o jums pavesta tik ją susieti, pasirinkimas gali tapti dviprasmiškas. Norint išvengti tokių problemų, visose išorinėse spausdintose formose būtina sukurti maketą su automatinio registravimo parametrais. Jei ji sukurta ir teisingai suformatuota, sistema automatiškai nustato, kuriam dokumentui ar žinynui skirta spausdinta forma.

Tai daroma taip:

  • Išorinio apdorojimo metu sukuriame naują maketą. Mes tai vadiname „Settings_Auto-Registration“ (svarbu nesuklysti!).
  • Pirmajame maketo langelyje rašome Dokumentacija.(arba Katalogai.) ir dokumento, prie kurio reikia prijungti spausdintą formą, pavadinimą.

Išorinės spausdinimo formos prijungimas prie pagrindo

  • Paleiskite 1C 8 režimu Bendrovė;
  • Eikite į meniu Paslauga -> Papildomos ataskaitos ir apdorojimas -> Papildomos išorinės spausdintos formos;
  • Spustelėkite mygtuką Papildyti;
  • Atsidariusiame lange spustelėkite piktogramą Pakeiskite išorinį apdorojimo failą;
  • Jei sukūrėte automatinės registracijos parametrus, sutinkame juos naudoti;
  • Jei nesukūrėte automatinės registracijos parametrų, tada lentelės dalyje Spausdinimo plokštės priedas pridėti reikiamą dokumentą ar žinyną;
  • Paspausk mygtuką GERAI.

Po to išorinė spausdinimo forma bus pasiekiama meniu Antspaudas dokumentas Prekių ir paslaugų gavimas. Dabar 1C spausdintos formos sukūrimas gali būti laikomas baigtu.

Gyvenimas tęsiasi, keičiasi teisės aktai, kūrėjas išleidžia konfigūracijos atnaujinimus ir vėl turime pasirinkimą: įdiegti naujinimą patys arba vėl skambinti programuotojui, kad „įdiegtų naują leidimą“...

Susipažinkime su spausdinimo formų keitimo nekeičiant konfigūracijos mechanizmu.


Kiekvieno 1C naudojančio buhalterio praktikoje kada nors iškildavo poreikis patiems keisti konfigūraciją: vieni pakoregavo kainos ar sumos tikslumą sąskaitoje, kiti įdėjo logotipą ir pakoregavo sąskaitos išvaizdą. Viskas būtų gerai, bet labai daug tokių pakeitimų susikaupia laikui bėgant ir atėjus laikui atnaujinti leidimą iškyla dilema: arba pamesti visus atliktus pakeitimus, arba iškviesti programuotoją, kad perkeltų visus pakeitimus į naują (iš kursai už papildomą mokestį). Kaip būti? Norėdami kažkaip supaprastinti konfigūracijų atnaujinimą, kūrėjai sukūrė naują mechanizmą: „Išorinis apdorojimas, spausdintos formos, lentelių dalių užpildymo apdorojimas“. Šiandien apžvelgsime tik dalį šio mechanizmo – spausdinimo formas.


Bet kurį dalyką geriausia išmokti pavyzdžiu. Nustatykime sau tokią užduotį: prie konfigūracijos pridėkite galimybę atspausdinti sąskaitą faktūrą (dokumentą „Prekių ir paslaugų pardavimas“) su mūsų įmonės logotipu. Be to, būtina, kad dokumento antraštėje būtų užrašai "tiekėjas" Ir "pirkėjas" buvo paryškinti paryškintu šriftu ir galiausiai dokumento apačioje turi būti vieta saugos tarnybos, suteikusios leidimą siuntimui, parašui.


Pateikiame dvi papildomas sąlygas:

  • Nauja spausdinta forma turėtų pakeisti senąją formą "Sąskaita faktūra"
  • Konfigūracijos pakeisti negalima, nes ateityje norime naudoti automatinį konfigūracijos atnaujinimą

Na, kokia užduotis? Atrodo per sudėtinga? Na, kuo jis sudėtingesnis, tuo įdomesnis ir tuo labiau norisi jį išspręsti. Tada kibk į darbą.


Mes paleidžiame savo duomenų bazę konfigūratoriaus režimu. Atidarykite konfigūraciją pagrindiniame meniu pasirinkę komandą „Konfigūracija > Atidaryti konfigūraciją“. Pačios konfigūracijos jokiomis aplinkybėmis nekeisime. Naudosime kaip prototipą. Čia atliksime pagrindinį darbą, bet redaguosime išorinį apdorojimą. Išorinį apdorojimą sukuriame komanda pagrindiniame meniu „Failas > Naujas“. Dokumento tipo pasirinkimas „Išorinis apdorojimas“. Pirmajam apdorojimui nustatykime pavadinimą "Firmos sąskaita faktūra"


Svarbu! Apdorojimo pavadinime neturi būti tarpų, kaip ir kintamųjų pavadinimuose.


Dabar padarykime šiek tiek "plagiatas". Nukopijuokime maketą "Sąskaita faktūra" iš dokumento „Prekių ir paslaugų pardavimas“. Norėdami tai padaryti, rasime jį filiale "Dokumentacija" konfigūracijos medis. Išplėskite šią giją spustelėdami piktogramą «+» ir rasti mums reikalingą išdėstymą "Sąskaita faktūra"(tai yra gijoje "Išdėstymai"). Norėdami nukopijuoti šį objektą, turite pasirinkti šį maketą medyje ir paleisti komandą „Redaguoti > Kopijuoti“(tas pats veiksmas vyksta su deriniu CTRL + C). Dabar pereikime prie mūsų sukurto apdorojimo, pasirinkite etiketę medyje "Išdėstymai" ir pagrindiniame meniu pasirinkite elementą - „Redaguoti > Įklijuoti“ (CTRL+V). Rezultatas turėtų atrodyti kaip 1 pav.


Dabar dukart spustelėkite, kad atidarytumėte išdėstymą.

Kas yra "išdėstymas"

Pakalbėkime keletą žodžių apie išdėstymo tikslą.

Išdėstymas- saugykla "Statybiniai blokai", sritys, iš kurių, kaip iš plytų, statomas lentelinis dokumentas, kurį esame įpratę vadinti spausdinta forma. Sritys apibrėžiamos naudojant horizontalias ir vertikalias atkarpas arba jų sankirtas. Mūsų makete yra tik horizontalios dalys: „Antraštė“, „Tiekėjas“, „Pirkėjas“, „Lentelės antraštė“, „Eilutė“ (žr. 2 pav.). Sritis yra ląstelių rinkinys. Kaip ir MS Excel, langelius galima sujungti, keisti teksto ir fono spalvas, šriftus ir pan. Visus langelio nustatymus galima peržiūrėti ir keisti langelio ypatybių lange. Nustatymų langą galite iškviesti dešiniuoju pelės mygtuku spustelėdami langelį ir pasirinkę kontekstinio meniu elementą "Ypatybės"(tas pats rezultatas pasiekiamas sparčiuoju klavišu Alt + Enter).


Ląstelėje gali būti viena iš trijų tipų reikšmių:

  1. tekstą– tokio tipo reikšmė bus išspausdinta ta pačia forma;
  2. parametras– šio tipo langelyje yra kintamojo, kurio reikšmė bus spausdinama, pavadinimas.
  3. mėginys– šio tipo ląstelės yra pirmosios ir antrosios parinkčių derinys. Ląstelėje gali būti tekstas ir kintamieji. Kad programa atskirtų tekstą nuo kintamojo, kintamieji turi būti pateikti laužtiniuose skliaustuose: "Šiandien yra [data]".

Svarbu! Lentelės redaktorius rodo antrojo ir trečiojo tipo langelių reikšmes trikampiuose skliaustuose. 2 paveiksle yra langelis su tekstu "Pirkėjas"- atrodo kaip tekstas ir langelio dešinėje "Pirkėjo pristatymas"- parametras.

Kodėl aš visa tai sakau? Dabar žinote, kuriose ląstelėse galite lengvai pakeisti turinį, o kuriose nepageidautina nieko keisti, nes turėsite pakeisti spausdinimo algoritmą.

Dabar grįžkime prie savo užduoties. Sukūrėme apdorojimą, nukopijavome maketą ir esame pasirengę jį modifikuoti, kad tiktų sau. Pirma, pažvelkime į tai atidžiau.

Kas įtraukta į spausdinimo maketą

Visų dokumentų išdėstymo struktūra labai panaši. Atidžiai išnagrinėję vieną dokumentą, galime susidoroti su kitais. Pirmas skyrius "Pavadinimas". Kai rodomas šis skyrius, bus sugeneruota dokumento antraštė, kurią sudaro tipas, data ir dokumento numeris. Po jo seka skyriai „Tiekėjas“ ir „Pirkėjas“, kuriame programa rodys informaciją atitinkamai apie tiekėją ir pirkėją. Kitas yra įdomesnis skyrius "Papildoma informacija", kurią kūrėjai naudoja norėdami pateikti kitą informaciją dokumente, pavyzdžiui, informaciją apie sutartį su jos numeriu ir data. Šios skilties ypatumas yra tas, kad jis gali būti rodomas daug kartų ir kiekvieną kartą joje gali būti skirtinga informacija. Ką tiksliai spausdinti ir kada aprašyta spausdinimo algoritme.

Tai užbaigia dokumento antraštę. Po antraštės paprastai yra lentelės skyrius. Įdomu tai, kad išdėstymas aprašo dvi lentelės dalies rodymo parinktis: "Lentelės antraštė", "Styga" ir "Antraštės lentelės vietos" Ir "StringPlace". Priklausomai nuo to, ar jūsų stulpelis užpildytas, ar ne "Mest" dokumente bus naudojama pirmoji arba antroji lentelės formos dokumento dalies atvaizdavimo parinktis. Smalsus skaitytojas tikriausiai jau susimąstė: kodėl antraštės išvesties skiltyje "Kaina" Ir "Suma" yra pateikiami trikampiuose skliaustuose, tarsi jie būtų kintamieji? Teisingai – tai kintamieji, kuriuose, priklausomai nuo dokumento nustatymų, bus rodomas užrašas "Kaina", "Kaina su PVM" arba "Kaina be PVM" ir panašiai dėl sumos.

Na, o žemiau makete yra skyreliai, kurių pagalba rodomi dokumento ir parašo rezultatai.

Išdėstymo redagavimas

Būtų gerai, kad logotipas būtų virš informacijos apie tiekėją ir pirkėją. Siūlau redaguoti išdėstymo sritį "Pavadinimas". Būtina sumažinti langelio, kuriame yra turinys, dydį "Pavadinimo tekstas". Ši ląstelė susideda iš kelių sujungtų langelių. Dydžius keičiame taip:

  1. Atsargiai nukopijuokime sujungto langelio turinį "Pavadinimo tekstas"(Norėdami tai padaryti, turite pasirinkti langelį ir naudoti komandą „Redaguoti > Kopijuoti“ arba sparčiuosius klavišus CTRL+C)
  2. Pasirinkę šį langelį, pagrindiniame meniu pasirinkite elementą "Lentelė - sujungti", o tai sukels priešingą efektą – sujungta ląstelė bus padalinta į daugybę originalių langelių
  3. Dabar pažymime mažesnį langelių skaičių – vietoj 2 stulpelio langelio, pradėsime jungti nuo 6 stulpelio, baigsime jį 32 stulpeliu – ir dar kartą spustelėkite mygtuką "Sujungti"
  4. Komanda „Redaguoti > Įklijuoti“ (CTRL+V)įterpti ankstesnio sujungto langelio turinį į naują sujungtą langelį
  5. Mes tiesiog išvalome laisvus langelius 2–5 stulpeliuose (pasirinkite juos ir paspauskite klavišą Delete)

Dabar į laisvą vietą galite įterpti paveikslėlį su logotipu. Norėdami tai padaryti, meniu pasirinkite elementą „Lentelė > Paveikslėliai > Paveikslėlis...“. Raskite failą su mūsų logotipu diske ir spustelėkite „ Gerai“ Dabar perkelkime vaizdą į laisvą vietą. Rezultatas turėtų atrodyti taip, kaip parodyta 3 paveiksle.


Dabar paryškinkime langelių reikšmes paryškintu šriftu "Teikėjas" Ir "Pirkėjas"(4 pav.). Norėdami tai padaryti, suraskite parametrą langelio ypatybėse "Šriftas" ir nustatykite paryškintą stilių.



Ir galiausiai belieka pridėti saugos tarnybos parašą. Šią informaciją paskelbsime skiltyje "Parašai". Norėdami gauti vietos parašams, turite išplėsti skyrių. Pasirinkite 37 eilutę, dešiniuoju pelės mygtuku spustelėkite ją ir pasirinkite "Išplėsti" ir taip du kartus. Vienoje iš pridėtų eilučių įdėsime vietą saugos tarnybos parašui. Dėl to viskas turėtų atrodyti taip, kaip parodyta 5 paveiksle.



Svarbu!Įprastoje konfigūracijoje naudojamos dvi kalbos: rusų ir ukrainiečių. Išdėstymas saugo teksto vaizdavimą abiem kalbomis (ląstelių dizainas yra bendras). Norėdami įvesti mūsų pridėto užrašo ukrainietišką versiją, turite eiti į langelio ypatybes ir lauką "Tekstas" Paspausk mygtuką "Paieška". Atsidarys langas, kuriame galėsite įvesti teksto atvaizdus įvairiomis kalbomis (6 pav.).

Kaip užtikrinti spausdinimą

Taigi, išdėstymas yra paruoštas. Dabar pats laikas dirbti su jo spausdinimo algoritmu.

Kad galėtume neskausmingai integruoti šį išdėstymą į konfigūraciją ir jį naudoti, mūsų sukurtas apdorojimas turi atitikti šias sąlygas:

  1. Apdorojant reikia sukurti rekvizitus "Objekto nuoroda" su tipu "AnyLink"
  2. Apdorojimo modulyje turite sukurti procedūrą "Spausdinti() Eksportuoti" be parametrų ir būtinai nurodykite raktinį žodį " Eksportuoti"

Pirmas punktas reikalingas tam, kad spausdinimo algoritmas žinotų, kur gauti duomenis spausdinimui, o antrasis – pats spausdinimo algoritmas. Išpildykime šias sąlygas.

Lango skydelyje pasirinkite apdorojimo redagavimo langą (7 pav.). Atsidarys langas su mūsų apdorotų objektų medžiu. Filialo pasirinkimas "Rekvizitai" ir paspauskite mygtuką "Papildyti",. Atsidarys atributų savybių langas. Įveskime vardą - "Objekto nuoroda" ir nurodykite tipą "AnyLink". Dabar galime pereiti prie spausdinimo modulio teksto. Mes nerašysime nuo nulio, nukopijuosime jį iš dokumento „Prekių ir paslaugų pardavimas“.



Norėdami tai padaryti, raskite konfigūracijos medį tarp dokumentų „Prekių ir paslaugų pardavimas“, spustelėkite jį dešiniuoju pelės mygtuku ir pasirinkite "Atidaryti objekto modulį"(žr. 8 pav.).



Tai atvers dokumentų modulį. Mums reikia pirmosios funkcijos "Spausdintas dokumentas". Jo tekstas turi būti pasirinktas ir nukopijuotas. Labai patogu paryškinti funkcijos tekstą, kai ji sutraukta, tačiau būtina paryškinti ir po juo esančią eilutę, kitaip rizikuojate nukopijuoti tik pavadinimą.

Žr. 9 pav., mes paryškinome pavadinimą ir eilutę po juo. Po to nukopijuokite jį į mainų sritį. Pagrindinis meniu „Redaguoti > Kopijuoti“ (arba CTRL+C).



Mes įsiminėme tekstą iškarpinėje, dabar vėl pereikime prie apdorojimo "Firmos sąskaita faktūra". Spustelėkite mygtuką „Veiksmai > Atidaryti objekto modulį“(10 pav.).



Įklijuokite nukopijuotą tekstą: „Redaguoti > Įklijuoti“ (arba CTRL+V).

Dabar reikia šiek tiek redaguoti nukopijuotą tekstą, nes jis buvo parašytas spausdinti dokumentą iš paties dokumento, o mes jį renkame iš išorinio apdorojimo. Norėdami tai padaryti, jums reikia:

  1. Pervardykite funkciją į "Spausdinti"
  2. Pakeiskite "Šis objektas"įjungta "Objekto nuoroda"
  3. Pakeiskite "Šis objektas"įjungta "Objekto nuoroda"
  4. Pakeiskite „Organizacijos banko sąskaita“įjungta „Nuoroda į objektą.Organizacijos banko sąskaitą“
  5. Pakeiskite "Produktai. Santrauka"įjungta „LinkToObject.Products.Total“

Šiems veiksmams galite naudoti pagrindinio meniu elementą „Redaguoti > Pakeisti“.

Po to turite patikrinti sintaksę. Tam yra stebuklingas derinys: CTRL + F7. Dėl to turėtų pasirodyti šis pranešimas: "Jokių sintaksės klaidų nerasta!"

Na, tuo mes užbaigėme visus nešvarius darbus. Dabar savo darbo rezultatus galime išsaugoti, pavyzdžiui, faile „BrandedInvoice.epf“. Norėdami tai padaryti, turite suaktyvinti šio apdorojimo langą ir išsaugoti jį naudodami pagrindinį programos meniu „Failas > Išsaugoti kaip...“. Apdorojamo failo pavadinimas – „BrandedInvoice.epf“(jis bus siūlomas pagal numatytuosius nustatymus). Galite laikinai išsaugoti jį darbalaukyje, kad vėliau galėtumėte jį rasti greičiau.

Svarbu! Kaip matėte, mes neatlikome jokių konfigūracijos pakeitimų. Atliekant visus aukščiau aprašytus veiksmus, jums net nereikia jo pašalinti iš palaikymo (tai yra, įgalinti galimybę keisti).

Išorinio apdorojimo prijungimas prie konfigūracijos

Dabar galime prijungti apdorojimą prie sąskaitos faktūros. Norėdami tai padaryti, paleiskite režimu. Eikite į meniu "Paslauga", kur yra trys su mechanizmu susiję punktai „Išorinis apdorojimas, blankų spausdinimas, lentelių dalių pildymo apdorojimas“. Mūsų atveju mums reikia tik prekės „Išorinės spaudos formos“(žr. 11 pav.).



Tai atvers katalogą. „Išorinis apdorojimas“, su pasirinkimu pagal tipą "spausdintos formos". Jame bus saugomas visų išorinių spausdintų formų sąrašas, nurodant, kuriems dokumentams jos skirtos ir kokiais atvejais jas reikia rodyti.



Svarbu! Pats apdorojimas bus saugomas duomenų bazėje kartu su kitais duomenimis, tai yra, išsaugojus apdorojimą duomenų bazės viduje, mums nereikės išorinio failo.

Turime sukurti naują elementą kataloge. Spustelėkite Įdėti. Dabar pažvelkime į elemento turinį. Į pavadinimą įtraukiame prasmingą trumpą šios formos esmės aprašymą, pavyzdžiui, „Įmonės sąskaita faktūra“. Kaip ir bet kuris kitas katalogas, jis taip pat turi kodą. Palikime jį kaip numatytąjį. Tipo atributas užpildomas pagal numatytuosius nustatymus ir negali būti redaguojamas – "Spausdinimo forma". Ir paskutinis antraštės elementas yra komentaras. Čia, kaip įprasta, yra daugiau informacijos apie spausdinimo formos paskirtį. Be antraštės, šio katalogo elementai turi dvi žymes. Antrajame pateikiama informacija apie prieigos teisių prie šio apdorojimo apribojimą. Ši tema nepatenka į šio straipsnio taikymo sritį (apie šį ir kitus prieigos teisių nustatymus kalbėsime nekeičiant konfigūracijos vienoje iš būsimų leidimų).

Pažvelkime atidžiau į pirmąjį skirtuką.

Skirtuke yra keturi stulpeliai. Objekto vaizdavimas– dokumento tipas, kuriam norėtume naudoti savo spausdinimo formą,

Pasirinkimas– sąlyga, kuriai esant ši spausdinta forma turėtų būti prieinama. Pavyzdžiui, perkūrėme spausdintą sąskaitos faktūros formą ir išvertėme į anglų kalbą. Ir mes norime klientams iš aplanko "europietiškas" vietoj standartinės spausdintos formos "Pardavimo sąskaita faktūra" Buvo išspausdinta nauja forma anglų kalba. Norėdami tai padaryti, galite naudoti stulpelį "Pasirinkimas". Tokio pasirinkimo pavyzdys parodytas 13 pav.



Tačiau mūsų užduotyje atrankos nereikia.

Spausdinamas formos failas– nurodo failą, iš kurio reikia maketuoti ir spausdinti. Šiame langelyje turite pasirinkti failą, kurį išsaugojome darbalaukyje.

Keičiama spausdinimo plokštė– jei norime, kad mūsų sukurta spausdinta forma pakeistų vieną iš standartinių šiam dokumentui, tuomet reikia nurodyti, kurią reikia pakeisti. Jei nėra ką pasirinkti, atsiras papildoma spausdinta forma.

Mūsų atveju reikia "Firmos sąskaita faktūra" buvo atspausdinta vietoj įprastos sąskaitos faktūros. Norėdami tai padaryti, pasirinkite šiame lauke "Pardavimo sąskaita faktūra".

Dabar išsaugokime šį elementą. Ir atidarykite bet kokią sąskaitą.

Tai turėtų atrodyti taip, kaip parodyta 14 paveiksle.



Na, tai užbaigia užduotį, kurią sau išsikėlėme straipsnio pradžioje. Tikime, kad mums pavyko parodyti galimybes, kurias vartotojui atveria išorinio apdorojimo mechanizmo naudojimas.

Norėdami sustiprinti savo įgūdžius, galite pabandyti savarankiškai pridėti prie konfigūracijos dokumento "Prekių ir paslaugų gavimas" papildomą spausdintą formą "Į sandėlį", kuri kartotų įprastą sąskaitą faktūrą, bet be kainų ir sumų, taip pat yra laukeliai priimtinam kiekiui įvesti.

Apsvarstykime galimybę parašyti paprasčiausią spausdintą formą 1s 8,1–8,2 naudojant konfigūracijos pavyzdį Įmonės apskaita 2.0. Tarkime, kad reikia parašyti išorinę spausdintą dokumento formą: rodyti pagrindinius dokumento duomenis, taip pat iš lentelės dalies Prekės: nomenklatūra, kaina, kiekis ir suma.

Gautą pavyzdį galite atsisiųsti iš .

Konfigūratoriuje 1C įmonės 8 sukurti išorinį apdorojimą ( Failas->Naujas->Išorinis apdorojimas), nustatykite pavadinimą, sukurkite reikiamus išorinės spausdintos formos duomenis Objekto nuoroda su tipu „DocumentLink“ prekių ir paslaugų pardavimas.

Spausdintos formos maketo kūrimas

Pridėkite naują išdėstymas, palikite išdėstymo tipą skaičiuoklės dokumentas. Makete sukuriame tris sritis: Antraštė, duomenys Ir Rūsys. Tai galima padaryti pasirinkus reikiamą eilučių skaičių ir spustelėjus meniu Lentelė->Vardai->Priskirti pavadinimą (Ctrl+Shift+N).

Po to mes pradedame dėti tekstą ir parametrus srityse. Įdėsime jį į antraštę spausdintos formos pavadinimas, dokumento numeris Ir organizacija, taip pat nubrėžkite lentelės antraštės ribas ir parašykite stulpelių pavadinimus. Kurdami parametrą langelio ypatybėse, skirtuke Layout turėtumėte nustatyti ypatybę Užpildymas prasme Parametras.

Teritorijoje Duomenys sukurkime parametrus, rodančius eilutes lentelės skyriuje ( Nomenklatūra, kaina ir tt), ir rajone Rūsys sumos pagal kiekį ir sumą.

Programavimas

Eikime į spausdinimo formos objekto modulį Veiksmai->Atidaryti objekto modulį.

Ten sukurkime eksporto funkciją, kuri yra privaloma spausdintoms formoms. Antspaudas ().

Funkcija Spausdinti () Eksportuoti EndFunction

Funkcijoje sukursime kintamąjį skaičiuoklės dokumentas, į kurią bus išvesta spausdinta forma, gauname išdėstymas Ir išdėstymo zonos.

TabDoc = naujas lentelės dokumentas; Išdėstymas = GetLayout("Išdėstymas" ); HeaderArea = Layout.GetArea("Antraštė" ); AreaData = Layout.GetArea("Duomenys" ); AreaFooter = Layout.GetArea("Poraštė" );

Užpildome parametrus skrybėlės ir atneškite į skaičiuoklės dokumentas.

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(Antraštės sritis);

Norėdami gauti lentelės eilutes Prekės mes naudojame prašymą.

Užklausa = nauja užklausa; Request.SetParameter("Link", ObjectLink); Query.Text = "PASIRINKITE | Prekių ir paslaugų Prekių pardavimas, Nomenklatūra. | Prekių ir paslaugų Prekių kiekis, | Prekių ir paslaugų Prekių pardavimo kaina, | Prekių ir paslaugų pardavimas Prekių kiekis|NUO | Prekių ir paslaugų pardavimo dokumentas. Kaip parduoti prekes ir paslaugas|KUR | Prekių ir paslaugų prekių pardavimas Nuoroda = &Nuoroda";

Išsamią informaciją perduodame užklausos parametrui Objekto nuoroda, nurodyti sąlygoje KUR, kad mums reikia duomenų tik iš dokumento, iš kurio gauname spausdintą formą. Norėdami gauti pavyzdinę užklausą, pirmiausia ją vykdome ir tada pasirenkame eilutes.

Select = Query.Run().Select();

Toliau kilpoje užpildome ploto parametrus Duomenys kiekvienai dokumento pasirinkimo eilutei ir rodyti juos skaičiuoklės dokumentas. Taip pat apskaičiuojame bendras kilpos vertes kiekiai Ir sumos. Kiekvieno parametro atskirai neužpildysime, o naudosime procedūrą Užpildykite inPropertyValues((<Приемник>, <Источник>) pasaulinis kontekstas, jis kopijuoja nuosavybės vertes <Источника> į nuosavybes <Приемника> . Suderinimas atliekamas pagal nuosavybės pavadinimus. Daugiau apie tai galite perskaityti sintaksės asistentas 1C Enterprise 8.

BendraSuma = 0; Visas kiekis = 0; Nors Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDoc.Output(AreaData); EndCycle ;

Užpildykite ir parodykite sritį Rūsys.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

Užpildyto skaičiuoklės dokumento grąžinimas iš funkcijos Antspaudas ().

grąžinti TabDoc;

Jei naudojate vieną iš standartinių konfigūracijų, tada grąžinkite skaičiuoklės dokumentą 1C ekrane bus rodoma atspausdinta forma. Taip pat išvesties galite naudoti skaičiuoklės metodą. Rodyti().

5. Spausdintos formos prijungimas prie dokumento

IN standartinės konfigūracijos 1C 8 Yra išorinių spausdintų formų registravimo katalogas Išorinis apdorojimas. Norėdami prisijungti, eikite į meniu įmonės režimu Paslauga->Papildomos ataskaitos ir apdorojimas->Papildomos išorinės spausdintos formos.

Pridėkite naują katalogo elementą, įkelkite spausdintą formą iš disko ir pasirinkite dokumento tipą.

Dabar dokumente Prekių ir paslaugų pardavimas Bus rodomas naujas spausdinimas.

Automatinis spausdintos formos registravimas

Norėdami užtikrinti, kad jungiant spausdinimo formą nereikėtų rankiniu būdu pasirinkti dokumento tipo, galite konfigūruoti automatinė registracija. Norėdami tai padaryti, pridėkite naują išdėstymą ir paskambinkite Nustatymai_Automatinis registravimas(tai vienintelis būdas) ir pirmoje jo langelyje rašome Dokumentacija.<Наименование документа> (arba Katalogai.<Наименование справочника> ).

Dabar, jungiant spausdinimo formą, mūsų bus paprašyta naudoti automatinės registracijos parametrai.

Kaip žinoma - be popieriaus tu... joks rimtas verslas neapsieina be. O kai sakome, kad 1C turi kažkokius elektroninius dokumentus, iškart kyla klausimas, kaip juos atspausdinti popierine forma.

Elektroninio dokumento 1C spausdinimo procesas vadinamas spausdinimo forma 1C.

Kiekvienas dokumentas gali turėti kelias 1C atspausdintas formas. Pavyzdžiui, dokumentas Prekių ir paslaugų pardavimas (t.y. pardavimas) spausdinamas 1C spausdintomis formomis: TORG-12, Sąskaita, Važtaraštis, Suteiktų paslaugų pažyma ir pan.

1C spausdintos formos esmė yra šablonas (pvz., Excel dokumentas), kuriame nurodomi kintamieji. Spausdinimo proceso metu kintamieji pakeičiami tekstu iš elektroninio dokumento. Šablonas paprastai saugomas konfigūracijoje.

Standartinės 1C spausdintos formos keitimo problema yra ta, kad paprastai nepatartina keisti standartinės konfigūracijos, kitaip ją bus sunkiau atnaujinti. Todėl buvo pradėti iš naujo išrasti įvairūs išorinių 1C spausdinimo formų naudojimo būdai.

Išorinė 1C spausdinimo forma yra spausdinimo šablonas, kuris saugomas kažkaip atskirai nuo pačios konfigūracijos.

Tačiau visa tai yra teorija. Kaip susikurti savo spausdintą formą? O dar geriau – kaip pakeisti esamą?

Kaip spausdinamas 1C dokumentas

Norėdami spausdinti bet kurį 1C dokumentą (kurį galima atspausdinti), turite spustelėti dokumento mygtuką Spausdinti. 1C pasiūlys iš sąrašo pasirinkti 1C spausdintą šio dokumento formą.

Spausdinimo mygtuko kairėje paprastai yra greitos prieigos mygtukas prie paskutinės pasirinktos 1C spausdinimo formos.

Spausdinimo rezultatas atrodo taip. Norėdami atspausdinti jį spausdintuvu, turite įdėti žymeklį į 1C spausdinimo formą, paspausti Ctrl+P arba spausdintuvo mygtuką mygtukų skydelyje arba meniu Failas/spausdinti.

Spausdinimo nustatymai (paraštės, lapo orientacija ir kt.) pateikiami meniu Failas/puslapio sąranka. Taip pat galite konfigūruoti vartotojo nustatymus, kad būtų galima spausdinti tiesiai į spausdintuvą.

Iš kur atsiranda šis spausdinimas?

Kur yra 1C spausdinta forma?

Eikime į konfigūratorių. Konfigūracijos lange raskite reikiamą dokumentą. Išplėskime jo Layouts šaką. Būtent jie spausdinami virsta 1C spausdinimo forma.

Tačiau to nepakaks – mums buvo pasiūlyta spausdinant rinktis kur kas daugiau variantų. Faktas yra tas, kad daugelis 1C spausdintų formų maketų yra paslėpti kitoje vietoje.

Grįžkime į 1C konfigūracijos lango viršų. Atidarykime skyrių „Bendra“, tada – „Bendrųjų išdėstymų“ šaką. Čia yra dauguma maketų. Tai ypač pasakytina apie valstybės reguliuojamas spausdintas formas 1C - TORG 12, Sąskaitą faktūrą ir kt.

Beje, nesunku pastebėti, kad pamatysite kelis TORG12 arba sąskaitos faktūros maketus. Kodėl? Tai lengva paaiškinti. Įstatymai ir reikalavimai periodiškai keičiasi. Tačiau negalime tiesiog pakeisti to paties išdėstymo – ir jei turime spausdinti dokumentą iš ankstesnės datos nei pakeitimo data. Todėl daromi keli maketai ir, priklausomai nuo dokumento datos, naudojamas tinkamas.

Bet tai dar ne viskas! Taip pat yra išorinių išdėstymų. Kur jie saugomi?

Grįžkime į 1C Enterprise režimą. Naudotojo meniu su administravimo teisėmis Operacijos/katalogai pasirinkite Išorinio apdorojimo katalogą.

Šio katalogo eilutės, turinčios formą Spausdinimo forma, prideda dokumento spausdinimo parinktis, nurodytas lentelėje Spausdinimo formos nuosavybė (paveikslėlyje tai Prekių ir paslaugų pardavimas).

Kad tai veiktų, turite atlikti išorinį apdorojimą, kurio objekto modulyje, pavadintame Eksportuoti, yra procedūra Print(), kuri organizuoja spausdinimo procesą.
Bet mes einame į priekį. Pirmiausia pažiūrėkime, kaip organizuojamas 1C spausdinimo formos išdėstymas.

Spausdintos formos 1C maketas

1C spausdinimo formos išdėstymas atrodo taip.

Kaip matote, jis yra padalintas į blokus. Blokai gali būti horizontalūs (pavadinimas kairėje) arba vertikalūs (pavadinimas viršuje).

Pats maketas toks, koks yra, nespausdinamas. Spausdinami atskiri blokai. Programuotojas spausdinimo apdorojimo procedūroje nurodo blokų tvarką ir kiekvieno bloko pakartojimų skaičių. Rezultatas yra atspausdinta forma.

Norėdami priskirti sritį, pasirinkite kelias eilutes (arba kelis stulpelius) ir meniu pasirinkite Lentelė/Vardai/Priskirti pavadinimą. Norėdami pašalinti, taip pat yra komanda Pašalinti pavadinimą.

Pavadinimas reikalingas, kad sritį būtų galima pasiekti iš programos kodo. Pavadinimą galima priskirti ne tik eilutėms ar stulpeliams, bet ir tiesiog kelioms ląstelėms. Norėdami tai padaryti, pasirinkite langelius ir pasirinkite tą patį meniu.

Tačiau pagal numatytuosius nustatymus pasirinktiniai langelių pavadinimai nerodomi. Norėdami juos pamatyti, pasirinkite meniu punktą Lentelė/Vardai/Rodyti pavadintus langelius.

Taigi, šiandien sužinojome, kad 1C spausdinta forma formuojama naudojant maketą. Išdėstymas susideda iš blokų – sumaniai vadinamų sričių.

Tipiniai (dažniausiai naudojami) blokai spausdinimo plokštėms:

  • Antraštė – rodomas dokumento pavadinimas
  • Eilutė – rodoma viena lentelės eilutė, šis blokas kartojamas tiek kartų, kiek reikia eilučių spausdinti
  • Poraštė – rodoma dokumento pabaiga.

Dabar turime susitvarkyti su