Wie öffne ich ein Listenformular mit Auswahl? Wie öffne ich ein Listenformular mit einer Auswahl? Auswahl im Auswahlformular 8.2

Es gibt mehrere Möglichkeiten, ein Listenformular mit einer voreingestellten Auswahl zu öffnen. Schauen wir sie uns an:

  1. Erster Weg besteht darin, dass Sie beim Öffnen eines Formulars einen Formularparameter festlegen können Auswahl, und öffnen Sie das Listenformular mit diesem Parameter. Parameter Auswahl stellt eine Struktur dar. Die Namen der Elemente entsprechen den Namen der Felder, nach denen die Auswahl erfolgt, und die Werte enthalten die Werte
    Auswahl Dies ist eine Option zur Erweiterung dynamischer Listen verwalteter Formulare. Das heißt, es existiert für Formulare, deren Hauptattribut das Typattribut ist DynamischeListe, wie z. B. Listenformulare und Auswahlformulare.

Beim Öffnen des Formulars erfolgt die Auswahl anhand des angegebenen Feldes. Im folgenden Beispiel wird beispielsweise eine Liste von Rechnungen geöffnet, wobei im Feld „Gegenpartei“ der Wert „OJSC Horns and Hooves“ ausgewählt wird.

Auswahlwert = Neue Struktur („Gegenpartei“ , „JSC Horns and Hooves“);
Auswahloptionen= Neue Struktur("Auswahl", Auswahlwert);
OpenForm („Dokument. Empfangsrechnung. Listenformular“, Auswahloptionen);

2. Sie können ein Listenformular ohne Parameter öffnen:

OpenForm („Dokument. Empfangsrechnung. Listenformular“);

Und dann im Event-Handler des Rechnungslistenformulars Bei CreatedOnServer Schreiben Sie Code, der eine Auswahl in einer dynamischen Liste erstellt, die das Hauptattribut des Formulars ist:

&Auf dem Server
Verfahren Bei CreatedOnServer(Ablehnung , Standardverarbeitung)
Auswahlelement = Liste . Auswahl. Elemente. Hinzufügen (Typ
(„DataCompositionSelectionElement“));
Auswahlelement .LeftValue = Neu Datenlayoutfeld(„Dokumentbetrag“);
Auswahlelement. Vergleichsansicht = Vergleich ViewData-Layout. Mehr ;
Auswahlelement. Nutzung = wahr;
Auswahlelement. RightValue = 150000;
EndProzedur

Die Vorteile dieser Methode sind folgende Vergleich anzeigen Die Auswahl kann nicht nur eingestellt werden Gleich, wie im ersten Fall, und Mehr, Weniger usw.

Allerdings hat diese Methode auch einen ganz wesentlichen Nachteil: Bei dieser Auswahl öffnet sich das Formular immer. Wo auch immer sie angerufen wurde. Daher sollte dieses Formular nicht als Hauptformular bezeichnet werden. Und wenn es dennoch das Hauptformular ist, muss vor der Installation der Auswahl eine Analyse durchgeführt werden, von wo aus dieses Formular geöffnet wird. Zum Beispiel die Analyse von Formularparametern.

3. Und schließlich kann die Auswahlbedingung in einer benutzerdefinierten Anfrage platziert werden, das Daten für eine dynamische Liste auswählt. Beispielsweise müssen wir eine Liste von Rechnungen öffnen, die den in der Artikelliste markierten Artikel enthalten.

Erstellen Sie dazu in Form einer Liste von Elementen einen Befehl und eine entsprechende Schaltfläche VerbrauchsmaterialienRechnungen

Füllen wir den Ausführungshandler für diesen Befehl wie folgt aus:

&OnClient
Verfahren VerbrauchsmaterialienRechnungen(Team )
ListForm = GetForm("Document.Invoice.ListForm");
ListForm. FilterByProduct = Artikel . Aufführen . CurrentRow ;
ListForm. Offen();
EndProzedur

In diesem Handler erhalten wir das Formular der Rechnungsliste und übergeben es an den Formularparameter Nach Produkt filtern Link zum aktuellen Artikel in der Artikelliste und öffnen Sie das Formular mit diesem Parameter.
Anschließend erstellen wir ein Dokumentenlistenformular Verkaufsrechnung und erstellen Sie die Formularattribute Nach Produkt filtern, den wir beim Öffnen als Formularparameter verwenden werden. Öffnen wir nun die Eigenschaftenpalette der Hauptformularattribute Aufführen. Lasst uns die Flagge setzen BenutzerdefinierteAnfrage und in
Linie Listeneinrichtung lasst uns drücken Offen.

Auf dem Feld Anfrage Geben wir den folgenden Anfragetext ein:

WÄHLEN

Rechnungsnummer des Dokumentbelegs,
Dokumenteingangsrechnung.Datum
AUS
Document.ReceiptInvoice AS DocumentReceiptInvoice
WO
Belegeingang Invoice.Products.Product = &Product

In der Anfrage verwenden wir den Parameter Produkt, an die der Link zur aktuellen Zeile der im Attribut des Rechnungslistenformulars enthaltenen Positionsliste gesendet wird Nach Produkt filtern. Dazu wird im Listenformular ein Event-Handler verwendet Beim Öffnen Schreiben wir den Code, um den Wert des Produktanforderungsparameters festzulegen:

&OnClient
Eröffnungsverfahren (Fehler)
Aufführen . Optionen . SetParameterValue(„Produkt“, FilterByProduct);
EndProzedur

Hier List.Options– Dies ist eine Liste dynamischer Listenanforderungsparameter für das List-Attribut. Parameterwert Produkt wird gleich dem Wert des Formularparameters gesetzt Nach Produkt filtern. Als Ergebnis auf Knopfdruck Rechnungen In Form einer Artikelliste erhalten wir nur die Rechnungen aufgelistet, die den aktuell in der Artikelliste ausgewählten Artikel enthalten.

– Dies ist eine Liste dynamischer Listenanforderungsparameter für das List-Attribut.

Code 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Akzeptiert";
DirectoryList.Selection.Status.Set();

Für 1C 8.2:
Es gibt mehrere Möglichkeiten, ein Listenformular mit einer voreingestellten Auswahl zu öffnen. Schauen wir sie uns der Reihe nach an:

1. Die erste Methode besteht darin, dass Sie beim Öffnen des Formulars den Parameter Auswahlformular festlegen und das Listenformular mit diesem Parameter öffnen können. Der Auswahlparameter repräsentiert die Struktur. Die Namen der Elemente entsprechen den Namen der Felder, nach denen die Auswahl erfolgt, und die Werte enthalten die Auswahlwerte. Dies ist eine Option zur Erweiterung dynamischer Listen verwalteter Formulare. Das heißt, es existiert für Formulare, deren Hauptattribut ein Attribut vom Typ „Dynamische Liste“ ist, beispielsweise Listenformulare und Auswahlformulare.

Beim Öffnen des Formulars erfolgt die Auswahl anhand des angegebenen Feldes.
Code 1C v 8.2 UP // Im folgenden Beispiel wird beispielsweise eine Rechnungsliste mit Auswahl durch das Feld „Nummer“ gleich 333 geöffnet.
Auswahlwert = Neue Struktur("Nummer", "333");
SelectionParameters = New Structure("Selection", SelectionValue);

OpenForm("Dokument. Empfangsrechnung. Listenformular", Auswahloptionen);

// Das folgende Beispiel öffnet beispielsweise eine Rechnungsliste
// mit Auswahl durch das Feld „Auftragnehmer“ gleich „OJSC Horns and Hooves“.
Auswahlwert = Neue Struktur("Gegenpartei", "OJSC Horns and Hooves");
SelectionParameters = New Structure("Selection", SelectionValue);
OpenForm("Dokument. Empfangsrechnung. Listenformular", Auswahloptionen);

2. Sie können ein Listenformular ohne Parameter öffnen:
Code 1C v 8.2 UP OpenForm("Document. Receipt Invoice. List Form");

Und dann schreiben Sie im Ereignishandler des Formulars für die Rechnungsliste When CreatedOnServer Code, der eine Auswahl in der dynamischen Liste erstellt, die das Hauptattribut des Formulars darstellt:
Code 1C v 8.2 UP &OnServer

Auswahlelement = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Number");


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
EndProzedur

&Auf dem Server
Vorgehensweise bei CreatedOnServer(Failure, StandardProcessing)
Auswahlelement = List.Selection.Elements.Add(Type
(„DataCompositionSelectionElement“));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
EndProzedur

Die Vorteile dieser Methode liegen in der Vergleichsansicht Zur Auswahl können Sie nicht nur Gleich wie im ersten Fall, sondern auch Mehr, Weniger usw. einstellen.

Allerdings hat diese Methode auch einen ganz wesentlichen Nachteil: Bei dieser Auswahl öffnet sich das Formular immer. Wo auch immer sie angerufen wurde. Daher sollte dieses Formular nicht als Hauptformular bezeichnet werden. Und wenn es dennoch das Hauptformular ist, muss vor der Installation der Auswahl eine Analyse durchgeführt werden, von wo aus dieses Formular geöffnet wird. Zum Beispiel die Analyse von Formularparametern.

3. Schließlich kann die Auswahlbedingung in einer benutzerdefinierten Abfrage platziert werden, die Daten für eine dynamische Liste auswählt. Beispielsweise müssen wir eine Liste von Rechnungen öffnen, die den in der Artikelliste markierten Artikel enthalten.

Erstellen Sie dazu in Form einer Artikelliste einen Befehl und die entsprechende Schaltfläche Rechnungen erhalten.

Füllen wir den Ausführungshandler für diesen Befehl wie folgt aus:
Code 1C v 8.2 UP &OnClient
Prozedur ReceiptsInvoices (Befehl)

ListForm = GetForm("Document.Invoice.ListForm");
ListForm.FilterByProduct = Items.List.CurrentRow;
ListForm.Open();

EndProzedur

In diesem Handler erhalten wir das Formular für die Liste der Rechnungen und übergeben den Link zum aktuellen Artikel in der Artikelliste an den Formularparameter FilterByProduct und öffnen das Formular mit diesem Parameter.

Anschließend erstellen wir ein Formular für die Liste der Dokumente: Receipt Invoice und erstellen ein Formularattribut FilterBy Product, das wir beim Öffnen als Parameter des Formulars verwenden. Öffnen wir nun die Eigenschaftenpalette des Hauptattributs des Listenformulars. Setzen Sie das ArbitraryRequest-Flag und klicken Sie in der Zeile Listeneinstellungen auf Offen.

Geben Sie im Feld „Anfrage“ den folgenden Anfragetext ein:
Code 1C v 8.2 UP SELECT
Rechnungsnummer des Dokumentbelegs,
Dokumenteingangsrechnung.Datum
AUS
Document.ReceiptInvoice AS DocumentReceiptInvoice
WO
Belegeingang Invoice.Products.Product = &Product

In der Anfrage verwenden wir den Parameter „Artikel“, der einen Link zur aktuellen Zeile in der Artikelliste erhält, die im Formularparameter „FilterBy Item“ der Rechnungsliste enthalten ist. Dazu schreiben wir im OnOpen-Listenformular-Ereignishandler Code, um den Wert des Produktanforderungsparameters festzulegen:
Code 1C v 8.2 UP
&OnClient
Eröffnungsverfahren (Fehler)

List.Parameters.SetParameterValue("Product", FilterByProduct);

EndProzedur

Hier List.Options ist eine Liste dynamischer Listenanforderungsparameter für das List-Attribut. Der Wert des Product-Parameters wird auf den Wert des FilterByProduct-Formularparameters gesetzt.

Als Ergebnis erhalten wir durch Klicken auf die Schaltfläche „Rechnungen erhalten“ im Artikellistenformular eine Liste nur der Rechnungen, die den aktuell in der Artikelliste ausgewählten Artikel enthalten.

Wie öffne ich ein Listenformular mit einer Auswahl?

Es gibt mehrere Möglichkeiten, ein Listenformular mit einer voreingestellten Auswahl zu öffnen. Schauen wir sie uns der Reihe nach an:

1. Die erste Methode besteht darin, dass Sie beim Öffnen des Formulars den Formularparameter „Auswahl“ festlegen und mit diesem Parameter das Listenformular öffnen können. Der Auswahlparameter repräsentiert die Struktur. Die Namen der Elemente entsprechen den Namen der Felder, nach denen die Auswahl erfolgt, und die Werte enthalten die Auswahlwerte. Dies ist eine Option zur Erweiterung dynamischer Listen verwalteter Formulare. Das heißt, es existiert für Formulare, deren Hauptattribut das Typattribut ist Dynamische Liste, wie z. B. Listenformulare und Auswahlformulare.

Beim Öffnen des Formulars erfolgt die Auswahl anhand des angegebenen Feldes. Im folgenden Beispiel wird beispielsweise eine Rechnungsliste mit Auswahl nach dem Feld „Nummer“ geöffnet, das 333 entspricht.

Auswahlwert = Neue Struktur("Nummer", "333");

SelectionParameters = New Structure("Selection", SelectionValue);

OpenForm("Dokument. Empfangsrechnung. Listenformular", Auswahloptionen);

2. Sie können ein Listenformular ohne Parameter öffnen:

OpenForm("Document.Invoice.ListForm");

Und dann im Event-Handler des Rechnungslistenformulars Bei CreatedOnServer Schreiben Sie Code, der eine Auswahl in einer dynamischen Liste erstellt, die das Hauptattribut des Formulars ist:

&Auf dem Server

Vorgehensweise bei CreatedOnServer(Failure, StandardProcessing)

Auswahlelement = List.Selection.Elements.Add(Type("DataComposition Selection Element"));

SelectionElement.LeftValue = NewDataCompositionField("Number");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = True;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;

SelectionElement.RightValue = "000000001";

EndProzedur

Die Vorteile dieser Methode bestehen darin, dass der Vergleichstyp für die Auswahl nicht nur wie im ersten Fall auf Gleich, sondern auch auf Mehr, Weniger usw. eingestellt werden kann.

Allerdings hat diese Methode auch einen ganz wesentlichen Nachteil: Bei dieser Auswahl öffnet sich das Formular immer. Wo auch immer sie angerufen wurde. Daher sollte dieses Formular nicht als Hauptformular bezeichnet werden. Und wenn es dennoch das Hauptformular ist, muss vor der Installation der Auswahl eine Analyse durchgeführt werden, von wo aus dieses Formular geöffnet wird. Zum Beispiel die Analyse von Formularparametern.

3. Schließlich kann die Auswahlbedingung in einer benutzerdefinierten Abfrage platziert werden, die Daten für eine dynamische Liste auswählt. Beispielsweise müssen wir eine Liste von Rechnungen öffnen, die den in der Artikelliste markierten Artikel enthalten.

Erstellen Sie dazu in Form einer Liste von Elementen einen Befehl und eine entsprechende Schaltfläche Rechnungen erhalten.

Füllen wir den Ausführungshandler für diesen Befehl wie folgt aus:

&OnClient

Prozedur ReceiptsInvoices (Befehl)

ListForm = GetForm("Document.Invoice.ListForm");

ListForm.FilterByProduct = Items.List.CurrentRow;

ListForm.Open();

EndProzedur

In diesem Handler erhalten wir das Formular für die Liste der Rechnungen und übergeben den Link zum aktuellen Artikel in der Artikelliste an den Formularparameter FilterByProduct und öffnen das Formular mit diesem Parameter.

Anschließend erstellen wir ein Dokumentenlistenformular Kaufrechnung und erstellen Sie das Formularattribut FilterByProduct, das wir beim Öffnen als Formularparameter verwenden. Öffnen wir nun die Eigenschaftenpalette des Hauptattributs des Listenformulars. Lasst uns die Flagge setzen BenutzerdefinierteAnfrage und in der Reihe Listeneinrichtung Klicken Sie auf Öffnen.

Geben Sie im Feld „Anfrage“ den folgenden Anfragetext ein:

WÄHLEN

Rechnungsnummer des Dokumentbelegs,

Dokumenteingangsrechnung.Datum

AUS

Document.ReceiptInvoice AS DocumentReceiptInvoice

WO

Belegeingang Invoice.Products.Product = &Product

In der Anfrage verwenden wir den Parameter „Item“, der einen Link zur aktuellen Zeile in der Artikelliste erhält, die im Formularparameter „FilterBy Item“ der Rechnungsliste enthalten ist. Dazu schreiben wir im OnOpen-Listenformular-Ereignishandler Code, um den Wert des Produktanforderungsparameters festzulegen:

&OnClient

Eröffnungsverfahren (Fehler)

List.Parameters.SetParameterValue("Product", FilterByProduct);

EndProzedur

Hier List.Options ist eine Liste dynamischer Listenanforderungsparameter für das List-Attribut. Der Wert des Product-Parameters wird auf den Wert des FilterByProduct-Formularparameters gesetzt.

Als Ergebnis auf Knopfdruck Rechnungen erhalten In Form einer Artikelliste erhalten wir nur die Rechnungen aufgelistet, die den aktuell in der Artikelliste ausgewählten Artikel enthalten.

Ein Demobeispiel für die 3. Option befindet sich im Verzeichnis 1CITS/EXE/FAQ/OpenFormWithSelection.dt. Das Beispiel wurde auf der Plattformversion 8.2.9.356 durchgeführt.

Damit Öffnen Sie das Auswahlformular mit Auswahl in 1s 8.2(reguläre Formulare) müssen wir einige Aktionen ausführen. Wir holen es zuerst. Danach legen wir die Auswahl fest und öffnen sie programmgesteuert. Hier ist ein Codebeispiel:

Auswahl auf dem Formular im 1C 8.2-Eingabefeld mit mehreren Werten

Im obigen Beispiel haben wir uns das angeschaut So legen Sie die Auswahl im Auswahlformular fest nach spezifischem Wert. Schauen wir uns nun eine Situation an, in der Sie mehrere Werte ersetzen müssen. Dies kann beispielsweise ein Array sein oder aus einem Abfrageergebnis entladen werden. Dies ist eine Auswahl im 1c-Eingabefeld mit mehreren Bedeutungen.

Zuerst erhalten wir das Auswahlformular, übergeben „Element“ (Eigentümer) in den Parametern und setzen das Auswahlmodus-Flag. Dann erstellen wir eine Werteliste und ein Array. Dabei beachten wir, dass als Auswahl beim Festlegen des Vergleichstyps in der Liste ein Objekt nur mit dem Typ vorhanden sein kann Listenwerte. Wir fügen dem Array Elemente hinzu und laden dieses Array dann in die Werteliste, die wir anschließend in der Auswahl festlegen. Vergessen Sie außerdem nicht, das Flag für die Verwendung dieser Auswahl zu aktivieren und den Vergleichstyp festzulegen.

Festlegen der Auswahl im Eingabefeld des Formulars in 1C 8.3, Ereignis „Start der Auswahl“.

Lassen Sie uns nun überlegen Auswahl im Eingabefeld auf einem verwalteten Formular in 1C 8.3. Suchen wir im Formular das Element, das uns interessiert, in dem wir die Auswahl festlegen, in unserem Fall ist dies das Feld „Organisation“. Wir finden das Ereignis „Start of Selection“, klicken auf die Lupe und befinden uns im Verfahren. Wir sehen den Parameter Selection Data; dieser Parameter ist vom Typ ValueList. Um die Auswahl auf die notwendigen Elemente zu beschränken, müssen wir die Werteliste ausfüllen. Da wir Elemente nur auf dem Server auswählen können, erstellen wir eine Prozedur mit der Kompilierungsanweisung &OnServer. Geben Sie in diesem Verfahren die Auswahldaten ein.

 
Artikel Von Thema:
3 Digitale Signatur kann nicht überprüft werden
Manchmal können bei der Installation absolut aller Treiber Probleme auftreten. Eines davon ist das Problem bei der Überprüfung der digitalen Signatur des Fahrers. Tatsache ist, dass Sie standardmäßig nur Software installieren können, die eine Signatur hat. Darüber hinaus muss diese Unterschrift
TPL-Vorlage erfüllen ihren Zweck
DataLife Engine v.7.5 (DLE) ist eine Mehrbenutzer-News-Engine mit großartiger Funktionalität. Die Engine ist in erster Linie für die Erstellung von Nachrichtenblogs und Websites mit einem großen Informationskontext gedacht. Allerdings hat er
Übertakten einer Monitormatrix – Theorie und Praxis Computeranforderungen
Ich denke, die meisten PC-Benutzer haben davon gehört, dass man einen Prozessor, eine Grafikkarte oder einen RAM übertakten kann. Allerdings wissen nur wenige Menschen, dass man einen Monitor auch übertakten kann, und oft ist der Unterschied beim Übertakten deutlicher und spürbarer als beim Übertakten eines anderen
Vor dem Einschalten der neuen USV (Akkus laden, testen usw.)
Zu den Dingen, die Menschen im Alltag nutzen, zählen unter anderem eine Batterie und ein Spannungswandler. Komplexere Batterien verfügen über eine erweiterte Funktionalität und eine größere Anzahl parallel geschalteter Batterien. Genau mit Pom