Drukāto veidlapu izvadīšana ar datu pieprasījumu veidlapā "Dokumentu drukāšana" no BSP apakšsistēmas "Druka". Drukāto veidlapu izvadīšana ar datu pieprasījumu formā "Dokumentu drukāšana" no BSP apakšsistēmas "Drukāt" 1c atvērt ārējās drukātās veidlapas formu

💖 Vai tev patīk? Kopīgojiet saiti ar draugiem

Šis raksts jums sīki pastāstīs, kā iesācējs, kuram ir maz zināšanu par 1C 8, var izveidot drukātu veidlapu. Piemēram, ņemsim vienu no visizplatītākajām 1C 8 konfigurācijām - Grāmatvedība 2.0. Drukātas veidlapas izveide 1C rakstīšanas posmi:

  • Ārējās drukas formas faila izveidošana;
  • Drukātas formas maketa izveide;
  • Programmas koda rakstīšana, lai ekrānā parādītu drukātās formas datus;
  • Parametru izveide drukātas veidlapas automātiskai reģistrācijai;
  • Ārējās drukas formas pievienošana pamatnei 1C uzņēmumi.

Drukātas veidlapas 1C izveide. Problēmas paziņojums

Mēs esam nepieciešami konfigurācijā Grāmatvedība 2.0 izveidot dokumenta drukātu veidlapu Preču un pakalpojumu saņemšana. Drukātās veidlapas galvenē parādiet šādus datus:

  • Organizācija;
  • Darījuma partneris;
  • Darījuma partnera līgums;
  • Saņemšanas datums.

Parādiet datus tabulas sadaļā kā tabulu Preces dokumentu. Tabulā jāiekļauj šādas kolonnas:

  • Nomenklatūra;
  • Daudzums;
  • Cena;
  • Summa;
  • Un arī preces cena pašreizējam datumam (pēc cenas veida no dokumenta).

Ārējās apstrādes fails

Pāriesim pie problēmas risināšanas. Vispirms atvērsim 1C 8 režīmā Konfigurators. Tieši šajā režīmā visas izstrādes tiek veiktas 1C 8 platformā. Tagad mums ir jāizveido ārējs apstrādes fails. Lai to izdarītu, noklikšķiniet uz izvēlnes Fails -> Jauns… vai ar jauna faila ikonu.

Atvērtajā logā atlasiet vienumu Ārējā apstrāde.

Nākamais laukā Vārds Jums jāievada ārējās apstrādes nosaukums. Mūsu gadījumā mēs to vienkārši sauksim par “PrintForm” sinonīmu lauks tiks aizpildīts automātiski. Lūdzu, ņemiet vērā, ka laukā Vārds,ārējā apstrāde, nosaukums jāraksta bez atstarpēm vai pieturzīmēm.

Pievienosim ārējās apstrādes atribūtus LinkToObject un atlasiet ierakstiet viņam DocumentLink Preču un pakalpojumu saņemšana. Lai to izdarītu, 1C ārējās apstrādes metadatu kokā atlasiet vienumu Sīkāka informācija un nospiediet pogu Pievienot(poga ar zaļu plusu). Atribūtu rekvizītu logs tiks atvērts ekrāna labajā pusē, laukā Vārds rakstīsim - ReferenceToObject. IN lauks Tips nospiediet pogu ar trim punktiem.

Izvērsīsim zaru tipa kokā DocumentLink, un tur atrodiet elementu Preču un pakalpojumu saņemšana, atzīmējiet izvēles rūtiņu blakus un noklikšķiniet Labi.

Saglabāsim ārējās apstrādes failu cietais disks, šim nolūkam izmantosim izvēlni Fails -> Saglabāt, piktogramma Saglabāt(zilā diskete) vai īsinājumtaustiņu Ctrl+S. Nosauksim saglabāto failu “PrintForm”.

Drukātas formas izkārtojuma izveide

Sāksim veidot 1C drukas formas izkārtojumu. Izkārtojums kalpo par veidni drukas veidlapas izvadei, tādēļ, ja vēlaties, lai jūsu drukas forma izskatītos labi, jums jāpievērš tam uzmanība.

Pievienosim jaunu izkārtojumu ārējās apstrādes metadatu kokā, mēs neko nemainīsim izkārtojuma noformētāja logā un noklikšķiniet uz pogas Gatavs.

Jaunajā izkārtojumā, kas tiek atvērts, izveidosim vairākas drukātās formas attēlošanai nepieciešamās zonas. Visas mums nepieciešamās izkārtojuma zonas būs horizontālas, tāpēc, lai izveidotu jaunu apgabalu, atlasiet vajadzīgo izkārtojuma rindu skaitu un dodieties uz izvēlni Tabula -> Vārdi -> Piešķirt nosaukumu vai izmantojiet īsinājumtaustiņus Ctrl+Shift+N, pēc tam lodziņā ievadiet reģiona nosaukumu. Veidojot izkārtojuma apgabalu, nebaidieties kļūdīties ar rindu skaitu, vienmēr varat tās pievienot vai noņemt. Lai dzēstu 1C izkārtojuma rindiņu, atlasiet vajadzīgo rindiņu un atlasiet konteksta izvēlne punktu Dzēst. Lai pievienotu jauna līnija izkārtojumam atlasiet jebkuru izkārtojuma rindiņu un atlasiet vienumu konteksta izvēlnē Izvērst.

Izkārtojuma galvenes pievienošana

Vispirms izveidosim apgabalu Vāciņš, tiks parādīti drukātās veidlapas galvenes dati. Šai zonai mums būs vajadzīgas septiņas izkārtojuma līnijas. Atlasīsim tos un, kā jau rakstīju iepriekš, nospiediet taustiņu kombināciju Ctrl+Shift+N, laukā Vārds ierakstiet "Cepure" un nospiediet pogu Labi.

Aizpildīsim izkārtojuma apgabalu ar mums nepieciešamajiem datiem. Parasti neviena drukātā veidlapa nav pilnīga bez nosaukuma, tāpēc izveidosim to arī mūsu izkārtojuma galvenē. Tā kā nosaukumā papildus drukātās veidlapas nosaukumam parādīsim arī dokumenta numuru, no kura tas tika izdrukāts, kā parametru iestatīsim virsraksta tekstu izkārtojumā. Izkārtojuma parametrs ir īpaši noteikta izkārtojuma šūna, kurā var izvadīt dažādus datus, izmantojot iebūvēto 1C 8 valodu. Virsrakstam jābūt attēlotam visā drukātās veidlapas platumā, tāpēc izlemsim, cik izkārtojuma šūnu mums pietiks, lai drukātu uz standarta ainavas orientācija lapu.

Parasti pietiek ar trīspadsmit vai četrpadsmit izkārtojuma šūnām, atlasiet tās apgabala pirmajā rindā Vāciņš un apvienot vienā šūnā ( Konteksta izvēlne -> Apvienot). Pēc tam veiciet dubultklikšķi uz iegūtās lielās šūnas un ierakstiet parametra nosaukumu, mūsu gadījumā “TitleText”. Lai ievadītais teksts kļūtu par pilnvērtīgu parametru, ar peles labo pogu noklikšķiniet uz šūnas un konteksta izvēlnē atlasiet vienumu Īpašības. Uz grāmatzīmes Izkārtojums meklēsim lauku Pildījums un atlasiet vērtību Parametrs. Parametri 1C izkārtojumā ir norādīti iekavās "<>».

Drukātās veidlapas nosaukumam ir jāizceļas starp citu tekstu, tāpēc vēlreiz atlasiet šūnu un izmantojiet ikonas izkārtojuma formatēšanas panelī, lai iestatītu teksta līdzinājumu. Centrēts un fonta lielums 14.

Pēc virsraksta teksta mēs to parādīsim apgabalā Vāciņš informācija par organizāciju, darījumu partneri, darījuma partnera līgumu un preču saņemšanas datumu. Tā kā visi šie dati arī ir ņemti no dokumenta, tad arī tos formalizēsim ar parametriem. Turklāt pirms katra parametra ir jāraksta paskaidrojošs teksts, lai lietotājs varētu viegli saprast, kur atrodas organizācija, kur atrodas darījuma partneris utt. Visas šīs darbības ir līdzīgas nosaukuma izveidei, tāpēc es pie tām sīkāk nekavēšos, tikai sniegšu priekšstatu par to, kam beigās jānotiek.

Attēlā parādīts, kā izkārtojuma parametri atšķiras no parastā teksta.

Izkārtojuma tabulas galvenes pievienošana

Pēdējais, kas mums jāizveido šajā izkārtojuma apgabalā, ir tabulas galvene, kurā tiks parādīti tabulas daļas dati Preces. Tabulai nepieciešamās kolonnas ir aprakstītas sadaļā “Problēmas paziņojums”. Mēs arī izveidosim tabulas galveni, izmantojot šūnu kombināciju un rakstot tekstu (kolonnu nosaukumus). Izmantojot rīku, atlasiet tabulas galvenes apmales Rāmis, kas atrodas izkārtojuma formatēšanas panelī.

Tabulas pievienošana izkārtojumam

Izkārtojumā izveidosim citu apgabalu - Dati. Tajā tiks parādīta tabulas daļas datu tabula Preces.Šajā jomā mums ir nepieciešama tikai viena izkārtojuma rinda. Lai visas tabulas daļas rindas parādītu drukātā veidā, šo laukumu aizpildīsim un parādīsim nepieciešamo reižu skaitu. Kolonnas apgabalā Dati jāsakrīt ar tabulas galvenes kolonnām, tāpēc tās aizpildīšana nebūs grūta. Vienīgā atšķirība ir apgabalā Dati mums ir vajadzīgi parametri, nevis tikai teksts. Ņemiet vērā arī to, ka pēc noklusējuma ciparu parametri tiek formatēti pa labi un teksta parametri tiek formatēti pa kreisi. Lai atlasītu kolonnas, jāizmanto arī rīks Rāmis.

Kājenes pievienošana izkārtojumam

Pēdējā mums nepieciešamā izkārtojuma zona ir Pagrabs. Tas parādīs kopsummas pēc daudzuma un summas. Radīšana ir līdzīga apgabala izveidei Dati, bet papildus rezultāti ir jāizceļ treknrakstā.

Gala rezultātam vajadzētu būt izkārtojumam, kas izskatās šādi:

Drukātas veidlapas 1C izveide. Programmēšana

Sāksim programmēt – tas ir svarīgākais posms drukātas formas izveidē. Vispirms ejam uz ārējās drukas formas objektu moduli, šeit mēs ieprogrammēsim. Lai to izdarītu, galvenajā ārējās apstrādes logā noklikšķiniet uz Darbības -> Atvērt objekta moduli.

Ārējās drukas formas objekta modulī ir jāizveido eksportēšanas funkcija Seal ().

Funkcija Drukāt() Eksportēt EndFunction

ņemiet vērā to šī funkcija ir nepieciešama ārējām drukas veidlapām konfigurācijās, izmantojot parasto lietojumprogrammu. Visas turpmākās programmas kods, kas nepieciešams, lai parādītu drukāto veidlapu, tiks ierakstīts šīs funkcijas iekšpusē.

Pamata mainīgo inicializācija

Izveidosim mainīgo TabDoc, kurā būs izklājlapas dokuments – tieši tā ir drukātā forma, kurā parādīsim aizpildītos izkārtojuma laukumus.

TabDoc = jauns TabularDocument;

Uz mainīgo Izkārtojums Mēs iegūsim mūsu izveidoto drukātās veidlapas izkārtojumu. Lai to izdarītu, mēs izmantojam iebūvēto funkciju GetLayout(<ИмяМакета>).

Izkārtojums = GetLayout("Izkārtojums");

Mēs pārveidosim visus izkārtojuma apgabalus mainīgajos. Lai to izdarītu, mēs izmantojam izkārtojuma metodi GetArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Galvene"); AreaData = Layout.GetArea("Dati"); AreaFooter = Layout.GetArea("Kājene");

Drukātas veidlapas galvenes izvadīšana izklājlapas dokumentā

Visi nepieciešamie mainīgie tiek inicializēti. Sāksim aizpildīt un parādīt izkārtojuma apgabalus izklājlapas dokumentā. Vispirms aizpildīsim drukājamās veidlapas nosaukumu, lai to izdarītu Virsraksta teksts, kuru izveidojām izkārtojumā, mums nepieciešamais teksts. Lai aizpildītu izkārtojuma apgabala parametru vērtības, ir īpaša kolekcija ar nosaukumu - Iespējas. No kura caur "." jūs varat iegūt jebkuru parametru. Galvenes tekstā pārsūtīsim tekstu: “Drukāta forma”, kā arī dokumenta numuru.

Header Area.Parameters.HeaderText = "Drukāt veidlapu"+ObjectLink.Number;

Līdzīgi aizpildīsim arī pārējos galvenes parametrus, no detaļām iegūsim visas tiem nepieciešamās vērtības Objekta atsauce, kurā ir saite uz drukājamo dokumentu.

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; Header Area.Parameters.Counterparty Agreement = LinkToObject.Counterparty Agreement;

Visi galvenes parametri ir aizpildīti, mēs to parādīsim mūsu izveidotajā izklājlapas dokumentā, šim nolūkam mēs izmantojam metodi Izvade(<Область>) .

TabDoc.Output(HeaderArea);

Pieprasījuma rakstīšana par drukātu handikapu

Sāksim aizpildīt un zīmēt laukumu Dati. 1C drukātas veidlapas izveide ietver arī vaicājuma rakstīšanu, kas mums ir nepieciešams, lai iegūtu tabulas datus Preces un cenas Nomenklatūras pašreizējam datumam mēs izmantosim Pieprasīt. 1C 8 vaicājumu valoda ir līdzīga SQL, vai drīzāk praktiski kopē tās operatora SELECT iespējas, bet viss vaicājums ir rakstīts krievu valodā. Tāpēc, ja jūs vismaz neskaidri esat iepazinies ar SQL, tad jūs viegli sapratīsit 1C 8 vaicājumu valodu.

Šajā drukātajā formā pieprasījums būs diezgan vienkāršs un daudzi teiks, ka bez tā varētu iztikt, taču vaicājuma valodas zināšanas un prasme to pareizi lietot ir viena no galvenajām 1C programmētāja prasmēm. Vaicājumi ļauj iegūt sarežģītus datu paraugus, izmantojot mazāk resursu, un vaicājuma teksts ir daudz vieglāk saprotams nekā programmas kods, kas rakstīts, neizmantojot vaicājumu (vai ar minimālu tā izmantošanu). Turklāt 1C 8 ir ļoti labs vaicājumu noformētājs, kas ļauj interaktīvi salikt vaicājumu no nepieciešamajām tabulām.

Izveidosim mainīgo, kas saturēs pieprasījumu.

Pieprasījums = jauns pieprasījums;

Mēs sastādīsim pieprasījuma tekstu, izmantojot pieprasījuma konstruktoru. Lai sāktu, rakstīsim:

Request.Text = "";

Novietojiet peles kursoru starp pēdiņām un nospiediet peles labo pogu. Atvērtajā konteksta izvēlnē atlasiet vienumu Pieprasīt konstruktoru, tas mums ļoti palīdzēs 1C drukas veidlapas izveidē. Pēc tam tiks atvērts vaicājuma noformētāja logs, kurā ir daudz cilņu, bet mūsu vaicājumam būs nepieciešamas tikai četras: “Tabulas un lauki”, “Attiecības”, “Nosacījumi”, “Pievienojumi / aizstājvārdi”.

Mūsu vaicājumam mums būs nepieciešamas divas tabulas: tabulas daļa Preces dokumentu Preču un pakalpojumu saņemšana un jaunākās informācijas momentuzņēmums par pašreizējo reģistra datumu Preču cenas.

Dizainera loga kreisajā pusē mēs atrodam kolonnu Datu bāze. Tajā ir visu metadatu objektu koks, atradīsim tos, kas mums nepieciešami. Lai to izdarītu, atvērsim pavedienu Dokumenti un atrodiet dokumentu Preču un pakalpojumu saņemšana, atvērsim un atrodam tabulas daļa Preces, velciet to vaicājumu noformētāja kolonnā Tabulas. Varat vilkt trīs veidos: velkot, veicot dubultklikšķi uz tabulas vai atlasot to un noklikšķinot uz pogas “>”. Atvērsim pavedienu Informācijas reģistri un atrodi tur galdiņu CenasNomenklatūra.ĪsceļšJaunākais, arī velciet to kolonnā Tabulas. Mūsu vaicājumam pietiek ar šīm divām tabulām.

No iegūtajām tabulām atlasīsim vajadzīgos laukus. Lai to izdarītu, kolonnā Tabulas atveram galdu un atrodiet laukus: Nomenklatūra, daudzums, cena, daudzums un velciet tos uz konstruktora trešo kolonnu - Lauki. Paplašināsim tabulu , meklēsim lauku Cena un arī velciet to uz Lauki.

Mūsu pieprasījuma tabulu un lauku struktūra ir gatava, tagad pāriesim pie nosacījumiem. Mums ir nepieciešami tabulas dati Preces netika ņemtas no visām čekiem, bet tikai no tās, kuru drukājam. Lai to izdarītu, mēs uzliksim galdam nosacījumu Preču saņemšanaPakalpojumiPreces. Dodamies uz vaicājumu noformētāja cilni “Nosacījumi”. Kolonnā Lauki iepriekš atlasītās tabulas atrodas, nosacījumam mums būs nepieciešams lauks Saite no galda Preču un pakalpojumu preču saņemšana, Ievelkam to logā Nosacījumi.

1C vaicājumos varat izmantot parametrus, kas nepieciešami datu pārsūtīšanai uz pieprasījumu. Piemēram, ja mēs vēlamies ierobežot dokumentu atlasi ar konkrētu dokumentu, tad varam izmantot parametru, lai pieprasījumam nodotu saiti uz šo dokumentu un izmantotu šo parametru nosacījumā. Tieši to mēs darīsim savā pieprasījumā.

Pēc loga Noteikumi mēs pievienojām lauku Saite, vaicājuma noformētājs pats izveidos parametru ar tādu pašu nosaukumu un ievietos to aiz “=” zīmes. Ja vēlaties, šo parametru var pārdēvēt. Pieprasījuma tekstā parametri ir atzīmēti ar “&” zīmi, taču šajā gadījumā tas nav nepieciešams, jo tiek pieņemts, ka nosacījuma otrajā daļā ir parametrs, jums tas vienkārši jāatceras. Tālāk tiks apspriests, kā nodot vērtību 1C pieprasījuma parametram.

Tā kā pieprasījumā mēs neizmantojam pilnu produktu cenu tabulu, bet gan virtuālu (šajā gadījumā pēdējās šķēle), mums ir jāiestata nosacījumi šīs virtuālās tabulas veidošanai, mūsu gadījumā šī ir nogriešanas datums un cenu veida nosacījums (cenas, kurām ir stingri noteikts cenas veids ir tas, kas norādīts kvīts dokumentā, kuru izdrukājam).

Lai aizpildītu virtuālās tabulas parametrus, dodieties uz cilni Tabulas un lauki vaicājuma konstruktors, kolonnā Tabulas atlasiet tabulu CenasNomenklatūraGriešanaJaunākais un nospiediet pogu Virtuālā galda opcijas, kas atrodas augšpusē. Atvērtajā logā laukā Periods jāiestata parametrs, līdz kuram tiks pārcelts datums, kurā tiks veikta cenas samazināšana. Mūsu gadījumā tas būs pašreizējais datums (tas ir, šodiena), tāpēc mēs saucam parametru “&CurrentDate”. Nosacījumu laukā ierakstīsim nosacījumus cenas veidam, nodosim arī parametrā, ko sauksim par “&TypePrice”. Iegūtais nosacījums izskatīsies šādi (kur TipsCena- reģistrēt mērījumus Preču cenas):

PriceType = &Cenas veids

Virtuālās tabulas parametri ir aizpildīti, noklikšķiniet uz pogas Labi.

Tagad, kad esam ierobežojuši atlasi tikai ar mums nepieciešamo dokumentu, izveidosim savienojumus starp vaicājumu tabulām. Ja tas nav izdarīts, cenas no tabulas PricesNomenclatureSliceLast netiks saistītas ar preci no kvīts. Dosimies uz cilni Savienojumi vaicājumu dizainers. Izveidosim savienojumu visā laukā Nomenklatūra starp mūsu diviem galdiem. Lai to izdarītu, nospiediet pogu Pievienot, laukā 1. tabula izvēlieties tabulu Preču saņemšanaPakalpojumiPreces, un laukā 2. tabula — CenasNomenklatūraSliceLast. Saziņas nosacījumos atlasiet laukus Nomenklatūra no abām tabulām.

Jāņem vērā arī tas, ka vaicājuma atlasē mums ir jāiegūst visas rindas no cilnes daļas Preces un cenas tikai tad, ja dokumenta cenas veidam tās ir pieejamas pašreizējā datumā. Tādējādi tabulas dati Preces ir obligāti, bet cenu sadalījuma dati nav pieejami. Tāpēc attiecībās starp šīm tabulām ir nepieciešams izmantot tā saukto LEFT JOIN, un kreisā (vai nepieciešamā) tabula būs Preču saņemšanaPakalpojumiPreces, un labo (vai neobligāto) PriceNomenclatureSliceLast. Lai vaicājumu tabulu kreisais savienojums darbotos, kā aprakstīju iepriekš, jums ir jāatzīmē izvēles rūtiņa Visi pēc lauka 1. tabula.


Pieprasījums gandrīz gatavs, atliek tikai nedaudz piestrādāt pie lauku pseidonīmiem. Dosimies uz grāmatzīmi Arodbiedrības/Pseidonīmi un iestatiet lauka aizstājvārdu CenasNomenklatūra Šķēle Jaunākā.Cena. segvārda vārds būs - CenaŠodien, tas nepieciešams, lai vaicājuma atlases lauku nosaukumi un parametru nosaukumi drukātās formas izkārtojumā sakristu.

Darbs vaicājumu noformētājā tagad ir pabeigts, noklikšķiniet uz Labi. Pēc noformētāja loga aizvēršanas jūs redzēsiet, ka rinda ar pieprasījuma tekstu ir aizpildīta un izskatās šādi:

Pieprasījums.Teksts = "SELECT | Preču saņemšanaPakalpojumiProdukti.Nomenklatūra, | Preču saņemšanaPakalpojumiProdukti.Summa, | Preču saņemšanaPakalpojumiProdukti.Cena, | Preču saņemšanaPakalpojumiProdukti.Daudzums, | FCenu saņemšanaCenu noformēšana.Līgpieteikuma diena | PrecesServices.Goods AS Kvīts ProduktiPakalpojumiProdukti |. LEFT CONNECTION ReģistrētiesInformācija.CenasNomenklatūra.ŠķēlePēdējais (| &PašreizējaisDatums, Cenas veids = &Cenas veids) AS CenasNomenklatūraSliceLast ON Preču saņemšana.Nr

Pieprasījuma izpilde

Nodosim pieprasījumam nepieciešamos parametrus, šim nolūkam izmantosim pieprasījuma metodi SetParameter(<ИмяПараметра>,<Значение>). Lai saņemtu pašreizējais datums izmantosim iebūvēto funkciju Pašreizējais datums(), tas atgriež datora datumu un laiku.

Izpildīsim vaicājumu, lai iegūtu paraugu ar mums nepieciešamajiem datiem. Lai to izdarītu, vispirms izmantojiet pieprasījuma metodi Palaist (), un tad metode Izvēlēties ().

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

Izdrukātās veidlapas tabulas aizpildīšana

Rezultātā mainīgajā Paraugs būs ietverta vaicājuma rezultātu atlase, varat tajā pārvietoties, izmantojot metodi Nākamais(), un, lai izietu visu, ir nepieciešama cilpa Uz redzēšanos. Dizains būs šāds:

Kamēr Select.Next() Loop EndLoop;

Šajā cilpā mēs aizpildīsim un parādīsim izkārtojuma apgabalu Dati. Bet vispirms inicializēsim divus ciparu tipa mainīgos. Tajos mēs apkoposim kopsummas pēc daudzuma un summas, kas mums jāparāda apgabalā Pagrabs.

Kopējā summa = 0; Kopējais daudzums = 0;

Cilpas iekšpusē mēs aizpildīsim laukumu Dati datus no pašreizējā atlases elementa mainīgajos Kopējā summa Un Kopējais daudzums pievienojiet summas un daudzuma vērtības un, visbeidzot, parādiet apgabalu izklājlapas dokumentā, izmantojot mums jau pazīstamo metodi Izvade(). Tā kā mūsu pieprasījuma lauku nosaukumi pilnībā sakrīt ar apgabala parametru nosaukumiem Dati, tad aizpildīšanai izmantosim iebūvēto procedūru FillPropertyValues(<Приемник>, <Источник>), kas kopē īpašuma vērtības<Источника>uz īpašumiem<Приемника>.

Kaut Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection);

TotalSum = KopējāSumma + Paraugs.Summa;

TotalQuantity = TotalQuantity + Sample.Quantity; Pagrabs TabDoc.Output(AreaData); EndCycle;

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

Izklājlapas dokuments ir pilnībā aizpildīts, atliek tikai to parādīt ekrānā, lai lietotājs varētu apskatīt izdrukāto veidlapu un vajadzības gadījumā to izdrukāt. Bet tipiskās 1C 8 konfigurācijās īpašu moduļu procedūras ir atbildīgas par ārējo drukāto veidlapu izvadi. Tāpēc pietiek ar atgriešanos no funkcijas Seal () aizpildīts izklājlapas dokuments.

Atgriezt TabDoc;

Šajā brīdī programmēšanas posms ir pabeigts un 1c drukas veidlapas izveide ir gandrīz pabeigta. Pilns funkcijas teksts Seal ()Šeit es to nedošu, jūs varat to apskatīt drukājamā formas failā, kuru varat lejupielādēt raksta apakšā.

Drukātas veidlapas 1C izveide. Automātiskās reģistrācijas iespējas

Pieslēdzot datu bāzei ārējo drukas veidlapu, sistēma automātiski nenosaka, kuram dokumentam vai uzziņu grāmatai drukas veidlapa ir jāatlasa manuāli. Un, ja drukāto veidlapu uzrakstīja cita persona, un jums ir tikai uzdots to savienot, tad izvēle var kļūt neskaidra. Lai izvairītos no šādām problēmām, visās ārējās drukātajās formās nepieciešams izveidot izkārtojumu ar automātiskās reģistrācijas parametriem. Ja tā ir izveidota un pareizi formatēta, sistēma automātiski nosaka, kuram dokumentam vai uzziņu grāmatai ir paredzēta iespiestā veidlapa.

Tas tiek darīts šādi:

  • Ārējā apstrādē mēs izveidojam jaunu izkārtojumu. Mēs to saucam par “Settings_Auto-Registration” (ir svarīgi nepieļaut kļūdu!).
  • Izkārtojuma pirmajā šūnā mēs rakstām Dokumenti.(vai Katalogi.) un tā dokumenta nosaukums, kuram jāpievieno drukātā veidlapa.

Ārējās drukas formas pievienošana pamatnei

  • Sāciet 1C 8 režīmā Uzņēmums;
  • Dodieties uz izvēlni Serviss -> Papildu atskaites un apstrāde -> Papildus ārējās drukas formas;
  • Noklikšķiniet uz pogas Pievienot;
  • Atvērtajā logā noklikšķiniet uz ikonas Aizstāt ārējo apstrādes failu;
  • Ja esat izveidojis automātiskās reģistrācijas parametrus, mēs piekrītam to izmantošanai;
  • Ja neesat izveidojis automātiskās reģistrācijas parametrus, tad tabulas daļā Drukas plates piederums pievienot nepieciešamais dokuments vai uzziņu grāmata;
  • Nospiediet pogu Labi.

Pēc tam izvēlnē būs pieejama ārējās drukas forma Zīmogs dokumentu Preču un pakalpojumu saņemšana. 1C drukātās veidlapas izveidi tagad var uzskatīt par pabeigtu.

Apsvērsim iespēju rakstīt vienkāršākajā drukātajā formā 1s 8,1 - 8,2 izmantojot konfigurācijas piemēru Uzņēmuma grāmatvedība 2.0. Pieņemsim, ka dokumentam jāraksta ārēja drukāta forma: jāparāda dokumenta pamatdati, kā arī no tabulas daļas Preces: nomenklatūra, cena, daudzums un summa.

Iegūto piemēru varat lejupielādēt no .

Konfiguratorā 1C uzņēmumi 8 izveidot ārēju apstrādi ( Fails-> Jauns-> Ārējā apstrāde), iestatiet nosaukumu, izveidojiet nepieciešamos datus ārējai drukātajai veidlapai Objekta atsauce ar tipu DocumentLink Preču un pakalpojumu pārdošana.

Drukātas formas izkārtojuma izveide

Pievienojiet jaunu izkārtojumu, atstājiet izkārtojuma veidu izklājlapas dokuments. Mēs izveidojam trīs izkārtojuma zonas: Galvene, dati Un Pagrabs. To var izdarīt, izvēloties vajadzīgo rindu skaitu un noklikšķinot uz izvēlnes Tabula-> Vārdi-> Piešķirt nosaukumu (Ctrl+Shift+N).

Pēc tam apgabalos sākam ievietot tekstu un parametrus. Mēs to ievietosim galvenē drukātās veidlapas nosaukums, dokumenta numurs Un organizācija, kā arī zīmējiet tabulas galvenes robežas un ierakstiet kolonnu nosaukumus. Veidojot parametru šūnas rekvizītos, cilnē Layout ir jāiestata rekvizīts Pildījums nozīmē Parametrs.

Teritorijā Dati izveidosim parametrus rindu parādīšanai tabulas sadaļā( Nomenklatūra, cena utt.), un apgabalā Pagrabs kopsummai pēc daudzuma un daudzuma.

Programmēšana

Dosimies uz drukas formas objektu moduli Darbības-> Atvērt objekta moduli.

Izveidosim tur eksporta funkciju, kas ir obligāta drukātajām veidlapām. Seal ().

Funkcija Drukāt () Eksportēt EndFunction

Funkcijā mēs izveidosim mainīgo priekš izklājlapas dokuments, kurā tiks izvadīta drukātā forma, iegūstam izkārtojumu Un izkārtojuma zonas.

TabDoc = jauns TabularDocument; Izkārtojums = GetLayout("Izkārtojums" ); HeaderArea = Layout.GetArea("Galvene" ); AreaData = Layout.GetArea("Dati" ); AreaFooter = Layout.GetArea("Kājene" );

Aizpildīsim parametrus cepures un atnes to uz izklājlapas dokuments.

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

Lai iegūtu tabulas rindas Preces mēs izmantojam pieprasījumu.

Pieprasījums = jauns pieprasījums; Request.SetParameter("Saite", ObjectLink); Query.Text = "ATLASĪT | Preču un pakalpojumu preču nomenklatūra. | Preču un pakalpojumu preču daudzums, | Preču un pakalpojumu preču pārdošana, cena. | Preču un pakalpojumu pārdošana Preču daudzums|NO | Preču un pakalpojumu pārdošana. Kā pārdot preces un pakalpojumus|KUR | Preču un pakalpojumu preču pārdošana Saite = &Saite";

Mēs nododam informāciju pieprasījuma parametram Objekta atsauce, norādīt nosacījumā KUR, ka mums ir nepieciešami dati tikai no dokumenta, no kura mēs iegūstam drukāto formu. Lai iegūtu vaicājuma paraugu, mēs vispirms to izpildām un pēc tam atlasām rindas.

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

Tālāk cilpā mēs aizpildām apgabala parametrus Dati katrai dokumenta parauga rindai un parādīt tos izklājlapas dokuments. Mēs arī aprēķinām cilpas kopējās vērtības daudzumus Un summas. Mēs neaizpildīsim katru parametru atsevišķi, bet izmantosim procedūru Aizpildiet inPropertyValues((<Приемник>, <Источник>) no globālajā kontekstā, tā kopē īpašuma vērtības <Источника> uz īpašumiem <Приемника> . Atbilstība tiek veikta pēc īpašumu nosaukumiem. Vairāk par to varat lasīt sadaļā sintakses palīgs 1C Enterprise 8.

Kopējā summa = 0; Kopējais daudzums = 0; Kaut Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection);

TotalSum = KopējāSumma + Paraugs.Summa; Pagrabs.

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

TotalQuantity = TotalQuantity + Sample.Quantity; Seal ().

TabDoc.Output(AreaData); EndCycle ;

Aizpildiet un parādiet laukumu Aizpildītā izklājlapas dokumenta atgriešana no funkcijas atgriezt TabDoc; Ja izmantojat kādu no standarta konfigurācijām, tad pēc izklājlapas dokumenta atgriešanas.

1C

ekrānā tiks parādīta izdrukātā veidlapa. Izvadei varat izmantot arī izklājlapu dokumentu metodi. Rādīt() 5. Drukātas veidlapas savienošana ar dokumentu IN standarta konfigurācijas 1C 8 Ir direktorijs ārējo drukāto veidlapu reģistrēšanai.

Ārējā apstrāde

. Lai izveidotu savienojumu, atveriet izvēlni uzņēmuma režīmā Serviss->Papildu atskaites un apstrāde->Papildu ārējās drukātās veidlapas Pievienojiet jaunu direktorijas elementu, ielādējiet izdrukāto formu no diska un atlasiet dokumenta veidu.

Tagad dokumentā

Preču un pakalpojumu pārdošana Tiks parādīts jauns drukājams materiāls. Drukātas veidlapas automātiska reģistrācija Lai nodrošinātu, ka, pievienojot drukas veidlapu, nav manuāli jāizvēlas dokumenta veids, varat konfigurēt automātiskā reģistrācija . Lai to izdarītu, pievienojiet jaunu izkārtojumu un izsauciet to<Наименование документа> Iestatījumi_Automātiskā reģistrācija (tas ir vienīgais veids) un tā pirmajā šūnā mēs rakstām<Наименование справочника> ).

Dokumenti. (vai.

Ikviens ne reizi vien ir redzējis, kā tipiskās konfigurācijās, kas veidotas uz BSP (Standarta apakšsistēmu bibliotēkas) bāzes, uz izklājlapas dokumenta bāzes veidotās drukātās veidlapas tiek izvadītas īpašā formā “Dokumentu drukāšana”. Šī veidlapa ir daļa no BSP apakšsistēmas “Drukāt”. Izstrādājot savas drukātās veidlapas, dažkārt ir nepieciešams pieprasīt no lietotāja papildu drukāšanai nepieciešamos datus. Šeit rodas jautājums, kā šajā gadījumā parādīt drukāto veidlapu “Dokumenta drukāšanas” formā. Šajā rakstā apskatīšu, kā realizēt drukātas veidlapas izvadi uz minēto formu no apakšsistēmas “Drukāt”, ja pirms drukātās veidlapas izvadīšanas vēlamies pieprasīt no lietotāja papildus datus. Šeit tiks aplūkoti divi gadījumi: kad drukātā forma tiek realizēta, izmantojot apakšsistēmu “Papildu atskaites un apstrāde” un kad konfigurācijas režīmā konfigurācijai tiek pievienota drukāta forma, t.i. standarta konfigurācijā tiek veiktas izmaiņas.

Veidlapa "PrintDocuments" nodrošina dažas papildu funkcijas, strādājot ar drukātām veidlapām, piemēram:

  • poga, lai drukātu uz printeri, tieši veidlapā;
  • eksemplāru skaita norāde, iespiesta forma;
  • ģenerētās drukātās formas rediģēšana;
  • iespēja saglabāt izdrukāto formu dažādos datu formātos (Excel, Word, PDF u.c.);
  • drukātas veidlapas nosūtīšana pa e-pastu;
  • Ērts darbs ar dokumentu komplektu.

Šo veidlapu tagad izmanto 1C visās standarta konfigurācijās, lai parādītu drukātas dokumentu formas un direktoriju elementus. Un, protams, izstrādājot paši savas drukātās veidlapas, lai netiktu tālāk par pieņemto praksi, mums vajadzētu arī parādīt savas iespiestās veidlapas, izmantojot piedāvātos rīkus.

Lietojot standarta metodes pievienojot drukātās veidlapas, apakšsistēma “Drukāt” visu izdarīs mūsu vietā un pēc vajadzības parādīs drukāto formu. Piemēram:

  1. Pievienojot drukas komandu dokumentam, izmantojot apakšsistēmu "Drukāt", mums procedūrā Add Print Commands jāapraksta drukas komanda, norādot drukas pārvaldnieku, kurā ir ieviesta Drukas procedūra;
  2. Veidojot Papildu apstrādi, apstrādes objekta modulī funkcijā InformationOnExternalProcessing ir jāapraksta komanda ar servera metodes lietošanas veidu Call un nekavējoties jāīsteno procedūra Print, kas noteiktā veidā realizē izsaukumu ģenerēt drukātu formā.

Šādos gadījumos, kā jau teicu, drukas apakšsistēma pēc vajadzības izvadīs mūsu pašu ģenerēto drukāto formu. Šādas metodes ietver tiešu drukas formas veidošanu, t.i. nodeva drukājamos objektus drukāšanas procedūrai, ģenerēja izklājlapas dokumentu un parādīja to ekrānā.

Ko darīt, ja pirms izklājlapas dokumenta ģenerēšanas jums ir jāpieprasa daži dati no lietotāja? Tie. mums jāparāda forma. Šajā gadījumā tiek pārkāpta drukātās veidlapas formēšanas standarta kārtība un jādomā, kā mūsu drukāto veidlapu pārcelt uz formu “Dokumentu izdruka”.

Šajā gadījumā ir iespējamas divas situācijas:

  1. Kad tiek izveidota drukas plāksne ar konfigurācijas maiņu;
  2. Kad tiek izveidota drukāta forma, nemainot konfigurāciju, t.i. Tiek izmantota apakšsistēma "Papildu atskaites un apstrāde".

Mēs izveidojam drukātu veidlapu, pievienojot to caur konfiguratoru.

Pirmā variācija. Izmantojot apstrādi ar komandu.

Šī opcija ietver apstrādes pievienošanu tieši metadatu objektiem:

Apskatīsim iespēju, kad mums ir jārealizē noteikta objekta drukāta forma, piemēram, direktorija elements. Lai to izdarītu, mums jāstrādā četrās apstrādes jomās:

  1. Izveidojiet komandu, kas izsauks mūsu drukājamo formu;
  2. Izveidojiet pašu formu;
  3. Izveidot drukātas veidlapas maketu;
  4. Veiciet izmaiņas apstrādes pārvaldnieka modulī.

Komandas izveidošana

Komandas rekvizītos norādiet:

  • Grupa, kurā mēs vēlamies, lai komanda tiktu parādīta formā;
  • Parametra tips ir tieši atsauces grāmata vai dokuments, kura drukāto formu mēs veidojam;
  • Parametra izmantošanas režīms ir Multiple. Lai vienlaikus varētu parādīt drukātas veidlapas vairākiem sarakstā atlasītajiem elementiem.

Komandu modulī atveram apstrādes formu, nododot tās atlasītos direktoriju elementus, kuriem nepieciešams ģenerēt drukātas veidlapas. Neskaldīsim šeit matiņus un nedaudz labosim standarta kodu, ko platforma ievieto komandu apstrādes procedūrā:

&Par ClientCommand apstrādes procedūru (komandu parametrs, komandu izpildes parametri) //Ievietojiet apdarinātāja saturu.

FormParameters = New Structure("DataForPrint", CommandParameters);

Veidlapas izveidošana

Pievienosim apstrādei veidlapu, izveidosim Vērtību saraksta tipa formas atribūtu un nepieciešamo informāciju, lai mēs varētu ievadīt drukātās veidlapas papildu parametrus:

DataForPrint - ierakstiet ListValues;

Rindu skaits - ierakstiet Number.

Mans piemērs būs tīri demonstratīvs, tāpēc nosacīti noteiksim, ka mans mērķis ir izdrukāt izvēlētā elementa attēlojumu un rindiņu skaitu, ko veidlapā atlasām kā papildu parametru.

Dodieties uz veidlapas moduli un ierakstiet šādu kodu:

&OnServerProcedureWhenCreatingOnServer(Failure, StandardProcessing)PrintData.LoadValues(Parameters.PrintData); Procedūras beigas &Klientā Drukāšanas procedūra (Komanda) Drukas pārvaldībaKlients Izpildīt drukāšanas komandu ("Processing.PrintForm", //Drukas pārvaldnieks "PrintForm", //Identifier GetObjectsForPrint(), //PrintObjectsThisObject, //Veidlapas īpašnieks. veidlapa, no kuras izdruka tiek saukta par GetPrintParameters( )); //Drukas parametri — patvaļīgi parametri pārsūtīšanai uz drukas pārvaldnieku Procedūras beigas &On Server Funkcija GetObjectsForPrint() Array = DataForPrint.UploadValues();

Return Array; EndFunction &OnServer funkcija GetPrintParameters()PrintParameters = Jauna struktūra;

Drukas opcijas.Insert("Veidlapas virsraksts", "Drukas veidlapa"); //Viens no parametriem formai "Drukāt dokumentu". //Norāda drukājamās izvadformas nosaukumu.//Šeit pievienojam savus parametrus, kurus vēlamies papildus pārsūtīt uz drukas pārvaldnieku.

  • PrintOptions.Insert("Rindu skaits", Rindu skaits);
  • ReturnPrintOptions; EndFunction
  • Mēs definējam procedūru WhenCreatingOnServer un tajā no parametra, ko nodevām no komandas, atverot formu, nolasām to objektu sarakstu, kuriem jāģenerē drukāta forma.
  • Veidlapā izveidojam komandu Print un ierakstām tās apdarinātāju, kurā izsaucam vispārējā moduļa funkciju
  • Drukāšanas parametri - šeit mēs izveidojam un nododam struktūru ar drukas parametriem, šeit mēs nododam savus papildu parametrus, kurus pieprasījām lietotājam apstrādes formā.

Faktiski, izsaucot funkciju ExecutePrintCommand no apstrādes formas, mēs atrisinām mūsu problēmu, kas saistīta ar izdrukātās veidlapas izvadīšanu uz veidlapu “PrintDocuments”. Pēc tam apakšsistēma “Drukāt” veiks standarta darbības un pārvedīs izpildi uz Drukas procedūru, kas mums jādefinē mūsu apstrādes menedžera modulī.

Drukātas formas izkārtojuma izveide

Izmaiņu veikšana apstrādes pārvaldnieka modulī

No šī brīža mēs veicam standarta darbības drukāto veidlapu izstrādei, izmantojot BSP apakšsistēmu “Drukāt”.

Pievienojiet pārvaldnieka modulim šādu kodu:

Drukāšanas procedūra (Objektu masīvs, Drukas opcijas, Drukas veidlapu kolekcija, Drukas objekti, Izvades opcijas) Eksportējiet, ja nepieciešams drukāt izkārtojumu (drukāšanas veidlapu kolekcija, "drukāšanas veidlapa") un pēc tam izvadiet tabulāro dokumentu (Drukas veidlapu kolekcija, veidlapa "Drukāšanas forma"", NStr("ru = "Drukas forma""), PrintLayout(Objektu masīvs, Drukas parametri), "Apstrāde.Drukas veidlapa.PF_MXL_PrintForm",);

endIf; Procedūras beigas &OnServer funkcija PrintLayout(Objektu masīvs, Drukas opcijas) TabularDocument = Jauns TabularDocument; //Izveidot izklājlapas dokumentu ///////////////////////////////////////////// ////////////////////////////////////////////////// /////////////// //MODUĻA PĀRSTĀVĒTA DAĻA // //Šeit mēs izveidojam savu drukāto formu Layout = GetLayout("PF_MXL_PrintForm");

Šī opcija ir ļoti līdzīga pirmajai drukāšanas ieviešanas ziņā. Tās atšķirība ir veids, kā izveidot komandu, kas tiks parādīta saskarnē un sāks drukāt.

Šajā gadījumā, definējot drukāšanas komandu, mēs izmantojam arī BSP apakšsistēmu “Drukāt”. Tā vietā, lai pašā apstrādē definētu komandu apstrādes atvēršanai, mums jāiet uz tā objekta pārvaldnieka moduli, kuram vēlamies pievienot drukāšanas formu, un procedūrā jānorāda drukāšanas komandas apraksts. Pievienot PrintCommands (PrintCommands):

Procedūra AddPrintCommands(PrintCommands) ExportPrintCommand = PrintCommands.Add();

PrintCommand.Identifier = "PrintForm";

PrintCommand.View = NStr("ru = "Drukāt drukātu veidlapu"");

PrintCommand.Handler = "GeneralModulePrintForm.ProcessingPrintFormCommand";

PrintCommand.Order = 100; Procedūras beigas

Šeit mēs pievienojam drukas komandu ar nosaukumu “Drukāt drukāto formu” visām direktoriju veidlapām (atgādinu, ka mēs strādājam ar darījuma partneru direktoriju). Un šeit ir galvenais, kas jāņem vērā. Veidlapai varat pievienot divu veidu komandas:

1. Drukāšanas procedūras izsaukšana no pārvaldnieka moduļa;

2. Klienta metodes izsaukšana.

Tas ir tieši tas, ko mums vajag saukt par klienta metodi. Klienta metode ļaus izsaukt apstrādes formu, kurā pirms drukāšanas pieprasīsim no lietotāja mums nepieciešamos datus.

Lai īstenotu šādu izsaukumu, definējot komandu, ir jānorāda tam apdarinātājs (skat. kodu iepriekš). Virkne, kas satur ceļu uz klienta funkciju, tiek nodota komandu apstrādātājam, t.i. ceļš uz klienta kopējā moduļa funkciju Eksportēt. Tieši šī funkcija tiks izsaukta, noklikšķinot uz drukāšanas komandas, kuru pievienojam veidlapām.

Šīs iespējas ieviešanu var atrast standarta konfigurācijās, mehānismos, kas saistīti ar piekrišanas drukāšanu personas datu apstrādei.

Mēs veidojam papildu apstrādi.

Ko darīt, ja šī nav mūsu konfigurācija un tā tiek atbalstīta? Un vispār mēs nevēlamies iedziļināties konfigurācijā un to rediģēt?

Šajā gadījumā mums ir jāizmanto BSP apakšsistēma “Papildu atskaites un apstrāde”.

Izmantojot šo risinājumu, mums ir jāraksta kods tikai divās vietās, un tās visas ir mūsu turpmākajā papildu apstrādē:

1. Apstrādes objekta modulis;

2. Apstrādes veidlapas modulis.

Objekta modulī mēs ierakstām šādu kodu:

////////////////////////////////////////////////// /////////////////////////////////programmas interfeiss #ProgramInterface apgabals // Atgriež informāciju par ārēju apstrādi. Funkcija InformationOnExternalProcessing() ExportRegistrationParameters = AdditionalReportsAnDProcessing.InformationOnExternalProcessing("2.2.2.1");

Ir divas funkcijas un viena procedūra.

Papildu apstrādes standarta funkcija ir InformationOnExternalProcessing(); bez tās sistēma nesapratīs, ka tā ir papildu apstrāde. Šeit galvenais ir norādīt, ka šajā apstrādē ieviestā komanda ir tipa Veidlapas atvēršana. Tie. mēs atvērsim veidlapu pēc vajadzības. Tālāk seko drukāšanas procedūras definīcija un funkcija, kas tieši ģenerē mūsu izklājlapas dokumentu.

Šeit jums jāpievērš uzmanība faktam, ka drukas komandai šajā gadījumā vajadzētu būt tikai 4 parametriem, nevis 5, kā tas ir parastajā drukāšanas komandas definīcijā pārvaldnieka modulī. Šajā gadījumā nav parametru drukas iestatījumu nodošanai. Tāpēc mums būs jābūt radošiem, lai nodotu ne tikai pašus objektus, kuriem tiek ģenerēta drukātā veidlapa, bet arī parametrus, kurus mēs pieprasām no lietotāja formā.

Un tāpēc mēs esam definējuši papildu apstrādi, no kuras komanda atvērs apstrādes formu. Tāpēc nākamais solis ir apstrādes formas izveide.

Šajā formā mums ir jāizveido trīs detaļas, lai saglabātu vērtības, kas mums būs vajadzīgas vēlāk. Sauksim šīs detaļas šādi:

Komandas ID — ierakstiet virkni

ObjectsAssignments — tips Vērtību saraksts

Šīs veidlapas modulī mēs ierakstām šādu kodu:

&Par servera procedūrām, kad izveidojat serverī (kļūme, StandardProcessing) //Veidojot uz servera, atcerieties standarta parametrus, ko nodod papildu ReportsAndProcessing apakšsistēma AdditionalProcessingLink = Parameters.AdditionalProcessingLink;

CommandIdentifier = Parameters.CommandIdentifier;

Destination Objects.LoadValues(Parameters.Destination Objects); EndProcedure &OnClient procedūra Print(Command) // Iegūstiet atveramās veidlapas unikalitātes atslēgu.

Avota parametri, kas ietver komandu identifikatoru un galamērķa objektus:

Komandas ID — tiek saglabāts arī, kad tā tiek izveidota serverī. Tas ir komandas identifikators, kas izsauca mūsu apstrādes veidlapu. Tāpēc, izmantojot identifikatoru, objekta modulī Drukāšanas procedūrā noteiksim, kas mums ir jādrukā.

Piešķiršanas objekti - tieši šajā laukā ir jānodod objektu masīvs, kuram tiek ģenerēta drukātā forma, kā arī veidlapā lietotājam pieprasītie parametri.

Kā es definēju mērķa objektus, var redzēt funkcijā GetObjectsDestinationsAndPrintOptions. Šeit es kopēju mūsu galamērķa objektus no formas rekvizītiem, masīva elementa ar indeksu 0 vietā ielīmēju mūsu drukas parametrus.

Turpmāk šādi definētais masīvs tiks pārsūtīts no formas “Dokumentu drukāšana” kā pirmais parametrs Drukas objekta moduļa procedūrai, kuru definējām iepriekš.

Ja atgriežamies pie apstrādes objekta moduļa definīcijas un aplūkojam funkciju PrintLayout, tad pirmajās trīs funkcijas rindās var redzēt, kā es izvelku mūsu parametrus un objektus no datiem, kas pārsūtīti uz Print procedūru, un pēc tam strādāju ar tiem.

Šādas manipulācijas ar parametru Assignment Objects nosaka Print object module procedūras izsaukšanas specifika. Varat pats izsekot, kā tiek nodoti parametri un tiek veikti funkciju izsaukumi, atverot veidlapu moduli Dokumentu drukāšana.

Rezultāts.

Šādu manipulāciju rezultātā mēs saņemsim trīs komandas uz veidlapas, no kuras vēlamies parādīt izdrukāto formu:

Komandu numerācija atbilst ieviešanas opciju secībai.

Visas šīs komandas darīs to pašu:

Rādīt papildu parametru pieprasījuma veidlapu

Izvadiet ģenerētās drukātās veidlapas veidlapā "Drukāt dokumentus".. Tieši tas, ko vēlējāmies:

P.S. Kā veidnes, lai ieviestu savas drukātās veidlapas ar papildu parametru pieprasījumu, es augšupielādēju abus procesus, kas ir iesaistīti visās trīs drukātās veidlapas ģenerēšanas metodēs.

Pastāstiet draugiem