Comment ouvrir un formulaire de liste avec une sélection ? Comment ouvrir un formulaire de liste avec sélection ? Ouvrir le formulaire de sélection avec la sélection 1s 8.2.

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

Pour 1C 8.2 :
Il existe plusieurs façons d'ouvrir un formulaire de liste avec une sélection prédéfinie. Regardons-les dans l'ordre :

1. La première méthode est que lors de l'ouverture du formulaire, vous pouvez définir le paramètre Formulaire de sélection et ouvrir le formulaire de liste avec ce paramètre. Le paramètre Selection représente la structure. Les noms des éléments correspondent aux noms des champs par lesquels la sélection est effectuée, et les valeurs contiennent les valeurs de sélection. Il s'agit d'une option d'extension de formulaire gérée par liste dynamique. Autrement dit, il existe pour les formulaires dont l'attribut principal est un attribut de type Liste dynamique, par exemple les formulaires de liste et les formulaires de sélection.

A l'ouverture du formulaire, la sélection sera effectuée en fonction du champ spécifié.
Code 1C v 8.2 UP // Par exemple, dans l'exemple suivant, une liste de factures est ouverte avec sélection par le champ Numéro égal à 333.
Valeur de sélection = Nouvelle structure("Nombre", "333");
SelectionParameters = Nouvelle Structure("Sélection", SelectionValue);

OpenForm("Document. Réception de facture. Formulaire de liste", Options de sélection);

// Par exemple, l'exemple suivant ouvre une liste de factures
// avec sélection par le champ Entrepreneur égal à « Cornes et sabots OJSC ».
Valeur de sélection = Nouvelle structure("Contrepartie", "Cornes et sabots OJSC");
SelectionParameters = Nouvelle Structure("Sélection", SelectionValue);
OpenForm("Document. Réception de facture. Formulaire de liste", Options de sélection);

2. Vous pouvez ouvrir un formulaire de liste sans paramètres :
Code 1C v 8.2 UE OpenForm("Document. Reçu Invoice.List Form");

Et puis, dans le gestionnaire d'événements du formulaire pour la liste des factures When CreatedOnServer, écrivez du code qui crée une sélection dans la liste dynamique, qui est l'attribut principal du formulaire :
Code 1C v 8.2 UP et sur serveur

Élément de sélection = List.Selection.Elements.Add(Type("Élément de sélection DataComposition"));
SelectionElement.LeftValue = NewDataCompositionField("Nombre");

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible ;
SelectionElement.RightValue = "000000001";
Fin de la procédure

&Sur le serveur
Procédure lors de la création sur serveur (échec, traitement standard)
Élément de sélection = List.Selection.Elements.Add (Type
(« DataCompositionSelectionElement ») );
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More ;
SelectionElement.Use = True ;
SelectionElement.RightValue = 150 000 ;
Fin de la procédure

Les avantages de cette méthode sont que la vue comparative pour la sélection, vous pouvez définir non seulement Égal, comme dans le premier cas, mais aussi Plus, Moins, etc.

Mais cette méthode présente aussi un inconvénient très important : avec cette sélection, le formulaire s'ouvrira toujours. D'où qu'elle ait été appelée. Par conséquent, ce formulaire ne doit pas être désigné comme le formulaire principal. Et si, néanmoins, c'est le principal, alors avant d'installer la sélection, il est nécessaire de fournir une sorte d'analyse de l'endroit où ce formulaire s'ouvre. Par exemple, analyser les paramètres du formulaire.

3. Enfin, la condition de sélection peut être placée dans une requête personnalisée qui sélectionne les données pour une liste dynamique. Par exemple, nous devons ouvrir une liste de factures contenant l'article mis en surbrillance dans la liste des articles.

Pour cela, sous forme de liste d'éléments, créez une commande et le bouton correspondant Réceptionner les factures.

Remplissons le gestionnaire d'exécution de cette commande comme suit :
Code 1C v 8.2 UP &SurClient
Procédure RéceptionFactures(Commande)

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

Fin de la procédure

Dans ce gestionnaire, nous recevons le formulaire pour la liste des factures et transmettons le lien vers l'élément actuel dans la liste d'articles au paramètre de formulaire FilterByProduct et ouvrons le formulaire avec ce paramètre.

Ensuite, nous allons créer un formulaire pour la liste des documents : Reçu Invoice et créer un attribut de formulaire FilterBy Product, que nous utiliserons comme paramètre du formulaire lors de son ouverture. Ouvrons maintenant la palette des propriétés de l'attribut principal du formulaire Liste. Définir l'indicateur ArbitraryRequest et dans la ligne Paramètres de la liste, cliquez sur Ouvrir.

Dans le champ Demande, saisissez le texte de demande suivant :
Code 1C v 8.2 SÉLECTION HAUT
Document Réception Facture. Numéro,
Document Réception Facture.Date
DEPUIS
Document.ReceiptInvoice AS DocumentReceiptInvoice

Réception du document Invoice.Products.Product = &Product

Dans la requête, nous utilisons le paramètre Item, qui recevra un lien vers la ligne actuelle de la liste d'articles, contenue dans le paramètre du formulaire de liste de factures FilterBy Item. Pour ce faire, dans le gestionnaire d'événements du formulaire de liste OnOpen, nous écrirons du code pour définir la valeur du paramètre de requête Product :
Code 1C v 8.2 UP
&SurClient
Procédure d'ouverture (échec)

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

Fin de la procédure

Ici Liste.Options est une liste de paramètres de demande de liste dynamique pour l'attribut List. La valeur du paramètre Product est définie de manière égale à la valeur du paramètre de formulaire FilterByProduct.

Par conséquent, en cliquant sur le bouton Réception des factures dans le formulaire de liste d'articles, nous recevrons une liste uniquement des factures contenant l'article actuellement sélectionné dans la liste d'articles.

Informations extraites du site

Il existe plusieurs façons d'ouvrir un formulaire de liste avec une sélection prédéfinie. Regardons-les :

  1. Première façon est-ce que lors de l'ouverture d'un formulaire, vous pouvez définir un paramètre de formulaire Sélection, et ouvrez le formulaire de liste avec ce paramètre. Paramètre Sélection représente une structure. Les noms des éléments correspondent aux noms des champs par lesquels la sélection est effectuée, et les valeurs contiennent les valeurs
    sélection. Il s'agit d'une option d'extension de formulaire gérée par liste dynamique. Autrement dit, il existe pour les formulaires dont l'attribut principal est l'attribut type Liste dynamique, tels que les formulaires de liste et les formulaires de sélection.

A l'ouverture du formulaire, la sélection sera effectuée en fonction du champ spécifié. Par exemple, dans l'exemple suivant, une liste de factures est ouverte avec sélection par le champ Contrepartie égal à « OJSC Horns and Hooves ».

Valeur de sélection = Nouvelle structure (« Contrepartie » , "Cornes et sabots JSC");
Options de sélection= Nouvelle Structure("Sélection", SelectionValue);
OpenForm (« Document. Réception de facture. Formulaire de liste », Options de sélection);

2. Vous pouvez ouvrir un formulaire de liste sans paramètres :

OpenForm (« Document. Réception de facture. Formulaire de liste » );

Et puis, dans le gestionnaire d'événements du formulaire liste de factures Lors de la création sur le serveur écrire du code qui crée une sélection dans une liste dynamique, qui est l'attribut principal du formulaire :

&Sur le serveur
Procédure Lors de la création sur le serveur(Refus, Traitement standard)
Élément de sélection = Liste . Sélection. Éléments. Ajouter (Tapez
(« DataCompositionSelectionElement ») );
Élément de sélection .LeftValue = Nouveau Champ de présentation des données("Montant du document");
Élément de sélection. Vue comparative = Vue de comparaisonDisposition des données. Plus ;
Élément de sélection. utilisation = vrai ;
Élément de sélection. Valeur Droite = 150 000 ;
Fin de la procédure

Les avantages de cette méthode sont que VoirComparaison la sélection peut être définie non seulement Équivaut à, comme dans le premier cas, et Plus, Moins et ainsi de suite.

Mais cette méthode présente aussi un inconvénient très important : avec cette sélection, le formulaire s'ouvrira toujours. D'où qu'elle ait été appelée. Par conséquent, ce formulaire ne doit pas être désigné comme le formulaire principal. Et si, néanmoins, c'est le principal, alors avant d'installer la sélection, il est nécessaire de fournir une sorte d'analyse de l'endroit où ce formulaire s'ouvre. Par exemple, analyser les paramètres du formulaire.

3. Et enfin, la condition de sélection peut être placée dans une requête personnalisée, qui sélectionne les données pour une liste dynamique. Par exemple, nous devons ouvrir une liste de factures contenant l'article mis en surbrillance dans la liste des articles.

Pour cela, sous forme de liste d'éléments, créez une commande et un bouton correspondant ConsommablesFactures

Remplissons le gestionnaire d'exécution de cette commande comme suit :

&SurClient
Procédure ConsommablesFactures(Équipe )
ListForm = GetForm("Document.Invoice.ListForm");
Formulaire de liste. FilterByProduct = Articles . Liste . LigneActuelle ;
Formulaire de liste. Ouvrir();
Fin de la procédure

Dans ce gestionnaire, nous recevons le formulaire de la liste des factures et le transmettons au paramètre du formulaire Filtrer par produit créez un lien vers l'élément actuel dans la liste des éléments et ouvrez le formulaire avec ce paramètre.
Ensuite, nous créerons un formulaire de liste de documents Facture de vente et créez les attributs du formulaire Filtrer par produit, que nous utiliserons comme paramètre de formulaire lors de son ouverture. Ouvrons maintenant la palette des propriétés des principaux attributs du formulaire Liste. Mettons le drapeau Demande personnalisée et en
doubler Configuration de la liste appuyons Ouvrir.

Sur le terrain Demande Entrons le texte de requête suivant :

CHOISIR

Document Réception Facture. Numéro,
Document Réception Facture.Date
DEPUIS
Document.ReceiptInvoice AS DocumentReceiptInvoice

Réception du document Invoice.Products.Product = &Product

Dans la requête nous utilisons le paramètre Produit, vers laquelle sera envoyé un lien vers la ligne courante de la liste des éléments contenus dans l'attribut du formulaire liste des factures Filtrer par produit. Pour ce faire, dans le gestionnaire d'événements du formulaire de liste QuandOuvertureÉcrivons le code pour définir la valeur du paramètre de requête Product :

&SurClient
Procédure d'ouverture (échec)
Liste . Possibilités . Définir la valeur du paramètre("Produit", FiltreParProduit);
Fin de la procédure

Ici Liste.Options— il s'agit d'une liste de paramètres de demande de liste dynamique pour l'attribut List. Valeur du paramètre Produit est égal à la valeur du paramètre de formulaire Filtrer par produit. En conséquence, d'un simple clic Factures sous la forme d'une liste d'articles, nous recevrons une liste des seules factures contenant l'article actuellement sélectionné dans la liste d'articles.

— il s'agit d'une liste de paramètres de demande de liste dynamique pour l'attribut List.

Ce code permet d'ouvrir une liste de documents avec une sélection spécifiée ; vous pouvez également ouvrir une liste d'éléments de répertoire avec la sélection souhaitée

Code 1C v 8.2 UP Form = OpenForm("Document. Invoice.Form.ListForm"); //Ouvre le formulaire
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //Ajouter une sélection
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals ; //Comment allons-nous comparer
SelectOwner.Use = Vrai ; // Cochez la case pour utiliser NewDataCompositionField("Nomenclature")
SelectionOwner.LeftValue = NewDataCompositionField("Compte"); //Quels détails utiliserons-nous pour faire la sélection ?
SelectionOwner.RightValue = Objet.Compte ; // Et le sens même de la sélection

Pour ouvrir un formulaire de liste avec une sélection prédéfinie utilisez les méthodes suivantes :

Première façon est que lorsque vous ouvrez un formulaire, vous pouvez définir le paramètre Formulaire de sélection et ouvrir le formulaire de liste avec ce paramètre.

Le paramètre Selection représente la structure. Les noms des éléments correspondent aux noms des champs par lesquels la sélection est effectuée, et les valeurs contiennent les valeurs de sélection. Il s'agit d'une option d'extension de formulaire gérée par liste dynamique. Autrement dit, il existe pour les formulaires dont l'attribut principal est un attribut de type DynamicList, par exemple les formulaires de liste et les formulaires de sélection.

Par exemple, dans l'exemple suivant, une liste de factures est ouverte avec sélection par le champ Numéro, égal à 333.

Code 1C v 8.2 Valeur de sélection UE = Nouvelle structure ("Numéro", "333");
SelectionParameters = Nouvelle Structure("Sélection", SelectionValue);
OpenForm("Document. Réception de facture. Formulaire de liste", Options de sélection);

Deuxième façon

Vous pouvez ouvrir un formulaire de liste sans paramètres :

Code 1C v 8.2 UE OpenForm("Document. Reçu Invoice.List Form");

Et puis, dans le gestionnaire d'événements du formulaire pour la liste des factures When CreatedOnServer, écrivez du code qui crée une sélection dans la liste dynamique, qui est l'attribut principal du formulaire :

Code 1C v 8.2 UP et sur serveur
Procédure lors de la création sur serveur (échec, traitement standard)
Élément de sélection = List.Selection.Elements.Add(Type("Élément de sélection DataComposition"));
SelectionElement.LeftValue = NewDataCompositionField("Nombre");
SelectionElement.ComparisonView = DataCompositionComparisonView.More ;
SelectionElement.Use = True ;
SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible ;
SelectionElement.RightValue = "000000001";
Fin de la procédure

Les avantages de cette méthode sont que le type de comparaison pour la sélection peut être défini non seulement sur Égal, comme dans le premier cas, mais également sur Plus, Moins, etc.

Mais cette méthode présente aussi un inconvénient très important : avec cette sélection, le formulaire s'ouvrira toujours. D'où qu'elle ait été appelée. Par conséquent, ce formulaire ne doit pas être désigné comme le formulaire principal. Et si, néanmoins, c'est le principal, alors avant d'installer la sélection, il est nécessaire de fournir une sorte d'analyse de l'endroit où ce formulaire s'ouvre. Par exemple, analyser les paramètres du formulaire.

Troisième voie

Enfin, la condition de sélection peut être placée dans une requête personnalisée qui sélectionne les données pour une liste dynamique.

Par exemple, nous devons ouvrir une liste de factures contenant l'article mis en surbrillance dans la liste des articles.

Pour cela, sous forme de liste d'éléments, créez une commande et le bouton correspondant Réceptionner les factures.

Remplissons le gestionnaire d'exécution de cette commande comme suit :

Code 1C v 8.2 UP &SurClient
Procédure RéceptionFactures(Commande)
SelectionParameters = Nouvelle Structure("FilterByProduct", Elements.List.CurrentRow);
OpenForm("Document. Réception de facture. Formulaire de liste", Options de sélection);
Fin de la procédure

Dans ce gestionnaire, nous ouvrons le formulaire pour la liste des factures, en passant un lien vers l'élément actuel dans la liste d'articles au paramètre de formulaire FilterByProduct.

Ensuite, nous allons créer un formulaire pour la liste des documents : Reçu Invoice et créer un paramètre de formulaire FilterBy Product, que nous utiliserons pour ouvrir un formulaire avec la sélection requise.

Ouvrons maintenant la palette des propriétés de l'attribut principal du formulaire Liste. Définissez l'indicateur de requête personnalisée et, dans la ligne Paramètres de liste, cliquez sur Ouvrir.

Dans le champ Demande, saisissez le texte de demande suivant :

Code 1C v 8.2 SÉLECTION HAUT
Document Réception Facture. Numéro,
Document Réception Facture.Date
DEPUIS
Document.ReceiptInvoice AS DocumentReceiptInvoice

Réception du document Invoice.Products.Product = &Product

Dans la requête, nous utilisons le paramètre Item, qui recevra un lien vers la ligne actuelle de la liste d'articles, contenue dans le paramètre du formulaire de liste de factures FilterBy Item.

Pour ce faire, dans le gestionnaire d'événements du formulaire de liste Lorsque CreatedOnServer, nous écrirons du code pour définir la valeur du paramètre de requête Product :

Code 1C v 8.2 UP &SurClient
Procédure d'ouverture (échec)
List.Parameters.SetParameterValue("Produit", Parameters.FilterByProduct);
Fin de la procédure

Ici, List.Parameters est une liste de paramètres de demande de liste dynamique pour l'attribut List. La valeur du paramètre Product est définie de manière égale à la valeur du paramètre de formulaire FilterByProduct.

Par conséquent, en cliquant sur le bouton Réception des factures dans le formulaire de liste d'articles, nous recevrons une liste uniquement des factures contenant l'article actuellement sélectionné dans la liste d'articles.

Comment ouvrir un formulaire de liste avec une sélection ?

Il existe plusieurs façons d'ouvrir un formulaire de liste avec une sélection prédéfinie. Regardons-les dans l'ordre :

1. La première méthode est que lors de l'ouverture du formulaire, vous pouvez définir le paramètre Formulaire de sélection et ouvrir le formulaire de liste avec ce paramètre. Le paramètre Selection représente la structure. Les noms des éléments correspondent aux noms des champs par lesquels la sélection est effectuée, et les valeurs contiennent les valeurs de sélection. Il s'agit d'une option d'extension de formulaire gérée par liste dynamique. Autrement dit, il existe pour les formulaires dont l'attribut principal est l'attribut type Liste dynamique, tels que les formulaires de liste et les formulaires de sélection.

A l'ouverture du formulaire, la sélection sera effectuée en fonction du champ spécifié. Par exemple, dans l'exemple suivant, une liste de factures est ouverte avec sélection par le champ Numéro, égal à 333.

Valeur de sélection = Nouvelle structure("Nombre", "333");

SelectionParameters = Nouvelle Structure("Sélection", SelectionValue);

OpenForm("Document. Réception de facture. Formulaire de liste", Options de sélection);

2. Vous pouvez ouvrir un formulaire de liste sans paramètres :

OpenForm("Document.Invoice.ListForm");

Et puis, dans le gestionnaire d'événements du formulaire liste de factures Lors de la création sur le serveurécrire du code qui crée une sélection dans une liste dynamique, qui est l'attribut principal du formulaire :

&Sur le serveur

Procédure lors de la création sur serveur (échec, traitement standard)

Élément de sélection = List.Selection.Elements.Add(Type("Élément de sélection DataComposition"));

SelectionElement.LeftValue = NewDataCompositionField("Nombre");

SelectionElement.ComparisonView = DataCompositionComparisonView.More ;

SelectionElement.Use = True ;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible ;

SelectionElement.RightValue = "000000001";

Fin de la procédure

Les avantages de cette méthode sont que le type de comparaison pour la sélection peut être défini non seulement Égal, comme dans le premier cas, mais également Plus, Moins, etc.

Mais cette méthode présente aussi un inconvénient très important : avec cette sélection, le formulaire s'ouvrira toujours. D'où qu'elle ait été appelée. Par conséquent, ce formulaire ne doit pas être désigné comme le formulaire principal. Et si, néanmoins, c'est le principal, alors avant d'installer la sélection, il est nécessaire de fournir une sorte d'analyse de l'endroit où ce formulaire s'ouvre. Par exemple, analyser les paramètres du formulaire.

3. Enfin, la condition de sélection peut être placée dans une requête personnalisée qui sélectionne les données pour une liste dynamique. Par exemple, nous devons ouvrir une liste de factures contenant l'article mis en surbrillance dans la liste des articles.

Pour cela, sous forme de liste d'éléments, créez une commande et un bouton correspondant Factures de réception.

Remplissons le gestionnaire d'exécution de cette commande comme suit :

&SurClient

Procédure RéceptionFactures(Commande)

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

ListForm.FilterByProduct = Elements.List.CurrentRow ;

ListForm.Open();

Fin de la procédure

Dans ce gestionnaire, nous recevons le formulaire pour la liste des factures et transmettons le lien vers l'élément actuel dans la liste d'articles au paramètre de formulaire FilterByProduct et ouvrons le formulaire avec ce paramètre.

Ensuite, nous créerons un formulaire de liste de documents Facture d'achat et créez l'attribut de formulaire FilterByProduct, que nous utiliserons comme paramètre de formulaire lors de son ouverture. Ouvrons maintenant la palette des propriétés de l'attribut principal du formulaire Liste. Mettons le drapeau Demande personnalisée et dans la ligne Configuration de la liste cliquez sur Ouvrir.

Dans le champ Demande, saisissez le texte de demande suivant :

CHOISIR

Document Réception Facture. Numéro,

Document Réception Facture.Date

DEPUIS

Document.ReceiptInvoice AS DocumentReceiptInvoice

Réception du document Invoice.Products.Product = &Product

Dans la requête, nous utilisons le paramètre Item, qui recevra un lien vers la ligne actuelle de la liste d'articles, contenue dans le paramètre du formulaire de liste de factures FilterBy Item. Pour ce faire, dans le gestionnaire d'événements du formulaire de liste OnOpen, nous écrirons du code pour définir la valeur du paramètre de requête Product :

&SurClient

Procédure d'ouverture (échec)

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

Fin de la procédure

Ici Liste.Options est une liste de paramètres de demande de liste dynamique pour l'attribut List. La valeur du paramètre Product est définie de manière égale à la valeur du paramètre de formulaire FilterByProduct.

En conséquence, d'un simple clic Factures de réception sous la forme d'une liste d'articles, nous recevrons une liste des seules factures contenant l'article actuellement sélectionné dans la liste d'articles.

Un exemple de démonstration pour la 3ème option se trouve dans le répertoire 1CITS/EXE/FAQ/OpenFormWithSelection.dt. L'exemple a été réalisé sur la plateforme version 8.2.9.356.