Maison / Skype / ACS n'est pas uniquement destiné aux rapports - mise en œuvre de sélections universelles. ACS pas seulement pour les rapports - mise en place de sélections universelles Création de traitements sur exemples ACS

ACS n'est pas uniquement destiné aux rapports - mise en œuvre de sélections universelles. ACS pas seulement pour les rapports - mise en place de sélections universelles Création de traitements sur exemples ACS

À quoi peut servir SKD ?

L’opinion établie est à des fins de reporting.

En fait Les capacités d'ACS vont au-delà de la création de rapports universels.

Et aujourd'hui, nous allons montrer comment en utilisant le système de contrôle d'accès, l'utilisateur pourra configurer une sélection flexible des données. De plus, cette sélection sera utilisée lors de l'obtention et du traitement des données.

Pour quelles tâches cela sera-t-il utile ?

Donne moi exemples de configurations typiques:

  • Traitement « Mise en ligne des données sur le site »
  • Constitution d'une liste de prix
  • Téléchargement de données vers TSD (terminal de collecte de données)
  • Segmentation des produits, partenaires
  • Formation des commandes (clients, fournisseurs) selon les besoins
  • Planification des réparations dans 1C:ERP.

Autrement dit, l'outil est utile partout où il est nécessaire de fournir à l'utilisateur de larges options de sélection.

Création d'une sélection aléatoire sous une forme contrôlée à l'aide d'ACS

La leçon couvre le travail avec générateur de paramètres schémas de disposition des données :

  • Sortie de sélection sur le formulaire
  • Connexion logicielle entre le générateur de paramètres et le schéma de configuration
  • Création de sélections par défaut dans le système de contrôle d'accès.

Réception des données de la base de données avec filtrage par sélection ACS

La vidéo montre comment sélectionner des données à l'aide de la sélection précédemment définie dans le générateur de paramètres.

Un objet « effrayant » est utilisé – ProcessorOutputResultCompositionDataIntoValueCollection.

En fait, tout n'est pas si compliqué : en 8 minutes, nous résolvons le problème.

Stockage des sélections SKD dans la base d'informations

Dans la leçon, nous regarderons enregistrement des paramètres du générateur ACS en utilisant le Value Store.

Voyons comment résoudre ce problème dans la configuration « 1C : Manufacturing Enterprise Management 1.3 ».

Bon visionnage ! :)

En général, ACS offre de nombreuses opportunités.

Voici quelques « astuces » que nous n’avons même pas eu le temps de décrire sur la page du cours.

Si vous devez collecter données provenant de différentes sources, il y a trois options.

Vous pouvez essayer de composer une requête « universelle » pour toutes les données (longue), vous pouvez afficher les données de plusieurs requêtes en boucle (structure rigide et inflexible) - ou vous pouvez simplement utiliser ACS et connexion des jeux de données au lieu d'une seule demande.

En même temps, il est important d'obtenir des résultats corrects - cela a ses particularités s'il existe plusieurs sources

Avec l'aide de SKD, vous pouvez simplement obtenir un instantané des dernières nouvelles pour chaque date du rapport.

Ou, pour plus de clarté, - obtenir le prix du produit pour chaque date de vente.

Avec l'aide d'ACS, vous pouvez organiser afficher toutes les dates de la période dans le rapport, et pas seulement ceux pour lesquels il y avait des données dans le rapport (ajout de dates sans programmation, uniquement avec les capacités du système de contrôle d'accès)

Grâce à ACS, vous pouvez organiser des regroupements imbriqués avec ajout de périodes (année/trimestre/mois, etc.)

Organisez le rapport comme vous le souhaitez, par exemple, affichez l'en-tête de colonne verticalement et les données de cette colonne horizontalement.

Permettez à l'utilisateur de choisir la fréquence à laquelle les données seront affichées dans le rapport (par année, par trimestre, par mois) - uniquement par paramètres, sans modifier le module de rapport.

Comment combiner plusieurs conditions en utilisant OR dans un rapport ? Cette option, par exemple, n'est pas disponible dans le générateur de rapports, mais est disponible dans l'ACS.

Si vous affichez des données récapitulatives sous forme de graphique, vous devez pouvoir contrôler précisément leur apparence : la visibilité des marqueurs d'une série, l'alternance des couleurs des séries de graphiques, la séparation des données passées des données futures sur un graphique par une ligne verticale. , etc.

Bien sûr, il y a des nuances auxquelles il faut prêter attention.

Lors de la création du rapport, le développeur a débogué le texte de la requête, mais lors de l'utilisation de cette requête dans un rapport sur le système de contrôle d'accès, le système produit un résultat incorrect.

Par conséquent, il est important de pouvoir obtenir la requête que le système exécute réellement pour obtenir les données de la base de données et de déboguer une telle requête.

Lors de l'ajout de détails à un document-enregistreur dans un rapport, le système produit parfois des soldes d'ouverture et de clôture « incorrects ».

Par conséquent, il est important de configurer correctement les champs du rapport sur le système de contrôle d'accès afin que les soldes soient affichés correctement avec et sans détail du document.

Le résultat du rapport peut changer en fonction de l'endroit où la sélection par valeur de ressource est configurée - au niveau du rapport et au niveau d'un groupe individuel, vous devez surveiller cela.

Si tu veux maîtriser ACS professionnellement et quotidiennement appliquer dans votre travail, inscrivez-vous au cours :

Soutien - 2 mois. Portée du cours – 34 heures de cours.

Ne retardez pas vos études !

Sur ce moment, peut-être la meilleure console ACS et plus encore. Énorme fonctionnalité. L'auteur a fait un travail incroyable ! Permet de créer un rapport sur le système de contrôle d'accès en mode entreprise et de l'exporter vers un rapport externe avec un choix de modèle.

Parmi les fonctions :
1. Fonctionne dans n'importe quelle configuration
2. La possibilité de créer une hiérarchie arbitraire avec un transfert pratique d'éléments
3. Édition avancée des paramètres (périodes, paramètres de succession)
4. Exécution en arrière-plan (sans modification de la configuration)
5. Comparaison des textes de requête et des résultats de requête
6. SKD
Flexibilité, commodité et personnalisation. Le code est ouvert.
Enregistrement des souhaits et correction des erreurs via http://www.1cpp.ru/bugs/ project Query Console pour 1C 8.1 (de préférence)

À propos du développement Pour le moment, peut-être la meilleure console ACS et plus encore. Énorme fonctionnalité. L'auteur a fait un travail incroyable ! Permet de créer un rapport sur le système de contrôle d'accès en mode entreprise et de l'exporter vers un rapport externe avec un choix de modèle. Console de reporting universelle (version actuelle 2.7.7). Auteur du développement : Evg-Lylyk. Parmi les fonctions : 1. Fonctionne dans n'importe quelle configuration 2. Possibilité de créer une hiérarchie arbitraire avec transfert pratique d'éléments 3. Édition avancée des paramètres (périodes, paramètres d'héritage) 4. Exécution en arrière-plan (sans modification de la configuration) 5. Comparaison des textes de requête et des résultats de requête 6 SKD Flexibilité, commodité et personnalisation. Le code est ouvert. Enregistrement des souhaits et correction des erreurs via http://www.1cpp.ru/bugs/ project Query Console pour 1C 8.1 (souhaitable) Principales caractéristiques 1. Dans la liste des requêtes, vous pouvez créer des groupes et sélectionner des éléments. 2. Sortie sous forme de tableau, d'arborescence, de mise en page, de rapport de synthèse. 3. Calcul des totaux par colonne dans le tableau et l'arborescence. 4. Calcul du montant de l'allocation dans le layout. 5. Exécution en arrière-plan. 6. Fonction pour afficher le dernier résultat. 7. Dans le menu Fichier, vous trouverez une liste des fichiers récents Ouvrir des fichiers. 8. Comparaison des textes de requête et des résultats de requête. 9. Format du champ 10. Mesure du temps d'exécution. 11. Glissez-Déposez dans l'arborescence et dans les paramètres du constructeur. 12. Générez une copie au format Excel, HTML, CSV. 13. Génération de texte dans le langage intégré. 14. Saisie plus pratique des paramètres de liste et des paramètres composites. 15. Regrouper les paramètres de StartPeriod, EndPeriod et similaires dans un groupe. 16. Un paramètre hérité dont la valeur est extraite d'une autre requête. 17. Remplir les paramètres d'une autre demande. 18. Les paramètres et leurs valeurs sont mémorisés et remplacés lors de l'utilisation du paramètre du même nom. 19. Exécution répétée d'une requête pour un test. 20. Vous pouvez ouvrir la console en mode débogage et les paramètres de débogage seront automatiquement reçus. Vous devez appeler la procédure « OpenForDebugging » depuis le module de traitement en lui passant en paramètre les objets « Query » ou « Report Builder », « Query Builder", "Data Layout Schema" pour l'objet Report Builder sera Les paramètres du générateur ont également été obtenus. Lorsque la console est ouverte pour le débogage, le texte (debug) est ajouté au titre. Exemple : Expression = ExternalProcessing.Create ("C:d_ReportConsole2.3.epf").OpenForDebug(RequestProducts); 21. Info-bulles dans la barre d'état lorsqu'une longue requête ou une exécution en arrière-plan se termine. 22. Traitement des données de groupe 23. Disposition modifiable 24. Paramètre dont la valeur est obtenue en exécutant le texte dans le langage intégré 25. Renommer les paramètres sans utiliser de constructeur directement à partir du tableau des paramètres 26. ACS 27. Remplissage intuitif des valeurs des paramètres ​​28. Astuce contextuelle 29. Il est possible d'importer des fichiers rcf de la console standard 1C et des fichiers dcf de la console de mise en page standard à partir du format de console 1C et sel IR. 30. Conversion du texte de requête en TSQL 31. Analyse des données 32. Mode utilisateur 33. Exportation vers CSV 34. Fonctions du gestionnaire de traitement 35. Dans le tableau et l'arborescence des résultats, les valeurs de type NULL sont mises en évidence avec de la couleur et le texte « Null » 36. Génération traitement externe basé sur SKD (article « Concepteur pratique rapports externes sur SKD") Captures d'écran Télécharger la console de reporting universelle 2.7.7.rar(1,54 Mo)...

Attention! Il s'agit d'une version d'introduction de la leçon, dont le matériel peut être incomplet.

Connectez-vous au site en tant qu'étudiant

Connectez-vous en tant qu'étudiant pour accéder au matériel scolaire

Système de composition de données 1C 8.3 pour débutants : connexion d'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 - sur la base de ces couleurs, vous devez déterminer le « favori » du produit. Par exemple, si la couleur préférée d’Andrey 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 dans le rapport. Le premier ensemble est constitué des données de la table du répertoire « Clients ». La seconde concerne les données de la table du répertoire « Alimentation ».
  • Mettre en œuvre lien entre ces deux ensembles, afin que le rapport ne contienne que les produits favoris de chaque client.

Créer 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çon 6 » et cliquez sur le bouton « Ouvrir le diagramme de composition des données » :

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

Ajout du premier ensemble de données

Dans le diagramme qui s'ouvre, allez dans l'onglet « Ensembles de données » et sélectionnez « Ajouter un ensemble de données - Requête » à l'aide du signe plus vert :

Appelez le constructeur de requête :

Nous indiquons le tableau « Clients » et les champs qui doivent être obtenus à partir de la demande :

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

Ajoutez un deuxième ensemble de données :

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

Nous indiquons le tableau du répertoire « Alimentation » et les champs qui doivent être obtenus à partir de la requête :

Le texte de la requête résultant était :

Veuillez noter que nous avons actuellement deux ensembles de données dans le rapport : Data Set1 et Data Set2. Chacun a son propre texte et ses propres données de requête.

Rendre les noms plus descriptifs

Pour plus de clarté, renommez DataSet1 en Customers et DataSet2 en Food.

Faites cela en double-cliquant sur chacun des ensembles :

Nous pouvons utiliser les données de chaque ensemble dans notre rapport. Nous accéderons à ces données via des champs.

Actuellement, l'ensemble « Clients » contient les champs suivants : « Nom » et « Couleur préférée », et l'ensemble « Aliments » contient : « Nom » et « Couleur ».

On voit que les noms se chevauchent et on peut facilement se confondre. Modifions donc les noms des 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 « Alimentation » et modifiez les noms des champs comme ceci :

Appeler le 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 les champs du rapport dans les deux ensembles :

Vous voyez pourquoi il était si important de changer les noms des champs ? Au stade du paramétrage de la 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 sauvegardons le rapport et le générons en mode utilisateur :

Ouais. D'accord, mais pas vraiment. Une soi-disant jointure croisée de deux ensembles s'est produite (vous devriez être très familier 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 Customers possède un enregistrement correspondant de la table Food.

Mais de tous ces enregistrements, nous ne devons laisser que ceux dont le champ « Customer's FavoriteColor » est égal au champ « FoodColor » :

Nous connectons deux ensembles de données

Pour ce faire, nous connecterons deux ensembles de données (Clients et Aliments) en utilisant les champs Customer's FavoriteColor et FoodColor.

Allez dans l’onglet « Liens vers l’ensemble de données » et cliquez sur le bouton plus pour ajouter un nouveau lien :

Nous configurons les paramètres comme dans la figure ci-dessous :

Je vais faire une explication.

Source et destinataire de la communication. Eh bien, tout est clair ici. Nous indiquons le premier ensemble (Clients) et le deuxième ensemble (Aliments) de données. je veux me convertir Attention particulière que la communication s'effectuera selon le principe jointure extérieure gauche(nous l'avons abordé dans le sujet des demandes dans les modules précédents). Sur cette base, vous devez choisir quel ensemble sera la source et lequel sera le récepteur.

Source d'expression. Nous indiquons ici une expression ou simplement un champ de l'ensemble de données source (nous avons spécifié le champ ClientFavoriteColor de l'ensemble 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 ColorFood de l'ensemble Food).

Ainsi 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.

Sauvegardons le rapport et exécutons-le en mode utilisateur :

Super!

Je vais faire une explication sur le terrain " État des communications", sur lequel les programmeurs débutants frappent si souvent leurs lances.

La condition de connexion 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 que le lien ne soit établi. Et si cette expression est VRAIE, alors une tentative sera faite pour établir des liens entre cette ligne et les lignes du récepteur de lien. Si l’expression est FALSE, aucune tentative de ce type ne sera effectuée.