Maison / Tutoriels Windows / Options d'édition Skd. Constructeur de schéma de composition de données - onglet paramètres. Création de rapport étape par étape

Options d'édition Skd. Constructeur de schéma de composition de données - onglet paramètres. Création de rapport étape par étape

Dans le générateur de requêtes, lorsqu'il est appelé depuis le formulaire de paramétrage de la source de données, pour le schéma de composition des données. Il existe un onglet « caractéristiques » dont l'utilisation n'est pas clairement décrite dans la documentation. Dans cet article, je vais essayer d'expliquer comment et pourquoi les caractéristiques sont utilisées dans ACS.

Dans le générateur de requêtes, lorsqu'il est appelé depuis le formulaire de paramétrage de la source de données, pour le schéma de composition des données. Il existe un onglet « caractéristiques » dont l'utilisation n'est pas clairement décrite dans la documentation. Dans cet article, je vais essayer d'expliquer comment et pourquoi les caractéristiques sont utilisées dans ACS. Dans les configurations typiques, le mécanisme des propriétés et des valeurs de propriété est activement utilisé, ce qui est disponible pour presque tous les objets. Initialement, dans les ouvrages de référence, ce mécanisme était implémenté dans les configurations 7.7. Or ce mécanisme est mis en œuvre à l'aide d'un plan de types de caractéristiques et d'un registre d'informations, mais l'idée reste la même. Lorsque j'ai rencontré pour la première fois la nécessité d'utiliser ce mécanisme dans le schéma ACS, j'ai souffert pendant très longtemps, des requêtes imbriquées organisées, attachées à la sélection principale et perplexe sur la façon de prendre en compte la possibilité de nouveaux types de propriétés qui ne existent au moment de l'élaboration du rapport. L'ensemble du mécanisme des propriétés, étant simple et logique du point de vue de l'utilisateur, ne se prêtait à aucun traitement normal jusqu'à ce que je découvre l'onglet "Caractéristiques". Le tableau sur l'onglet est très capricieux, soit vous entrez correctement toute la ligne, soit vous refusez d'entrer la ligne du tout, le système ne vous permettra pas de laisser "pour plus tard" une ligne incomplètement remplie. Alors, passons aux détails. Première colonne : Type - ici, nous sélectionnons le type d'objet auquel les caractéristiques seront liées, par exemple "ReferenceReference.Nomenclature". Cela signifie qu'il sera désormais possible d'obtenir des valeurs de propriété pour tous les objets du type spécifié. Ensuite, dans la colonne suivante Source des vues, nous devons définir les paramètres de la source des types de propriétés. Les options de table et de requête sont possibles, pourquoi j'ai besoin de l'option de requête que je dirai plus tard, maintenant nous allons sélectionner l'élément de table. Dans la colonne Types de caractéristiques, il faut sélectionner une table base d'informations, qui stocke vues souhaitées caractéristiques, dans notre exemple ce sera "Plan des Vues des Caractéristiques. Propriétés des Objets". De plus, les valeurs disponibles pour la sélection dans les colonnes Champ clé, Champ de nom et Champ de type de valeur dépendent directement des champs de la table que nous avons sélectionnés. Dans le champ Key, nous sélectionnons Link, dans le champ Name - View (c'est ce que l'utilisateur verra comme nom d'attribut), et dans le champ Type, respectivement, ValueType. Passons maintenant à la source des valeurs. La source des valeurs sera le registre d'informations "Valeurs des valeurs de propriété des objets", nous sélectionnons donc dans la colonne Source des valeurs - le tableau, et dans la colonne Valeurs des caractéristiques - "Registre d'informations .Valeurs des propriétés des objets ». Dans les colonnes Objet, Propriété, Valeur, sélectionnez les champs correspondants du registre Objet, Propriété, Valeur. Il semblerait que ce soit tout. Nous entrons dans les paramètres du schéma, ajoutons un groupement par produits, et ajoutons un groupement subordonné à celui-ci, par exemple, par Marques, nous avons une telle propriété. Nous élargissons la liste des attributs du groupement Nomenclature et ... nous n'y voyons aucune propriété: Le fait est que nous sommes dans le configurateur, d'où il n'y a pas d'accès aux données. Comment faire réglage souhaité? La façon la plus pratique de le faire est d'utiliser la console de composition des données, celle sur le disque ITS ou celle qui est incluse dans le sous-système "Outils de développement". Mais vous pouvez également simplement ouvrir la configuration du rapport en mode Entreprise. Alors, ouvrons le même paramètre, mais en mode entreprise : Comme vous pouvez le voir, nous avons ajouté de nouveaux "Détails", tandis que...

Question : SKD, comment puis-je ouvrir le formulaire de sélection requis pour un paramètre ?


Bon après-midi! Il y a un rapport sur l'ACS, il a le paramètre Brand - le type Directory.Nomenclature. Comment puis-je appeler un formulaire de sélection spécifique pour ce paramètre ? Je l'ai essayé dans l'ACS sur l'onglet "Paramètres", je me suis levé sur le paramètre souhaité - double-cliquez sur la colonne "Options d'édition" - cochez la case "Sélectionner le formulaire" et entrez la valeur Directory.Nomenclature.Form.VoiceFormNecessary . Lorsque vous exécutez le rapport, le formulaire de sélection est toujours utilisé par défaut, et non celui qui est spécifié dans le "Formulaire de sélection". Configuration UT, formes régulières. Dites-moi, pzhl, où, qu'est-ce qui ne va pas?

Réponse: Phrase clé Formulaires ordinaires, passez aux formulaires gérés

Question : Sélectionnez une valeur sur le formulaire de sélection


Bon après-midi!

Application régulière.

Il y a un document. Il a plusieurs conditions requises d'un type de référence, par exemple "DirectoryLink.Banks", avec la valeur "Bank1".

Il est nécessaire sous la forme de sélectionner le répertoire "Banks", SELECT par programme l'élément "Bank1", c'est-à-dire tapez resélectionner cette valeur "Bank1".

Jusqu'à présent, j'ai fait ce qui suit :
Procédure Effectuer la sélection dans le formulaire de sélection (référence)
DirectorySelectionForm = Directories.Banks.GetChoiceForm(,Reference); //récupérer le formulaire de sélection du répertoire Banks par le paramètre passé Link
// J'ai défini la sélection dans ce formulaire de sélection, selon mon lien dans les accessoires
HandbookChoiceForm.Selection.Reference.Use = true;
DirectoryChoiceForm.Selection.Link.Value = lien ;
CatalogSelectionForm.FormElements.CatalogList.HierarchicalView = False ;
ManuelChoiceForm.Open();
//voici le code qui simule l'appui sur le bouton Select, comment ????
FinProcédure

Aide, qui a fait face, ou ont des idées.

Merci.

Réponse:

C'était comme ça :

Procedure ExecuteChoiceInChoiceForm(Link, rec) //paramètre "référence" est un lien de valeur sur le formulaire du document ; "rec" est l'élément de formulaire courant, c'est-à-dire sélectionner la case
Formulaire de sélection de dictionnaire = Directories.Banks.Get SelectionForm(,Rec,Reference);
CatalogSelectionForm.FormElements.CatalogList.HierarchicalView = False ;
OpenForm(FormChooseCatalog, rivières,);

IfCatalogSelectionForm.Open() Alors
ManuelChoiceForm.Activate();
Fin si;

HandbookChoiceForm.CurrentItem.CurrentRow = lien;
ChoiceEl = FormCategoryChoice.CurrentItem.CurrentRow ;

Si ChoiceEl = undefined ou NOT value filled(ChoiceEl) alors
Show("La valeur "+Reference+" n'a pas été trouvée dans le formulaire de sélection de recherche");
Par ailleurs
Formulaire de sélection du manuel.NotifyOfChoice(ChoiceEmail);
Fin si;

FinProcédure

Question : Le bouton « Sélectionner » sur le formulaire de sélection ou comment cliquer sur le bouton « Sélectionner »


Bon après-midi!

Application régulière.

Que pensez-vous de la façon de cliquer sur le bouton "Sélectionner" du formulaire de sélection de document/répertoire ?

Cliquer avec la souris et COM ne propose pas de faire de l'automatisation.

Liste de souhaits : dans le formulaire de sélection, simulez l'appui sur le bouton "Sélectionner".

Réponse: Il semble avoir résolu le problème ... quelques essais.

Ajout après 17 minutes
Jusqu'à présent, cela fonctionne comme ceci:

1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Procédure Perform SelectionIn SelectionForm(Reference , rec) //le paramètre "link" est un lien de valeur sur le formulaire du document ; "rec" est l'élément de formulaire courant, c'est-à-dire sélectionner la case DirectorySelectionForm = Répertoires . Banques. GetSelectionForm(, Req, Link ) ; FormChoiceDirectory. ElementsForm. DirectoryList. HierarchicalView = False ; OpenForm(DirectoryChoiceForm, rivières, ) ; IfFormSelectionDirectory. Opened() Puis HandbookChoiceForm. Activer() ; Fin si ; FormChoiceDirectory. ÉlémentCourant. CurrentLine = lien ; ChoiceEl = FormChoiceCatalog. ÉlémentCourant. LigneActuelle ; si ChoiceEmail = valeur indéfinie ou NOT filled(ChoiceEmail) then Report("Value" + Reference + "n'a pas été trouvé dans le formulaire de sélection de recherche") ; sinon, le HandbookChoiceForm. Notifier à propos deChoice(ChoiceEl); Fin si ; FinProcédure

Question : Pourquoi la valeur du formulaire de sélection n'est-elle plus sélectionnée ?


Il existe un champ sur le formulaire de document du type de référence DocumentLink.PaymentOrderOutgoing. Lorsqu'il est sélectionné, un formulaire de sélection d'un ordre de décaissement s'ouvre. Une fois qu'une valeur est sélectionnée, elle n'est pas remplacée dans le formulaire tel qu'il est sélectionné. Je pensais d'abord le traitement du choix sur le traitement standard et le programme a oublié de prescrire le traitement du choix. Mais tout est typique. L'ouverture du formulaire n'est pas programmatique, sur le terrain dans lequel je choisis de ne mener aucun événement. Que pourrait être?
--- Une association messages, 2 janv. 2018 ---

Une autre application sur les formulaires réguliers. Le formulaire de sélection est géré, mais s'ouvre à partir d'une fenêtre normale. Si vous revenez au formulaire de sélection normal, tout est ok.

Réponse:

Généralement compris. Utile pour voir ce qui arrive à SelectedValue dans le traitement de la sélection. S'est avéré être un tableau. Je suis entré dans les formulaires de sélection, il s'est avéré qu'il y a un choucas à choix multiples. Je l'ai enlevé et tout a fonctionné.

Question : Aidez-moi à définir la sélection dans le formulaire de sélection de répertoire


Lors du choix d'une contrepartie, je transmets par programmation les premiers caractères du nom au formulaire de sélection. Comment faire par programmation le premier élément qui a les mêmes premiers caractères activés.

Réponse:

elektron a dit :

Lors du choix d'une contrepartie, je transmets par programmation les premiers caractères du nom au formulaire de sélection. Comment faire par programmation le premier élément qui a les mêmes premiers caractères activés.

Cliquez pour révéler...

C'est décidé. Réalisation d'un clavier virtuel sur le formulaire de sélection du répertoire "Entrepreneurs".
Lorsque vous appuyez sur une touche, le code est déclenché
ResultSearchByAttribute = CurrentRequest.FindByName(N,False);
FormElements.CatalogList.CurrentLine=SearchResultByAttribute ;
où H est une variable contenant la valeur de la clé

Question : Formulaire de sélection avec sélection pour une liste de valeurs


Bon après-midi. J'ai besoin de votre aide pour résoudre un problème simple.

Config ZUP 2 .5 .113 .1 Il existe un rapport externe, le rapport a pour attribut "liste de bases", type liste de valeurs.
Il existe un formulaire de rapport. Sur le formulaire de rapport, le champ "liste de saisie des bases", ValueType = "ValueList", et ListValueType = "ReferenceReference.ObjectPropertyValue".

Comment ouvrir un formulaire de sélection avec sélection par le propriétaire d'un bien?

Merci d'avance!

Réponse: L'onglet Paramètres contient une colonne Paramètres d'édition. là, vous pouvez essayer de configurer les liens de paramètres de sélection ou le paramètre de sélection

Question : Ouvrir par programmation le formulaire de sélection de documents 1s 8.3


Comment ouvrir par programme le formulaire de sélection de documents 1s 8.3 et enregistrer la valeur sélectionnée dans une variable ?

Google a donné une sorte de solutions de béquille, j'aimerais savoir comment le faire correctement.

Réponse:+ () PM a également une telle méthode magique - télécharger.

Section tabulaire
Charger
Syntaxe:

Télécharger(<Таблица>)
Option :

<Таблица>(obligatoire) Type : Table de valeurs.
Tableau des valeurs d'où chargé partie tabulaire. Les colonnes du tableau sont combinées par nom.
La description:

Charge une partie tabulaire à partir d'une table de valeurs. Dans ce cas, toutes les lignes précédentes de la partie tabulaire sont supprimées. Lors du chargement, les valeurs des colonnes de la partie tabulaire sont remplies avec les valeurs des colonnes du tableau de valeurs portant les mêmes noms.

Disponibilité:

Serveur, client lourd, connexion externe.
Noter:

L'utilisation de la méthode n'est autorisée que si la partie tabulaire est obtenue à partir de la propriété de l'objet. Si la partie tabulaire est obtenue à partir d'une propriété de référence (ou de sélection), l'utilisation de cette méthode entraînera une erreur d'exécution.
Exemple:

Composition.Load(CompositionTable);

Question : Passer des paramètres au formulaire de sélection.


Je demande des indices.
A partir du document "Ventes de biens et services", le formulaire de sélection de contrat (ERP) est appelé. La conf est corrigée, je la compare avec la standard. Dans le ProcessingCreationOnServer du formulaire de sélection, je regarde dans le débogueur Parameters.Selection. Je ne comprends tout simplement pas comment la liste de sélection est formée - il n'y a pas d'appel explicite à ce formulaire avec des paramètres, il n'y a qu'un seul élément de sélection dans la propriété "ChoiceParametersConnection", et il y en a déjà plusieurs dans Parameters.Filter. Quelqu'un peut-il me dire où chercher.

Attention! Voici une version d'essai de la leçon, dont le matériel peut ne pas être complet.

Connectez-vous en tant qu'étudiant

Connectez-vous en tant qu'étudiant pour accéder au contenu de l'école

Système de composition de données 1C 8.3 pour les débutants : établir une connexion entre les ensembles de données

  • Rédigez un rapport qui affiche les clients et leurs produits préférés. Chaque client a une couleur préférée et chaque produit a sa propre couleur - c'est sur la base de ces couleurs que vous devez déterminer le "favori" du produit. Par exemple, si la couleur préférée d'Andrei est le rouge, alors l'un de ses aliments préférés sera les tomates (elles sont rouges).
  • Appliquez deux ensembles de données au rapport. Le premier ensemble est constitué des données de la table de référence "Clients". La seconde - les données du tableau de l'ouvrage de référence "Food".
  • Mettre en place connexion de ces deux ensembles afin que seuls les produits préférés de chacun des clients restent dans le rapport.

Création d'un nouveau rapport

Ouvrez la base de données "Gastronom" dans le configurateur et créez un nouveau rapport via le menu principal :

Type de document - "Rapport externe":

Sous la forme d'un nouveau rapport, indiquez le nom "Leçon6" et cliquez sur le bouton "Ouvrir le schéma de composition des données" :

Laissez le nom de schéma par défaut :

Ajout du premier jeu de données

Dans le schéma qui s'ouvre, allez dans l'onglet "Ensembles de données" et sélectionnez "Ajouter un ensemble de données - requête" via le signe plus vert :

Nous appelons le constructeur de requête :

Spécifiez la table "Clients" et les champs que vous souhaitez obtenir de la requête :

Ajout d'un deuxième jeu de données

Ajout d'un deuxième ensemble de données :

Sélectionnez-le (DataSet2) et appelez à nouveau le constructeur de requête :

Précisez la table de l'ouvrage de référence "Alimentation" et les champs que vous souhaitez obtenir à partir de la requête :

Voici le texte de la requête :

Veuillez noter que nous avons maintenant deux jeux de données dans le rapport : DataSet1 et DataSet2. Chacun a son propre texte de requête et ses propres données.

Rendre les noms plus descriptifs

Pour plus de clarté, renommons Dataset1 en Clients et Dataset2 en Food.

Pour ce faire, double-cliquez sur chacun des ensembles :

Nous pouvons utiliser les données de chacun des ensembles dans notre rapport. Nous accéderons à ces données par le biais de champs.

À ce moment l'ensemble "Clients" comporte les champs suivants : "Nom" et "FavoriteColor", et l'ensemble "Food" : "Name" et "Color".

On voit que les noms se croisent et on peut facilement s'embrouiller. Modifions donc les noms de champs pour qu'ils soient plus descriptifs.

Sélectionnez l'ensemble "Clients" et modifiez les noms des champs comme ceci :

Sélectionnez ensuite l'ensemble "Aliments" et modifiez les noms des champs comme ceci :

Appel du constructeur de paramètres

Enfin, allez dans l'onglet "Paramètres" et cliquez sur baguette magique pour appeler le constructeur de paramètres :

Type de rapport - "Liste...":

Sélectionnez des champs pour le rapport dans les deux ensembles :

Vous voyez pourquoi il était si important de changer les noms des champs ? Au stade des paramètres de composition des données, nous ne voyons pas de quels ensembles proviennent ces champs. Nous ne voyons que leurs noms.

Vérification du rapport

Nous enregistrons le rapport et le générons en mode utilisateur :

Ouais. D'accord, mais pas vraiment. Une soi-disant jointure croisée des deux ensembles a eu lieu (vous devriez être familiarisé avec cela grâce aux jointures dans les requêtes que nous avons étudiées dans les modules précédents). Chaque enregistrement de la table "Clients" a un enregistrement correspondant de la table "Aliments".

Mais de tous ces enregistrements, il ne faut laisser que ceux pour lesquels le champ "FavoriteCustomerColor" est égal au champ "FoodColor":

Relier deux ensembles de données

Pour ce faire, lions deux ensembles de données (Clients et Nourriture) par les champs Couleur préférée du client et Colorant alimentaire.

Allez dans l'onglet "Liens du jeu de données" et cliquez sur le bouton plus pour ajouter un nouveau lien :

Définissez les paramètres comme indiqué ci-dessous :

Je vais faire une explication.

Source et récepteur de communication. Eh bien, tout est clair ici. Spécifiez le premier ensemble (Clients) et le deuxième ensemble (Aliments) de données. Je veux dessiner Attention particulière que la communication se fera selon le principe jointure externe gauche(nous en avons parlé dans le sujet des requêtes des modules précédents). Sur cette base, vous devez choisir quel ensemble sera la source et quel récepteur.

expressions sources. Spécifiez ici une expression ou simplement un champ de l'ensemble de données source (nous avons spécifié le champ Couleur préférée du client à partir de l'ensemble de clients ici).

expression du récepteur. Nous indiquons ici une expression ou simplement un champ de l'ensemble de données du récepteur (nous avons indiqué ici le champ Colorant alimentaire de l'ensemble des aliments).

De cette façon cette connexion ne laissera de la liste précédente que les lignes pour lesquelles le champ FavoriteColor du Client est égal au champ FoodColor.

Enregistrez le rapport et exécutez-le en mode utilisateur :

Excellent!

Je vais faire une explication sur le terrain " État de communication", dont les programmeurs novices frappent si souvent leurs lances.

La condition de lien est un champ auxiliaire. Vous pouvez y écrire des expressions. impliquant uniquement des champs de l'ensemble de données spécifié dans la source du lien.

Dans ce cas, pour toutes les lignes de la source du lien, cette expression (condition du lien) sera vérifiée avant la liaison. Et si cette expression est TRUE, alors une tentative sera faite pour lier cette chaîne aux chaînes du récepteur de liens. Si l'expression est FALSE, aucune tentative de ce type ne sera effectuée.