heim · Motivation · Hinzufügen eines externen Druckformulars zur Datenbank. Hinzufügen eines externen gedruckten Formulars zur 1s 8.2-Datenbank, Auswahlformular in gedruckter Form

Hinzufügen eines externen Druckformulars zur Datenbank. Hinzufügen eines externen gedruckten Formulars zur 1s 8.2-Datenbank, Auswahlformular in gedruckter Form

Lass uns gehen Service->Zusätzliche Berichte und Verarbeitung->Optionale externe Druckplatten.

Das Verzeichnislistenformular mit externen gedruckten Formularen wird geöffnet. Klicken Sie im oberen Menü der Liste auf Hinzufügen. Das Formular zum Erstellen eines Verzeichniseintrags erscheint.

Klicken Sie auf die Schaltfläche „Öffnen“ und wählen Sie die Datei mit der gewünschten Druckform aus. Stellen Sie anschließend ggf. den gewünschten Namen ein (Feld „Name“).

Wenn das ausgedruckte Formular Parameter für die automatische Registrierung enthält, wird eine entsprechende Meldung angezeigt. Klicken Ja.Wenn dies nicht der Fall ist, müssen Sie angeben, mit welchem ​​Dokument dieses Formular verknüpft wird. Dazu müssen Sie im tabellarischen Teil „Zugehörigkeit des gedruckten Formulars“ eine Zeile hinzufügen. Wählen Sie im Feld den Dokumenttyp aus, mit dem wir das Formular verknüpfen. Da es sich in unserem Beispiel um eine Abschreibung von Materialien handelt, wählen wir den Beleg „Rechnung anfordern“ aus.

Gehen Sie anschließend zu einem beliebigen Dokument „Rechnung anfordern“, klicken Sie auf „Drucken“ und wählen Sie das neu hinzugefügte Formular aus.

Für BP 3.0, ZUP 3.0, UT 11, KA 2.0, ERP 2.0.

Um das Hinzufügen eines gedruckten Formulars in einer verwalteten Schnittstelle zu demonstrieren, zeige ich das Hinzufügen eines externen Formulars einer Rechnung zur Zahlung zu einem gleichnamigen Dokument in Accounting 3.0.

Wir gehen zum entsprechenden Abschnitt des Programms:


Es ist erforderlich, dass das Flag für die Verwendung externer Berichte und Verarbeitung aktiviert ist. Folgen Sie dem Hyperlink zur Liste der externen Objekte:

Klicken Sie in der sich öffnenden Liste auf Erstellen:


Wählen Sie im Dialogfenster die gewünschte Datei aus:


Die externe Objektkarte ist ausgefüllt: Im Layout sehen wir den Typ des Basisobjekts, an den das Formular angehängt wird, und direkt darunter seinen Namen:


Lassen Sie uns die Form des erstellten externen Objekts schreiben und schließen.

Gehen wir nun zu einem beliebigen Dokument Rechnung zur Zahlung an den Käufer und zeigen Sie das Druckmenü an:


In diesem Artikel erfahren Sie ausführlich, wie ein Anfänger mit geringen Kenntnissen von 1C 8 ein gedrucktes Formular erstellen kann. Nehmen wir zum Beispiel eine der gängigsten 1C 8-Konfigurationen – Buchhaltung 2.0. Erstellen eines gedruckten Formulars 1C-Schreibschritte:

  • Erstellen einer externen Druckformulardatei;
  • Erstellung eines gedruckten Formularlayouts;
  • Schreiben von Programmcode zur Anzeige gedruckter Formulardaten auf dem Bildschirm;
  • Erstellen von Parametern für die automatische Registrierung eines gedruckten Formulars;
  • Anschließen einer externen Druckform an die Basis 1C-Unternehmen.

Erstellung eines Druckformulars 1C. Formulierung des Problems

Wir sind in der Konfiguration erforderlich Buchhaltung 2.0 ein gedrucktes Formular für ein Dokument erstellen Empfang von Waren und Dienstleistungen. Lassen Sie sich in der Kopfzeile des ausgedruckten Formulars folgende Daten anzeigen:

  • Organisation;
  • Gegenpartei;
  • Kontrahentenvereinbarung;
  • Eingangsdatum.

Zeigen Sie die Daten im tabellarischen Abschnitt als Tabelle an Waren dokumentieren. Die Tabelle sollte die folgenden Spalten enthalten:

  • Nomenklatur;
  • Menge;
  • Preis;
  • Summe;
  • Und auch der Preis des Artikels für das aktuelle Datum (nach Preisart aus dem Dokument).

Externe Verarbeitungsdatei

Fahren wir mit der Lösung des Problems fort. Öffnen wir zunächst den 1C 8-Modus Konfigurator. In diesem Modus werden alle Entwicklungen auf der 1C 8-Plattform ausgeführt. Jetzt müssen wir eine externe Verarbeitungsdatei erstellen. Klicken Sie dazu auf das Menü Datei -> Neu… oder über das Symbol einer neuen Datei.

Wählen Sie im sich öffnenden Fenster das Element aus Externe Verarbeitung.

Als nächstes auf dem Feld Name Sie müssen den Namen der externen Verarbeitung eingeben. In unserem Fall nennen wir es einfach „PrintedForm“; das Synonymfeld wird automatisch ausgefüllt. Bitte beachten Sie das im Feld Name, Bei der externen Verarbeitung sollte der Name ohne Leer- und Satzzeichen geschrieben werden.

Fügen wir externe Verarbeitungsattribute hinzu LinkToObject und auswählen Geben Sie für ihn ein DocumentLink. Empfang von Waren und Dienstleistungen. Wählen Sie dazu im 1C-Metadatenbaum für die externe Verarbeitung das Element aus Voraussetzungen und drücken Sie die Taste Hinzufügen(Taste mit grünem Plus). Das Fenster mit den Attributeigenschaften wird auf der rechten Seite des Bildschirms im Feld geöffnet Name Lass uns schreiben - ReferenceToObject. IN Feld Typ Drücken Sie die Taste mit den drei Punkten.

Erweitern wir den Zweig im Typbaum DocumentLink, und suchen Sie dort das Element Waren- und Dienstleistungserhalt, aktivieren Sie das Kästchen daneben und klicken Sie OK.

Speichern wir die externe Verarbeitungsdatei auf der Festplatte. Verwenden Sie dazu das Menü Datei -> Speichern, Piktogramm Speichern(blaue Diskette) oder eine Tastenkombination Strg+S. Benennen wir die gespeicherte Datei „PrintForm“.

Erstellen eines gedruckten Formularlayouts

Beginnen wir mit der Erstellung eines Layouts des 1C-Druckformulars. Das Layout dient als Vorlage für die Ausgabe des gedruckten Formulars. Wenn Sie also möchten, dass Ihr gedrucktes Formular gut aussieht, sollten Sie darauf achten.

Fügen wir ein neues Layout im Metadatenbaum für die externe Verarbeitung hinzu. Im Layout-Designer-Fenster ändern wir nichts und klicken auf die Schaltfläche Bereit.

Im neuen Layout, das sich öffnet, erstellen wir mehrere Bereiche, die für die Anzeige des gedruckten Formulars erforderlich sind. Alle von uns benötigten Layoutbereiche sind horizontal. Um einen neuen Bereich zu erstellen, wählen Sie die erforderliche Anzahl von Layoutzeilen aus und gehen Sie zum Menü Tabelle -> Namen -> Namen zuweisen oder verwenden Sie die Tastenkombination Strg + Umschalt + N, Geben Sie dann den Namen der Region in das Feld ein. Scheuen Sie sich beim Erstellen eines Layoutbereichs nicht, einen Fehler bei der Anzahl der Zeilen zu machen. Sie können diese jederzeit hinzufügen oder entfernen. Um eine 1C-Layoutzeile zu löschen, wählen Sie die gewünschte Zeile aus und wählen Sie den Eintrag im Kontextmenü aus Löschen. Um dem Layout eine neue Zeile hinzuzufügen, wählen Sie eine beliebige Zeile des Layouts aus und wählen Sie das Element im Kontextmenü aus Expandieren.

Hinzufügen eines Layout-Headers

Lassen Sie uns zunächst einen Bereich erstellen Eine Kappe, werden die Daten für die Kopfzeile des gedruckten Formulars angezeigt. Für diesen Bereich benötigen wir sieben Layoutlinien. Wählen wir sie aus und drücken Sie, wie ich oben geschrieben habe, die Tastenkombination Strg + Umschalt + N, auf dem Feld Name Schreiben Sie „Hut“ und drücken Sie die Taste OK.

Füllen wir den Layoutbereich mit den Daten, die wir benötigen. Normalerweise ist kein gedrucktes Formular vollständig ohne einen Titel, also erstellen wir auch einen in unserem Layout-Header. Da wir im Titel neben dem Namen des gedruckten Formulars auch die Nummer des Dokuments anzeigen, aus dem es gedruckt wurde, werden wir im Layout den Text des Titels als Parameter festlegen. Ein Layoutparameter ist eine speziell dafür vorgesehene Layoutzelle, in die mithilfe der integrierten 1C 8-Sprache verschiedene Daten ausgegeben werden können. Der Titel sollte über die gesamte Breite des gedruckten Formulars angezeigt werden. Entscheiden wir also, wie viele Layoutzellen ausreichen, um das Blatt im Standardquerformat zu drucken.

Normalerweise reichen dreizehn oder vierzehn Layoutzellen aus, wählen Sie diese in der ersten Zeile des Bereichs aus Eine Kappe und zu einer Zelle zusammenfassen ( Kontextmenü -> Zusammenführen). Doppelklicken Sie anschließend auf die resultierende große Zelle und geben Sie den Namen des Parameters ein, in unserem Fall „TitleText“. Damit der eingegebene Text zu einem vollwertigen Parameter wird, klicken Sie mit der rechten Maustaste auf die Zelle und wählen Sie den Eintrag im Kontextmenü aus Eigenschaften. Auf dem Lesezeichen Layout Lass uns das Feld finden Füllung und wählen Sie den Wert aus Parameter. Parameter im 1C-Layout werden durch Klammern angezeigt „<>».

Die Überschrift des gedruckten Formulars sollte sich vom übrigen Text abheben. Wählen Sie daher die Zelle erneut aus und verwenden Sie die Symbole im Layoutformatierungsfeld, um die Textausrichtung festzulegen Zentriert und Schriftgröße 14.

Nach dem Titeltext zeigen wir ihn im Bereich an Eine Kappe Informationen über die Organisation, die Gegenpartei, die Gegenparteivereinbarung und das Datum des Wareneingangs. Da alle diese Daten ebenfalls aus dem Dokument stammen, werden wir sie auch mit Parametern formalisieren. Darüber hinaus sollten Sie vor jedem Parameter einen erläuternden Text schreiben, damit der Benutzer leicht verstehen kann, wo sich die Organisation befindet, wo sich die Gegenpartei befindet usw. Alle diese Aktionen ähneln der Erstellung eines Titels, daher werde ich nicht näher darauf eingehen, sondern nur ein Bild davon geben, was am Ende passieren sollte.

Die Abbildung zeigt, wie sich die Layoutparameter vom normalen Text unterscheiden.

Hinzufügen einer Layout-Tabellenüberschrift

Als letztes müssen wir in diesem Layoutbereich den Tabellenkopf erstellen, in dem die Daten des tabellarischen Teils angezeigt werden Waren. Die für die Tabelle erforderlichen Spalten wurden im Abschnitt „Problemstellung“ beschrieben. Wir erstellen außerdem einen Tabellenkopf, indem wir eine Kombination aus Zellen und Text (Spaltennamen) verwenden. Wählen Sie mit dem Werkzeug die Ränder des Tabellenkopfes aus Rahmen, das sich im Layoutformatierungsfenster befindet.

Eine Tabelle zu einem Layout hinzufügen

Lassen Sie uns einen weiteren Bereich im Layout erstellen - Daten. Darin wird die Datentabelle des tabellarischen Teils angezeigt Waren. Für diesen Bereich benötigen wir nur eine Layoutzeile. Um alle Zeilen des tabellarischen Teils in gedruckter Form anzuzeigen, füllen wir diesen Bereich so oft aus und zeigen ihn an, wie erforderlich. Spalten in der Umgebung Daten sollte mit den Spalten der Tabellenüberschrift übereinstimmen, damit das Ausfüllen nicht schwierig ist. Der einzige Unterschied besteht in der Gegend Daten Wir brauchen Parameter, nicht nur Text. Beachten Sie außerdem, dass numerische Parameter standardmäßig rechts und Textparameter links formatiert sind. Um Spalten auszuwählen, müssen Sie ebenfalls das Tool verwenden Rahmen.

Hinzufügen einer Fußzeile zu einem Layout

Der letzte Layoutbereich, den wir benötigen, ist Keller. Es werden Gesamtsummen nach Menge und Menge angezeigt. Die Erstellung ähnelt der Erstellung eines Gebiets Daten, aber zusätzlich sollten die Ergebnisse fett hervorgehoben werden.

Das Endergebnis sollte ein Layout sein, das so aussieht:

Erstellung eines Druckformulars 1C. Programmierung

Beginnen wir mit dem Programmieren – dies ist der wichtigste Schritt bei der Erstellung eines gedruckten Formulars. Gehen wir zunächst zum externen Druckformular-Objektmodul, hier werden wir programmieren. Klicken Sie dazu im Hauptfenster der externen Verarbeitung auf Aktionen -> Objektmodul öffnen.

Sie müssen eine Exportfunktion im externen Druckformularobjektmodul erstellen Siegel().

Funktion Print() EndFunction exportieren

Bitte beachten Sie, dass diese Funktion für externe Druckformulare in Konfigurationen mit der regulären Anwendung erforderlich ist. Der gesamte nachfolgende Programmcode, der zur Anzeige des gedruckten Formulars erforderlich ist, wird in diese Funktion geschrieben.

Basisvariablen initialisieren

Lassen Sie uns eine Variable erstellen TabDoc, das ein Tabellenkalkulationsdokument enthalten wird – das ist genau das gedruckte Formular, in dem wir die ausgefüllten Bereiche des Layouts anzeigen werden.

TabDoc = neues TabularDocument;

Zu einer Variablen Layout Wir erhalten das von uns erstellte gedruckte Formularlayout. Dazu nutzen wir die eingebaute Funktion GetLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

Wir werden alle Bereiche des Layouts in Variablen umwandeln. Dazu verwenden wir die Layout-Methode GetArea(<ИмяОбласти>) .

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

Ausgabe der Kopfzeile eines gedruckten Formulars in ein Tabellendokument

Alle notwendigen Variablen werden initialisiert. Beginnen wir mit dem Füllen und Anzeigen der Layoutbereiche in einem Tabellenkalkulationsdokument. Geben wir zunächst den Titel des druckbaren Formulars ein; dazu müssen wir den Parameter übergeben Titeltext, den wir im Layout erstellt haben, den Text, den wir brauchen. Um die Parameterwerte für den Layoutbereich einzugeben, gibt es eine spezielle Sammlung namens - Optionen. Von welchem ​​bis „.“ Sie können jeden Parameter erhalten. Im Kopftext übergeben wir den Text: „Gedrucktes Formular“ sowie die Dokumentennummer.

Header Area.Parameters.TitleText = "Formular drucken"+LinkToObject.Number;

Die restlichen Parameter des Headers werden wir auf ähnliche Weise ausfüllen; alle dafür notwendigen Werte erhalten wir aus den Details Objektreferenz, das einen Link zum auszudruckenden Dokument enthält.

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

Alle Parameter des Headers sind ausgefüllt, wir zeigen ihn in dem von uns erstellten Tabellenkalkulationsdokument an, dazu verwenden wir die Methode Ausgabe(<Область>) .

TabDoc.Output(HeaderArea);

Schreiben einer Anfrage für ein gedrucktes Handicap

Beginnen wir mit dem Ausfüllen und Zeichnen des Bereichs Daten. Zum Erstellen eines gedruckten 1C-Formulars gehört auch das Schreiben einer Abfrage. Wir benötigen diese, um tabellarische Daten zu erhalten Waren und Preise Nomenklaturen für das aktuelle Datum verwenden wir Anfrage. Die 1C 8-Abfragesprache ähnelt SQL bzw. kopiert praktisch die Fähigkeiten ihres SELECT-Operators, aber die gesamte Abfrage ist auf Russisch geschrieben. Wenn Sie also mit SQL zumindest einigermaßen vertraut sind, werden Sie die Abfragesprache 1C 8 leicht verstehen.

In dieser gedruckten Form wird die Anfrage recht einfach sein und viele werden sagen, dass man darauf verzichten könnte, aber die Kenntnis der Abfragesprache und die Fähigkeit, sie kompetent zu nutzen, gehören zu den Hauptfähigkeiten eines 1C-Programmierers. Mit Abfragen können Sie komplexe Datenproben mit weniger Ressourcen abrufen, und der Abfragetext ist viel einfacher zu verstehen als Programmcode, der ohne Verwendung einer Abfrage (oder mit minimalem Einsatz davon) geschrieben wurde. Darüber hinaus verfügt 1C 8 über einen sehr guten Abfragedesigner, mit dem Sie interaktiv eine Abfrage aus den erforderlichen Tabellen zusammenstellen können.

Erstellen wir eine Variable, die die Anfrage enthält.

Anfrage = Neue Anfrage;

Wir werden den Anfragetext mit dem Anfragekonstruktor verfassen. Schreiben wir zunächst:

Request.Text = "";

Platzieren Sie den Mauszeiger zwischen den Anführungszeichen und drücken Sie die rechte Maustaste. Wählen Sie im sich öffnenden Kontextmenü das Element aus Anforderungskonstruktor, Es wird uns bei der Erstellung einer 1C-Druckform sehr helfen. Danach öffnet sich das Abfrage-Designer-Fenster; es enthält viele Registerkarten, aber für unsere Abfrage benötigen wir nur vier: „Tabellen und Felder“, „Beziehungen“, „Bedingungen“, „Verknüpfungen/Aliase“.

Für unsere Abfrage benötigen wir zwei Tabellen: Tabellenteil Waren dokumentieren Empfang von Waren und Dienstleistungen und eine Momentaufnahme der neuesten Informationen zum aktuellen Datum des Registers Artikelpreise.

Auf der linken Seite des Designerfensters finden wir die Spalte Datenbank. Es enthält einen Baum aller Metadatenobjekte. Suchen wir die benötigten Objekte. Öffnen wir dazu den Thread Dokumentation und finden Sie das Dokument Empfang von Waren und Dienstleistungen, öffnen wir es und suchen den tabellarischen Teil Waren, ziehen Sie es in die Spalte des Abfrage-Designers Tische. Sie können auf drei Arten ziehen: durch Ziehen, durch Doppelklicken auf die Tabelle oder durch Auswählen und Klicken auf die Schaltfläche „>“. Lasst uns den Thread eröffnen Informationsregister und finde dort den Tisch PreiseNomenklatur.ShortcutNeueste, ziehen Sie es ebenfalls in die Spalte Tische. Diese beiden Tabellen reichen für unsere Abfrage.

Wählen wir aus den resultierenden Tabellen die benötigten Felder aus. Dazu in der Spalte Tische lasst uns den Tisch aufschlagen und finde die Felder: Nomenklatur, Menge, Preis, Menge und ziehen Sie sie in die dritte Spalte des Konstruktors - Felder. Erweitern wir die Tabelle , lass uns das Feld finden Preis und ziehen Sie es auch nach Felder.

Die Struktur der Tabellen und Felder unserer Anfrage ist fertig. Kommen wir nun zu den Bedingungen. Wir benötigen die tabellarischen Daten Waren wurden nicht allen Belegen entnommen, sondern nur dem, den wir ausdrucken. Dazu stellen wir der Tabelle eine Bedingung auf Empfang von Waren, Dienstleistungen, Waren. Gehen wir zur Registerkarte „Bedingungen“ des Abfragedesigners. In einer Kolumne Felder Die Tabellen, die wir zuvor ausgewählt haben, befinden sich. Für die Bedingung benötigen wir ein Feld Verknüpfung vom Tisch Empfang von Waren und Dienstleistungen, Ziehen wir es in das Fenster „Bedingungen“.

In 1C-Abfragen können Sie Parameter verwenden; diese werden benötigt, um Daten an die Anfrage zu übertragen. Wenn wir beispielsweise die Auswahl von Dokumenten auf ein bestimmtes Dokument beschränken möchten, können wir über einen Parameter einen Link zu diesem Dokument an die Anfrage übergeben und diesen Parameter in der Bedingung verwenden. Genau das werden wir in unserer Anfrage tun.

Nach dem Fenster Bedingungen Wir haben ein Feld hinzugefügt Verknüpfung, erstellt der Abfragedesigner selbst einen Parameter mit demselben Namen und platziert ihn nach dem „=“-Zeichen. Dieser Parameter kann bei Bedarf umbenannt werden. Im Anforderungstext sind die Parameter mit dem „&“-Zeichen gekennzeichnet, in diesem Fall ist dies jedoch nicht notwendig, da davon ausgegangen wird, dass der zweite Teil der Bedingung einen Parameter enthält, Sie müssen sich diesen nur merken. Im Folgenden wird erläutert, wie ein Wert an einen 1C-Anforderungsparameter übergeben wird.

Da wir in der Anfrage keine vollständige, sondern eine virtuelle Tabelle mit Produktpreisen verwenden (in diesem Fall einen Ausschnitt davon), müssen wir die Bedingungen für die Bildung dieser virtuellen Tabelle festlegen, in unserem Fall ist dies die Stichtag und die Bedingung für die Preisart (Preise, deren Preisart genau definiert ist, ist diejenige, die im von uns gedruckten Belegdokument angegeben ist).

Um die Parameter der virtuellen Tabelle einzugeben, gehen Sie zur Registerkarte Tabellen und Felder Abfragekonstruktor in der Spalte Tische Wählen Sie die Tabelle aus PreiseNomenklaturSchneidenNeueste und drücken Sie die Taste Optionen für virtuelle Tische, befindet sich oben. Im sich öffnenden Fenster, im Feld Zeitraum Sie sollten einen Parameter festlegen, an den das Datum übergeben wird, an dem die Preissenkung vorgenommen wird. In unserem Fall ist dies das aktuelle Datum (also heute), daher nennen wir den Parameter „&CurrentDate“. In das Feld „Bedingungen“ schreiben wir die Bedingungen für den Preistyp und übergeben ihn auch im Parameter, den wir „&TypePrice“ nennen. Die resultierende Bedingung sieht folgendermaßen aus (wo TypPreis- Registermessung Artikelpreise):

PriceType = &PriceType

Die Parameter der virtuellen Tabelle sind ausgefüllt, klicken Sie auf die Schaltfläche OK.

Nachdem wir die Auswahl nun auf das benötigte Dokument beschränkt haben, erstellen wir Verbindungen zwischen den Abfragetabellen. Geschieht dies nicht, werden die Preise aus der Tabelle PricesNomenclatureSliceLast nicht mit dem Artikel aus dem Beleg verknüpft. Gehen wir zur Registerkarte Verbindungen Abfrage-Designer. Lassen Sie uns eine Verbindung über das gesamte Feld hinweg schaffen Nomenklatur zwischen unseren beiden Tischen. Drücken Sie dazu die Taste Hinzufügen, auf dem Feld Tabelle 1 Wählen Sie eine Tabelle aus Empfang von Waren, Dienstleistungen, Waren und im Feld Tabelle 2 – PreiseNomenklaturSliceLast. Wählen Sie in den Kommunikationsbedingungen die Felder aus Nomenklatur aus beiden Tabellen.

Es sollte auch beachtet werden, dass wir bei der Abfrageauswahl alle Zeilen aus dem Tab-Teil abrufen müssen Waren und Preise nur dann, wenn sie zum aktuellen Datum für die Dokumentpreisart verfügbar sind. Somit die tabellarischen Daten Waren sind obligatorisch, es sind jedoch keine Preisaufschlüsselungsdaten verfügbar. Daher ist es in den Beziehungen zwischen diesen Tabellen notwendig, den sogenannten LEFT JOIN zu verwenden, und die linke (oder erforderliche) Tabelle wird sein Empfang von Waren, Dienstleistungen, Waren und das richtige (oder optionale) PriceNomenclatureSliceLast. Damit der Left Join von Abfragetabellen wie oben beschrieben funktioniert, müssen Sie das Kontrollkästchen aktivieren Alle nach dem Feld Tabelle 1.


Die Anfrage ist fast fertig, es bleibt nur noch ein wenig an den Feldaliasen zu arbeiten. Gehen wir zum Lesezeichen Gewerkschaften/Aliase und legen Sie einen Alias ​​für das Feld fest PreiseNomenklatur Slice Aktueller.Preis. Der Spitzname wird sein: Preis wie heute, wird es benötigt, damit die Namen der Abfrageauswahlfelder und die Namen der Parameter im gedruckten Formularlayout übereinstimmen.

Die Arbeit im Abfrage-Designer ist nun abgeschlossen. Klicken Sie auf OK. Nachdem sich das Designerfenster geschlossen hat, sehen Sie, dass die Zeile mit dem Anforderungstext ausgefüllt ist und so aussieht:

Request.Text = "SELECT | Receipt of GoodsServicesProducts.Nomenclature, | Receipt of GoodsServicesGoods.Amount, | Receipt of GoodsServicesProducts.Price, | Receipt of GoodsServicesProducts.Quantity, | PricesNomenclature Slice of Latest.Price AS PriceToday | FROM | Document. Receipt of Warenservices.goods als Quittung von VarsServicesProdukten linke Verbindungsregisterinformation.pricesNomenclature.Slicelast (| & CurrentDate, Pricetype = & Pricetype) Wie Nomenklatur Prizesslicelast | Nach Erhalt von Warenservices -Produkten | ;

Ausführung der Anfrage

Übergeben wir der Anfrage die notwendigen Parameter; dazu verwenden wir die Anfragemethode SetParameter(<ИмяПараметра>,<Значение>). Um das aktuelle Datum zu erhalten, verwenden Sie die integrierte Funktion Das aktuelle Datum(), werden Datum und Uhrzeit des Computers zurückgegeben.

Lassen Sie uns eine Abfrage ausführen, um eine Stichprobe mit den benötigten Daten zu erhalten. Hierzu nutzen Sie zunächst die Request-Methode Laufen(), und dann die Methode Wählen().

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

Ausfüllen der gedruckten Formulartabelle

Als Ergebnis in der Variablen Probe eine Auswahl an Abfrageergebnissen enthält, können Sie mit der Methode darin navigieren Nächste(), und um das Ganze durchzugehen, braucht man eine Schleife Tschüss. Das Design wird wie folgt aussehen:

While Select.Next() Loop EndLoop;

In dieser Schleife füllen wir den Layoutbereich und zeigen ihn an Daten. Aber zuerst initialisieren wir zwei Variablen vom numerischen Typ. In ihnen sammeln wir die Summen nach Menge und Betrag, die wir in der Region anzeigen müssen Keller.

Gesamtsumme = 0; Gesamtmenge = 0;

Innerhalb der Schleife füllen wir den Bereich Daten Daten aus dem aktuellen Auswahlelement in Variablen Gesamtmenge Und Gesamtmenge Addieren Sie Summen- und Mengenwerte und zeigen Sie schließlich die Fläche in einem Tabellendokument mit der uns bereits bekannten Methode an Ausgabe(). Da die Namen der Felder unserer Anfrage vollständig mit den Namen der Bereichsparameter übereinstimmen Daten, dann verwenden wir zum Füllen die integrierte Prozedur FillPropertyValues(<Приемник>, <Источник>), das Eigenschaftswerte kopiert<Источника>zu Eigenschaften<Приемника>.

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

Ausgabe der Fußzeile eines gedruckten Formulars in ein Tabellendokument

Es bleibt noch der letzte Bereich des Layouts auszufüllen und anzuzeigen - Keller. Die Daten für die Befüllung haben wir bereits vorbereitet, die Befüllung und Entnahme erfolgt nach dem gleichen Schema.

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

Das Tabellendokument ist vollständig ausgefüllt und muss nur noch auf dem Bildschirm angezeigt werden, damit der Benutzer das ausgedruckte Formular einsehen und bei Bedarf ausdrucken kann. In typischen 1C 8-Konfigurationen sind jedoch die Prozeduren spezieller Module für die Ausgabe externer gedruckter Formulare verantwortlich. Daher reicht es aus, von der Funktion zurückzukehren Siegel() ausgefülltes Tabellendokument.

TabDoc zurückgeben;

An diesem Punkt ist die Programmierphase abgeschlossen und die Erstellung der 1c-Druckform ist fast abgeschlossen. Vollständiger Text der Funktion Siegel() Ich werde es hier nicht weitergeben, Sie können es sich in der druckbaren Datei ansehen, die Sie am Ende des Artikels herunterladen können.

Erstellung eines Druckformulars 1C. Automatische Registrierungsoptionen

Bei der Anbindung eines externen Druckformulars an die Datenbank ermittelt das System nicht automatisch, für welches Dokument oder Fachbuch das Druckformular bestimmt ist; Sie müssen es manuell auswählen. Und wenn eine andere Person das gedruckte Formular geschrieben hat und Sie nur damit beauftragt sind, es zu verknüpfen, kann die Auswahl unklar werden. Um solche Probleme zu vermeiden, ist es in allen externen Druckformularen notwendig, ein Layout mit automatischen Registrierungsparametern zu erstellen. Wenn es erstellt und korrekt formatiert ist, erkennt das System automatisch, für welches Dokument oder Fachbuch das gedruckte Formular bestimmt ist.

Dies geschieht wie folgt:

  • In der Fremdbearbeitung erstellen wir ein neues Layout. Wir nennen es „Settings_Auto-Registration“ (es ist wichtig, keinen Fehler zu machen!).
  • In die erste Zelle des Layouts schreiben wir Dokumentation.(oder Verzeichnisse.) und den Namen des Dokuments, mit dem Sie das gedruckte Formular verbinden müssen.

Anschließen einer externen Druckform an die Basis

  • Starten Sie 1C 8 im Modus Unternehmen;
  • Gehen Sie zum Menü Service -> Zusätzliche Berichte und Bearbeitung -> Zusätzliche externe Druckformulare;
  • Drück den Knopf Hinzufügen;
  • Klicken Sie im sich öffnenden Fenster auf das Symbol Externe Verarbeitungsdatei ersetzen;
  • Wenn Sie Parameter für die automatische Registrierung erstellt haben, stimmen wir deren Verwendung zu.
  • Wenn Sie keine Parameter für die automatische Registrierung erstellt haben, dann im tabellarischen Teil Druckplattenzubehör fügen Sie das erforderliche Dokument oder Nachschlagewerk hinzu;
  • Drücken Sie den Knopf OK.

Danach steht die externe Druckform im Menü zur Verfügung Siegel dokumentieren Empfang von Waren und Dienstleistungen. Die Erstellung des 1C-Druckformulars kann nun als abgeschlossen betrachtet werden.

Betrachten wir das Schreiben der einfachsten gedruckten Form 1s 8,1 - 8,2 anhand eines Konfigurationsbeispiels Unternehmensbuchhaltung 2.0. Nehmen wir an, Sie müssen ein externes gedrucktes Formular für ein Dokument schreiben: Zeigen Sie die Grunddaten des Dokuments sowie den tabellarischen Teil an Waren: Nomenklatur, Preis, Menge und Menge.

Sie können das resultierende Beispiel unter herunterladen.

Im Konfigurator 1C Unternehmen 8 externe Verarbeitung erstellen ( Datei->Neu->Externe Verarbeitung), legen Sie den Namen fest, erstellen Sie die erforderlichen Details für das externe Druckformular Objektreferenz mit Typ DocumentLink. Verkauf von Waren und Dienstleistungen.

Erstellen eines gedruckten Formularlayouts

Fügen Sie ein neues hinzu Layout, belassen Sie den Layouttyp Tabellenkalkulationsdokument. Wir erstellen drei Bereiche auf dem Layout: Kopfzeile, Daten Und Keller. Dies kann durch Auswahl der erforderlichen Zeilenanzahl und Klicken auf das Menü erfolgen Tabelle->Namen->Namen zuweisen (Strg+Umschalt+N).

Danach beginnen wir mit der Platzierung von Text und Parametern in den Bereichen. Wir werden es in die Kopfzeile einfügen Name des gedruckten Formulars, Dokumentnummer Und Organisation, und zeichnen Sie auch die Ränder des Tabellenkopfes und schreiben Sie die Namen der Spalten. Wenn Sie in den Zelleneigenschaften einen Parameter erstellen, sollten Sie die Eigenschaft auf der Registerkarte „Layout“ festlegen Füllung in der Bedeutung Parameter.

Im Gebiet Daten Lassen Sie uns Parameter für die Anzeige von Zeilen im tabellarischen Abschnitt erstellen( Nomenklatur, Preis usw.) und in der Umgebung Keller für Summen nach Menge und Menge.

Programmierung

Gehen wir zum Druckformularobjektmodul Aktionen->Objektmodul öffnen.

Erstellen wir dort eine Exportfunktion, die für gedruckte Formulare obligatorisch ist. Siegel().

Funktion Drucken () Export EndFunction

In der Funktion erstellen wir eine Variable für Tabellenkalkulationsdokument, in die das gedruckte Formular ausgegeben wird, erhalten wir Layout Und Layoutbereiche.

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

Geben wir die Parameter ein Hüte und bring es zu Tabellenkalkulationsdokument.

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

Um Tabellenzeilen zu erhalten Waren Wir nutzen die Anfrage.

Anfrage = neue Anfrage; Request.SetParameter("Link", ObjectLink); Query.Text = "SELECT | Nomenklatur für den Verkauf von Waren und Dienstleistungen. | Umsatz mit Waren und Dienstleistungen, Menge. | Verkauf von Waren und Dienstleistungen, Preis. | Verkauf von Waren und Dienstleistungen|VON | Dokumentieren. Verkauf von Waren und Dienstleistungen|WO | Verkauf von Waren und Dienstleistungen. Link = &Link";

Wir übergeben die Details an den Anforderungsparameter Objektreferenz, um in der Bedingung anzugeben WO, dass wir nur Daten aus dem Dokument benötigen, aus dem wir die gedruckte Form ableiten. Um eine Beispielabfrage zu erhalten, führen wir diese zunächst aus und wählen dann die Zeilen aus.

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

Als nächstes füllen wir in der Schleife die Bereichsparameter aus Daten für jede Zeile des Dokumentbeispiels und zeigen Sie sie an Tabellenkalkulationsdokument. Wir berechnen auch die Gesamtwerte in der Schleife Mengen Und Beträge. Wir werden nicht jeden Parameter einzeln ausfüllen, sondern das Verfahren verwenden Füllen Sie PropertyValues((<Приемник>, <Источник>) aus globaler Kontext, es kopiert Eigenschaftswerte <Источника> zu Eigenschaften <Приемника> . Der Abgleich erfolgt anhand der Eigenschaftsnamen. Mehr dazu können Sie hier lesen Syntaxassistent 1C Enterprise 8.

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

Füllen Sie den Bereich und zeigen Sie ihn an Keller.

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

Rückgabe des fertigen Tabellenkalkulationsdokuments von der Funktion Siegel().

return TabDoc;

Wenn Sie eine der Standardkonfigurationen verwenden, dann nach Rücksendung des Tabellendokuments 1C zeigt das ausgedruckte Formular auf dem Bildschirm an. Sie können für die Ausgabe auch die Tabverwenden. Zeigen().

5. Verbinden eines gedruckten Formulars mit einem Dokument

IN Standardkonfigurationen 1C 8 Für die Anmeldung externer Druckformulare gibt es ein Verzeichnis Externe Verarbeitung. Um eine Verbindung herzustellen, gehen Sie im Unternehmensmodus zum Menü Service->Zusätzliche Berichte und Bearbeitung->Zusätzliche externe gedruckte Formulare.

Fügen Sie ein neues Verzeichniselement hinzu, laden Sie das gedruckte Formular von der Festplatte und wählen Sie den Dokumenttyp aus.

Jetzt im Dokument Verkauf von Waren und Dienstleistungen Es erscheint eine neue Druckversion.

Automatische Registrierung des gedruckten Formulars

Um sicherzustellen, dass Sie beim Anschließen eines Druckformulars den Dokumenttyp nicht manuell auswählen müssen, können Sie ihn konfigurieren automatische Registrierung. Fügen Sie dazu ein neues Layout hinzu und rufen Sie es auf Einstellungen_Automatische Registrierung(das ist der einzige Weg) und in seine erste Zelle schreiben wir Dokumentation.<Наименование документа> (oder Verzeichnisse.<Наименование справочника> ).

Wenn wir nun ein Druckformular anschließen, werden wir aufgefordert, es zu verwenden Parameter für die automatische Registrierung.

Es ist kein Geheimnis, dass auch wenn heutzutage immer mehr Unternehmen auf elektronisches Dokumentenmanagement umsteigen, das alte Sprichwort „Ohne Papier …“ nicht an Aktualität verliert. Es kommt vor, dass die Kontrollbehörden aus irgendeinem Grund in erster Linie an Papierdokumenten interessiert sind. Wenn Sie das Programm 1C: Accounting oder Enterprise aktiv zur Finanzkontrolle nutzen, ist es daher wichtig zu wissen, wie Sie ein mit dem Programm erstelltes elektronisches Dokument drucken.

Mit gedruckten Formularen in 1C können Sie ein elektronisches Dokument in eine gedruckte Version umwandeln.

Dafür hat der Entwickler ein hervorragendes Tool bereitgestellt – Print Designer. Mit seiner Hilfe können Sie Dokumente erstellen, in denen Sie alle benötigten Daten angeben können, und nicht nur ein paar Standardformulare. Dies gilt insbesondere für solche Dokumente, die keine streng geregelte Form haben, die unter keinen Umständen geändert werden kann. Hierzu kann es sich insbesondere um eine Leistungserbringung, einzelne Rechnungen oder Zahlungen handeln.

In diesem Leitfaden schlagen wir vor, die Fähigkeiten des Print Designers zu verstehen, zu überlegen, welche Arten von Druckformen es geben kann und wie sie sich voneinander unterscheiden. Außerdem zeigen wir anhand eines Beispiels, wie Sie das erstellte Formular ausdrucken.

Zunächst lohnt es sich zu verstehen, was im Allgemeinen ein gedrucktes Formular in 1C 8 ist. Dabei handelt es sich um eine 1C-Tabellenkalkulationsvorlage (wie Excel), in der einige variable Zeilen angegeben sind, die beim Erstellen eines Dokuments vom Programm mit Daten gefüllt werden.

Druckformen gibt es in zwei Arten:

  • Intern (eingebaut). Sie werden in der Programmkonfiguration gespeichert, daher ist es besser, sie nicht zu ändern, da es später beim Update zu Problemen kommen kann.
  • Extern – getrennt von den Programmeinstellungen gespeichert. Und mit ihrer Hilfe können Sie ein Dokument nahezu beliebiger Komplexität erstellen und zum Drucken vorbereiten, ohne die Konfiguration des 1C 8-Programms zu beeinträchtigen.

Wie wähle ich bereits vorbereitete Layouts aus? Nachdem Sie einen eingehenden oder ausgehenden Vorgang durchgeführt haben, beispielsweise das Verfassen eines Berichts über abgeschlossene Arbeiten, klicken Sie auf die Schaltfläche „Drucken“, um die Dokumente auszudrucken. Die Liste zeigt eine Liste druckbarer Formulare an, die bereits mit eingegebenen Daten über die durchgeführte Transaktion und Ihr Unternehmen gefüllt sind. Wenn Sie auf den gewünschten Dokumenttyp klicken, öffnen Sie ein Vorschaufenster, in dem Sie sicherstellen können, dass die von Ihnen eingegebenen Daten korrekt sind. Mit der Schaltfläche „Drucken“ wird das Dokument auf dem Drucker gedruckt.

Nachdem wir die Grundlagen geklärt haben, wollen wir herausfinden, wo alle Ihre Ausdrucke gespeichert sind. Kommen wir zur nächsten Frage.

Wo werden gedruckte Formulare aufbewahrt?

Sie können die integrierten gedruckten Formulare sowohl im Konfiguratormodus als auch im normalen Unternehmensmodus anzeigen. Im ersten Fall müssen Sie beim Starten des Programms auf die entsprechende Schaltfläche im Startfenster klicken. Sie sehen das Programmmenü und finden den Zweig „Verkauf von Produkten und Dienstleistungen“, der den Punkt „Layouts“ enthält. Es enthält oft nur zwei Elemente – „Rechnung“ und „Akt“. Wo sind dann alle anderen, da die Liste viel umfangreicher ist? Sie verstecken sich einfach woanders. Sie müssen den Zweig „Allgemein“ – „Allgemeine Layouts“ öffnen, in dem fast alle Layouts gespeichert sind.

Im zweiten Fall müssen Sie zum Menübereich „Verwaltung“ – „Formulare, Berichte und Bearbeitung drucken“ – „Layouts gedruckter Formulare“ gehen. Es werden alle Dokumentlayouts angezeigt. Bemerkenswert ist, dass sie im selben Menü bearbeitet werden können.

Externe Formulare müssen Sie zunächst entweder über den Konfiguratormodus erstellen oder eine vorgefertigte Datei herunterladen und sie dann mit dem Menü „Verwaltung“ – „Gedruckte Formulare, Berichte und Verarbeitung“ – „Zusätzliche Berichte und“ verbinden wird bearbeitet". Wir werden etwas später darüber sprechen.

Erstellen eines einfachen Formulars mit dem integrierten Druckdesigner

Ein solches gedrucktes Formular beinhaltet nicht die Möglichkeit einer tiefgreifenden Bearbeitung, da dies eine Änderung der Programmkonfiguration sowie weitere Schwierigkeiten bei der Aktualisierung mit sich bringt. Wenn Sie jedoch mit dem Standardformular völlig zufrieden sind oder sich mit den Feinheiten der Erstellung eines externen Formulars befassen möchten, ist diese Methode für Sie völlig geeignet.

  1. Starten Sie zunächst den Konfiguratormodus, suchen Sie das gewünschte Dokument, zum Beispiel „Verkäufe von Produkten und Dienstleistungen“, und gehen Sie in den Dokumenteigenschaften zu „Aktionen – Designer – Druckdesigner“.
  2. Wenn Sie nach einer Arbeitsoption gefragt werden, wählen Sie „Normale Formulare“ aus.
  3. Geben Sie dem neuen Layout einen Namen, zum Beispiel „Rechnung drucken“.
  4. Wählen Sie die Details aus, die Sie in der Kopfzeile des Dokuments sehen möchten. Außerdem müssen sie in der Reihenfolge ausgewählt werden, in der sie angezeigt werden. Zur Auswahl müssen Sie das Element in der linken Spalte mit dem Cursor markieren und auf den Pfeil in der Mitte des Bildschirms drücken, damit die Details in der rechten Spalte angezeigt werden.
  5. Markieren Sie die anzuzeigenden Details im Tabellenbereich. Die Auswahl der Details folgt dem gleichen Prinzip wie im vorherigen Absatz.
  6. Wählen Sie auf die gleiche Weise die Details des unteren Teils des Dokuments aus.
  7. Wählen Sie im letzten Schritt der Erstellung aus, ob Sie sofort ohne Vorschau drucken möchten, ob Sie die Tabelle schützen möchten, und bestätigen Sie anschließend die Erstellung des Formulars mit der Schaltfläche OK.

Erstellen einer externen Druckform

Mit dem Print Designer erstellte Formulare können mit einem visuellen Software-Editor verglichen werden, bei dem Sie nicht den gesamten Code manuell eingeben, sondern ihn nur aus den vorgeschlagenen Elementen zusammenstellen. Das externe Formular ist eine Datei mit manuell geschriebenem Programmcode, der die Vorgehensweise zur Anzeige von Daten auf dem Bildschirm beschreibt. Dadurch ist es möglich, das gedruckte Formular nach Belieben zu bearbeiten und absolut beliebige Daten in beliebiger Reihenfolge anzugeben.

Ein zusätzlicher Vorteil besteht darin, dass Sie dieses Verfahren Fachleuten anvertrauen können, auch wenn Sie die Feinheiten der 1C 8-Programmierung nicht verstehen oder einfach nicht verstehen möchten. Dieser kann das benötigte Formular für Sie vorbereiten und Ihnen als fertige Datei zur Verfügung stellen, die Sie nur mit wenigen Klicks aktivieren können.

Lassen Sie uns nun mehr über das Verfahren selbst sprechen. Schauen wir uns das Beispiel der Erstellung eines „Rechnungs“-Layouts für das Dokument „Verkäufe (Akten, Rechnungen)“ an.

  1. Öffnen Sie das Programm 1C 8 im Konfiguratormodus.
  2. Klicken Sie auf Datei – Neu – Externe Verarbeitung, geben Sie ihm einen Namen (er sollte keine Leerzeichen enthalten) und klicken Sie dann auf Aktionen – Objektmodul öffnen.
  3. Geben Sie im sich öffnenden Eingabefeld den folgenden Code ein (Werte, die in Ihre eigenen geändert werden können, werden gelb hervorgehoben):

Funktion InformationOnExternalProcessing() Exportieren
Registrierungsparameter = Neue Struktur;
ArrayDestinations = Neues Array;
Array of Assignments.Add("Document.Sales of Goods and Services"); //Geben Sie das Dokument an, für das wir einen externen Druck erstellen. bilden
Registrierungsparameter.Insert("View", "PrintForm"); //maybe - PrintableForm, Objekt ausfüllen, zusätzlicher Bericht, verwandte Objekte erstellen ...
Registrierungsparameter.Insert("Destination", Array of Destination);
Registrierungsparameter.Insert("Name", "Bestellung zum Verkauf von Waren"); //Name, unter dem die Verarbeitung im Verzeichnis der externen Verarbeitung registriert wird
Registrierungsparameter.Insert("SafeMode", FALSE);
Registrierungsparameter.Insert("Version", "1.0");
Registration Options.Insert("Information", "Dieses druckbare Formular wurde als Beispiel erstellt");
CommandTable = GetCommandTable();
AddCommand(CommandTable, "External Order", "ExternalOrder", "CallServerMethod", True, "MXL Print");
Registrierungsparameter.Insert("Commands", CommandTable);
ReturnRegistrationParameters;
EndFunction // Informationen zur externen Verarbeitung()
Funktion GetTableCommand()
Befehle = Neue Wertetabelle;
Commands.Columns.Add("View", New TypeDescription("Row"));//wie die Beschreibung des Druckformulars für den Benutzer aussehen wird
Commands.Columns.Add("Identifier", New TypeDescription("String")); //Name des Formularlayouts drucken
Commands.Columns.Add("Usage", NewTypeDescription("Row")); //ServerMethode aufrufen
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));
Commands.Columns.Add("Modifier", NewTypeDescription("Row"));
Rückkehrteam;
EndFunction
Prozedur AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
NewCommand.View = Ansicht;
NewCommand.Identifier = Bezeichner;
NewCommand.Use = Verwenden;
NewCommand.ShowAlert = ShowAlert;
NewCommand.Modifier = Modifikator;
Ende des Verfahrens

  1. Speichern Sie das Layout zum Drucken als Datei in einem beliebigen Ordner auf Ihrer Festplatte und benennen Sie es entsprechend.

Fügen Sie in dasselbe Dokument das Verfahren zum Starten des Druckens aus dem Programmmenü ein (gelb hervorgehobene Befehle müssen mit der Zeile übereinstimmen):

Befehl hinzufügen (Tabelle der Befehle, „Externe Reihenfolge“, „Externe Reihenfolge“):
Prozedur Drucken (Array von Objekten, Sammlung von PrintForms, PrintObjects, Ausgabeparameter) Exportieren
Print Management.Output TabularDocumentIntoCollection(
Sammlung Druckformen,
„Äußere Ordnung“
„Äußere Ordnung“
GeneratePrintForm(ArrayofObjects, PrintObjects);
EndProcedure // Print()

  1. Fügen Sie ein Layout zum Ausfüllen des gedruckten Formulars ein, indem Sie auf den Namen des externen Formulars in der unteren linken Ecke klicken und „Layouts“ – „Hinzufügen“ – „Tabellendokument“ auswählen und ihm einen Namen geben. Füllen Sie anschließend die Tabelle mit den erforderlichen Daten aus. Zum Beispiel:
    • Bestellung für Produkt Nr. [Realisierungsnummer] ab [Realisierungsdatum] – Rechtsklick – Eigenschaften – Layout – Füllung – Vorlage.
    • Erstellen Sie die Spalten, die in Ihrem Dokument angezeigt werden sollen.
    • Wählen Sie die eingegebenen Zellen aus, klicken Sie auf Tabelle – Namen – Namen vergeben – geben Sie den Namen „Kopfzeile“ ein.
    • Kopieren Sie die Zeile mit den Tabellenüberschriften, wählen Sie sie aus, klicken Sie mit der rechten Maustaste - Eigenschaften - Layout - Füllung - Parameter.
    • Wählen Sie eine Zeile aus und benennen Sie sie beispielsweise „StringTCH“.
    • Erstellen Sie eine Fußzeile: Schreiben Sie Total, die Zelle, in der der Gesamtbetrag angezeigt werden soll, nennen Sie sie TotalTotal, wählen Sie in den Eigenschaften „Parameter“ aus.
    • Geben Sie den Verantwortlichen an und geben Sie in den Zelleigenschaften für die Anzeige des Nachnamens „Parameter“ an.
    • Wählen Sie die unteren Zeilen aus und nennen Sie den Bereich „Fußzeile“.
  2. Geben Sie nun im Eingabefenster die Funktion zum Erzeugen eines gedruckten Formulars ein:

Funktion GeneratePrintForm(LinkToDocument, PrintObjects)
TabularDocument = Neues TabularDocument;
TabularDocument.Name of Print Parameters = „PRINT_PARAMETERS_Invoice für Zahlung an VRTU“;
Processing Layout = GetLayout("Payment InvoiceExternal");
//Kopfzeile füllen
AreaHeader = ProcessingLayout.GetArea("Header");
AreaHeader.Parameters.DocumentNumber = LinkToDocument.Number;
AreaHeader.Parameters.DocumentDate = LinkToDocument.Date;
AreaHeader.Parameters.OrganizationName = LinkToDocument.Organization.Name;
//den Header in einem Tabellenkalkulationsdokument ausgeben
TabularDocument.Output(HeaderArea);
//Füllen Sie die PM-Zeilen aus
RowArea = ProcessingLayout.GetArea("ROW");
Für jede aktuelle Zeile aus Document Link.Products Cycle
FillPropertyValues(RowArea.Parameters, CurrentRow);
TabularDocument.Output(RowArea);
EndCycle;
//den Keller füllen
AreaFooter = ProcessingLayout.GetArea("Footer");
AreaFooter.Parameters.QuantityTotal = LinkToDocument.Products.Total("Quantity");
AreaFooter.Parameters.AmountTotal = LinkToDocument.Products.Total("Amount");
AreaFooter.Parameters.ResponsibleName = LinkToDocument.Manager.Name;
//Fußzeile in ein Tabellenkalkulationsdokument ausgeben
TabularDocument.Output(AreaFooter);
TabularDocument.AutoScale = True;
return TabularDocument;
EndFunction

  1. Speichern Sie Ihre Änderungen am Dokument.
  2. Jetzt müssen Sie das erstellte Formular aktivieren. Dafür:
    • Gehen Sie zu „Verwaltung“ – „Druckformulare, Berichte und Bearbeitung“ – „Zusätzliche Meldungen und Bearbeitung“.
    • Klicken Sie auf die Schaltfläche „Erstellen“, wählen Sie die externe Formulardatei im Explorer aus und bestätigen Sie Ihre Eingabe mit der Schaltfläche „Speichern und schließen“.
  3. Um dies zu überprüfen, gehen Sie zu Verkäufe – Verkäufe (Akten, Rechnungen), klicken Sie auf die Schaltfläche „Drucken“, wählen Sie Ihr Formular aus und überprüfen Sie, ob es korrekt ausgefüllt ist.
  4. Drucken Sie das Dokument bei Bedarf aus.

Abschluss

Wir haben uns ein Beispiel für die Erstellung eines druckbaren Formulars mit dem Print Designer und mit dem Tool zum Erstellen externer Formulare angesehen. Wir hoffen, dass bei Ihnen alles klappt. Hinterlassen Sie Ihre Fragen in den Kommentaren.

Externe Druckformulare für eine reguläre Bewerbung (für die Konfiguration Enterprise Accounting 2.0, Salary and Human Resources Management 2.5, Trade Management 10.3 usw.) sind im Vergleich zu externen Druckformularen für eine verwaltete Bewerbung recht einfach zu erstellen.

Warum externe Druckformen erstellen?

Der Vorteil eines externen gedruckten Formulars gegenüber einem herkömmlichen Formular besteht darin, dass eine Änderung der Konfiguration der Informationsbasis vermieden werden kann. Dies bedeutet, dass der Prozess späterer Konfigurationsaktualisierungen nicht kompliziert ist. Darüber hinaus sind externe Druckformulare neben der externen Verarbeitung die einzige Möglichkeit, die Funktionalität von Basisversionen von 1C-Konfigurationen zu erweitern, die überhaupt nicht geändert werden können.

Und noch etwas zum Schluss: Externe gedruckte Formulare lassen sich leichter reproduzieren, denn Es handelt sich um eine separate Datei, die schnell mit der Infobase verbunden werden kann.

So erstellen Sie ein externes Druckformular

Schauen wir uns den Prozess der Erstellung eines externen 1C-Druckformulars Schritt für Schritt an:

  1. Wir erstellen Fremdbearbeitung. Wählen Sie dazu den Menüpunkt im Konfigurator aus Datei – Neu... Und in dem sich öffnenden Dialogfeld - Externe Verarbeitung.
  2. Erstellen Sie ein externes Verarbeitungsattribut mit dem Namen Objektreferenz. Der Attributtyp ist ein Link zu einem Verzeichnis oder Dokument, für das ein externes gedrucktes Formular erstellt wird. Das gleiche Formular kann für mehrere Objekttypen verwendet werden, in diesem Fall für den Attributdatentyp Objektreferenz muss zusammengesetzt sein.
  3. Im Objektmodul erstellen wir eine Exportfunktion mit dem Namen Siegel, das ein fertig gedrucktes Tabellenkalkulationsdokument zurückgeben sollte.

Es kommt häufig vor, dass Sie das Layout eines vorhandenen gedruckten Formulars geringfügig anpassen und es extern gestalten müssen. Fügen Sie dem Layout beispielsweise das Siegel der Organisation und die Unterschrift des Managers hinzu.

Erstellen einer externen Druckform basierend auf einer Standardform mit geringfügigen Änderungen

Betrachten wir diesen Vorgang am Beispiel der Erstellung eines externen Druckformulars eines Universalüberweisungsdokuments für ein Dokument Verkauf von Waren und Dienstleistungen 1C: Buchhaltung. Es unterscheidet sich vom gedruckten Standardformular durch das Vorhandensein des Siegels der Organisation.

  1. Erstellen externer Verarbeitung mit Requisiten Objektreferenz, Datentyp - DocumentLink. Verkauf von Waren und Dienstleistungen.
  2. Wir finden das Layout des Standard-UPD-Druckformulars (es befindet sich in den allgemeinen Layouts) und kopieren (ziehen) es in das externe Bearbeitungsfenster. Layouts anderer gedruckter Formulare können in den Dokumenten oder Nachschlagewerken selbst enthalten sein.
  3. Wir nehmen die notwendigen Änderungen am kopierten Layout des gedruckten Formulars vor.
  4. Wir finden die Funktion, die für die Generierung des gedruckten Formulars verantwortlich ist. Diese Funktion sollte das generierte Tabellendokument zurückgeben. Kopieren Sie den Inhalt in die Exportfunktion Siegel() im externen Verarbeitungsobjektmodul.
    In unserem Fall ist dies die Funktion PrintUniversalTransferDocument() Exportieren aus dem Dokumentobjektmodul Verkauf von Waren und Dienstleistungen.
    Sofern es sich um erhebliche Layoutänderungen handelte (Bereiche und/oder Parameter geändert), müssen entsprechende Anpassungen an der Druckfunktion vorgenommen werden.
  5. Wir versuchen, externe Bearbeitung einzusparen. Allerdings erhalten Sie wahrscheinlich Fehlermeldungen, die darauf hinweisen, dass einige der von der Druckfunktion aufgerufenen Prozeduren und Funktionen fehlen. Diese Funktionen und Prozeduren müssen im Quelldokument gefunden und auch in das externe Verarbeitungsobjektmodul kopiert werden. Oder passen Sie den Link an, wenn die ursprüngliche Funktion oder Prozedur exportiert wird.
  6. (nicht unbedingt). Um eine externe Druckform zu testen, ist es praktisch, eine Form zu erstellen, auf der die Requisiten platziert werden Objektreferenz. Taste Ausführen muss eine Prozedur aufrufen Siegel() aus dem Objektmodul. Dazu wird dem Button-Click-Ereignis eine Prozedur gegeben: