Contacts

1C CCD est déchargé dans la table Valeurs. Un exemple d'utilisation d'une source de données externe dans l'écran LCD. Lire le journal d'inscription

Hey!
Aujourd'hui, je veux décrire le sujet avec lequel sans "Scuba", vous ne vous dispersez pas :);)

Scuba au fait que l'immersion est assez profonde. Dans la littérature, il y a peu de liens sur ce sujet et non encore "communiquer" de manière non discerner. Il ne serait même pas invité à une telle action;) au fait, dans la documentation, il a été mentionné très mal et incohérent, vous devez vous référer à la littérature tierce.

Par exemple, je recommande vivement "Développement de rapports complexes dans" 1C: l'entreprise 8.2 ". Système de présentation de données (si spécifiquement, voir pp. 224, 267 et 473)

Dans le CCD, il existe 2 types de sources de données: demande, objet et association (cette chose ne compte pas, ce n'est pas une source de données, mais un gestionnaire disponible). Voir la figure 1:


Donc, si avec une source (définie) de type de données "Demande" à nous plus ou moins compréhensible, comment travailler, alors il y a des difficultés dans la base de données "Objet".

Pour commencer, je vais décrire ce que nous voulons avoir à la sortie:

Signaler, l'utilisateur a appuyé sur le bouton " Façonner"Et la liste des nomenclatures est apparue (voir Fig. 2):

Oui, j'ai fait une inexactitude, à savoir: il n'y a pas de bouton " Façonner"Mais il y a un bouton" nouvel acte"(Je vais vous expliquer un peu plus tard pourquoi c'est arrivé;)

Oui oui! Avenum: Toute cette liste est affichée à partir de l'ensemble de données "Objet":

Décision:

  1. Créer un rapport externe;
  2. Ajouter disposition SCD, appelons-le "ashamompand de base";
  3. Ajoutez un jeu de données "objet", attribuez le nom de la "liste de la liste" (doit être identique à la Fig. 3);
  4. Dans les paramètres du rapport, nous n'exprimons pas spécifiquement, laissons tout simplement (voir fig. 4)

OK, la moitié de l'affaire faite;)

Générons maintenant la forme de base du rapport (oui, un autre moment! Ma configuration fonctionne sur l'interface habituelle, mais je pense formas géré Vous trouverez une solution;) Donc, forme:

Il y a un problème ici! Si vous cliquez sur le bouton "Forme" (Fig. 5.), nous verrons l'erreur!


J'ai consacré cet article à résoudre ce problème!

Rattraper le bouton d'événement "à former" n'a pas fonctionné, alors j'ai décidé d'utiliser la béquille. Lancé la configuration en mode débogage et a essayé de trouver le bouton "Formulaire".

Inséré sous la forme de la procédure "formulaire", mais il n'y a aucun signe de signalisation, je devais remplacer l'action du bouton "Forme" avant d'ouvrir le formulaire:


En figue. 8 En plus de modifier la forme de la forme, un exemple de requête, traitement et transmission de données générées dans le CCD est donné. Nous l'étudions avec précaution:

  1. Nous générons les données d'entrée pour le CCD;
  2. Initialiser le CCD;
  3. Nous tirons le résultat sur la forme (paie la même attention!).

Rappelez-vous le schéma d'interaction des objets système de mise en page:

Le diagramme de disposition de données dans le rapport externe convient comme un objet global dans la méthode de formulaire Schemackspricky.Vous pouvez également la contacter par son nom en le passant à la méthode Recevoir(Voir Fig. 8)

La pièce principale du code est donnée ci-dessous:

Demande \u003d nouvelle demande; Demande.text \u003d "choisir | nomenclature. Nom en tant que nomenclature | de | répertoire. Substitution en tant que nomenclature"; Nomenclampscription \u003d requête. Remplissage (). Décharger (); SET \u003d nouvelle structure ("liste de la liste", nomenclampscriptions); // SCD \u003d recevoir ("basiccheemcomponicaricId"); SCD \u003d schemecomponovydny; Compbeaker \u003d nouvelle machine pliante proprecomprisey; MockAcomp \u003d Compmacket. Remplir (SCD, SCD. Non-PumpPoune); Processeur compensé \u003d nouveaux comités de processeur; Processorotomottes. Initialiser (maquette, cité); CONCLUSION \u003d Nouveau résultats du processeur-in-linécompterkdangadocument; Conclusion. Installationsectoral (Elementforms. Résultat); conclusion. Assurez-vous (comité du processeur, vérité);

Oui! Voici un autre moment agréable !!!

DANS cet exempleComme vous pouvez le voir (voir Fig. 2), la sortie est effectuée sous une forme et non dans le tableau. document! Et c'est très bien, car nous pouvons travailler avec la forme (intercepter par programme les événements de l'élément de formulaire, apporter toutes sortes de puces avec glisser-déposer et ainsi de suite;)

Dans un document tabulaire, nous pouvons simplement afficher les données traitées à l'écran et transférer la gestion de documents à l'utilisateur et nous ne pouvons pas influencer le processus d'édition supplémentaire de ce contenu!

Voir le système d'aide " Champ de document tabulaire ", Et je donne juste un extrait de la documentation intégrée du système 1C Enterprise 8.2:

"Le champ Document de table est document tabulaireplacé en forme. Outre le collecteur des capacités de conception d'un document tabulaire, il vous permet d'organiser le traitement des événements résultant de la sélection des cellules, des images, ainsi que d'autres commandes placées dans le champ Document de table. "

D'accord, comme on dit, le succès au combat;)

Dans mon article passé, j'ai déjà écrit que 1C est une plate-forme paradoxale. La ligne de données des données fait référence à de tels paradoxes. Le CCD est conçu pour construire des rapports complexes et implique le remplacement de la programmation "manuelle" de rapports à la conception d'outils multifonctionnels. Occasion utilisation de SCD est apparu dans la huitième version, mais il a fallu pendant longtemps Quelle version 8.2 est apparue pour l'utiliser dans ses produits typiques. D'une part, la SCD est une boîte à outils multifonctionnelle en utilisant laquelle vous pouvez créer des rapports très complexes sans une seule ligne de code. Cependant, le SCD a un seuil plutôt élevé d'entrée, d'étude et de démarrage à l'utiliser pleinement «de la compétence» très difficile, car l'interface n'est pas entièrement intuitive, mais le plus manuels complètes Utilisez uniquement sous forme de littérature payante.

Dans le processus de mon étude, le CCD a provoqué la tâche. Vous devez obtenir des données d'une table de valeurs tiers à l'aide de la langue de requête et continuez à fonctionner avec ces données comme similaires des tables de base de données (informations d'information, groupement, etc.). Au format classique, nous ferons une demande qui reçoit des informations de la table transférée à la demande de l'idée du paramètre.

Demande \u003d nouvelle demande (
"CHOISIR
| Table. Namerenclature,
| Tableau. Dalle
| Est
| & Tk comme table ");
Demande. Paramètre d'installation ("TK", TK);

Mais de la CCD n'est pas si simple. Hélas, l'opération décrite ci-dessus devrait être effectuée dans le système de lignes de données, il est impossible. Néanmoins, la possibilité de charger des tables externes de valeurs dans le système est mise en œuvre.

Il convient de faire une petite retraite lyrique et de parler des ensembles de données. Les ensembles de données sont des sources d'informations à partir desquelles la SCD reçoit des données qui se plaint ultérieurement au rapport. Les ensembles de données sont divisés en types, utilise essentiellement la "demande" de type, dans le corps dont le programmateur écrit une demande à la base de données. Tapez "objet" est utilisé pour charger des données d'objets externes. Dans les deux cas, nous avons un certain ensemble de champs obtenus à la suite de l'exécution de la requête ou de charger un objet externe. Plus tard, ces champs peuvent être utilisés sur l'onglet "Paramètres", ainsi que configuration détaillée Structure de rapport. Pour la relation de divers ensembles, le CCD offre la possibilité de spécifier les liens des ensembles de données dans l'onglet du même nom. Ces obligations sont un analogue direct de la connexion gauche dans une demande classique. Cependant, il convient de noter que les demandes de tout ensemble de données ne "savent pas" sur l'existence d'autres ensembles de données, en définitive des ensembles de données d'ensembles de données affecteront la disposition de données de la structure spécifiée dans l'onglet Paramètres.

Détailler la tâche à un exemple. Il existe un rapport typique de l'état calculé de l'organisation de la configuration du Zek 8. Il est nécessaire que les types de colonies de règlement dans le rapport ont été regroupés par certains groupes. La correspondance du groupe vidéo est stockée dans la table externe des valeurs. Pour le charger dans le schéma de lignes de données principal, créez un "jeu de données" avec le nom "Groupe" (Figure 2). La communication que nous produisons avec un «jeu de requêtes» - «Accumulation» selon la forme de calcul (Figure 3). Dans le "jeu de données" - "Compted" est des informations sur les groupes, nous supprimons toutes les entrées. Après, dans l'onglet Paramètres, nous pouvons utiliser le champ "Groupe", qui est chargé à partir d'une source de données externe (Figure 4). Dans la fonction de formation de rapport, nous complétons le chargement de données externes.

Fonction pour formuler (résultat \u003d indéfini, propriétaire-propriétaire \u003d non défini, suralformation \u003d vérité) export

// réception ou formant la table souhaitée des valeurs "Groupe" et son entrée dans la même variable

Externe \u003d nouvelle structure (); // Créer et remplir la structure de données externe
Extrait. Entrer (groupes);

Valeur dangereuse \u003d types typiques. PeresaluppodingingPastEnerPasteer Project (Cet objet);
PocillionPurchain \u003d Paramètres du dossier. Versez les paramètres ();
Types typiques. Portepreniménions (cet objet);
Types typiques. La formation de la déclaration (cet objet, le résultat, le stockage de données, les perspectives, l'extraites);
Équipement de dossier. InstallationsHops (versingPopsal);
Renvoyer le résultat;

Enfoncé

Dans le cas où nous avons fait un rapport "à partir de zéro", le code de rapport de la formation de rapport ressemblerait à ceci:

Celles étrangères) \u003d nouvelle structure;
Celles étrangères. Mettez ("groupes", groupe); // Groupes - Table des valeurs souhaitée
Schemescomponicida \u003d recevoir ("Basicshemakomphonded"); // notre disposition avec diagramme de données de données
Paramètres \u003d schemecomponovydata.
Machine de complexes \u003d nouveau complexe de plis-shirt-Cleaner;
MoquerieComponovka \u003d machine de dossier. Remplissage (schéma de diagramme, paramètres);
ProcessorComponovyDanny \u003d New processorCompon
Processorcomponovydny.Imitialize (MockComples, sections externes);
Tabo \u003d nouveau bois;
Équipement de processeur \u003d Nouveaux résultats de processeur en ligne déroulants
Exercice de processeur. Installation de document (TABO);
Équipement de processeur. Equipement (processorcompon);

Lis 9660 temps

Lors de l'ouverture de nouvelles branches de la société, pour calculer la charge sur le serveur 1C: entreprises et autres tâches, il sera nécessaire de voir la dynamique des travaux des utilisateurs dans la base d'informations sous la forme d'un graphique.

La dynamique doit être affichée à la période sélectionnée par l'utilisateur. Comme les données affichées seront le nombre d'actions sur ces utilisateurs dans le contexte de l'horloge. Les informations pour un tel rapport peuvent être obtenues à partir du journal d'inscription.

Considérez la création progressive d'un rapport similaire et à l'aide d'un ensemble de données externe, nous la construirons sur le système de mise en page de données.

Lire le journal d'inscription

Et ainsi, nous allons construire un rapport au CCD. Nous ne recevrons pas les données à l'aide d'une requête de la base de données et du journal d'enregistrement. La méthode de stockage du journal d'enregistrement de la plate-forme a écrit dans l'article précédent.

Conformément à la période spécifiée dans le rapport, nous devons obtenir toutes les actions de l'utilisateur sur les données. base de l'information. La table résultante est regroupée sur l'utilisateur et la sortie sous la forme d'un graphique (voir capture d'écran ci-dessus).

Pour plus d'informations à partir du journal d'enregistrement, nous utiliserons la méthode contextuelle globale "déchargée ()". Dans l'événement "Precompronculcult" du rapport créé, ajoutez ce qui suit code de programme:

PROCÉDURE POUR LE PRECOMPONSULT (Résultat Document, Stockage de données, Travelage Standard) Standard Standard \u003d Faux; // Débranchez la sortie du rapport standard - nous allons afficher un logiciel // Obtenir un rapport de parcelle, incl. période Paramètres \u003d Paramètres du dossier. Obtention (); // Obtenir les paramètres du rapport Paramétrage \u003d Paramètres du dossier. Accueil (). Peint. Éléments. Trouver ("période"). Valeur; Zhortab \u003d nouvelles tables; Le téléchargement \u003d nouvelle structure; // Créer la structure de sélection du registre // remplit la sélection de la période Pressant. Insérer ("Données", paramétrage. DataTaTarnal); Pressant. Insérer ("données", paramétrage. Données de données); // Définit la sélection des événements Armes \u003d nouveau tableau; Massigatives. Ajouter ("_ $ données $ _ . Effacer.. Nouveau"); Massigations. Ajouter (" _ $ données $ _ . PUBLIER."); Massigations. Ajouter (" _ $ données $ _ . TotalsPeriodupdate."); Massigations. Ajouter (" _ $ données $ _ . Impose."); Massigations. Ajouter (" _ $ données $ _ . Mettre à jour."); Retrait. Coller (" événement ", massigatives); // Décharger le journal d'inscription Déchargé (zhrag, armes); // Créer et remplir les données pour la sortie au rapport Jostab. Colonnes. Ajouter du temps"); Jostab. Colonnes. Ajouter (" Nombres"); Pour chaque page du cycle de jostab p. Time \u003d heure (p. Date); nombre de quantités \u003d 1; endcyclé; // résultats de groupe Jostab. S'effondrer (" Nom du temps" , " Nombres" ) ; // ..............

Le premier paramètre de la méthode "Agence de déchargement" définit le tableau des valeurs dans lesquels le résultat de l'échantillon sera déchargé du journal d'enregistrement. Le deuxième paramètre définit le filtre sur les entrées sélectionnées. Filtre est une structure, les clés dans lesquelles sont les champs pour lesquels la sélection est établie. Nous utilisons les champs des "données" et des "données" pour installer la période d'analyse du journal d'enregistrement, ainsi que le champ d'événement, dans lequel nous transmettons une gamme de chaînes (noms d'événements). Un événement ajouté d'événements correspond aux données sur les données de la base de données.

Vous pouvez en savoir plus sur l'utilisation de la méthode «Téléchargement de déchargement» dans la syntaxe adjointe.

Nous transférons la table des valeurs dans le SCD

Pour que le CCD fonctionne avec la table des valeurs reçue, vous devez procéder comme suit:

1) Créez un ensemble de données dans le schéma de mise en page et définissez ses champs.
2) Dans le code de logiciel du module "Précomplos" pour enregistrer la transmission des valeurs des valeurs du CD.

// résultats de groupe Jostab. S'effondrer (" Nom du temps" , " Nombres"); Vannes d'adolescence \u003d Nouveaux accessoires exclusifssed; // créer des données de déchiffrement Machine de complexes \u003d nouveau complexe de plis-shirt-Cleaner; // Créer une mise en page // initialise la mise en page en utilisant un circuit de mise en page de données // et des paramètres précédemment créés et des données de décryptage SCHEMACKSPRINKY \u003d Recevoir: Ashamcomponovkin de base"); MockTackComponovka \u003d package de dossiers. Effectuer (Schematicpone, paramètres, stockage de données); // Scompon le résultat Processorcomponovka \u003d nouveaux composants de processeur; ProcessorComponovka. Initialiser (mock-un, // !!! Nous passons la table "Zhortab" au processeur de layout !!! Nouvelle structure (" Logerister", Жрраб), polycomyshifts); Résultats du document. Clear (); // affiche le résultat dans un document tabulaire Équipement de processeur \u003d Nouveaux résultats de processeur en ligne déroulants CPU. Installertocument (résultats de document); CPU. Sortie (pompe à processeur); Extrudromes

3) Personnalisez la structure des ressources et des rapports (voir plus de détails dans le fichier de rapport, le lien vers lequel est donné à la fin de l'article).

Ces paramètres de rapport sont terminés et nous pouvons l'exécuter en mode d'entreprise.

Résultat

La source de données externe de la CCC est soumise à une utilisation dans des données de rapports provenant de presque toutes sources, de poursuivre ces données que nous ne pouvons pas obtenir de demandes.

L'utilisation de SCD pour de telles sources vous permet de créer des rapports avec un système de paramètres flexible et permet également à l'utilisateur de modifier la sortie du rapport, sa structure. Toutes les possibilités du système de mise en page des données seront impliquées sur de telles sources.

Téléchargez un rapport de l'exemple que vous pouvez selon le lien suivant.

Parfois, il arrive que les données du rapport ne peuvent pas être obtenues à l'aide d'une combinaison de demande ou de requête. Vous devez utiliser les procédures pour collecter des données et les données sont placées dans la table de valeurs. La question se pose - est-il possible d'utiliser ces données dans le diagramme de mise en page des données? Après tout, l'outil SKD est puissant et pratique. Il s'avère que vous pouvez utiliser les données du tableau de valeur sous forme de source de données pour un rapport dans l'écran LCD et cela n'est pas tout à fait difficile de le faire. Cet article montrera la création d'un tel rapport pour les formes conventionnelles.
Alors, comment créer un rapport CC à l'aide des données de la table de valeurs? À propos de tout dans l'ordre.
Tout d'abord, ouvrez le configurateur et créez un nouveau rapport externe.

Ouvrez le module d'objet et créez une procédure prédéterminée pour une précomponsulte (résultat du document, stockage de données, travail standard)

À l'intérieur de cette procédure, nous collectons des données et forment un rapport.
Dans la procédure de précompropeptrate, nous éteignons le traitement standard. Travail standard \u003d faux;
Ensuite, formez une table de valeurs au hasard. Les noms des haut-parleurs de la table des valeurs doivent coïncider avec les champs de jeu de données futurs dans SCD:


Par exemple, ajoutez trois lignes de données. Ensuite, sur les étapes, créez une sortie de rapport.

  • Du programme, nous obtenons les paramètres par défaut.

  • Dans la variable appropriée, nous envoyons des données sur le décodage.

  • Nous formons une mise en page à l'aide d'une mise en page.

  • Nous transmettons la disposition de la mise en page sur la disposition, les paramètres et les données de décryptage.

  • Nous effectuons la mise en page à l'aide du processeur de mise en page. Pour ce faire, nous effectuons la méthode d'initialisation des données de disposition du processeur (). En tant que paramètres, nous transférons la mise en page de la mise en page de données, les ensembles de données externes (type: structure, la touche clé doit correspondre au nom d'objet dans le circuit de mise en page de données, la valeur est une table formée de valeurs), des données de déchiffrement.

  • Nettoyez le champ d'un document tabulaire.

  • Affichez le résultat dans un document tabulaire.
En conséquence, le code suivant est obtenu:
SCHEMACKSPRINKY \u003d recevoir ( "Banicashemacomponden"); // Paramètres \u003d schemescomponicida. // - Si vous le faites comme indiqué ci-dessus (recommandé sur certaines ressources), lorsque vous modifiez les paramètres dans le mode client // Ces modifications que vous ne verrez pas, car les paramètres seront toujours par défaut. Comment correcte - option ci-dessous Paramètres \u003d Paramètres du dossier. Obtention (); InspectionsShoflings \u003d Nouvelle IntectionCructionCructionDed; Machine de complexes \u003d nouveau complexe de plis-shirt-Cleaner; Mockupscomponovka \u003d machine de dossier. Effectuer (schemecompnee, paramètres, polycomyshifts); Externe désigné \u003d nouvelle structure ( "Conventions occupatiques", TZ orthographié); ProcessorComponovyDanny \u003d New processorCompon Processorcomporidated. Initialiser (mock-upcompons, désigné externe, polycyshifters); Documentation. Dégager (); Équipement de processeur \u003d Nouveaux résultats de processeur en ligne déroulants CPU. Installertocument (résultats de document); CPU. Retrait (complexe de processeur); Ajouter une mise en page de la mise en page. Le nom peut être laissé par défaut.

Créez un ensemble de données. Pour ce faire, ajoutez un nouvel ensemble de type de données. Dans le nom d'un objet contenant les données contenant le nom que nous avons signalé une clé lors de la création d'une structure chargée supplémentaire. Ajoutez ensuite le champ. Les noms doivent correspondre avec précision les noms des colonnes dans la table de valeurs. Ensuite, nous pouvons spécifier des valeurs valides, des formats, etc.

Ajouter des ressources si nécessaire. Ils seront considérés comme les résultats. Dans notre cas, il s'agit de la quantité et du montant des champs.

Dans l'onglet Paramètres à l'aide du concepteur Paramètres, formez la version du rapport par défaut.

Nous enregistrons notre rapport. Exécutez-le dans le client et le formulaire. Un exemple d'exécution d'un rapport CC à l'aide des données de la table Valeurs est affiché sur l'image.


C'est tout. Juste assez, n'est-ce pas vrai?

Le rapport résultant par exemple peut être téléchargé

41
Récemment fait un rapport avec un nombre incertain de colonnes. Il était réticent à désordre avec le code, j'ai décidé de faire au CCD. Ce problème n'a pas surgi, il était nécessaire de tirer le résultat sur une mise en page arbitraire (mon en-tête + ... 27
Malgré le fait que les études du CCD se rencontrent en premier ou deuxième jour, cela devrait être dans la section FAQ. Un simple exemple de sortie de programme sur la mise en page à l'aide des paramètres par défaut. // obtenir un schéma de ... 18
Lors de la génération de rapports au CCD par défaut, tous les groupes sont déployés, mais cela se produit immédiatement après la formation d'un rapport avec des groupements minimisés! Ce code Dans le module de rapport vous permet de rouler ... 10
Sur ce signet, vous pouvez spécifier les liens effectués entre deux ensembles de données et plus, par quels paramètres et conditions ..png 1. "Source de communication" - indique le premier ensemble de données, de ... 9
Que lorsque l'élaboration de rapports est tenu d'avoir un utilisateur ayant des droits limités, le rapport a été formé complètement sans vérification des droits! Surtout si RLS est configuré, il existe plusieurs façons de faire: 1. Installer ...



Avez-vous aimé l'article? Partagez-le