heim - Für Anfänger
1c-Befehlsformulareigenschaft unter Verwendung der aktuellen Zeile.

So installieren Sie eine Zeile in 8.2 ( Verwaltete Formulare) lesen .

Zunächst möchte ich Sie daran erinnern, dass es sich bei den Daten im tabellarischen Teil des Dokuments (oder Wertetabelle) und im tabellarischen Feld um unterschiedliche Objekte handelt. Um einige visuelle Aktionen durchzuführen, arbeiten wir mit einem Tabellenfeld. In diesem Fall verwenden wir die Eigenschaft „CurrentRow“, die dafür verantwortlich ist, welche Zeile aktiv ist.

Um die benötigte Zeile im Tabellenfeld auszuwählen, benötigen wir zwei Schritte:

1. Suchen Sie die benötigte Zeile im Datenobjekt, das im Tabellenfeld angezeigt wird
Ich möchte betonen, dass hier ein Datenobjekt benötigt wird. Wir haben zum Beispiel ein Dokument „Verkäufe von Waren und Dienstleistungen“, das Folgendes enthält tabellarischer Abschnitt„Produkte“ und wir haben beschlossen, die 2. Zeile im Dokumentformular aktiv zu machen. Dann schreiben wir im Dokumentformularmodul:


// Die zweite Zeile hat einen Index von eins
RequiredString = Produkte;

Oder wir wissen, dass in der zweiten Zeile der Nomenklaturspalte das Codeelement „001“ ist, dann verwenden wir die Konstruktion:


// Finden Sie zuerst das Verzeichniselement Nomenklatur anhand des Codes
// und suchen Sie dann im tabellarischen Teil „Produkte“ danach
RequiredLine = Products.Find(Directories.Nomenclature.FindByCode("001"));

2. Setzen Sie den Wert der aktuellen Zeile auf die gefundene Zeile
Jetzt müssen wir den Wert der Variable „RequiredRow“ der Tabellenfeldeigenschaft „CurrentRow“ zuweisen:


// wenn unser Tabellenfeld auch Produkte heißt
Form Elements.Products.CurrentRow = RequiredRow;

// wenn das Tabellenfeld TableField1 heißt

Infolgedessen könnten die Codezeilen so aussehen:

RequiredLine = Products.Find(Directories.Nomenclature.FindByCode("001"));
Form Elements.TableField1.CurrentRow = RequiredRow;

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 der Zeitraum, in dem sich der Benutzer befindet dieser Moment Der Cursor befindet sich. 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 so 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 Tabellenteils:

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

Zuerst müssen Sie verstehen, dass es ein Objekt gibt, das Daten enthält, zum Beispiel Form DataCollection, und dass es ein Objekt gibt, das Daten visuell anzeigt – eine Tabelle.

Es gibt nur die aktuelle Zeile in der Tabelle; sie kann nicht verwendet werden, um alles herauszufinden bestehende Werte FormDataDie Sammlung, mit der es verknüpft ist. Die FormDataCollection wiederum verfügt nicht über eine aktuelle Zeile. Um diese Objekte in 1C zu verbinden, wird ein Identifier verwendet, da die Reihenfolge der Zeilen sowohl im visuellen Teil als auch in den Daten geändert werden kann, die Verbindung jedoch nicht unterbrochen werden sollte.

Schauen wir uns das anhand eines Beispiels an:

Das Formular verfügt über eine Typspezifikation (Wertetabelle) – in Klammern, da der tatsächliche Typ FormDataCollection ist

Die Details werden im Formular in Form einer Tabelle angezeigt.

Definieren einer Wertetabellenzeile anhand der aktuellen Tabellenzeile

Um festzustellen, welche Zeile des TK aktuell aktuell ist, müssen Sie zunächst die Zeilenkennung in der Tabelle abrufen und diese dann verwenden, um die Zeile im TK zu finden

RowIdentifier = Elements.TZ.CurrentRow; // Den Bezeichner in der Tabelle abrufen LineTZ = TZ.FindByIdentifier(StringIdentifier);

Festlegen der aktuellen Zeile in der Tabelle

Um die aktuelle Tabellenzeile festzulegen, müssen Sie das Gegenteil tun. Rufen Sie zuerst die TK-Kennung ab und legen Sie dann die aktuelle Zeile der Tabelle darauf fest.

LineTZ = FormDataCollection; // Nehmen Sie zum Beispiel Zeile 1String Identifier = LineTZ.GetIdentifier(); Elements.TK.CurrentRow = RowIdentifier;

Zum leichteren Verständnis können Sie es herunterladen



 


Lesen:



So erstellen Sie Aufkleber in VK. So erstellen Sie Aufkleber in Telegram

So erstellen Sie Aufkleber in VK. So erstellen Sie Aufkleber in Telegram

Labels ist ein Programm zur Gestaltung von Etiketten und Preisschildern für Waren, Visitenkarten, Kundenkarten und anderen kleinformatigen Drucksachen.

Tick ​​auf Twitter: Was bedeutet es und wie bekommt man es? Was bedeutet km auf Twitter?

Tick ​​auf Twitter: Was bedeutet es und wie bekommt man es? Was bedeutet km auf Twitter?

Wahrscheinlich ist jedem Twitter-Nutzer schon einmal ein Account in seinem Feed aufgefallen, bei dem neben dem Namen ein mysteriöses blaues Häkchen zu sehen war. Was bedeutet das...

Tipps zur Pflege eines Laptops Was man mit einem Laptop nicht tun sollte

Tipps zur Pflege eines Laptops Was man mit einem Laptop nicht tun sollte

Wie sollten Sie mit Ihrem Laptop umgehen, damit er lange hält und Sie im entscheidenden Moment nicht im Stich lässt? Was sind die Bedienfunktionen...

Matching-Bilder basierend auf „charakteristischen Merkmalen“ 1c-Datenaustausch, der den Objekt-Matching verändert

Bildbasiertes Matching

Drucken (Strg+P) Datenabgleichsmechanismus beim Austausch über ein universelles Format Der Datenabgleichsmechanismus soll das Problem lösen ...

Feed-Bild RSS