Designer ng panlabas na naka-print na mga form 1s.

Hindi lihim na, bagama't sa kasalukuyan ay mas maraming kumpanya ang lumilipat sa pamamahala ng elektronikong dokumento, ang lumang kasabihang "Kung walang papel, ikaw ..." ay hindi nawawala ang kaugnayan nito. Nangyayari na sa ilang kadahilanan ang mga awtoridad sa inspeksyon ay pangunahing interesado sa mga dokumento ng papel. Samakatuwid, kung aktibong ginagamit mo ang 1C: Accounting o Enterprise program para sa pinansiyal na kontrol, mahalagang malaman kung paano mag-print ng isang elektronikong dokumento na nilikha gamit ang programa.

Binibigyang-daan ka ng mga naka-print na form sa 1C na baguhin ang isang elektronikong dokumento sa isang naka-print na bersyon.

Para dito, nagbigay ang developer ng mahusay na tool - Print Designer. Sa tulong nito, maaari kang lumikha ng mga dokumento kung saan maaari mong tukuyin ang anumang data na kailangan mo, at hindi lamang ng ilang karaniwang mga form. Ito ay totoo lalo na para sa mga dokumentong iyon na walang mahigpit na kinokontrol na form, na hindi maaaring baguhin sa anumang pagkakataon. Ito, sa partikular, ay maaaring magsama ng isang pagkilos ng pagkumpleto ng trabaho, ilang mga invoice o pagbabayad.

Sa gabay na ito, iminumungkahi naming maunawaan ang mga kakayahan ng Print Designer, isaalang-alang kung anong mga uri ng mga form sa pag-print ang maaaring mayroon at kung paano sila naiiba sa isa't isa. Ipapakita rin namin sa isang halimbawa kung paano i-print ang nilikha na form.

Una, ito ay nagkakahalaga ng pag-unawa kung ano, sa pangkalahatan, ang isang naka-print na form ay nasa 1C 8. Ito ay isang 1C spreadsheet na template (tulad ng Excel), kung saan ang ilang mga variable na hilera ay tinukoy, na puno ng data mula sa programa kapag gumuhit ng isang dokumento.

Ang mga form sa pag-print ay may dalawang uri:

  • Panloob (built-in). Ang mga ito ay naka-imbak sa pagsasaayos ng programa, kaya mas mahusay na huwag baguhin ang mga ito, dahil maaaring lumitaw ang mga problema sa paglaon sa panahon ng pag-update.
  • Panlabas - nakaimbak nang hiwalay sa mga setting ng programa. At sa kanilang tulong, maaari kang lumikha at maghanda para sa pag-print ng isang dokumento ng halos anumang kumplikado, nang hindi naaapektuhan ang pagsasaayos ng programa ng 1C 8.

Paano pumili ng mga nakahandang layout? Pagkatapos mong magsagawa ng papasok o papalabas na operasyon, halimbawa, pagsulat ng ulat ng natapos na trabaho, i-click mo ang pindutang "I-print" upang i-print ang mga dokumento. Ang listahan ay nagpapakita ng isang listahan ng mga napi-print na form na napunan na ng inilagay na data tungkol sa transaksyon na isinagawa at sa iyong kumpanya. Sa pamamagitan ng pag-click sa uri ng dokumentong kailangan mo, magbubukas ka ng preview window upang matiyak mong tama ang data na iyong pinunan. Ang print button ay nagpi-print ng dokumento sa printer.

Nang wala na ang mga pangunahing kaalaman, alamin natin kung saan naka-imbak ang lahat ng iyong napi-print. Lumipat tayo sa susunod na tanong.

Saan nakaimbak ang mga naka-print na form?

Maaari mong tingnan ang mga built-in na naka-print na form sa parehong configurator mode at sa normal na enterprise mode. Sa unang kaso, kailangan mong i-click ang kaukulang pindutan sa window ng pagsisimula kapag sinimulan ang programa. Makikita mo ang menu ng programa, hanapin ang sangay na "Mga Pagbebenta ng Mga Produkto at Serbisyo", na naglalaman ng item na "Mga Layout". Madalas itong naglalaman lamang ng dalawang item - "Invoice" at "Act". Nasaan ang iba kung gayon, dahil mas malawak ang listahan? Nagtatago lang sila sa ibang lugar. Kailangan mong buksan ang "General" - "General Layouts" na sangay, halos lahat ng mga layout ay naka-imbak dito.

Sa pangalawang kaso, kailangan mong pumunta sa seksyon ng menu na "Administration" - "Mga form sa pag-print, mga ulat at pagproseso" - "Mga layout ng mga naka-print na form". Ipapakita nito ang lahat ng mga layout ng dokumento. Kapansin-pansin na maaari silang i-edit sa parehong menu.

Tulad ng para sa mga panlabas na form, kailangan mo munang likhain ang mga ito sa pamamagitan ng configurator mode, o sa pamamagitan ng pag-download ng isang yari na file, at pagkatapos ay ikonekta ang mga ito sa menu na "Administration" - "Mga naka-print na form, ulat at pagproseso" - "Mga karagdagang ulat at pagproseso”. Pag-uusapan natin ito mamaya.

Paglikha ng isang simpleng form gamit ang built-in na Print Designer

Ang ganitong naka-print na form ay hindi nagpapahiwatig ng posibilidad ng malalim na pag-edit, dahil magkakaroon ito ng pagbabago sa pagsasaayos ng programa, pati na rin ang mga karagdagang paghihirap kapag ina-update ito. Gayunpaman, kung ikaw ay ganap na nasiyahan sa karaniwang form o nais na bungkalin ang mga intricacies ng paglikha ng isang panlabas na form, ang pamamaraang ito ay ganap na angkop para sa iyo.

  1. Una sa lahat, ilunsad sa mode ng Configurator, hanapin ang dokumentong kailangan mo, halimbawa, Mga Pagbebenta ng Mga Produkto at Serbisyo, sa mga katangian ng dokumento pumunta sa Mga Aksyon - Mga Taga-disenyo - Taga-disenyo ng Pag-print.
  2. Kapag sinenyasan para sa isang opsyon sa trabaho, piliin ang Mga Regular na Form.
  3. Bigyan ng pangalan ang bagong layout, halimbawa, "Print Invoice."
  4. Piliin ang mga detalye na gusto mong makita sa header ng dokumento. Bukod dito, dapat na piliin ang mga ito sa pagkakasunud-sunod kung saan ipapakita ang mga ito. Para pumili, kailangan mong i-highlight ang item sa kaliwang column gamit ang cursor at pindutin ang arrow sa gitna ng screen para lumabas ang mga detalye sa kanang column.
  5. Markahan ang mga detalye na ipapakita sa seksyon ng talahanayan. Ang pagpili ng mga detalye ay sumusunod sa parehong prinsipyo tulad ng sa nakaraang talata.
  6. Sa parehong paraan, piliin ang mga detalye ng ibabang bahagi ng dokumento.
  7. Sa huling yugto ng paglikha, piliin kung gusto mong mag-print kaagad nang walang preview, kung kailangan mong protektahan ang talahanayan, at pagkatapos ay kumpirmahin ang paglikha ng form gamit ang OK na pindutan.

Paglikha ng panlabas na form sa pag-print

Ang mga form na ginawa sa pamamagitan ng Print Designer ay maihahambing sa isang visual na software editor, kapag hindi mo ipinasok ang lahat ng code nang manu-mano, ngunit binubuo lamang ito mula sa mga iminungkahing elemento. Ang panlabas na form ay isang file na may manu-manong nakasulat na code ng programa, na naglalarawan sa pamamaraan para sa pagpapakita ng data sa screen. Ito ang nagbibigay-daan sa iyong i-edit ang naka-print na form gayunpaman ang gusto mo, na tumutukoy sa ganap na anumang data sa anumang pagkakasunud-sunod.

Ang isang karagdagang kalamangan ay, kahit na hindi mo naiintindihan o hindi mo nais na maunawaan ang mga intricacies ng 1C 8 programming, maaari mong ipagkatiwala ang pamamaraang ito sa mga propesyonal. Magagawa nilang ihanda ang kinakailangang form para sa iyo at ibigay ito sa iyo bilang isang handa na file, na maaari mo lamang i-activate sa ilang mga pag-click ng isang pindutan.

Ngayon ay pag-usapan natin ang tungkol sa mismong pamamaraan. Tingnan natin ang halimbawa ng paglikha ng layout ng "Invoice" para sa dokumentong "Mga Benta (mga gawa, mga invoice)".

  1. Buksan ang 1C 8 program sa Configurator mode.
  2. I-click ang File - Bago - External Processing, bigyan ito ng pangalan (hindi ito dapat magsama ng mga puwang), pagkatapos ay i-click ang Actions - Open Object Module.
  3. Sa input field na bubukas, ipasok ang sumusunod na code (ang mga halaga na maaaring baguhin sa iyong sarili ay naka-highlight sa dilaw):

Function InformationOnExternalProcessing() Export
Mga Parameter ng Pagpaparehistro = Bagong Istraktura;
ArrayDestinations = Bagong Array;
Array of Assignments.Add("Document.Sales of Goods and Services"); //Tukuyin ang dokumento kung saan kami gumagawa ng panlabas na pag-print. anyo
Mga Parameter ng Pagpaparehistro.Insert("View", "PrintForm"); //maaaring - PrintableForm, Pagpuno ng Bagay, Karagdagang Ulat, Paglikha ng Mga Kaugnay na Bagay...
Mga Parameter ng Pagpaparehistro.Insert("Destination", Array of Destination);
Mga Parameter ng Pagpaparehistro.Insert("Pangalan", "Order para sa pagbebenta ng mga kalakal"); //pangalan kung saan irerehistro ang pagproseso sa direktoryo ng panlabas na pagproseso
Mga Parameter ng Pagpaparehistro.Insert("SafeMode", FALSE);
Mga Parameter ng Pagpaparehistro.Insert("Bersyon", "1.0");
Mga Pagpipilian sa Pagpaparehistro.Insert("Impormasyon", "Ang napi-print na form na ito ay nilikha bilang isang sample");
CommandTable = GetCommandTable();
AddCommand(CommandTable, "External Order", "ExternalOrder", "CallServerMethod", True, "MXL Print");
Mga Parameter ng Pagpaparehistro.Insert("Commands", CommandTable);
ReturnRegistrationParameters;
EndFunction // Impormasyon TUNGKOL SA Panlabas na Pagproseso()
Function na GetTableCommand()
Mga Utos = Bagong ValueTable;
Commands.Columns.Add("View", New TypeDescription("Row"));//kung ano ang magiging hitsura ng paglalarawan ng form sa pag-print para sa user
Commands.Columns.Add("Identifier", New TypeDescription("String")); //print form na pangalan ng layout
Commands.Columns.Add("Usage", NewTypeDescription("Row")); //Tumawag sa ServerMethod
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));
Commands.Columns.Add("Modifier", NewTypeDescription("Row"));
Bumalik na Koponan;
EndFunction
Pamamaraan AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
NewCommand.View = View;
NewCommand.Identifier = Identifier;
NewCommand.Use = Gamitin;
NewCommand.ShowAlert = ShowAlert;
NewCommand.Modifier = Modifier;
Katapusan ng Pamamaraan

  1. I-save ang layout para sa pag-print bilang isang file sa anumang folder sa iyong hard drive, pangalanan ito nang naaangkop.

Ipasok sa parehong dokumento ang pamamaraan para sa pagsisimula ng pag-print mula sa menu ng programa (ang mga utos na naka-highlight sa dilaw ay dapat tumugma sa linya):

Magdagdag ng Command(Talahanayan ng Mga Utos, "Panlabas na Pagkakasunud-sunod", "Panlabas na Pagkakasunud-sunod"):
Procedure Print(Array of Objects, Collection of PrintForms, PrintObjects, Output Parameters) Export
Pamamahala sa Pag-print.Output TabularDocumentIntoCollection(
Koleksyon ng mga Form sa Pag-print,
"Panlabas na pagkakasunud-sunod"
"Panlabas na pagkakasunud-sunod"
GeneratePrintForm(ArrayofObjects, PrintObjects);
EndProcedure // Print()

  1. Magpasok ng layout para sa pagpuno ng naka-print na form sa pamamagitan ng pag-click sa pangalan ng panlabas na form sa ibabang kaliwang sulok at pagpili sa "Mga Layout" - "Magdagdag" - "Spreadsheet Document", bigyan ito ng pangalan. Pagkatapos nito, punan ang spreadsheet ng kinakailangang data. Halimbawa:
    • Order para sa product No. [Realization Number] mula sa [Realization Date] - right-click - Properties - Layout - Filling - Template.
    • Gumawa ng mga column na gusto mong lumabas sa iyong dokumento.
    • Piliin ang ipinasok na mga cell, i-click ang Talahanayan - Mga Pangalan - Magtalaga ng pangalan - ilagay ang pangalang "Header".
    • Kopyahin ang hilera gamit ang mga header ng talahanayan, piliin ang mga ito, i-right-click - Properties - Layout - Pagpuno - Parameter.
    • Pumili ng isang linya at pangalanan ito, halimbawa, "StringTCH".
    • Gumawa ng footer: isulat ang Kabuuan, ang cell kung saan dapat ipakita ang kabuuang halaga, pangalanan itong TotalTotal, piliin ang "Mga Parameter" sa mga katangian.
    • Tukuyin ang taong responsable, at sa mga katangian ng cell para sa pagpapakita ng apelyido, tukuyin ang "Mga Parameter".
    • Piliin ang mga row sa ibaba at pangalanan ang hanay na "Footer".
  2. Ngayon sa input window, ipasok ang function para sa pagbuo ng isang naka-print na form:

Function GeneratePrintForm(LinkToDocument, PrintObjects)
TabularDocument = Bagong TabularDocument;
TabularDocument.Pangalan ng Mga Parameter ng Pag-print = "PRINT_PARAMETERS_Invoice para sa Pagbabayad sa VRTU";
Pagproseso ng Layout = GetLayout("Payment InvoiceExternal");
//punan ang header
AreaHeader = ProcessingLayout.GetArea("Header");
AreaHeader.Parameters.DocumentNumber = LinkToDocument.Number;
AreaHeader.Parameters.DocumentDate = LinkToDocument.Date;
AreaHeader.Parameters.OrganizationName = LinkToDocument.Organization.Name;
//output ang header sa isang spreadsheet na dokumento
TabularDocument.Output(HeaderArea);
//punan ang mga linya ng PM
RowArea = ProcessingLayout.GetArea("ROW");
Para sa Bawat Kasalukuyang Linya Mula sa Document Link.Products Cycle
FillPropertyValues(RowArea.Parameters, CurrentRow);
TabularDocument.Output(RowArea);
EndCycle;
//punan ang basement
AreaFooter = ProcessingLayout.GetArea("Footer");
AreaFooter.Parameters.QuantityTotal = LinkToDocument.Products.Total("Dami");
AreaFooter.Parameters.AmountTotal = LinkToDocument.Products.Total("Amount");
AreaFooter.Parameters.ResponsibleName = LinkToDocument.Manager.Name;
//output ang footer sa isang spreadsheet na dokumento
TabularDocument.Output(AreaFooter);
TabularDocument.AutoScale = True;
ibalik ang TabularDocument;
EndFunction

  1. I-save ang iyong mga pagbabago sa dokumento.
  2. Ngayon ay kailangan mong i-activate ang nilikha na form. Para dito:
    • Pumunta sa "Pamamahala" - "Mga naka-print na form, ulat at pagproseso" - "Mga karagdagang ulat at pagproseso".
    • I-click ang pindutang "Lumikha", piliin ang panlabas na file ng form sa Explorer, kumpirmahin ang iyong entry gamit ang pindutang "I-save at Isara".
  3. Upang suriin, pumunta sa Mga Benta - Mga Benta (mga gawa, mga invoice), i-click ang pindutang "I-print", piliin ang iyong form at suriin na ito ay napunan nang tama.
  4. I-print ang dokumento kung kinakailangan.

Konklusyon

Tumingin kami sa isang halimbawa ng paglikha ng napi-print na form sa pamamagitan ng Print Designer at sa pamamagitan ng tool para sa paglikha ng mga panlabas na form. Umaasa kami na ang lahat ay gagana para sa iyo. Iwanan ang iyong mga katanungan sa mga komento.

Kaya, ano ang kailangan nito? Halimbawa, kailangan mong literal na baguhin ang ilang mga character sa layout ng isang naka-print na form, o magdagdag ng isang linya o mag-alis ng isang bagay. Alisin ang configuration mula sa suporta at pagkatapos ay makaranas ng mga paghihirap sa bawat pag-update? Para saan? Mas mahusay na gumamit ng panlabas na plato sa pagpi-print!

Upang malikha ito, kailangan namin ng pagproseso na nakita ko sa Internet, salamat sa may-akda para sa himalang ito na "External Printed Form Designer". Maaari mong i-download at talakayin ito sa: forum.-infostart.-ru/-forum24/-topic74569/.

Magsimula tayo, magsisimula ang pagproseso sa 1C:Enterprise. Ito ang hitsura ng pangunahing window:

Halimbawa, kailangan nating baguhin ang naka-print na form ng dokumento na "Cash receipt order"; upang gawin ito, piliin ito sa field na Uri ng dokumento. Pumunta kami sa configurator at kopyahin ang buong module ng "Cash receipt order" na dokumento. Pagkatapos ay i-paste ito sa field na "Source text", tulad ng ipinapakita sa sumusunod na larawan:

Ang susunod na hakbang ay ang Build tree button. Narito ang lahat ng kailangan sa amin ay hanapin ang pangalan ng pamamaraang "I-print" sa listahan ng mga pamamaraan, piliin ito at i-click ang pindutang "Piliin ang pangunahing". Ang pagpoproseso mismo ay tutukuyin kung aling mga pamamaraan at pag-andar ang kailangan para sa pag-print at bukod pa rito ang "kailangan/hindi kailangan" na buton, pinili ko ang dalawang pamamaraan na "Kumuha ng Structure of Printed Forms", dahil ang katawan ng procedure ay gumagamit ng "Gumawa ng Talahanayan para sa Pag-post" na function , pagkatapos ay pipiliin din namin ito gamit ang "kailangan" na button:

Ang susunod na hakbang ay ipasok ang pangalan ng layout na ipi-print at kung saan namin babaguhin, tulad ng ipinapakita:

Bubuksan namin ito kaagad upang suriin! Magbubukas ang form sa pagpoproseso, sa field na pipiliin namin ang kinakailangang dokumento para sa pag-print ng cash register, ang pindutan ng form na "Run" at ang panlabas na form sa pag-print ay handa na.

Mula sa form sa pagpoproseso, maaari mo ring madaling magrehistro ng isang panlabas na naka-print na form, para dito mayroong isang espesyal na pindutan sa form, pagkatapos nito posible na mag-print mula sa dokumento. Iyon lang, maaari kang gumawa ng mga pagbabago sa layout ng pag-print. Good luck!

Sasabihin sa iyo ng artikulong ito nang detalyado kung paano ang isang baguhan na may kaunting kaalaman sa 1C 8 ay maaaring lumikha ng isang naka-print na form. Halimbawa, kunin natin ang isa sa mga pinakakaraniwang configuration ng 1C 8 - Accounting 2.0. Paglikha ng naka-print na form 1C na mga yugto ng pagsulat:

  • Paglikha ng isang panlabas na file ng form sa pag-print;
  • Paglikha ng isang naka-print na layout ng form;
  • Pagsusulat ng program code upang ipakita ang naka-print na data ng form sa screen;
  • Paglikha ng mga parameter para sa awtomatikong pagpaparehistro ng isang naka-print na form;
  • Pagkonekta ng panlabas na form sa pag-print sa base 1C Enterprises.

Paglikha ng isang naka-print na form 1C. Pagbubuo ng problema

Kami ay kinakailangan sa pagsasaayos Accounting 2.0 lumikha ng isang naka-print na form para sa isang dokumento Pagtanggap ng mga kalakal at serbisyo. Sa header ng naka-print na form, ipakita ang sumusunod na data:

  • Organisasyon;
  • Counterparty;
  • Kasunduan sa counterparty;
  • Petsa ng pagtanggap.

Ipakita ang data sa tabular na seksyon bilang isang talahanayan Mga paninda dokumento. Dapat isama sa talahanayan ang mga sumusunod na column:

  • Nomenclature;
  • Dami;
  • Presyo;
  • Sum;
  • At gayundin ang presyo ng item para sa kasalukuyang petsa (ayon sa uri ng presyo mula sa dokumento).

Panlabas na pagproseso ng file

Lumipat tayo sa paglutas ng problema. Una, buksan natin ang 1C 8 sa mode Configurator. Nasa mode na ito na ang lahat ng mga pag-unlad ay isinasagawa sa platform ng 1C 8. Ngayon ay kailangan nating lumikha ng isang panlabas na file sa pagproseso. Upang gawin ito, mag-click sa menu File -> Bago… o sa pamamagitan ng icon ng isang bagong file.

Sa window na bubukas, piliin ang item Panlabas na pagproseso.

Sunod sa field Pangalan Dapat mong ilagay ang pangalan ng panlabas na pagpoproseso. Sa aming kaso, tatawagin lang namin itong "PrintedForm"; awtomatikong mapupunan ang field ng kasingkahulugan. Mangyaring tandaan na sa patlang Pangalan, panlabas na pagproseso, ang pangalan ay dapat na nakasulat nang walang mga puwang o mga bantas.

Magdagdag tayo ng mga panlabas na katangian sa pagpoproseso LinkToObject at piliin type para sa kanya DocumentLink. Pagtanggap ng Mga Kalakal at Serbisyo. Upang gawin ito, sa 1C external processing metadata tree, piliin ang item Requisites at pindutin ang pindutan Idagdag(button na may berdeng plus). Magbubukas ang window ng attribute properties sa kanang bahagi ng screen, sa field Pangalan magsulat tayo - ReferenceToObject. SA patlang Uri pindutin ang pindutan na may tatlong tuldok.

Palawakin natin ang sanga sa uri ng puno DocumentLink, at hanapin ang elementong Receipt of Goods and Services doon, lagyan ng check ang kahon sa tabi nito at i-click OK.

I-save natin ang external processing file sa hard drive; para gawin ito, gamitin ang menu File -> I-save, pictogram I-save(asul na floppy disk), o isang keyboard shortcut Ctrl+S. Pangalanan natin ang naka-save na file na “PrintForm”.

Paglikha ng layout ng naka-print na form

Simulan natin ang paggawa ng layout ng 1C printing form. Ang layout ay nagsisilbing template para sa output ng printing form, kaya kung gusto mong maging maganda ang iyong printing form, dapat mong bigyang pansin ito.

Magdagdag tayo ng bagong layout sa panlabas na pagpoproseso ng metadata tree; wala tayong babaguhin sa window ng layout designer at i-click ang button handa na.

Sa bagong layout na bubukas, gagawa kami ng ilang lugar na kinakailangan para sa pagpapakita ng naka-print na form. Ang lahat ng mga lugar ng layout na kailangan namin ay pahalang, kaya upang lumikha ng isang bagong lugar, piliin ang kinakailangang bilang ng mga linya ng layout at pumunta sa menu Talahanayan -> Mga Pangalan -> Magtalaga ng pangalan o gumamit ng keyboard shortcut Ctrl + Shift + N, pagkatapos ay ilagay ang pangalan ng rehiyon sa kahon. Kapag gumagawa ng layout area, huwag matakot na magkamali sa bilang ng mga linya; maaari mong palaging idagdag o alisin ang mga ito. Upang magtanggal ng 1C layout line, piliin ang gustong linya at piliin ang item sa menu ng konteksto Tanggalin. Upang magdagdag ng bagong linya sa layout, pumili ng anumang linya ng layout at piliin ang item sa menu ng konteksto Palawakin.

Pagdaragdag ng Layout Header

Una sa lahat, gumawa tayo ng isang lugar Isang sumbrero, ipapakita nito ang data para sa header ng naka-print na form. Para sa lugar na ito kakailanganin namin ng pitong linya ng layout. Piliin natin ang mga ito at, gaya ng isinulat ko sa itaas, pindutin ang key combination Ctrl + Shift + N, sa field Pangalan isulat ang "Sumbrero" at pindutin ang pindutan OK.

Punan natin ang layout area ng data na kailangan natin. Karaniwan, walang naka-print na form na kumpleto nang walang pamagat, kaya gumawa din tayo ng isa sa aming header ng layout. Dahil sa pamagat, bilang karagdagan sa pangalan ng naka-print na form, ipapakita din namin ang numero ng dokumento kung saan ito na-print, itatakda namin ang teksto ng pamagat sa layout bilang isang parameter. Ang parameter ng layout ay isang espesyal na itinalagang layout cell kung saan maaaring i-output ang iba't ibang data gamit ang built-in na 1C 8 na wika. Dapat ipakita ang pamagat sa buong lapad ng naka-print na form, kaya't magpasya tayo kung gaano karaming mga layout ng mga cell ang magiging sapat para mag-print tayo sa isang karaniwang landscape na oryentasyon ng sheet.

Karaniwan labintatlo o labing-apat na layout ng mga cell ay sapat na, piliin ang mga ito sa unang hilera ng lugar Isang sumbrero at pagsamahin sa isang cell ( Menu ng konteksto -> Pagsamahin). Pagkatapos nito, i-double-click ang nagresultang malaking cell at isulat ang pangalan ng parameter, sa aming kaso na "TitleText". Upang ang ipinasok na teksto ay maging isang ganap na parameter, mag-right click sa cell at piliin ang item sa menu ng konteksto Ari-arian. Sa bookmark Layout hanapin natin ang field Pagpupuno at piliin ang halaga Parameter. Ang mga parameter sa layout ng 1C ay ipinahiwatig ng mga bracket "<>».

Ang heading ng naka-print na form ay dapat na namumukod-tangi sa iba pang text, kaya piliin muli ang cell at gamitin ang mga icon sa layout formatting panel para itakda ang text alignment Nakasentro at laki ng font 14.

Pagkatapos ng teksto ng pamagat ay ipapakita namin ito sa lugar Isang sumbrero impormasyon tungkol sa organisasyon, counterparty, counterparty na kasunduan at petsa ng pagtanggap ng mga kalakal. Dahil ang lahat ng data na ito ay kinuha din mula sa dokumento, gagawin din namin itong gawing pormal gamit ang mga parameter. Bilang karagdagan, bago ang bawat parameter dapat kang magsulat ng paliwanag na teksto upang madaling maunawaan ng user kung nasaan ang organisasyon, kung nasaan ang katapat, atbp. Ang lahat ng mga aksyon na ito ay katulad ng paglikha ng isang pamagat, kaya hindi ko na talakayin ang mga ito nang detalyado, bibigyan ko lang ng larawan kung ano ang dapat mangyari sa huli.

Ipinapakita ng figure kung paano naiiba ang mga parameter ng layout mula sa regular na text.

Pagdaragdag ng Layout Table Header

Ang huling bagay na kailangan nating gawin sa lugar ng layout na ito ay ang header ng talahanayan, kung saan ipapakita ang data ng tabular na bahagi. Mga paninda. Ang mga column na kinakailangan para sa talahanayan ay inilarawan sa seksyong "Pahayag ng Problema". Gagawa rin kami ng table header gamit ang kumbinasyon ng mga cell at pagsusulat ng text (mga pangalan ng column). Piliin ang mga hangganan ng header ng talahanayan gamit ang tool Frame, na matatagpuan sa panel ng pag-format ng layout.

Pagdaragdag ng talahanayan sa isang layout

Gumawa tayo ng isa pang lugar sa layout - Data. Ang talahanayan ng data ng tabular na bahagi ay ipapakita sa loob nito Mga paninda. Para sa lugar na ito, kailangan lang namin ng isang linya ng layout. Upang ipakita ang lahat ng mga hilera ng tabular na bahagi sa isang naka-print na form, pupunan at ipapakita namin ang lugar na ito sa kinakailangang bilang ng beses. Mga hanay sa lugar Data dapat tumugma sa mga column ng table header, kaya hindi magiging mahirap ang pagpuno nito. Ang pagkakaiba lang ay nasa lugar Data kailangan natin ng mga parameter, hindi lang text. Tandaan din na bilang default, ang mga numeric na parameter ay naka-format sa kanan at ang mga parameter ng text ay naka-format sa kaliwa. Upang pumili ng mga column, kailangan mo ring gamitin ang tool Frame.

Pagdaragdag ng Footer sa isang Layout

Ang huling layout area na kailangan namin ay Silong. Ipapakita nito ang mga kabuuan ayon sa dami at halaga. Ang paglikha ay katulad ng paglikha ng isang lugar Data, ngunit bilang karagdagan ang mga resulta ay dapat na naka-highlight sa bold.

Ang resulta ay dapat na isang layout na ganito ang hitsura:

Paglikha ng isang naka-print na form 1C. Programming

Magsimula tayo sa programming - ito ang pinakamahalagang yugto sa paglikha ng isang naka-print na form. Una sa lahat, pumunta tayo sa external printing form object module, dito tayo magpo-program. Upang gawin ito, sa pangunahing panlabas na window ng pagproseso, i-click Mga Aksyon -> Buksan ang module ng object.

Kailangan mong gumawa ng export function sa external printing form object module Selyo().

Function Print() I-export ang EndFunction

Pakitandaan na ang tampok na ito ay kinakailangan para sa panlabas na mga form sa pag-print sa mga pagsasaayos gamit ang regular na aplikasyon. Ang lahat ng kasunod na program code na kailangan para ipakita ang naka-print na form ay isusulat sa loob ng function na ito.

Pagsisimula ng Mga Pangunahing Variable

Gumawa tayo ng variable TabDoc, na maglalaman ng isang spreadsheet na dokumento - ito mismo ang naka-print na form kung saan ipapakita namin ang mga punong bahagi ng layout.

TabDoc = bagong TabularDocument;

Sa isang variable Layout Makukuha namin ang naka-print na layout ng form na aming ginawa. Upang gawin ito, ginagamit namin ang built-in na function GetLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

Iko-convert namin ang lahat ng mga lugar ng layout sa mga variable. Upang gawin ito, ginagamit namin ang pamamaraan ng layout GetArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Header"); AreaData = Layout.GetArea("Data"); AreaFooter = Layout.GetArea("Footer");

Pag-output ng header ng isang naka-print na form sa isang spreadsheet na dokumento

Ang lahat ng kinakailangang mga variable ay sinisimulan. Simulan nating punan at ipakita ang mga layout area sa isang spreadsheet na dokumento. Una sa lahat, punan natin ang pamagat ng napi-print na form; para dito kailangan nating ipasa ang parameter Teksto ng Pamagat, na ginawa namin sa layout, ang text na kailangan namin. Upang punan ang mga halaga ng parameter para sa lugar ng layout, mayroong isang espesyal na koleksyon na tinatawag na - Mga pagpipilian. Mula sa kung saan sa pamamagitan ng "." maaari kang makakuha ng anumang parameter. Sa teksto ng header, ililipat namin ang teksto: "Naka-print na form", pati na rin ang numero ng dokumento.

Header Area.Parameters.TitleText = "Print form"+LinkToObject.Number;

Pupunan namin ang natitirang mga parameter ng header sa katulad na paraan; makukuha namin ang lahat ng kinakailangang halaga para sa kanila mula sa mga detalye. Sanggunian ng Bagay, na naglalaman ng link sa dokumentong ipi-print.

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

Ang lahat ng mga parameter ng header ay napunan, ipapakita namin ito sa spreadsheet na dokumento na aming nilikha, para dito ginagamit namin ang pamamaraan Output(<Область>) .

TabDoc.Output(HeaderArea);

Pagsusulat ng isang kahilingan para sa isang naka-print na kapansanan

Simulan natin ang pagpuno at pagguhit ng lugar Data. Ang paglikha ng isang 1C na naka-print na form ay nagsasangkot din ng pagsulat ng isang query; kailangan namin ito upang makakuha ng tabular na data Mga paninda at mga presyo Mga Nomenclature para sa kasalukuyang petsa na aming gagamitin Hiling. Ang 1C 8 query language ay katulad ng SQL, o sa halip ay halos kinokopya ang mga kakayahan ng SELECT operator nito, ngunit ang buong query ay nakasulat sa Russian. Samakatuwid, kung ikaw ay hindi bababa sa malabo na pamilyar sa SQL, pagkatapos ay madali mong mauunawaan ang 1C 8 query language.

Sa naka-print na form na ito, ang kahilingan ay magiging medyo simple at marami ang magsasabi na posible itong gawin nang wala ito, ngunit ang kaalaman sa wika ng query at ang kakayahang magamit ito nang mahusay ay isa sa mga pangunahing kasanayan ng isang 1C programmer. Binibigyang-daan ka ng mga query na makakuha ng mga kumplikadong sample ng data gamit ang mas kaunting mga mapagkukunan, at ang teksto ng query ay mas madaling maunawaan kaysa sa program code na nakasulat nang hindi gumagamit ng isang query (o may kaunting paggamit nito). Bilang karagdagan, ang 1C 8 ay may napakahusay na taga-disenyo ng query na nagbibigay-daan sa iyong interactive na bumuo ng isang query mula sa mga kinakailangang talahanayan.

Gumawa tayo ng variable na maglalaman ng kahilingan.

Kahilingan = Bagong Kahilingan;

Bubuo kami ng text ng kahilingan gamit ang tagabuo ng kahilingan. Upang magsimula, isulat natin:

Request.Text = "";

Ilagay ang cursor ng mouse sa pagitan ng mga quote at pindutin ang kanang pindutan ng mouse. Sa menu ng konteksto na bubukas, piliin ang item Humiling ng tagabuo, malaki ang maitutulong nito sa amin sa paggawa ng 1C printing form. Pagkatapos nito, magbubukas ang window ng taga-disenyo ng query; naglalaman ito ng maraming tab, ngunit para sa aming query kakailanganin lang namin ng apat: "Mga Talahanayan at Mga Patlang", "Mga Relasyon", "Mga Kundisyon", "Mga Pagsali / Alyases".

Para sa aming query kakailanganin namin ng dalawang talahanayan: bahagi ng talahanayan Mga paninda dokumento Pagtanggap ng mga kalakal at serbisyo at isang snapshot ng pinakabagong impormasyon sa kasalukuyang petsa ng rehistro Mga presyo ng item.

Sa kaliwang bahagi ng window ng taga-disenyo nakita namin ang hanay Database. Naglalaman ito ng puno ng lahat ng mga bagay na metadata, hanapin natin ang mga kailangan natin. Upang gawin ito, buksan natin ang thread Dokumentasyon at hanapin ang dokumento Pagtanggap ng mga Kalakal at Serbisyo, buksan natin ito at hanapin ang tabular na bahagi Mga paninda, i-drag ito sa column ng query designer Mga mesa. Maaari kang mag-drag sa tatlong paraan: sa pamamagitan ng pag-drag, sa pamamagitan ng pag-double click sa talahanayan, o sa pamamagitan ng pagpili dito at pag-click sa button na “>”. Buksan natin ang thread Mga Rehistro ng Impormasyon at humanap ng table doon PricesNomenclature.ShortcutLatest, i-drag din ito sa column Mga mesa. Ang dalawang talahanayan na ito ay sapat na para sa aming query.

Piliin natin ang mga patlang na kailangan natin mula sa mga resultang talahanayan. Upang gawin ito, sa hanay Mga mesa buksan natin ang mesa at hanapin ang mga patlang: Nomenclature, Halaga, Presyo, Dami at i-drag ang mga ito sa ikatlong hanay ng constructor - Mga patlang. Palawakin natin ang talahanayan , hanapin natin ang field Presyo at i-drag din ito sa Mga patlang.

Ang istraktura ng mga talahanayan at mga patlang ng aming kahilingan ay handa na, ngayon ay lumipat tayo sa mga kundisyon. Kailangan namin ang tabular data Mga paninda ay hindi kinuha mula sa lahat ng mga resibo, ngunit mula lamang sa isa na aming nai-print. Upang gawin ito, magpapataw kami ng isang kondisyon sa talahanayan Pagtanggap ng GoodsServicesGoods. Pumunta tayo sa tab na "Mga Kundisyon" ng taga-disenyo ng query. Sa isang column Mga patlang ang mga talahanayan na napili namin nang mas maaga ay matatagpuan, para sa kondisyon na kakailanganin namin ng isang patlang Link mula sa mesa Pagtanggap ng mga Goods and Services Goods, I-drag natin ito sa window ng Mga Kondisyon.

Sa mga query sa 1C maaari kang gumamit ng mga parameter; kailangan ang mga ito upang maglipat ng data sa kahilingan. Halimbawa, kung gusto naming limitahan ang pagpili ng mga dokumento sa isang partikular na dokumento, maaari kaming gumamit ng parameter para magpasa ng link sa dokumentong ito sa kahilingan at gamitin ang parameter na ito sa kundisyon. Ito mismo ang aming gagawin sa aming kahilingan.

Pagkatapos ng bintana Mga kundisyon nagdagdag kami ng field Link, ang taga-disenyo ng query mismo ay gagawa ng parameter na may parehong pangalan at ilalagay ito pagkatapos ng “=” sign. Maaaring palitan ang pangalan ng parameter na ito kung ninanais. Sa teksto ng kahilingan, ang mga parameter ay minarkahan ng "&" sign, ngunit sa kasong ito ay hindi ito kinakailangan, dahil ipinapalagay na ang pangalawang bahagi ng kundisyon ay naglalaman ng isang parameter, kailangan mo lamang itong tandaan. Tatalakayin sa ibaba kung paano magpasa ng value sa isang 1C na parameter ng kahilingan.

Dahil sa kahilingan ay gumagamit kami ng hindi isang buong talahanayan ng mga presyo ng produkto, ngunit isang virtual na isa (isang slice ng huli sa kasong ito), kailangan naming itakda ang mga kondisyon para sa pagbuo ng virtual na talahanayan na ito, sa aming kaso ito ang cut-off date at ang kundisyon para sa uri ng mga presyo (ang mga presyo na may mahigpit na tinukoy na uri ng presyo ay ang tinukoy sa dokumento ng resibo na aming ini-print).

Upang punan ang mga parameter ng virtual na talahanayan, pumunta sa tab Mga talahanayan at mga patlang query constructor, sa column Mga mesa piliin ang talahanayan PresyoNomenclatureCuttingLatest at pindutin ang pindutan Mga Pagpipilian sa Virtual Table, na matatagpuan sa tuktok. Sa window na bubukas, sa field Panahon dapat kang magtakda ng parameter kung saan ipapasa ang petsa kung kailan gagawin ang pagbawas sa presyo. Sa aming kaso, ito ang magiging kasalukuyang petsa (iyon ay, ngayon), kaya tatawagin namin ang parameter na "&CurrentDate". Sa field ng mga kondisyon isusulat namin ang mga kondisyon para sa uri ng presyo, ipapasa din namin ito sa parameter, na tatawagin naming "&TypePrice". Magiging ganito ang resultang kundisyon (kung saan Uri ng Presyo- rehistro ng pagsukat Mga presyo ng item):

PriceType = &PriceType

Ang mga parameter ng virtual na talahanayan ay napunan, i-click ang pindutan OK.

Ngayon na limitado na natin ang pagpili sa dokumentong kailangan lang natin, gumawa tayo ng mga koneksyon sa pagitan ng mga talahanayan ng query. Kung hindi ito nagawa, ang mga presyo mula sa talahanayan ng PricesNomenclatureSliceLast ay hindi maiuugnay sa item mula sa resibo. Pumunta tayo sa tab Mga koneksyon taga-disenyo ng query. Gumawa tayo ng koneksyon sa buong field Nomenclature sa pagitan ng aming dalawang mesa. Upang gawin ito, pindutin ang pindutan Idagdag, sa field Talahanayan 1 pumili ng mesa Pagtanggap ng GoodsServicesGoods, at sa field na Talahanayan 2 - PricesNomenclatureSliceLast. Sa mga kundisyon ng komunikasyon, piliin ang mga field Nomenclature mula sa magkabilang mesa.

Dapat ding tandaan na sa pagpili ng query kailangan nating makuha ang lahat ng mga hilera mula sa bahagi ng tab Mga paninda at mga presyo lamang kung available ang mga ito sa kasalukuyang petsa para sa uri ng presyo ng dokumento. Kaya, ang tabular data Mga paninda ay sapilitan, ngunit hindi available ang data ng breakdown ng presyo. Samakatuwid, sa mga ugnayan sa pagitan ng mga talahanayang ito, kinakailangang gamitin ang tinatawag na LEFT JOIN, at ang kaliwa (o kinakailangan) na talahanayan ay magiging Pagtanggap ng GoodsServicesGoods, at ang kanan (o opsyonal) PriceNomenclatureSliceLast. Upang ang kaliwang pagsasama ng mga talahanayan ng query ay gumana tulad ng inilarawan ko sa itaas, kailangan mong lagyan ng tsek ang kahon Lahat pagkatapos ng field Talahanayan 1.


Ang kahilingan ay halos handa na, ang natitira ay upang gumana nang kaunti sa mga alias sa field. Pumunta tayo sa bookmark Mga Unyon/Alyas at magtakda ng alias para sa field PricesNomenclature Slice Latest.Price. Ang palayaw na pangalan ay magiging - PriceAsToday, ito ay kinakailangan upang ang mga pangalan ng mga field ng pagpili ng query at ang mga pangalan ng mga parameter sa layout ng naka-print na form ay magkatugma.

Kumpleto na ang gawain sa query designer, i-click ang OK. Pagkatapos magsara ng window ng taga-disenyo, makikita mo na ang linya na may text ng kahilingan ay napunan at ganito ang hitsura:

Request.Text = "SELECT | Receipt of GoodsServicesProducts.Nomenclature, | Receipt of GoodsServicesGoods.Amount, | Receipt of GoodsServicesProducts.Price, | Receipt of GoodsServicesProducts.Quantity of, | PricesToday Prices GoodsServices.Goods AS ReceiptTo varsServicesProducts LEFT CONNECTION RegisterInformation.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) HOW Nomenclature PricesSliceLast | ON Receipt of GoodsServicesNoclature | DITO | Resibo ng GoodsServicesProducts.Link = &Link";

Isinasagawa ang kahilingan

Ipasa natin ang mga kinakailangang parameter sa kahilingan; para dito gagamitin natin ang paraan ng kahilingan SetParameter(<ИмяПараметра>,<Значение>). Upang makuha ang kasalukuyang petsa, gamitin ang built-in na function Ang kasalukuyang petsa(), ibinabalik nito ang petsa at oras ng computer.

Magpatakbo tayo ng query para makakuha ng sample na may data na kailangan natin. Upang gawin ito, gamitin muna ang paraan ng paghiling Run(), at pagkatapos ay ang pamamaraan Pumili ().

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

Punan ang naka-print na talahanayan ng form

Bilang resulta, sa variable Sample ay naglalaman ng isang seleksyon ng mga resulta ng query, maaari kang mag-navigate sa pamamagitan nito gamit ang pamamaraan Susunod(), at para mapuntahan ang buong bagay kailangan mo ng loop paalam. Ang disenyo ay magiging ganito:

Habang Select.Next() Loop EndLoop;

Nasa loop na ito na pupunan at ipapakita namin ang layout area Data. Ngunit una, simulan natin ang dalawang variable ng uri ng numero. Sa mga ito ay kokolektahin natin ang mga kabuuan ayon sa dami at halaga na kailangan nating ipakita sa lugar Silong.

TotalSum = 0; TotalQuantity = 0;

Sa loob ng loop pupunuin namin ang lugar Data data mula sa kasalukuyang elemento ng pagpili sa mga variable TotalAmount At Kabuuang dami magdagdag ng mga halaga ng kabuuan at dami, at sa wakas, ipakita ang lugar sa isang dokumento ng spreadsheet gamit ang paraang pamilyar na sa amin Output(). Dahil ang mga pangalan ng mga field ng aming kahilingan ay ganap na nag-tutugma sa mga pangalan ng mga parameter ng lugar Data, pagkatapos ay upang punan ay gagamitin namin ang built-in na pamamaraan FillPropertyValues(<Приемник>, <Источник>), na kinokopya ang mga halaga ng ari-arian<Источника>sa mga ari-arian<Приемника>.

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

Pag-output ng footer ng isang naka-print na form sa isang spreadsheet na dokumento

Ito ay nananatiling punan at ipakita ang huling lugar ng layout - Silong. Inihanda na namin ang data para sa pagpuno, pagpuno at pag-withdraw ay isinasagawa ayon sa parehong pamamaraan.

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

Ang dokumento ng spreadsheet ay ganap na napunan; ang natitira lamang ay ipakita ito sa screen upang makita ng user ang naka-print na form at mai-print ito kung kinakailangan. Ngunit sa karaniwang mga pagsasaayos ng 1C 8, ang mga pamamaraan ng mga espesyal na module ay responsable para sa output ng mga panlabas na naka-print na mga form. Samakatuwid, ito ay sapat na upang bumalik mula sa pag-andar Seal() nakumpletong dokumento ng spreadsheet.

Ibalik ang TabDoc;

Sa puntong ito, ang yugto ng programming ay nakumpleto at ang paglikha ng 1c printing form ay halos kumpleto na. Buong teksto ng function Seal() Hindi ko ito ibibigay dito, maaari mong tingnan ito sa printable form file, na maaari mong i-download sa ibaba ng artikulo.

Paglikha ng isang naka-print na form 1C. Mga pagpipilian sa awtomatikong pagpaparehistro

Kapag nagkokonekta ng panlabas na form sa pag-print sa database, hindi awtomatikong tinutukoy ng system kung aling dokumento o reference na libro ang nilalayon ng form sa pag-print; kailangan mong piliin ito nang manu-mano. At kung ang ibang tao ay sumulat ng naka-print na form, at ikaw ay nakatalaga lamang sa pagkonekta nito, kung gayon ang pagpipilian ay maaaring maging hindi maliwanag. Upang maiwasan ang mga naturang problema, sa lahat ng panlabas na naka-print na mga form ay kinakailangan upang lumikha ng isang layout na may mga parameter ng auto-registration. Kung ito ay ginawa at wastong na-format, awtomatikong tinutukoy ng system kung aling dokumento o reference book ang naka-print na form para sa.

Ginagawa ito tulad ng sumusunod:

  • Sa panlabas na pagproseso, lumikha kami ng isang bagong layout. Tinatawag namin itong "Settings_Auto-Registration" (mahalagang hindi magkamali!).
  • Sa unang cell ng layout ay isinusulat namin Dokumentasyon.(o Mga direktoryo.) at ang pangalan ng dokumento kung saan kailangan mong ikonekta ang naka-print na form.

Pagkonekta ng panlabas na form sa pag-print sa base

  • Simulan ang 1C 8 sa mode kumpanya;
  • Pumunta sa menu Serbisyo -> Mga karagdagang ulat at pagproseso -> Mga karagdagang panlabas na naka-print na form;
  • I-click ang button Idagdag;
  • Sa window na bubukas, i-click ang icon Palitan ang external processing file;
  • Kung nakagawa ka ng mga parameter ng auto-registration, sumasang-ayon kaming gamitin ang mga ito;
  • Kung hindi ka pa nakagawa ng mga parameter ng auto-registration, pagkatapos ay sa tabular na bahagi Accessory ng plato sa pag-print idagdag ang kinakailangang dokumento o reference book;
  • Pindutin ang pindutan OK.

Pagkatapos nito, ang panlabas na form sa pag-print ay magiging available sa menu selyo dokumento Pagtanggap ng mga kalakal at serbisyo. Ang paglikha ng 1C na naka-print na form ay maaari na ngayong ituring na kumpleto.

Isaalang-alang natin ang pagsulat ng pinakasimpleng naka-print na form sa 1s 8.1 - 8.2 gamit ang halimbawa ng pagsasaayos Enterprise accounting 2.0. Sabihin nating kailangan mong magsulat ng panlabas na naka-print na form para sa isang dokumento: ipakita ang pangunahing data ng dokumento, pati na rin mula sa tabular na bahagi Mga paninda: katawagan, presyo, dami at halaga.

Maaari mong i-download ang resultang halimbawa mula sa .

Sa configurator 1C Enterprises 8 lumikha ng panlabas na pagproseso ( File->Bago->External Processing), itakda ang pangalan, lumikha ng mga kinakailangang detalye para sa panlabas na naka-print na form Sanggunian ng Bagay may uri DocumentLink. Pagbebenta ng Mga Produkto at Serbisyo.

Paglikha ng layout ng naka-print na form

Magdagdag ng bago layout, iwanan ang uri ng layout dokumento ng spreadsheet. Lumilikha kami ng tatlong lugar sa layout: Header, Data At Silong. Magagawa ito sa pamamagitan ng pagpili ng kinakailangang bilang ng mga linya at pag-click sa menu Talahanayan->Mga Pangalan->Magtalaga ng pangalan (Ctrl+Shift+N).

Pagkatapos nito, nagsisimula kaming maglagay ng teksto at mga parameter sa mga lugar. Ilalagay natin ito sa header pangalan ng naka-print na form, numero ng dokumento At organisasyon, at iguhit din ang mga hangganan ng header ng talahanayan at isulat ang mga pangalan ng mga column. Kapag gumagawa ng parameter sa mga katangian ng cell, sa tab na Layout dapat mong itakda ang property Pagpupuno sa kahulugan Parameter.

Sa lugar Data gumawa tayo ng mga parameter para sa pagpapakita ng mga row sa tabular section( Nomenclature, presyo atbp.), at sa lugar Silong para sa mga kabuuan ayon sa dami at halaga.

Programming

Pumunta tayo sa printing form object module Mga Aksyon->Buksan ang module ng object.

Gumawa tayo ng export function doon na mandatory para sa mga naka-print na form. Seal().

Function Print () I-export EndFunction

Sa function ay gagawa kami ng variable para sa dokumento ng spreadsheet, kung saan ang naka-print na form ay magiging output, nakukuha namin layout At mga lugar ng layout.

TabDoc = bagong TabularDocument; Layout = GetLayout("Layout" ); HeaderArea = Layout.GetArea("Header" ); AreaData = Layout.GetArea("Data" ); AreaFooter = Layout.GetArea("Footer" );

Punan natin ang mga parameter mga sumbrero at dalhin ito sa dokumento ng spreadsheet.

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

Upang makakuha ng mga hilera ng talahanayan Mga paninda ginagamit namin ang kahilingan.

Kahilingan = bagong Kahilingan; Request.SetParameter("Link", ObjectLink); Query.Text = "PUMILI | Pagbebenta ng Mga Kalakal at Serbisyong Mga Kalakal. Nomenclature, | Pagbebenta ng mga Goods and Services Goods. Halaga, | Pagbebenta ng Mga Kalakal at Serbisyong Mga Produkto. Presyo, | Benta ng mga Goods and Services Goods. Dami|MULA | Dokumento. Pagbebenta ng Mga Kalakal at Serbisyo. Mga Kalakal PAANO Magbebenta ng Mga Kalakal at Serbisyo ng Mga Kalakal|SAAN | Mga Benta ng Mga Kalakal at Serbisyong Mga Kalakal. Link = &Link";

Ipinapasa namin ang mga detalye sa parameter ng kahilingan Sanggunian ng Bagay, upang ipahiwatig sa kondisyon SAAN, na kailangan lang namin ng data mula sa dokumento kung saan kami nagmula sa naka-print na form. Upang makakuha ng sample na query, isasagawa muna namin ito at pagkatapos ay piliin ang mga row.

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

Susunod sa loop punan namin ang mga parameter ng lugar Data para sa bawat linya ng sample ng dokumento at ipakita ang mga ito sa dokumento ng spreadsheet. Kinakalkula din namin ang kabuuang mga halaga sa loop dami At mga halaga. Hindi namin pupunan ang bawat parameter nang hiwalay, ngunit gagamitin ang pamamaraan Punan angPropertyValues((<Приемник>, <Источник>) mula sa pandaigdigang konteksto, kinokopya nito ang mga halaga ng ari-arian <Источника> sa mga ari-arian <Приемника> . Ginagawa ang pagtutugma ng mga pangalan ng property. Maaari mong basahin ang higit pa tungkol dito sa syntax assistant 1C Enterprise 8.

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

Punan at ipakita ang lugar Silong.

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

Ibinabalik ang nakumpletong dokumento ng spreadsheet mula sa function Seal().

ibalik ang TabDoc;

Kung gumagamit ka ng isa sa mga karaniwang configuration, pagkatapos ay ibalik ang spreadsheet na dokumento 1C ay ipapakita ang naka-print na form sa screen. Maaari mo ring gamitin ang paraan ng dokumento ng spreadsheet para sa output. Ipakita ().

5. Pagkonekta ng naka-print na form sa isang dokumento

SA karaniwang mga pagsasaayos 1C 8 Mayroong isang direktoryo para sa pagpaparehistro ng mga panlabas na naka-print na form Panlabas na Pagproseso. Upang kumonekta, pumunta sa menu sa enterprise mode Serbisyo->Mga karagdagang ulat at pagproseso->Mga karagdagang panlabas na naka-print na form.

Magdagdag ng bagong elemento ng direktoryo, i-load ang naka-print na form mula sa disk at piliin ang uri ng dokumento.

Ngayon sa dokumento Pagbebenta ng mga kalakal at serbisyo May lalabas na bagong printable.

Auto-registration ng naka-print na form

Upang matiyak na kapag kumokonekta sa isang form sa pag-print hindi mo kailangang piliin nang manu-mano ang uri ng dokumento, maaari mong i-configure awtomatikong pagpaparehistro. Upang gawin ito, magdagdag ng bagong layout at tawagan ito Settings_Auto-registration(ito ang tanging paraan) at sa unang cell nito ay nagsusulat tayo Dokumentasyon.<Наименование документа> (o Mga direktoryo.<Наименование справочника> ).

Ngayon, kapag nagkokonekta ng isang printing form, hihilingin sa amin na gamitin mga parameter ng auto-registration.

Taga-disenyo ng layout nagbibigay-daan sa iyo na lumikha ng mga layout na ginagamit pareho ng mga object ng application solution at ng application solution mismo sa kabuuan. Maaaring maglaman ang mga layout ng iba't ibang uri ng data na kinakailangan upang magpakita ng impormasyon habang nagtatrabaho ka.

Awtomatikong tinatawag ng system ang tagabuo kapag lumilikha ng bagong layout (halimbawa, kapag lumilikha ng bagong layout ng direktoryo sa window ng pagsasaayos):

Pinapayagan ka ng taga-disenyo na lumikha ng parehong walang laman na mga layout at mga layout na naglalaman ng ilang impormasyon. Ito ay maaaring isang walang laman na layout ng isang spreadsheet na dokumento, na kahawig ng mga spreadsheet at malawakang ginagamit sa pagbuo ng mga output form ng mga dokumento at ulat; ito ay maaaring isang walang laman na layout ng dokumento ng teksto o isang layout na naglalaman ng binary data.

Sinusuportahan din ng taga-disenyo ang paggawa ng mga layout na naglalaman ng ActiveDocument (halimbawa, isang Word document, isang Excel sheet, o isang CorelDRAW drawing). Bilang karagdagan, pinapayagan ka ng taga-disenyo na lumikha ng mga layout na naglalaman ng mga dokumento ng HTML o mga geographical na diagram. Para sa mga ulat na gumagamit ng sistema ng komposisyon ng data, pinapayagan ka ng taga-disenyo na gumawa ng mga layout na naglalaman ng diagram ng komposisyon ng data at layout ng disenyo ng komposisyon ng data.

Ang resulta ng gawain ng taga-disenyo ay isang tapos na layout. Halimbawa, maaaring ito ay isang blangkong layout ng dokumento ng spreadsheet.