Das Hauptattribut des Formulars. Verwaltete Formular-Requisiten (1Cv8) 1c Formular-Requisiten hinzufügen

Formen in 1C:Enterprise dienen zur Anzeige und Bearbeitung der in der Datenbank enthaltenen Informationen. Formulare können zu bestimmten Konfigurationsobjekten gehören oder getrennt davon existieren und von der gesamten Anwendungslösung als Ganzes verwendet werden.

Zum Beispiel eine Anleitung Nomenklatur kann mehrere Formulare haben, die für bestimmte Zwecke verwendet werden - Bearbeiten eines Verzeichniselements, Anzeigen einer Liste usw.:

Daneben kann es allgemeine Formulare geben, die nicht zu bestimmten Konfigurationsobjekten gehören - allgemeine Formulare.

Grundformen

Jedes Konfigurationsobjekt kann verwendet werden, um bestimmte Standardaktionen auszuführen. Beispielsweise müssen Sie möglicherweise für jedes Verzeichnis eine Liste seiner Elemente anzeigen, einzelne Elemente des Verzeichnisses anzeigen, eine Gruppe des Verzeichnisses anzeigen, Elemente und Gruppen von Elementen aus dem Verzeichnis auswählen. Für jedes Dokument ist die Liste solcher Aktionen viel kleiner: Anzeigen der Dokumentenliste, Auswählen aus der Dokumentenliste und Anzeigen eines einzelnen Dokuments.

Um die Ausführung solcher Standardaktionen mit den Daten der Objekte der angewandten Lösung sicherzustellen, gibt es für jede von ihnen eine Reihe von Grundformularen, die bei der Ausführung der entsprechenden Aktionen verwendet werden. Das Hauptformular kann jedem der diesem Objekt untergeordneten Formulare zugewiesen werden. Zum Beispiel das Verzeichnis Nomenklatur Folgende Hauptformen können existieren:

Und das Dokument Empfang von Waren und Dienstleistungen Die Zusammensetzung der Hauptformen wird unterschiedlich sein:

Also, wenn der Benutzer die Verzeichnisliste sehen möchte Nomenklatur oder eine Dokumentenliste Empfang von Waren und Dienstleistungen, öffnet das System das entsprechende Formular, das diesen Objekten als Listenformular zugeordnet ist.

Automatisch generierte Formulare

Ein wichtiges Merkmal des 1C:Enterprise 8-Systems ist der Mechanismus der automatisch generierten Formulare. Dieser Mechanismus befreit den Entwickler davon, alle möglichen Formulare für jedes der Konfigurationsobjekte erstellen zu müssen. Es reicht aus, dass der Entwickler ein neues Konfigurationsobjekt hinzufügt, und das System selbst generiert in den richtigen Momenten der Arbeit des Benutzers die erforderlichen Formulare, um die in diesem Objekt enthaltenen Informationen anzuzeigen.

Somit muss der Entwickler seine eigenen Formulare von Anwendungslösungsobjekten nur dann erstellen, wenn sie sich von den automatisch vom System generierten Formularen unterscheiden müssen (anderes Design oder spezifisches Verhalten).

Formular mit Daten verknüpfen

Die Zugehörigkeit des Formulars zu dem einen oder anderen Konfigurationsobjekt bestimmt nicht die Zusammensetzung der Daten, die im Formular angezeigt werden. Dass das Formular beispielsweise zu einem Verzeichnis gehört Nomenklatur, ermöglicht es Ihnen, es einem der Hauptformulare für dieses Verzeichnis zuzuweisen, bestimmt jedoch in keiner Weise, welche Art von Daten dieses Formular anzeigt und wie es sich verhält.

Um das Formular mit den Daten zu verknüpfen, werden die Formularattribute verwendet, die die Liste der vom Formular angezeigten Daten angeben. Alle Formulare haben für sich genommen das gleiche Verhalten, egal welche Daten sie anzeigen. Es kann jedoch eines der Formularattribute als Hauptattribut zugewiesen werden (es ist hervorgehoben in fett), in diesem Fall wird das Standardverhalten des Formulars und seiner Eigenschaften erweitert, je nachdem, welchen Typ das Hauptformularattribut hat:

Zum Beispiel, wenn ein Dokument als Hauptattribut des Formulars zugewiesen ist Empfang von Waren und Dienstleistungen, dann fragt das System nach dem Schließen des Formulars nach einer Bestätigung der Erfassung und Buchung dieses Dokuments. Wenn beispielsweise ein Nachschlagewerk als Hauptattribut des Formulars zugewiesen wird Nomenklatur, dann erfolgt beim Schließen des Formulars keine solche Bestätigungsaufforderung.

Struktur bilden

Die Haupteigenschaft der Formulare besteht darin, dass sie vom Entwickler nicht im Detail „nach Pixeln“ gezeichnet werden. Ein Formular in einer Konfiguration ist eine logische Beschreibung der Zusammensetzung eines Formulars. Und die konkrete Platzierung der Elemente übernimmt das System automatisch beim Anzeigen des Formulars.

Der angezeigte Teil des Formulars ( für den Benutzer sichtbar) wird als Baum beschrieben, der Formularelemente enthält.

Elemente können Eingabefelder, Kontrollkästchen, Optionsfelder, Schaltflächen usw. sein. Außerdem kann ein Element eine Gruppe anderer Elemente sein. Eine Gruppe kann als Panel mit einem Rahmen, als Panel mit Seiten (Registerkarten), als Seite selbst oder als Befehlspanel dargestellt werden. Außerdem kann ein Element eine Tabelle sein, die auch Elemente (Spalten) enthält. Die Elementstruktur beschreibt, wie das Formular aussehen wird.

Alle Funktionen des Formulars werden in Form von Details und Befehlen beschrieben. Details sind die Daten, mit denen das Formular arbeitet, und Befehle sind die ausgeführten Aktionen. So muss der Entwickler im Formulareditor die notwendigen Angaben und Befehle in das Formular einbauen, die Formularelemente erstellen, die diese anzeigen, und die Elemente ggf. in Gruppen anordnen.

Basierend auf dieser logischen Beschreibung generiert das System automatisch Aussehen Formulare, die dem Benutzer angezeigt werden. Dabei berücksichtigt das System verschiedene Eigenschaften der angezeigten Daten (z. B. Typ), um die Formularelemente für den Benutzer möglichst komfortabel anzuordnen.

Der Entwickler kann die Anordnung der Elemente beeinflussen verschiedene Installationen. Es kann die Reihenfolge der Elemente bestimmen, die gewünschte Breite und Höhe angeben. Dies sind jedoch nur einige zusätzliche Information A, das dem System hilft, das Formular zu rendern.

In Formularen kann der Entwickler nicht nur die Befehle des Formulars selbst verwenden, sondern auch globale Befehle, die in der Befehlsschnittstelle der gesamten Konfiguration verwendet werden. Außerdem wurde die Möglichkeit implementiert, parametrierbare Befehle zu erstellen, die andere Formulare unter Berücksichtigung der spezifischen Daten des aktuellen Formulars öffnen. Beispielsweise kann es sich um einen Aufruf eines Berichts über Salden im Lager handeln, das gerade im Rechnungsformular ausgewählt ist.

Allgemeine Requisiten in 1C 8.3 ist ein Plattform-Metadatenobjekt, mit dem Sie ein Attribut für viele Konfigurationsobjekte (Verzeichnisse, Dokumente, Kontenpläne usw.) verwenden können. Das Objekt wurde hauptsächlich erstellt, um die Arbeit des Entwicklers und die Trennung von Daten zu erleichtern.

Allgemeine Details wurden ursprünglich in Version 1C 7.7 implementiert, aber die Entwickler haben es nicht sofort in Plattform 8 der Version aufgenommen. Der Mechanismus der gemeinsamen Details wurde von 1C-Entwicklern erst in Version 8.2.14 eingeführt.

Allgemeine Attribute können sehr bequem hinzugefügt werden, um die Standardobjekte in der Konfiguration nicht zu ändern. Ich verwende sie häufig zusammen mit .

Nach dem Hinzufügen eines gemeinsamen Attributs kann es in Abfragen verwendet und in Form von Objekten angezeigt werden − Äußerlich unterscheidet es sich nicht von den üblichen Requisiten.

Die einzige Einschränkung gemeinsamer Attribute besteht darin, dass sie nicht in verwendet werden können.

Betrachten wir die wichtigsten Einstellungen und Eigenschaften gemeinsamer Attribute, die sich von anderen Konfigurationsobjekten unterscheiden:

Verbindung— eine Liste von Objekten, für die das gemeinsame Attribut verwendet wird, die Einstellung ähnelt der Einstellung des Austauschplans.

Erhalten Sie 267 kostenlose 1C-Videolektionen:

Automatische Verwendung— Die Einstellung bestimmt, ob ein gemeinsames Attribut für die Objekte verwendet wird, für die in der Zusammensetzung der Verwendungsmodus „Automatisch“ angegeben ist.

Datentrennung Wir werden diese Einstellung separat betrachten.

Trennung von Daten in 1C unter Verwendung eines gemeinsamen Attributs

Datentrennung- ein Mechanismus ähnlich dem Mechanismus. Die Leistung dieses Mechanismus ist jedoch effizienter und einfacher zu konfigurieren.

Der Mechanismus ermöglicht es Ihnen, die Anzeige nur von Elementen zu konfigurieren, die der Benutzer sehen kann. Beispielsweise können Sie alle Objekte (Dokumente, Verzeichnisse etc.) unterscheiden, in denen eine bestimmte Organisation installiert ist.

Datentrennung mit gängigen 1C-Details einrichten

Um im allgemeinen Attribut einzurichten, müssen Sie die Datentrennung − angeben Teilen. Unmittelbar nach dem Klicken fordert Sie das System auf, Standardabrechnungsparameter zu erstellen:

In diesem Fall müssen Sitzungsparameter beim Systemstart angegeben werden. Wie das geht, wurde anhand eines Beispiels im Artikel beschrieben.

Damit ist die Einstellung abgeschlossen – der Benutzer hat nur Zugriff auf die Informationen, die in den ausgewählten Sitzungsparametern angegeben sind.

Ein Beispiel für die Verwendung eines gemeinsamen Attributs

Analysieren wir die Einstellung der allgemeinen Requisiten in 1C 8.3 am Beispiel einer Wireframe-Konfiguration und Requisiten Organisation:

Es gibt 3 Dokumente im System, bei denen die erforderliche Organisation angegeben werden muss: Rechnung, Spesenrechnung, Gehaltsabrechnung.

Die Einrichtung ist einfach:

  1. Erstellen Sie ein neues allgemeines Attribut, geben Sie den Typ an — DirectoryLink.Organization.
  2. In der Zusammensetzung arrangieren wir für unsere Unterlagen - Verwenden.

Alles, die Einrichtung ist vorbei!

Sehen wir uns das Ergebnis an:

Das System zeigt das gemeinsame Attribut „als sein eigenes“ an: sowohl in Anfragen als auch in Formularattributen und an anderen Stellen. Das ist so magisch! 🙂

Allgemeine Requisiten 1C 8.3 werden nicht hinzugefügt

Die wichtigsten 1C-Objekte, die beim Arbeiten mit verwalteten Formularen verwendet werden, sind unten aufgeführt. Es werden kurze Codebeispiele gegeben, die die herkömmliche Verwendung dieser Objekte beim Schreiben von 1C-Konfigurationen demonstrieren.

Diese Form

Wird im Formularmodul in Prozeduren verwendet&AtClient und &AtServer .

Ermöglicht den Zugriff auf Formularelemente und -attribute.

Auf das Formularelement wird über ein Objekt zugegriffen Elemente und sieht so aus:

ThisForm.Items.VersionNumber.Header = "v."+ProgramVersion;

Der Zugriff auf das im Formular vorhandene Attribut ist wie folgt:

ThisForm.AnnouncementText="Hallo Kameraden!";

Vereinfachter Zugriff auf Formularelemente und Attribute

Im Formularmodul können Sie das Schlüsselwort grundsätzlich nicht angeben Diese Form . Sie können vereinfacht auf Formularelemente und -attribute zugreifen:

// Formularelement

Elements.VersionNumber.Title = "v."+ProgrammVersion;

// Requisiten bilden

AnnouncementText="Hallo Kameraden!";

Funktionen zum Abrufen von Formulardetails (wichtig!)

Wenn die Formularstütze vom einfachen Typ ist - Zeichenfolge, Zahl, Datum ... dann können Sie den Attributwert einfach nach Namen abrufen (setzen):

Text=Produktname; // Produktname ist ein Formularattribut

Auf diese Weise ist es jedoch unmöglich, die Details des "komplexen" Typs zu erhalten -Wertetabelle, Wertebaum . Wenn Sie versuchen, ein Attribut mit diesem Typ nach Namen zu erhalten, wird ein Objekt dieses Typs zurückgegebenDataFormsCollection.

Um den Wert eines Attributs mit einem "komplexen" Typ zu erhalten, müssen Sie die Funktion verwendenFormAttributeToValue():

CurrentTable=FormAttributeToValue("SelectedConstructionObjects");

Um den Wert eines "komplexen" Attributs zu setzen, können Sie die Funktion verwendenValueVPropsForm(<Значение>, <ИмяРеквизита>) , sind beide Parameter erforderlich.

Funktionen FormAttributeToValue() und ValueVFormProps()nur auf dem Server verfügbar.

Ein Objekt

Genau genommen das Stichwort innerhalb des Formulars nicht. Einfach gesagt, wenn ein Formular erstellt wird, beispielsweise ein Elementformular, erstellt 1C automatisch ein Attribut auf dem Formular mit dem Namen Ein Objekt . Über dieses Attribut sind die Eigenschaften des aktuellen Objekts, das auf dem Formular bearbeitet wird, verfügbar.

oder eine vollständigere Notation:

DiesesObjekt

Enthält das Objekt selbst. Entwickelt, um ein Objekt in einem Objektmodul oder einem Formularmodul zu empfangen.

Verwendung: Nur lesen.

Verfügbarkeit: Server, Thick Client, externe Verbindung.

Formulardetails

Ein Formularattributsatz beschreibt den Inhalt der Daten, die im Formular angezeigt, bearbeitet oder gespeichert werden. Gleichzeitig bieten Formulardetails selbst keine Möglichkeit, Daten anzuzeigen und zu bearbeiten. Zur Anzeige und Bearbeitung werden mit Formularattributen verknüpfte Formularelemente (siehe Abschnitt „Formularelemente“ dieses Kapitels) verwendet. Die Gesamtheit aller Formularattribute wird als Formulardaten bezeichnet.

Wichtig! Es ist zu beachten, dass im Gegensatz zu regulären Formularen alle Daten in einem verwalteten Formular als Attribute beschrieben werden müssen. Formularmodulvariablen dürfen nicht als Datenquellen für Formularelemente verwendet werden.

Zuordnen ist möglich Hauptformularattribut, d. h. eine Requisite, die die Standardfunktionalität des Formulars (Formularerweiterung) definiert. Es ist zu beachten, dass das Formular nur ein Hauptattribut haben kann.

Formularerweiterung sind zusätzliche Eigenschaften, Methoden und Formularparameter des ManagedForm-Objekts, die spezifisch für das Objekt sind, das das Hauptelement des Formulars ist.

Während der Entwicklung eines Formulars können Sie die Möglichkeit zum Anzeigen und Bearbeiten bestimmter Formularattribute im Kontext von Rollen explizit festlegen, indem Sie die Eigenschaften „Anzeigen“ und „Bearbeiten“ verwenden (weitere Einzelheiten finden Sie im Abschnitt „Rollenbasierte Formulareinstellungen“ von das Kapitel „Editoren“). Darüber hinaus kann die Verfügbarkeit dieses oder jenes Attributs im Formular selbst über funktionale Optionen konfiguriert werden (weitere Informationen zu funktionalen Optionen finden Sie im Kapitel "Verwaltung der Konfigurationsoberfläche").

Eigenschaft des Formularattributs Gespeicherte Daten ist ein Hinweis darauf, dass das interaktive Ändern einer Requisite zu einem Versuch führt, Formulardaten für die Bearbeitung zu sperren, sowie automatische Installation Zeichen der Formänderung.

Datentypen, die in verwalteter Form verfügbar sind

Ein verwaltetes Formular unterscheidet sich auch in den Datentypen, mit denen es arbeitet, von einem regulären Formular. Wenn ein regelmäßige Form mit den meisten von 1C:Enterprise bereitgestellten Typen funktioniert (einschließlich der Typen DirectoryObject, DocumentObject usw.), dann können die folgenden Kategorien von Typen in der verwalteten Form unterschieden werden:

  • Typen, die direkt im Formular verwendet werden, sind die Typen, die auf der Seite des Thin- und Web-Clients vorhanden sind (z. B. Number, ReferenceReference.Products, GraphicScheme, SpreadsheetDocument);
  • Die Typen, die in spezielle Datentypen konvertiert werden, sind verwaltete Formulardatentypen. Solche Typen werden in der Liste der Formularattribute in Klammern angezeigt, zum Beispiel (CatalogObject.Products);
  • dynamische Liste (Einzelheiten siehe Abschnitt „Dynamische Liste“ in diesem Kapitel).

Konvertieren von Anwendungsobjekten in Formulardaten

Einige Anwendungstypen (wie das DirectoryObject usw.) sind auf der Seite der Thin- und Web-Clients nicht vorhanden (weitere Details finden Sie im Kapitel Managed-Application-Konzept). Daher hat die Plattform für die Darstellung in Form solcher Anwendungstypen spezielle Datentypen eingeführt, die für die Arbeit in verwalteten Formularen ausgelegt sind. Dieses Merkmal einer verwalteten Anwendung erfordert die Umwandlung von Anwendungsobjekten in Formulardaten (und umgekehrt).

Folgende Datentypen werden verwendet:

  • FormDataStructure - enthält eine Reihe von Eigenschaften eines beliebigen Typs. Eigenschaften können andere Strukturen, Sammlungen oder Strukturen mit Sammlungen sein. Dieser Typ wird beispielsweise in der Form DirectoryObject dargestellt.
  • Die DataFormCollection ist eine Liste typisierter Werte, ähnlich einem Array. Auf ein Element einer Sammlung wird über einen Index oder eine Kennung zugegriffen. Der ID-Zugriff ist in einigen Fällen möglicherweise nicht verfügbar. Dies ist auf den Typ des Anwendungsobjekts zurückzuführen, das von dieser Sammlung dargestellt wird. Der Bezeichner kann eine beliebige ganze Zahl sein. Dieser Typ wird beispielsweise im Formular dargestellt tabellarischer Teil.
  • FormDataStructureWithCollection ist ein Objekt, das gleichzeitig als Struktur und Sammlung dargestellt wird. Es kann wie jede dieser Entitäten behandelt werden. Dieser Typ wird beispielsweise in Form einer Menge von Datensätzen dargestellt.
  • FormDataTree – ein Objekt zum Speichern hierarchischer Daten.

Ein Anwendungsobjekt wird entweder durch ein oder mehrere Formulardatenelemente dargestellt. Im Allgemeinen hängen die Hierarchie und Zusammensetzung der Formulardaten von der Komplexität und Beziehung der Anwendungsobjekte des verwalteten Formulars ab.

Beispielsweise wird ein Dokument, das einen tabellarischen Abschnitt enthält, durch ein Objekt des Typs FormDataStructure (das Dokument selbst) dargestellt, dem ein Objekt des Typs FormDataCollection (der tabellarische Abschnitt des Dokuments) untergeordnet ist.

Wichtig! Beachten Sie beim Entwerfen einer Konfiguration, dass Anwendungsobjekte nur auf dem Server verfügbar sind, während Formulardatenobjekte sowohl auf dem Server als auch auf dem Client verwendet werden können.

Übergeben von Daten zwischen der Client- und der Serverseite eines verwalteten Formulars

Tatsächlich können wir sagen, dass Formulardaten eine einheitliche Darstellung der Daten verschiedener Anwendungsobjekte sind, mit denen das Formular auf die gleiche Weise arbeitet und die sowohl auf dem Server als auch auf dem Client vorhanden sind. Das heißt, das Formular enthält eine gewisse "Projektion" der Daten von Anwendungsobjekten in Form von eigenen Datentypen und konvertiert ggf. zwischen diesen. Wenn der Konfigurationsentwickler jedoch seinen eigenen Datenverarbeitungsalgorithmus implementiert, muss er die Datenkonvertierung (von spezialisierten Typen zu Anwendungstypen und umgekehrt) selbst durchführen.

Beim Bearbeiten von Formulardetails in Fachredakteur(Details siehe Abschnitt „Formulardetails“ im Kapitel „Editoren“) Während der Ausführung des Formulars kann die Datenübertragung zwischen Client und Server beeinflusst werden. Verwenden Sie dazu die Spalte Attribut-Editor. Verwenden Sie immer. Die Auswirkung dieser Eigenschaft unterscheidet sich für drei Arten von Attributen:

  • Für ein Attribut, das einer dynamischen Liste untergeordnet ist (Spalte dynamische Liste):
    • Eigenschaft aktiviert – Attribut wird immer aus der Datenbank gelesen und in die Formulardaten aufgenommen;
    • Eigenschaft ist aus - das Attribut wird aus der Datenbank gelesen und nur dann in die Formulardaten aufgenommen, wenn eines darin sichtbar ist dieser Moment das Formularelement, das dem Attribut oder seinem untergeordneten Attribut zugeordnet ist.
  • Für Requisiten, die der Bewegungssammlung untergeordnet sind:
    • die Eigenschaft ist aktiviert – Dokumentenbewegungen werden aus der Datenbank gelesen und sind in den Formulardaten vorhanden;
    • Eigenschaft ist deaktiviert - Dokumentbewegungen werden nicht aus der Datenbank gelesen und nicht in die Formulardaten aufgenommen (wenn es kein Formularelement gibt, das sich auf Dokumentbewegungen bezieht).
  • Weitere Formulardetails:
    • Eigenschaft aktiviert – das Attribut wird in den Formulardaten vorhanden sein, unabhängig davon, ob es mindestens ein Formularelement gibt, das mit dem Attribut oder seinem untergeordneten Attribut verknüpft ist;
    • Eigenschaft ist deaktiviert – das Attribut ist nur dann in den Formulardaten vorhanden, wenn ein Formularelement mit dem Attribut oder seinem untergeordneten Attribut verknüpft ist. Im Gegensatz zu dynamischen Listenprops spielt die Sichtbarkeit des mit dem Prop verknüpften Elements hier keine Rolle.

Notiz. Es sollte daran erinnert werden, dass die für das übergeordnete Attribut festgelegte Eigenschaft alle untergeordneten Attribute betrifft. Wenn beispielsweise die Eigenschaft Immer verwenden für den tabellarischen Teil des Dokuments deaktiviert ist, geht das System davon aus, dass diese Eigenschaft auch für alle untergeordneten Attribute deaktiviert ist (trotz des tatsächlichen Zustands der Eigenschaft).

Methoden zum Konvertieren von Anwendungsobjektdaten in Formulardaten

Um Anwendungsobjekte in Formulardaten umzuwandeln und umgekehrt, gibt es eine Reihe globaler Methoden:

  • ValueInFormData(),
  • FormDataToValue(),
  • CopyFormData().

Wichtig! Methoden, die mit Anwendungsobjekten arbeiten, sind nur in Serverprozeduren verfügbar. Die Methode zum Kopieren von Werten zwischen Formulardaten ist auf dem Server und auf dem Client verfügbar, da sie keine Anwendungsobjekte als Parameter benötigt.

Bei der Umwandlung von Formulardaten in ein Anwendungsobjekt muss auf Kompatibilität geachtet werden.

  • ValueToFormData() – wandelt ein Anwendungstypobjekt in Formulardaten um;
  • FormDataToValue() – wandelt die Formulardaten in ein Anwendungstypobjekt um;
  • CopyFormData() – kopiert Formulardaten, die eine kompatible Struktur haben. Gibt True zurück, wenn der Kopiervorgang erfolgreich war, oder False, wenn die Struktur der Objekte nicht kompatibel ist.

Notiz. Beim Ausführen von Standardaktionen (Öffnen eines Formulars, Ausführen des Standardspeicherbefehls usw.) eines Formulars mit dem Hauptattribut wird die Konvertierung automatisch durchgeführt.

Lassen Sie uns ein Beispiel dafür geben, wie Sie die Datentransformation in Ihren eigenen Algorithmen verwenden können.

&OnServerCreateProcedureOnServer(Fehler, Standardverarbeitung)

ObjectProduct = Directories.Products.FindBy Name("Kaffeekanne").GetObject(); ValueVFormData(ObjectItem, Objekt);

EndProzedur

&OnClient-Prozedur schreiben()

WriteOnServer();

EndProzedur

&AtServer-Prozedur WriteAtServer()

ObjectProduct = FormDataToValue(Object, Type("CatalogObject.Products")); ObjectItem.Write();

EndProzedur

Das ManagedForm-Objekt verfügt auch über Methoden, die auf dem Server verfügbar sind:

  • ValueVFormAttribute() – konvertiert ein Anwendungstypobjekt in das angegebene Formularattribut.
  • FormAttributeToValue() – wandelt das Formulardatenattribut in ein Anwendungstypobjekt um.

Die Verwendung dieser Methoden ist normalerweise bequemer, da sie beispielsweise Informationen über den Typ des Formularattributs enthalten. Darüber hinaus legt die Methode FormAttributeToValue() die Entsprechung zwischen den Formulardaten und dem Objekt fest, das beim Generieren von Nachrichten verwendet wird. Mehr dazu lesen Sie im Kapitel „ Serviceoptionen Navigation".

Lassen Sie uns ein Beispiel für die Verwendung dieser Methoden geben.

&AtServer-Prozedur RecalculateAtServer()

// Wandelt das Attribut Object in ein Anwendungsobjekt um. Dokument = FormAttributeToValue("Objekt"); // Führt eine Neuberechnung durch die im Dokumentenmodul definierte Methode durch. Dokument.Neu berechnen (); // Konvertiert das Anwendungsobjekt zurück in Requisiten. ValueVFormAttribute(Dokument, "Objekt");

EndProzedur

Software-Schnittstelle

Formulardatenbaum (Formdatenbaum)

  • FindById (FindById)
  • GetItems (GetItems)

Beschreibung:

Entwickelt, um einen Baum in verwalteten Formulardaten zu modellieren.

Dieses Objekt kann zu/von XDTO serialisiert werden. Der XDTO-Typ, der einem gegebenen Objekt entspricht, ist im Namensraum definiert. Name des XDTO-Typs:

GetItems (GetItems)

Syntax:

GetItems()

Rückgabewert:

Typ: FormDataTreeItemsCollection.

Beschreibung:

Ruft eine Auflistung von Strukturelementen der obersten Ebene ab.

Verfügbarkeit: Client, Server, Thin Client, Webclient.

FindById (FindById)

Syntax:

FindByID(<Идентификатор>)

Optionen:

<Идентификатор>(erforderlich)

Nummer eingeben. Baumelement-ID.

Rückgabewert:

Typ: FormDataTreeElement.

Beschreibung:

Ruft ein Element der Sammlung nach ID ab.

Verfügbarkeit: Client, Server, Thin Client, Webclient.

FormDataTreeItem (FormDataTreeItem)

Eigenschaften:

<Имя свойства> (<Имя свойства>)

  • GetId (GetId)
  • GetParent (GetParent)
  • GetItems (GetItems)
  • Eigentum

Beschreibung:

Das Element des Formulardatenbaums.

FormDataTreeItemCollection (FormDataTreeItemCollection)

Sammlungselemente: DataFormElementTree

Für ein Objekt ist es möglich, die Sammlung mit dem Operator For each ... From ... Loop zu durchlaufen. Die Traversierung wählt die Elemente der Sammlung aus. Auf ein Element einer Sammlung kann mit dem Operator [...] zugegriffen werden. Als Argument wird der Index des Elements übergeben.

  • Einfügung
  • Hinzufügen
  • Index (IndexOf)
  • Zählen
  • Klar
  • Erhalten (bekommen)
  • Bewegen
  • Löschen

Beschreibung:

Sammlung von Baumelementen.

Verfügbarkeit: Client, Server, Thin Client, Webclient.

Siehe auch:

  • DataFormItemTree, Methode GetItems
  • FormDataTree, Methode GetItems

Merkmale der Arbeit mit einem Wertebaum

Baumaktualisierung

Es gibt ein Problem Herbst Plattformen beim Aktualisieren des Baums.

Wenn im Baum ein Knoten expandiert und ein untergeordneter Knoten ausgewählt wurde, dann beim Aktualisieren des Baums mit der Funktion ValueInDataForms Plattform stürzt ab.

Lösung: Vor der Aktualisierung müssen Sie den Baum löschen.

Zum Beispiel:

&OnServer-Prozedur ClearTree(elements) Für jedes Element von elements Loop ClearTree(element.GetElements()); EndCycle; Elemente.Clear(); EndProzedur

&AtServer-Prozedur FillConceptTree() dConcepts = cProperties.BuildConceptTree(OnDate, Meta.CurrentIB()); ClearTree(Konzeptbaum.GetItems()); ValueVFormData(dConcept, ConceptTree); EndProzedur

&Bei der Client-Prozedur OnDateOnChange(Element) FillConceptTree(); EndProzedur