Publications. Publications Printable forms in 1c

Each 1C electronic document can be printed on paper and this is done using 1C printed forms. Printables are made up of named blocks, such as Header, Row, and Footer.

How to make a printed form is already clear. How to break it into blocks - too. But how does printing of this whole thing happen in 1C? And especially - how to display not just the text of the layout, but the contents of the electronic document?

This is what we will look at right now.

Preparing a layout for printing in 1C

To begin with, you will have to start with the simplest thing and fill out the layout for printing in 1C with static text and table lines. After all, someone has to do this boring job?

We place static text for printing in 1C

A good place to start would be to place the name of our printable. Select several cells in a row and select the menu item Table/Merge. As a result, several cells will be merged into one.

Now in this cell we will write the name of the document. Since this is a heading, we apparently want to make it in bold, large font (see picture) and place it in the middle.

We place the design of the layout for printing in 1C

We have a named area String. In it, when printed in 1C, each row of the table of the Products document will be displayed. We would probably like the table to look like a table when printed in 1C? Then you need to draw boundaries for it.

To do this, select the row cells and select the Borders button on the panel. We chose the Border Everywhere option – it draws cell borders from all sides at once. If you need to limit yourself to only one side, then you need to select the appropriate button.

To ensure that the lines used to draw borders are not the same as the standard ones, select the cells and right-click. In the menu that appears, select Properties.

In the usual properties window, you can select the type and color of lines for drawing boundaries.

We place pictures and other tinsel for printing in 1C

Many people ask - how to place something other than text on a 1C printed form? For example, a picture.

And it's very simple. Moreover, I’ll say right away that the barcode (if you need to print it) is also a picture.

Let's place the cursor on any cell. Select the Table/Figures menu. This is a whole submenu that allows you to insert onto a layout for printing in 1C not only a picture or a drawn object, but also objects from outside 1C, registered on the computer using a COM class (for example, a drop-down list control).

For those who are interested in creating complex designs for printing in 1C on a layout, also take a look at the drop-down menu Table/Print Settings. Here you can set the repeat area on each page, header and footer, and print area.

How to place the contents of an electronic document when printing in 1C

To place the contents of an electronic document on a layout when printing in 1C, the substitution method is used. It consists of two parts.

Part one. It is necessary to place parameters on the layout into which you will substitute values ​​when printing in 1C.

Let's place the cursor in the cell. Let's enter the name of the parameter (in one word, without spaces or other garbage). Next, let's go into the properties of this cell (as mentioned above) and select Filling = Parameter.

Part two. Substitution of values ​​is carried out not when you are programming in the configurator, but at the time of printing the document in 1C. Accordingly, using programming, you need to indicate to 1C what needs to be substituted in this parameter.

This is done as follows:

Layout = GetLayout("LayoutName");
regionSomething = Layout.GetArea("AreaName");
regionSomething.Parameters.ParameterName = "What I want to substitute from the database";

As you can see, we simply get the layout itself by name, then one of its areas, and then we simply access the parameter by its name.

Naturally, the value can be either a string or a number, or the value specified in the document.

How to print a layout in 1C

After the layout is ready, it’s time to think about programming the printing process in 1C.

Printing in 1C is usually programmed by several procedures that are located in the document object module. .

The Print() procedure is usually marked Export and controls the printing of a document in 1C using the LayoutName parameter, which conveys what you would like to print.

For each layout option, the PrintLayoutName() procedure is performed, which specifies the printing of a specific layout. That's what we'll look at now.

Programming printing in 1C consists of three points.

Before printing an electronic document in 1C, we need to request its data from the database. Obviously, to print a document, the user usually “enters” it (opens its form) and clicks the Print button. Therefore, in the printing procedure, one could simply refer to the document details (what this is - discussed here) by name.

However, this is considered ugly, not universal, etc. For example, suddenly processing of mass printing of documents will be used (how often is this used?). Therefore, it is common in the printing procedure to make a database query that requests document data. For example, like this:

Request = New Request;
Query.Text = "SELECT
Date of,
Number,
Organization
FROM
Document.DocumentName
WHERE
Link = &DocumentForPrint";
Request.SetParameter("DocumentForPrint", Link);
Select = Query.Run().Select();
Selection.Next();

Point 2. Filling out the layout for printing in 1C

Printing in 1C is done in a spreadsheet document. This is a special 1C object that allows you to display tables, like Excel, on the screen and in print. Naturally, the layout is printed, or rather its areas one by one.

Accordingly, we first need to get a spreadsheet document, then a layout. We print the areas one by one, filling in the layout parameters.

TabDoc = New TabularDocument;
Layout = GetLayout("LayoutName"); //or GetGeneralLayout("")

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

regionRow = Layout.GetArea("Row");
While SelectingDocumentLines.Next() Loop
regionLine.Parameters.Product = SelectionDocumentLines.Product;
TabDoc.Output(regionString);
EndCycle;

areaCap = Layout.GetArea("Footer");
TabDoc.Output(regionFootroom);

Point 2. Printing a document in 1C

The last point is to output the received document to the screen or printer. In typical configurations, a standard procedure is used for this (each may have its own), for example, Universal Mechanisms.PrintDocument().

In other cases, you can simply use the standard functions of the TabularDocument object: TabDoc.Show() or TabDoc.Print() .

External printed forms for a regular application (for the configuration Enterprise Accounting 2.0, Salary and Human Resources Management 2.5, Trade Management 10.3, etc.) are created quite simply compared to external printed forms for a managed application.

Why create external printing forms?

The advantage of an external printed form compared to a conventional one is that it allows you to avoid changing the configuration of the information base. This means that the process of subsequent configuration updates will not be complicated. In addition, external printed forms, along with external processing, are the only option for expanding the functionality of basic versions of 1C configurations, which cannot be changed at all.

And one last thing: external printed forms are easier to replicate, because they are a separate file that can be quickly connected to the infobase.

How to create an external printing form

Let's look at the process of creating an external 1C printed form step by step:

  1. We create external processing. To do this, select the menu item in the configurator File - New... And in the dialog box that opens - External processing.
  2. Create an external processing attribute with the name Object Reference. Attribute type is a link to a directory or document for which an external printed form is being created. The same form can be used for several types of objects, in this case the attribute data type Object Reference must be composite.
  3. In the object module we create an export function with the name Seal, which should return a ready-made printed spreadsheet document.

It often happens that you need to slightly adjust the layout of an existing printed form and make it external. For example, add the organization’s seal and the manager’s signature to the layout.

Creating an external printing form based on a standard one with minor changes

Let's consider this procedure using the example of creating an external printed form of a universal transfer document for a document Sales of goods and services 1C: Accounting. It will differ from the standard printed form by the presence of the organization's seal.

  1. Creating external processing with props Object Reference, data type - DocumentLink. Sales of Goods and Services.
  2. We find the layout of the standard UPD printed form (it is located in the general layouts) and copy (drag) it into the external processing window. Layouts of other printed forms may be located in the documents or reference books themselves.
  3. We make the necessary changes to the copied layout of the printed form.
  4. We find the function responsible for generating the printed form. This function should return the generated spreadsheet document. Copy its contents to the export function Seal() in the external processing object module.
    In our case this is the function PrintUniversalTransferDocument() Export from document object module Sales of goods and services.
    If the layout changes were significant (areas and/or parameters changed), then appropriate adjustments must be made to the print function.
  5. We are trying to save external processing. However, you will likely receive error messages that indicate that some of the procedures and functions called by the print function are missing. These functions and procedures must be found in the source document and also copied into the external processing object module. Or adjust the link if the original function or procedure is exported.
  6. (not necessary). To test an external printing form, it is convenient to make a form on which to place the props Object Reference. Button Execute must call a procedure Seal() from the object module. To do this, the button click event is given a procedure:

It is carried out in accordance with the standard layout of the printed form built into the application by the developers (this is called the “delivered” layout).

If necessary, you can change the standard layout and, in the future, print a document based on your personal (“custom”) layout. To edit the layout of the printed form, a mechanism is provided for uploading to a local computer. Editing the layout is carried out in the local version of the 1C:Enterprise system application (in particular, you can use the free 1C:Enterprise - Working with Files application).


To change the printable layout:




Editing the layout of the printed form is completed; when printing the document, the layout to which the changes have been made will be used.

If you want to return to the previous printable layout, click the button Use standard layout. In this case, the edited layout will still be present on the server, and it can be turned on again by pressing the button Change.

We wish you pleasant work!

How to insert a company logo into a printed form layout?

Here is a specific example of editing a printed form layout Invoices for payment, namely, we will consider how to insert an image into it, for example, a company logo (this image must first be prepared and saved as a graphic file, for example, in png or jpg format).


Thus, now the invoices that you prepare for transfer to your counterparties will contain your company logo. In order to add a logo to other documents, you will need to repeat the described steps for the corresponding printed forms of these documents.

We wish you pleasant work!

This article will tell you in detail how a beginner with little knowledge of 1C 8 can create a printed form. For example, let's take one of the most common 1C 8 configurations - Accounting 2.0. Creating a printed form 1C stages of writing:

  • Creating an external printing form file;
  • Creation of a printed form layout;
  • Writing program code to display printed form data on the screen;
  • Creating parameters for auto-registration of a printed form;
  • Connecting an external printing form to the base 1C Enterprises.

Creation of a printed form 1C. Formulation of the problem

We are required in the configuration Accounting 2.0 create a printed form for a document Receipt of goods and services. In the header of the printed form, display the following data:

  • Organization;
  • Counterparty;
  • Counterparty agreement;
  • Date of receipt.

Display the data in the tabular section as a table Goods document. The table should include the following columns:

  • Nomenclature;
  • Quantity;
  • Price;
  • Sum;
  • And also the price of the item for the current date (by type of price from the document).

External processing file

Let's move on to solving the problem. First, let's open 1C 8 in mode Configurator. It is in this mode that all developments are carried out on the 1C 8 platform. Now we need to create an external processing file. To do this, click on the menu File -> New… or by the icon of a new file.

In the window that opens, select the item External processing.

Next in the field Name You must enter the name of the external processing. In our case, we’ll simply call it “PrintForm”; the synonym field will be filled in automatically. Please note that in the field Name, external processing, the name should be written without spaces or punctuation marks.

Let's add external processing attributes LinkToObject and select type for him DocumentLink. Receipt of Goods and Services. To do this, in the 1C external processing metadata tree, select the item Requisites and press the button Add(button with green plus). The attribute properties window will open on the right side of the screen, in the field Name let's write - ReferenceToObject. IN field Type press the button with three dots.

Let's expand the branch in the type tree DocumentLink, and find the element Receipt of Goods and Services there, check the box next to it and click OK.

Let's save the external processing file to the hard drive; to do this, use the menu File -> Save, pictogram Save(blue floppy disk), or a keyboard shortcut Ctrl+S. Let's name the saved file “PrintForm”.

Creating a printed form layout

Let's start creating a layout of the 1C printing form. The layout serves as a template for the output of the printing form, so if you want your printing form to look good, you should pay attention to it.

Let’s add a new layout in the external processing metadata tree; we won’t change anything in the layout designer window and click the button Ready.

In the new layout that opens, we will create several areas necessary for displaying the printed form. All the layout areas we need will be horizontal, so to create a new area, select the required number of layout lines and go to the menu Table -> Names -> Assign name or use keyboard shortcut Ctrl + Shift + N, then enter the name of the region in the box. When creating a layout area, don’t be afraid to make a mistake with the number of lines; you can always add or remove them. To delete a 1C layout line, select the desired line and select the item in the context menu Delete. To add a new line to the layout, select any line of the layout and select the item in the context menu Expand.

Adding a Layout Header

First of all, let's create an area A cap, it will display the data for the header of the printed form. For this area we will need seven layout lines. Let's select them and, as I wrote above, press the key combination Ctrl + Shift + N, in field Name write “Hat” and press the button OK.

Let's fill the layout area with the data we need. Usually, no printed form is complete without a title, so let’s create one in our layout header as well. Since in the title, in addition to the name of the printed form, we will also display the number of the document from which it was printed, we will set the text of the title in the layout as a parameter. A layout parameter is a specially designated layout cell into which various data can be output using the built-in 1C 8 language. The title should be displayed across the entire width of the printed form, so let’s decide how many layout cells will be enough for us to print on a standard landscape orientation of the sheet.

Usually thirteen or fourteen layout cells are enough, select them in the first row of the area A cap and combine into one cell ( Context menu -> Merge). After this, double-click on the resulting large cell and write the name of the parameter, in our case “TitleText”. In order for the entered text to become a full-fledged parameter, right-click on the cell and select the item in the context menu Properties. On the bookmark Layout let's find the field Filling and select the value Parameter. Parameters in the 1C layout are indicated by brackets “<>».

The heading of the printed form should stand out among other text, so select the cell again and use the icons on the layout formatting panel to set the text alignment Centered and font size 14.

After the title text we will display it in the area A cap information about the organization, counterparty, counterparty agreement and date of receipt of goods. Since all this data is also taken from the document, we will also formalize it with parameters. In addition, before each parameter you should write explanatory text so that the user can easily understand where the organization is, where the counterparty is, etc. All these actions are similar to creating a title, so I won’t dwell on them in detail, I’ll just give a picture of what should happen in the end.

The figure shows how the layout parameters differ from regular text.

Adding a Layout Table Header

The last thing we need to create in this layout area is the table header, into which the data of the tabular part will be displayed Goods. The columns required for the table were described in the “Problem Statement” section. We will also create a table header using a combination of cells and writing text (column names). Select the borders of the table header using the tool Frame, which is located in the layout formatting panel.

Adding a table to a layout

Let's create another area in the layout - Data. The data table of the tabular part will be displayed in it Goods. For this area, we only need one line of layout. To display all the rows of the tabular part in a printed form, we will fill and display this area the required number of times. Columns in the area Data should coincide with the columns of the table header, so filling it out will not be difficult. The only difference is in the area Data we need parameters, not just text. Also note that by default, numeric parameters are formatted to the right and text parameters are formatted to the left. To select columns, you also need to use the tool Frame.

Adding a Footer to a Layout

The last layout area we need is Basement. It will display totals by quantity and amount. Creation is similar to creating an area Data, but additionally the results should be highlighted in bold.

The end result should be a layout that looks like this:

Creation of a printed form 1C. Programming

Let's start programming - this is the most important stage in creating a printed form. First of all, let's go to the external printing form object module, this is where we will program. To do this, in the main external processing window, click Actions -> Open object module.

You need to create an export function in the external printing form object module Seal().

Function Print() Export EndFunction

Please note that this feature is required for external printing forms in configurations using the regular application. All subsequent program code necessary to display the printed form will be written inside this function.

Initializing Basic Variables

Let's create a variable TabDoc, which will contain a spreadsheet document - this is exactly the printed form into which we will display the filled areas of the layout.

TabDoc = new TabularDocument;

To a variable Layout We will get the printed form layout we created. To do this we use the built-in function GetLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

We will convert all areas of the layout into variables. To do this we use the layout method GetArea(<ИмяОбласти>) .

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

Outputting the header of a printed form into a spreadsheet document

All necessary variables are initialized. Let's start filling and displaying the layout areas in a spreadsheet document. First of all, let's fill in the title of the printable form; for this we need to pass in the parameter Title Text, which we created in the layout, the text we need. To fill in the parameter values ​​for the layout area, there is a special collection called - Options. From which through “.” you can get any parameter. In the header text we will transfer the text: “Printed form”, as well as the document number.

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

We will fill in the remaining parameters of the header in a similar way; we will obtain all the necessary values ​​for them from the details Object Reference, which contains a link to the document to be printed.

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

All parameters of the header are filled in, we will display it in the spreadsheet document we created, for this we use the method Output(<Область>) .

TabDoc.Output(HeaderArea);

Writing a request for a printed handicap

Let's start filling and drawing out the area Data. Creating a 1C printed form also involves writing a query; we need it to obtain tabular data Goods and prices Nomenclatures for the current date we will use Request. The 1C 8 query language is similar to SQL, or rather practically copies the capabilities of its SELECT operator, but the entire query is written in Russian. Therefore, if you are at least vaguely familiar with SQL, then you will easily understand the 1C 8 query language.

In this printed form, the request will be quite simple and many will say that it would be possible to do without it, but knowledge of the query language and the ability to use it competently is one of the main skills of a 1C programmer. Queries allow you to obtain complex data samples using fewer resources, and the query text is much easier to understand than program code written without using a query (or with minimal use of it). In addition, 1C 8 has a very good query designer that allows you to interactively assemble a query from the necessary tables.

Let's create a variable that will contain the request.

Request = New Request;

We will compose the request text using the request constructor. To begin with, let's write:

Request.Text = "";

Place the mouse cursor between the quotes and press the right mouse button. In the context menu that opens, select the item Request constructor, it will help us a lot in creating a 1C printing form. After this, the query designer window will open; it contains many tabs, but for our query we will only need four: “Tables and Fields”, “Relations”, “Conditions”, “Joins / Aliases”.

For our query we will need two tables: table part Goods document Receipt of goods and services and a snapshot of the latest information on the current date of the register Item prices.

On the left side of the designer window we find the column Database. It contains a tree of all metadata objects, let's find the ones we need. To do this, let's open the thread Documentation and find the document Receipt of Goods and Services, let's open it and find the tabular part Goods, drag it into the column of the query designer Tables. You can drag in three ways: by dragging, by double-clicking on the table, or by selecting it and clicking the “>” button. Let's open the thread Information Registers and find a table there PricesNomenclature.ShortcutLatest, also drag it into the column Tables. These two tables are enough for our query.

Let's select the fields we need from the resulting tables. To do this, in the column Tables let's open the table and find the fields: Nomenclature, Amount, Price, Quantity and drag them to the third column of the constructor - Fields. Let's expand the table , let's find the field Price and also drag it to Fields.

The structure of the tables and fields of our request is ready, now let’s move on to the conditions. We need the tabular data Goods were not taken from all receipts, but only from the one that we print. To do this, we will impose a condition on the table Receipt of GoodsServicesGoods. Let's go to the “Conditions” tab of the query designer. In a collumn Fields the tables we selected earlier are located, for the condition we will need a field Link from the table Receipt of Goods and Services Goods, Let's drag it into the Conditions window.

In 1C queries you can use parameters; they are needed to transfer data to the request. For example, if we want to limit the selection of documents to a specific document, then we can use a parameter to pass a link to this document to the request and use this parameter in the condition. This is exactly what we will do in our request.

After the window Conditions we added a field Link, the query designer itself will create a parameter with the same name and place it after the “=” sign. This parameter can be renamed if desired. In the request text, the parameters are marked with the “&” sign, but in this case this is not necessary, since it is assumed that the second part of the condition contains a parameter, you just need to remember this. How to pass a value to a 1C request parameter will be discussed below.

Since in the request we are using not a full table of product prices, but a virtual one (a slice of the latter in this case), we need to set the conditions for the formation of this virtual table, in our case this is the cut-off date and the condition for the type of prices (prices that have a strictly defined price type is the one specified in the receipt document that we print).

To fill in the parameters of the virtual table, go to the tab Tables and fields query constructor, in the column Tables select the table PricesNomenclatureCuttingLatest and press the button Virtual Table Options, located at the top. In the window that opens, in the field Period you should set a parameter to which the date on which the price cut will be made will be passed. In our case, this will be the current date (that is, today), so we will call the parameter “&CurrentDate”. In the conditions field we will write the conditions for the price type, we will also pass it in the parameter, which we will call “&TypePrice”. The resulting condition will look like this (where TypePrice- register measurement Item prices):

PriceType = &PriceType

The virtual table parameters are filled in, click the button OK.

Now that we have limited the selection to only the document we need, let's create connections between the query tables. If this is not done, then the prices from the PricesNomenclatureSliceLast table will not be associated with the item from the receipt. Let's go to the tab Connections query designer. Let's create a connection across the field Nomenclature between our two tables. To do this, press the button Add, in field Table 1 select a table Receipt of GoodsServicesGoods, and in the field Table 2 - PricesNomenclatureSliceLast. In the communication conditions, select the fields Nomenclature from both tables.

It should also be noted that in the query selection we need to get all the rows from the tab part Goods and prices only if they are available on the current date for the document price type. Thus, the tabular data Goods are mandatory, but price breakdown data is not available. Therefore, in the relationships between these tables, it is necessary to use the so-called LEFT JOIN, and the left (or required) table will be Receipt of GoodsServicesGoods, and the right (or optional) PriceNomenclatureSliceLast. In order for the left join of query tables to work as I described above, you need to check the box All after the field Table 1.


The request is almost ready, all that remains is to work a little on the field aliases. Let's go to the bookmark Unions/Aliases and set an alias for the field PricesNomenclature Slice Latest.Price. The nickname name will be - PriceAsToday, it is needed so that the names of the query selection fields and the names of the parameters in the printed form layout match.

The work in the query designer is now complete, click OK. After the designer window closes, you will see that the line with the request text is filled in and looks like this:

Request.Text = "SELECT | Receipt of Goods and Services Goods. Nomenclature, | Receipt of Goods and Services Goods. Amount, | Receipt of Goods and Services Goods. Price, | Receipt of Goods and Services Goods. Quantity, | Prices Nomenclature Slice of Latest. Price AS PriceToday | FROM | Document. Receipt of Goods and Services. Goods AS By stepProductsServicesProducts |LEFT CONNECTIONRegisterInformation.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) HOW Nomenclature PricesSliceLast | ON Receipt of GoodsServicesProducts.Nomenclature | = PricesNomenclatureSliceLast.Nomenclature |WHERE | Receipt of GoodsServicesProducts.Link = &Link";

Executing the request

Let's pass the necessary parameters to the request; for this we will use the request method SetParameter(<ИмяПараметра>,<Значение>). To get the current date, use the built-in function The current date(), it returns the computer's date and time.

Let's run a query to get a sample with the data we need. To do this, first use the request method Run(), and then the method Choose().

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

Filling out the printed form table

As a result, in the variable Sample will contain a selection of query results, you can navigate through it using the method Next(), and to go through the whole thing you need a loop Bye. The design will be as follows:

While Select.Next() Loop EndLoop;

It is in this loop that we will fill and display the layout area Data. But first, let's initialize two variables of numeric type. In them we will collect the totals by quantity and amount that we need to display in the area Basement.

TotalSum = 0; TotalQuantity = 0;

Inside the loop we will fill the area Data data from the current selection element into variables TotalAmount And TotalQuantity add sum and quantity values, and finally display the area in a spreadsheet document using the method already familiar to us Output(). Since the names of the fields of our request completely coincide with the names of the area parameters Data, then to fill we will use the built-in procedure FillPropertyValues(<Приемник>, <Источник>), which copies property values<Источника>to properties<Приемника>.

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

Outputting the footer of a printed form into a spreadsheet document

It remains to fill and display the last area of ​​the layout - Basement. We have already prepared the data for filling, filling and withdrawal are carried out according to the same scheme.

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

The spreadsheet document is completely filled out; all that remains is to display it on the screen so that the user can view the printed form and print it if necessary. But in typical 1C 8 configurations, the procedures of special modules are responsible for the output of external printed forms. Therefore, it is enough to return from the function Seal() completed spreadsheet document.

Return TabDoc;

At this point, the programming stage is completed and the creation of the 1c printing form is almost complete. Full text of the function Seal() I won’t give it here, you can look at it in the printable file, which you can download at the bottom of the article.

Creation of a printed form 1C. Auto-registration options

When connecting an external printing form to the database, the system does not automatically determine which document or reference book the printing form is intended for; you have to select it manually. And if another person wrote the printed form, and you are only tasked with connecting it, then the choice may become ambiguous. In order to avoid such problems, in all external printed forms it is necessary to create a layout with auto-registration parameters. If it is created and correctly formatted, the system automatically determines which document or reference book the printed form is intended for.

It is done as follows:

  • In external processing we create a new layout. We call it “Settings_Auto-Registration” (it’s important not to make a mistake!).
  • In the first cell of the layout we write Documentation.(or Directories.) and the name of the document to which you need to connect the printed form.

Connecting an external printing form to the base

  • Start 1C 8 in mode Company;
  • Go to menu Service -> Additional reports and processing -> Additional external printed forms;
  • Click the button Add;
  • In the window that opens, click the icon Replace external processing file;
  • If you have created auto-registration parameters, then we agree to use them;
  • If you have not created auto-registration parameters, then in the tabular part Printing plate accessory add the required document or reference book;
  • Press the button OK.

After this, the external printing form will be available in the menu Seal document Receipt of goods and services. The creation of the 1C printed form can now be considered complete.

Colleagues!

We continue the topic of creating reports in 1C. Recently, our client had a problem transferring documentation from 1C 8.3.

Entering additional information into a printed form, numbering print sheets, indicating the date, time and user who issued the report.

We discussed a similar example in configuration 8.2 in the previous release. Now we will look at the print settings, which allow us to do all this in configuration 8.3.

Moreover, much of this is automated in 8.3.

So how can you incorporate the above information into your print? What should be done in this case?

We offer our review of options; perhaps it will also be useful to you.

Option 1. Directly from the printed form of the generated report or document:

Create a printed invoice form for payment and call it through Ch. menu – Table – Printing settings – Header and footer and configure as needed.
This is done once for any FORMED printing form.

Setting up header and footer fields

Pay attention to the icons in the upper left corner of the form:

These are in order: page number, number of pages, date and time. Position your mouse at the desired location in the header or footer and click on the desired icon. After clicking on the button. OK, when printed, this data will be displayed in the printed form where you indicated.

Option 2. Configured for any printing (reports, documents, certificates) from the program

If you do not want to manually configure headers and footers each time, you can use the Administration – Header and Footer Settings section to configure the general appearance of headers and footers for printing.

It looks like this:

There are more options for displaying information in printed forms: the “Report Name” and “User” data is added. This is exactly our case.

Selecting data for the header and footer is carried out as described in option 1, only instead of icons we select the text buttons “Time”, “Date”, “Report Name”, etc. But the essence does not change. After specifying the required information in the required places on the form, the setting is saved.

When the printed form is printed, all specified data will be displayed in it.

Option 3: Edit the layout in custom mode

Why am I considering this method here, which has its own functionality and which, strictly speaking, does not relate to the topic under consideration.

Because it often happens that you have to use a combination of this method and print settings to achieve the desired result. Editing the layouts of printed forms allows us to draw some things we need right in the layout of this printed form.

Layouts can be changed in the Administration – Printed forms, reports, processing – Printed form layouts section.

Here is an example of editing the layout of an Order Invoice (document Invoice for payment to the buyer):

We select a layout, indicating at the entrance that we will edit it and add some text information at the end.

For example, like this:

Save the changes and create the printable form.

And we print with the changes.
But the possibilities for such editing are limited.)

So option 3 is convenient to use for entering constant, unchangeable information; everything else will require modification of the printed form by a programmer.

But often this is enough. 🙂

Similar articles

2023 liveps.ru. Homework and ready-made problems in chemistry and biology.