1c Holen Sie sich eine Zeile aus dem tabellarischen Teil des Dokuments. Wie erhalte ich Daten aus dem tabellarischen Teil von Dokumenten? So geben Sie die Details einer Tabellenzeile programmgesteuert ein

Für viele Objekte in 1C gibt es tabellarische Teile:

  • Verzeichnisse
  • Dokumentation
  • Berichte und Bearbeitung
  • Kontenpläne
  • Charakteristische Typenpläne
  • Berechnungstyppläne
  • Geschäftsprozesse und Aufgaben

Mit tabellarischen Teilen können Sie eine unbegrenzte Menge strukturierter Informationen zu einem Objekt speichern.

Schauen wir uns einige Techniken zum Arbeiten mit tabellarischen Teilen an.

So umgehen Sie den tabellarischen Teil

Um den Tabellenteil zu durchlaufen, können Sie eine Schleife verwenden Für jede

Für jede Zeile aus dem tabellarischen Teil des Zyklus

Report(String. TabularPart-Attribut) ;

EndCycle ;

Bei jeder Iteration in die Variable Linie die nächste Zeile des tabellarischen Abschnitts wird übertragen. Die Werte der Zeilendetails können durch den Ausdruck ermittelt werden Line.AttributeName.

So erhalten und umgehen Sie ausgewählte Zeilen des tabellarischen Teils

Um Informationen aus dem tabellarischen Teil des Objekts anzuzeigen, verwenden Sie ein Formularelement Tabellenfeld. Um die Möglichkeit zu aktivieren, mehrere Zeilen in einem Tabellenfeld auszuwählen, müssen Sie den Wert festlegen Mehrere auf seinem Grundstück Auswahlmodus.

Um eine Liste der ausgewählten Zeilen zu erhalten, verwenden Sie den folgenden Code:

Eine Schleife wird verwendet, um die ausgewählten Zeilen zu durchlaufen. Für jede:

SelectedRows = FormElements. TableFieldName. Ausgewählte Zeilen;

Für jede Zeile aus der Schleife „Ausgewählte Zeilen“.

//Schleifeninhalt

EndCycle ;

So wählen Sie programmgesteuert Zeilen eines tabellarischen Teils (Tabellenfelds) aus und heben deren Auswahl auf

So heben Sie die Auswahl von Zeilen eines Tabellenfelds programmgesteuert auf:

Formularelemente. TableFieldName. Ausgewählte Zeilen. Klar() ;

So wählen Sie alle Zeilen eines Tabellenfelds programmgesteuert aus:

Für jede CurrentRow From TabularPart-Schleife
Formularelemente. TableFieldName. Ausgewählte Zeilen. Add(CurrentRow) ;
EndCycle ;

So löschen Sie den Tabellenteil

TabularPart. Klar() ;

So erhalten Sie die aktuelle Zeile eines Tabellenabschnitts

Die aktuelle Zeile ist die Zeitleiste, in der sich der Benutzer aktuell befindet. Um es zu erhalten, müssen Sie auf das Steuerelement im Formular zugreifen, das dem tabellarischen Teil zugeordnet ist.

Für reguläre Formen sieht der Code folgendermaßen aus:

Formularelemente. TableFieldName. Aktuelle Daten;

Für verwaltete Formulare:

Elemente. TableFieldName. Aktuelle Daten;

So fügen Sie einem Tabellenabschnitt eine neue Zeile hinzu

Hinzufügen einer neuen Zeile am Ende des Tabellenabschnitts:

NewRow = TablePart. Hinzufügen() ;

Hinzufügen einer neuen Zeile an einer beliebigen Stelle im Tabellenabschnitt (nachfolgende Zeilen werden verschoben):

NewRow = TablePart. Einfügen(Index)
//Index – Nummer der hinzugefügten Zeile. Die Zeilennummerierung beginnt bei Null.

Neue Zeile. Props1 = "Wert" ;

So geben Sie die Details einer Tabellenzeile programmgesteuert ein

Wenn Sie die Details einer Tabellenabschnittszeile, die vom Benutzer hinzugefügt wird, programmgesteuert ausfüllen müssen, müssen Sie den Tabellenabschnitts-Ereignishandler verwenden Beim Starten der Bearbeitung.

Die vom Handler erstellte Prozedur verfügt über drei Parameter:

  • Element- enthält ein Steuerelement TabularField.
  • Neue Zeile- Boolescher Wert. Enthält Wert WAHR, falls hinzugefügt Neue Zeile tabellarischer Teil und Lüge, wenn der Benutzer mit der Bearbeitung einer bereits vorhandenen Zeile begonnen hat.
  • Kopieren- Boolescher Wert. Enthält Wert WAHR, wenn der Benutzer die Zeile kopiert, und Lüge in anderen Fällen.

Schauen wir uns ein Beispiel an. Nehmen wir an, wir müssen die Details des tabellarischen Abschnitts ausfüllen KontoKonto, falls eine neue Zeile hinzugefügt wird. Wenn Sie eine bestehende Zeile bearbeiten, müssen Sie das Buchhaltungskonto nicht ändern.

Prozedur TabularPartAtStartEditing(Element, NewRow, Copy)

//Wenn der Benutzer eine vorhandene Zeile bearbeitet, unternehmen wir nichts
Wenn NICHT NewRow, dann
Zurückkehren;
EndIf ;

//Wenn die Zeile neu ist, legen Sie das Buchhaltungskonto fest
TechString = Artikel. Aktuelle Daten; //Die aktuelle Zeile des tabellarischen Teils abrufen
TechString. Buchhaltung = Kontenpläne. Selbsttragend. Erforderliches Konto;
Ende des Verfahrens

Startseite Für Anfänger-Entwickler Programmieren lernen

Wie erhalte ich Daten aus dem tabellarischen Teil von Dokumenten?

Stellen Sie sich beispielsweise eine Situation vor, in der Sie alle im tabellarischen Abschnitt angegebenen Artikelelemente abrufen müssen Waren Unterlagen Verkauf von Waren und Dienstleistungen.

Hierzu können Sie eine Anfrage mit folgendem Text verwenden:

WÄHLEN SIE VERSCHIEDENE Verkäufe von Waren und Dienstleistungen. Waren. Nomenklatur AS Nomenklatur AUS Dokument. Verkäufe von Waren und Dienstleistungen. Waren AS. Verkäufe von Waren und Dienstleistungen

Als Quelle geben wir den tabellarischen Teil der Dokumente an – Tabelle Dokument. Verkauf von Waren und Dienstleistungen. Waren. Wir deklarieren das Ausgabefeld als Feld Nomenklatur, das Teil der Quelltabelle ist. Da das gleiche Produktelement natürlich auch mehrfach in den von uns verwendeten Dokumenten vorkommen kann VERSCHIEDEN um nur die unterschiedlichen Zeilen in der Abfrageausgabetabelle abzurufen.

Lassen Sie uns zum Beispiel eine Verarbeitung erstellen Produktliste, wo das Dokument ausgewählt ist Verkauf von Waren und Dienstleistungen, und durch Klicken auf die entsprechende Schaltfläche wird im Nachrichtenfenster eine Liste der sich nicht wiederholenden Elemente der im tabellarischen Teil dieses Dokuments enthaltenen Nomenklatur angezeigt.

Um die Auswahl der Elemente nur auf Elemente aus dem tabellarischen Teil eines bestimmten Dokuments zu beschränken, verwenden wir den Parameter Verknüpfung in der Bedingung in der Anfrage ( WO...):

WÄHLEN SIE VERSCHIEDENE Verkäufe von Waren und Dienstleistungen Waren. Nomenklatur ALS Nomenklatur AUS Dokument. Verkäufe von Waren und Dienstleistungen. Waren WIE Verkäufe von Waren und Dienstleistungen Waren WO Verkäufe von Waren und Dienstleistungen Waren. Link = &Link

Zur Abrechnung von Geld und Gütern werden in der Wirtschaft häufig verschiedene Tabellen verwendet. Fast jedes Dokument ist eine Tabelle.

Eine Tabelle listet die Waren auf, die aus dem Lager versendet werden sollen. Eine weitere Tabelle zeigt die Zahlungsverpflichtungen für diese Güter.

Daher nimmt in 1C die Arbeit mit Tabellen einen herausragenden Platz ein.

Tabellen in 1C werden auch „tabellarische Teile“ genannt. Verzeichnisse, Dokumente und andere haben sie.

Wenn die Abfrage ausgeführt wird, gibt sie eine Tabelle zurück, auf die auf zwei verschiedene Arten zugegriffen werden kann.

Die erste - schnellere - Auswahl, das Erhalten von Zeilen daraus ist nur der Reihe nach möglich. Die zweite besteht darin, das Abfrageergebnis in eine Wertetabelle hochzuladen und dann wahlfrei darauf zuzugreifen.

//Option 1 – sequenzieller Zugriff auf Abfrageergebnisse

//Hol dir den Tisch
Select = Query.Run().Select();
// Wir gehen alle Zeilen des Abfrageergebnisses der Reihe nach durch
While Select.Next()-Schleife
Bericht(Auswahl.Name);
EndCycle;

//Option 2 – Hochladen in eine Wertetabelle
Request = New Request("SELECT Name FROM Directory.Nomenclature");
//Hol dir den Tisch
Tabelle = Query.Run().Unload().
//weiterhin können wir auch alle Zeilen durchlaufen
Für jede Zeile aus dem Tabellenzyklus
Report(String.Name);
EndCycle;
//oder willkürlich auf Strings zugreifen
Row = Table.Find("Shovel", "Name");

Ein wichtiges Merkmal besteht darin, dass in der Tabelle, die aus dem Abfrageergebnis gewonnen wird, alle Spalten streng typisiert sind. Dies bedeutet, dass Sie durch die Anforderung des Felds „Name“ aus dem Nomenklaturverzeichnis eine Spalte vom Typ „String“ mit einer zulässigen Länge von nicht mehr als N Zeichen erhalten.

Tabelle auf dem Formular (Thick Client)

Der Benutzer arbeitet mit der Tabelle, wenn sie auf dem Formular platziert wird.

Die Grundprinzipien der Arbeit mit Formularen haben wir in der Lektion zu und in der Lektion zu besprochen

Platzieren wir also die Tabelle auf dem Formular. Dazu können Sie die Tabelle aus dem Steuerfeld ziehen. Ebenso können Sie im Menü die Option „Formular/Steuerelement einfügen“ auswählen.

Die Daten können in der Konfiguration gespeichert werden – dann müssen Sie den vorhandenen (zuvor hinzugefügten) tabellarischen Teil des Konfigurationsobjekts auswählen, dessen Formular Sie bearbeiten.

Klicken Sie in der Eigenschaft „Daten“ auf die Schaltfläche „…“. Um die Liste der tabellarischen Teile anzuzeigen, müssen Sie den Objektzweig erweitern.

Wenn Sie den tabellarischen Teil auswählen, fügt 1C selbst Spalten zur Tabelle im Formular hinzu. Vom Benutzer in eine solche Tabelle eingegebene Zeilen werden automatisch zusammen mit dem Nachschlagewerk/Dokument gespeichert.

In derselben Dateneigenschaft können Sie einen beliebigen Namen eingeben und den Typ Wertetabelle auswählen.

Dies bedeutet, dass eine beliebige Wertetabelle ausgewählt wurde. Es werden weder automatisch Spalten hinzugefügt noch automatisch gespeichert, aber Sie können damit machen, was Sie wollen.

Durch einen Rechtsklick auf die Tabelle können Sie eine Spalte hinzufügen. In den Eigenschaften einer Spalte können Sie ihren Namen (zur Referenz im 1C-Code), die Spaltenüberschrift im Formular, die Verbindung mit dem Attribut des tabellarischen Teils (letzteres – wenn keine beliebige Tabelle ausgewählt wird, sondern a tabellarischer Teil).

In den Tabelleneigenschaften des Formulars können Sie angeben, ob der Benutzer Zeilen hinzufügen/löschen kann. Eine erweiterte Form ist das Kontrollkästchen „Nur anzeigen“. Diese Eigenschaften eignen sich zum Organisieren von Tabellen, die zum Anzeigen von Informationen, aber nicht zum Bearbeiten vorgesehen sind.

Um die Tabelle zu verwalten, müssen Sie im Formular ein Befehlsfeld anzeigen. Wählen Sie den Menüpunkt Formular/Steuerelement einfügen/Befehlsleiste.

Aktivieren Sie in den Eigenschaften der Befehlsleiste das Kontrollkästchen „Autofill“, damit die Schaltflächen im Bedienfeld automatisch angezeigt werden.

Tabelle auf Formular (Thin/Managed Client)

Auf einem verwalteten Formular sehen diese Aktionen etwas anders aus. Wenn Sie einen tabellarischen Teil auf dem Formular platzieren müssen, erweitern Sie den Zweig „Objekt“ und ziehen Sie einen der tabellarischen Teile nach links. Und alle!

Wenn Sie eine Wertetabelle platzieren müssen, fügen Sie ein neues Formularattribut hinzu und geben Sie in seinen Eigenschaften den Typ an – Wertetabelle.

Um Spalten hinzuzufügen, verwenden Sie das Kontextmenü für dieses Formularattribut und wählen Sie Attributspalte hinzufügen aus.

Ziehen Sie dann auch die Tabelle nach links.

Damit eine Tabelle über eine Befehlsleiste verfügt, wählen Sie in den Tabelleneigenschaften die Werte im Abschnitt Verwendung – Position der Befehlsleiste aus.

Hochladen einer Tabelle nach Excel

Jede auf dem Formular befindliche 1C-Tabelle kann ausgedruckt oder in Excel hochgeladen werden.

Klicken Sie dazu mit der rechten Maustaste auf Freiraum in der Tabelle und wählen Sie Liste aus.

In einem verwalteten (Thin) Client können ähnliche Aktionen über den Menüpunkt Alle Aktionen/Liste anzeigen durchgeführt werden.

mob_info