Système de présentation de données 1C 8.3 champs calculés. Langue des expressions de présentation de données (1cv8). Valeur de vérification de l'opération pour l'inégalité nulle

Connectez-vous en tant qu'étudiant

Connectez-vous en tant qu'étudiant pour avoir accès aux matériaux de l'école.

Système de présentation de données 1C 8.3 pour débutants: nous considérons les résultats (ressources)

Le but de cette leçon sera:

  • Écrivez un rapport qui affiche une liste de produits (répertoire alimentaire), de leur calorie et de leur goût.
  • Faire regrouper le produit dans leur couleur.
  • Faites connaissance avec la possibilité de résumer (ressources) et de champs calculés.

Créer un nouveau rapport

Comme dans les leçons précédentes, ouvrez la base de données " Épicerie"Dans le configurateur et créez un nouveau rapport via le menu" Déposer"->"Nouveau...":

Type de document - rapport externe:

Sous la forme d'une configuration de rapport, j'écris un nom " Lecon 3."Et appuyez sur le bouton" Ouvrir le schéma de disposition de données":

Laissez le nom du schéma par défaut et appuyez sur la touche. Prêt":

Ajoutez une demande via le concepteur

Sur l'onglet " Base de données"Presse vertplusik et choisissez l'article " Ajouter un ensemble de données - Demande":

Au lieu d'écrire le texte de la requête manuellement, courez à nouveau demande de concepteur:

Sur l'onglet " les tables"Traiter la table" Aliments"De la première colonne à la seconde:

Choisir parmi la table " Aliments"Champs qui vont demander. Pour faire cela, faites glisser les champs" Nom", "Goût", "Couleur"Et" Calorie"De la deuxième colonne au troisième:

Il s'est avéré comme ceci:

Appuie sur le bouton " d'accord"- Le texte de la requête a été formé automatiquement:

Nous formons des paramètres de présentation de rapport

Aller au signet " Paramètres"Et cliquez sur baguette magique, appeler paramètres de concepteurs:

Nous choisissons la vue du rapport " Lister... "et appuyez sur le bouton" Plus loin":

Faites glisser la colonne de gauche dans les bons champs à afficher dans la liste et cliquez sur " Plus loin":

Faites glisser la colonne de gauche dans le champ de droite » Couleur"- On arrivera regroupement Lignes dans le rapport. Cliquez sur " d'accord":

Et voici le résultat du travail du designer. Hiérarchie de notre rapport:

  • Rapport en général
  • Regrouper "couleur"
  • Entrées détaillées - lignes avec noms de nourriture

Enregistrez le rapport (bouton disquette) JE. ne ferme pas Le configurateur l'ouvrira immédiatement en mode utilisateur. Il s'est avéré comme ceci:

Changer l'ordre des orateurs

Mais laissons change l'ordre Colonnes (flèches en bas) de sorte que c'est comme dans la figure ci-dessous:

Enregistrez le rapport et réactuez-vous en mode utilisateur:

Génial, tellement mieux.

Résumée (somme) par calories

Ce serait bien de retirer le résultat de produits caloriques par des groupes. Pour voir la somme de la teneur en calorie de tous les produits, par exemple, couleur blanche ou jaune. Ou découvrez la teneur en calories communes de tous les produits de la base de données.

Pour cela, il existe un mécanisme de calcul des ressources.

Aller à l'onglet " Ressources"Et traîner le champ" Calorie"(Nous allons résumer dessus) de la colonne de gauche à droite.

Dans ce cas, sélectionnez le champ d'expression dans la liste déroulante. " Montant (calorie)"Comme le résultat sera la somme de tous les éléments du total:

Nous enregistrons et formons un rapport:

Nous avons les résultats de chacun des groupes et du rapport dans son ensemble.

Résumé des résultats (moyenne) par des calories

Maintenant, faisons-le donc que dans une autre sortie de colonne moyenne Produits caloriques pour groupes et en général sur le rapport.

Toucher la colonne existante "calorie" est impossible - elle est déjà affichée dessus, donc commencer un autre champqui sera une copie exacte du champ "calories".

Pour lancer un tel champ "virtuel", nous utilisons le mécanisme champ calculé.

Aller au signet " Champs calculés"Et cliquez sur vertplusik:

Dans un collumn " Chemin de données«Nous écrivons le nom du nouveau champ ( pli, sans espaces). Laissez-le appelé " Haute calorie", et dans la colonne" Expression"Nous écrivons le nom d'un champ existant, sur la base desquels le nouveau champ sera calculé. Nous écrivons là-bas" Calorie". Colonne" Titre"Remplissez automatiquement.

Nous avons ajouté un nouveau champ (" Haute calorie"), mais dans le rapport, il n'apparaîtra pas en soi - vous devez appeler à nouveau paramètres de concepteurs ("Baguette magique") ou ajoutez ce champ manuellement.

Recevoir deuxième chemin. Pour ce faire, allez dans le signet " Paramètres", choisir" Signaler"(Après tout, nous voulons ajouter le champ dans son ensemble au rapport), choisissez le signet ci-dessous Champs sélectionnés"Et traîner le champ" Haute calorie"De la colonne de gauche à droite:

Il s'est avéré comme ceci:

Nous enregistrons et formons un rapport:

Le champ est apparu et nous voyons que ses valeurs sont les valeurs du champ "calorier". Excellent!

Pour ce faire, nous utiliserons à nouveau le mécanisme déjà familier pour nous. ressources (résumant). Aller au signet " Ressources"Et traîner le champ" Haute calorie"De la colonne de gauche à droite:

En même temps dans la colonne " Expression"Choisir" Moyenne (calorie moyenne)":

Nous enregistrons et formons un rapport:

Nous voyons qu'en groupes, c'est-à-dire pour chaque couleur et sur le rapport dans son ensemble, la valeur moyenne était complètement correcte. Mais sont présents entrées inutiles Selon des produits individuels (non par groupes), que je voudrais supprimer du rapport.

Savez-vous pourquoi ils sont apparus (pas en groupe)? Parce que quand nous avons ajouté le champ " Haute calorie«Dans les paramètres du rapport, nous avons alloué à la deuxième étape. l'ensemble du rapport en général Et ce nouveau champ est tombé dans l'élément " Détaillé entrées".

Fixons l'erreur. Pour le faire sur le signet " Paramètres", choisir" Entrées détaillées"Premier d'en haut (étape 2), puis" Entrées détaillées"Bas (étape 3), entrons sur le signet" Choisi domaine"Et nous verrons l'élément dans sa colonne de droite" Auto".

Élément " Auto«- Ce n'est pas un champ. Ce sont plusieurs champs qui viennent ici automatiquement basés sur des paramètres plus élevés.

Pour voir quel type de champs - cliquez sur l'article " Auto" droite bouton et choisissez l'élément " Développer":

Élément " Auto"révélé aux champs suivants:

Et ici et notre domaine " Haute calorie", qui est venu ici du point" Signaler"Quand nous l'avons traîné là-bas. Juste minceur Galka à côté de ce champ pour supprimer sa sortie.

Dans cette baisse, je souhaite montrer comment résumer les valeurs à différents niveaux de regroupement, dans le rapport à l'aide du système de mise en page de données.
Comme indiqué dans l'image, uniquement au niveau du groupe "Groupe de nomenclature", la ressource "ordre" est calculée, il affiche combien il est nécessaire de commander sur le groupe de nomenclature actuel en fonction de certaines conditions:


Cette valeur ne peut être calculée que au niveau du regroupement, car, ci-dessus ou inférieur, il n'y a pas de valeurs pour le calcul. Par exemple, au niveau des enregistrements détaillés, il n'existe aucune donnée sur le montant maximal du groupe, car ces données ne sont correctes que pour le groupe dans son ensemble et non pour les composants individuels.

En conséquence, il est maintenant nécessaire de calculer les résultats, sur les groupes ci-dessus ("entrepôts", "types") et un résultat général.
Cela utilise la fonction Calculer / séparationGroundMassiv:
Calculer / évaluéronswithgrouparray)
Syntaxe:
Calculer / séparé groupement machinemassif (,)
La description:
La fonction renvoie une matrice, dont chaque élément contient le résultat du calcul de l'expression pour le regroupement par le champ spécifié.
La mise en page lors de la génération d'une mise en page convertit les paramètres de la fonction aux termes des champs de présentation de données. Par exemple, le champ de contrepartie sera transformé en actions.
La liaison de mise en page Lors de la génération d'expressions pour émettre le champ utilisateur, dans l'expression de laquelle seule la fonction est une caractéristique de la machine à base de groupe (), génère une expression de sortie afin que les informations de sortie ont été commandées. Par exemple, pour un champ utilisateur avec une expression:

Calculateur / séparéGroupsemassif ("montant (moteur total)", "contrepartie")
La disposition de la mise en page générera pour afficher l'expression suivante:

Connecteurs (tableau (matrice (Présentation de la bande de calcul / séparée ("(Résumé (SUPPLÉMENTATIONS))), Montant (en forme de jeu. Support)", "Configuration. Entrepreneur"), "2"),

Paramètres:

Type: Rangée. L'expression qui doit être calculée. Une chaîne, par exemple la somme (moteur totale).

Type: Rangée. Expressions du groupement - Expressions des champs de regroupement énumérés par la virgule. Par exemple, contrepartie, fête.

Type: Rangée. Une expression décrivant la sélection appliquée aux enregistrements détaillés. L'expression ne prend pas en charge l'utilisation des fonctions globales. Par exemple, stratum \u003d false.

Type: Rangée. Une expression décrivant la sélection appliquée aux entrées de groupe. Par exemple, la somme (moteur total)\u003e et le paramètre1.
Exemple:

Maximum maximum (Machine de regroupement / séparé / séparé ("montant (moteur total)", "contrepartie"));

Une description détaillée de la fonctionnalité de syntaxe est disponible sur http://its.1c.ru/db/v837doc#bookmark:dev:ti000000582
Maintenant, pour calculer, dupliquer le champ "COMMANDER", avec différentes valeurs "Compte par ...", en utilisant les expressions suivantes, notez que, dans chaque cas, il n'y a pas de niveau debout sous les groupes debout.

En conséquence, nous obtenons la conception suivante:

Dans la prochaine sortie 8.2.14, je vais essayer de décrire de nouvelles fonctionnalités du système de mise en page de données.

Ouvrez le circuit de mise en page de données, de préférence dans le rapport externe afin qu'il soit plus facile de modifier.

Ajoutez un ensemble de type de type de type et d'écriture, ou manuellement, en utilisant le constructeur de requête la requête la plus simple:

1. Configurez la demande à l'écran LCD.

2. Personnalisez les champs calculés dans le CD

3. Effectuez le paramètre de mise en page de données dans l'onglet Paramètres

4. Exécutez 1C Entreprise 8.2.14. Ouvrir un rapport. Nous nous formons, nous obtenons.

Description des nouvelles fonctionnalités elles-mêmes:

1. La date actuelle ()

Retourne la date du système. Lors de la pose d'une mise en page dans toutes les expressions présentes dans la mise en page, la fonction de débit () est remplacée par la valeur de la date actuelle.

2. Calculer le système ()

Syntaxe:

Calcul de l'éducation (,)

La description:

La fonction est conçue pour calculer l'expression dans le contexte de certains groupements.

La fonction prend en compte la sélection des groupements, mais ne prend pas en compte les sélections hiérarchiques.

La fonction ne peut pas être appliquée au regroupement de la sélection de groupe de ce groupe. Par exemple, dans la sélection du regroupement, la nomenclature ne peut pas être utilisée d'expression Calculer l'exécution ("montant (taille de taille)", "obnuTitog")\u003e 1000. Mais une telle expression peut être utilisée dans une sélection hiérarchique.

Si l'enregistrement final est précédé par l'initiale, on pense que les enregistrements de calcul des données détaillées et le calcul des fonctions d'agrégat sont absents.

Lors du calcul des expressions d'intervalle pour un résultat commun (le paramètre de regroupement compte une valeur commune) On pense qu'il n'existe aucun enregistrement pour calculer les données détaillées et le calcul des fonctions globales.

Disposition de la mise en page lors de la génération d'une expression de la fonction Exécution informatiqueDans le cas où l'expression de commande contient des champs qui ne peuvent pas être utilisés dans le regroupement, remplace la fonction Exécution informatique sur le NUL.

Paramètres

Un type: Ligne. L'expression qui doit être calculée.

Un type: Ligne. Contient le nom du groupe, dans le contexte dont il est nécessaire de calculer l'expression. Si une chaîne vide est utilisée comme nom de groupe, le calcul sera exécuté dans le contexte du regroupement en cours. Dans le cas où un certain nombre de groupes communs seront utilisés comme groupe de regroupement, le calcul sera exécuté dans le cadre d'un résultat total. Dans d'autres cas, le calcul sera effectué dans le contexte du groupe parent avec le même nom.

Par example:

Montant (Ventes. Masmoboto) / Calculez («Montant (Ventes. Résumé)», obnutogit »)

Dans cet exemple, le résultat est le rapport de la quantité sur le terrain Ventes. Résumé enregistrement du regroupement à la somme du même champ dans l'ensemble de la mise en page;

Un type: Ligne. Le paramètre peut prendre les valeurs suivantes:

· Le résultat global - L'expression sera calculée pour tous les enregistrements de regroupement.

· Hiérarchie - L'expression sera calculée pour l'enregistrement hiérarchique parent, le cas échéant, et pour l'ensemble du groupe, si l'enregistrement hiérarchique parent n'est pas disponible.

· Regroupement - L'expression sera calculée pour l'enregistrement de groupe actuel.

· Groupingresource - Lors du calcul d'une fonction pour l'enregistrement de groupe sur les ressources, l'expression sera calculée pour le premier enregistrement du groupe du groupe d'origine.

Lors du calcul de la fonction Calculer le système () avec signification Groupingresource Pour les entrées de groupe qui ne sont pas des groupes pour des ressources, la fonction est calculée de la même manière que celle calculée si la valeur du paramètre était égale à la valeur. Regroupement.

Disposition de la mise en page Disposition de la mise en page Lors de la présentation d'une disposition de la disposition de données lors de l'affichage d'une disposition de ressource sur site, qui est effectuée par un regroupement, place une expression sur la disposition calculée à l'aide d'une fonction Calculer le système () , indiquant le paramètre Groupingresource. Pour d'autres ressources, des expressions de ressources ordinaires sont placées dans le groupe de ressources.

Un type: Ligne. Indique quel enregistrement vous devez démarrer un fragment dans lequel calculer les fonctions d'agrégat de l'expression et à partir de laquelle l'enregistrement pour recevoir des valeurs de champ en dehors des fonctions globales. La valeur peut être l'une des suivantes:

· Premier (premier)

· Dernier (dernier)

· Précédent (précédent)

· Suivant

· Courant (courant)

· Limité (BoundaryValue) Limité

Un type: Ligne. Indique, à quel enregistrement vous devez poursuivre un fragment dans lequel calculer les fonctions d'expression globale. La valeur peut être l'une des suivantes:

· Premier (premier). Vous devez recevoir la première entrée de groupe. Après le mot entre parenthèses, vous pouvez spécifier l'expression dont le résultat sera utilisé à partir du début du groupe. La valeur obtenue doit être entière d'être un nombre, plus zéro. Par exemple, le premier (3) - recevant la troisième entrée du début du groupement.

Si le premier enregistrement dépasse le regroupement, on pense qu'il n'y a pas de dossier. Par exemple, si les enregistrements 3, et il est nécessaire d'obtenir le premier (4), on pense qu'il n'y a pas de dossier.

· Dernier (dernier). Vous devez obtenir la dernière entrée du groupement. Après le mot entre parenthèses, vous pouvez spécifier l'expression dont le résultat sera utilisé comme décalage de la fin du regroupement. La valeur obtenue doit être entière d'être un nombre, plus zéro. Par exemple, le dernier (3) est de recevoir une troisième entrée de la fin du regroupement.

Si le dernier enregistrement va au-delà du regroupement, on pense qu'il n'y a pas de dossier. Par exemple, si les enregistrements 3, et il est nécessaire d'obtenir le dernier (4), on pense qu'il n'y a pas de dossier.

· Précédent (précédent). Vous devez obtenir l'enregistrement de regroupement précédent. Après le mot entre parenthèses, vous pouvez spécifier l'expression dont le résultat sera utilisé comme décalage de l'entrée de regroupement en cours. Par exemple, le précédent (2) obtient le précédent de l'enregistrement précédent.

Si l'entrée précédente dépasse le regroupement (par exemple, pour la deuxième entrée de groupe, vous devez obtenir le précédent (3), puis le premier groupe est obtenu.

Dès réception de l'enregistrement précédent, la première entrée est considérée pour le groupe.

· Suivant. Vous devez obtenir le regroupement suivant. Après le mot entre parenthèses, vous pouvez spécifier l'expression dont le résultat sera utilisé comme décalage vers l'avant de l'entrée de regroupement en cours. Par exemple, le suivant (2) obtient les éléments suivants de la prochaine entrée.

Si la prochaine entrée dépasse le regroupement, on pense qu'il n'y a pas de dossier. Par exemple, si les enregistrements 3 et pour le troisième enregistrement sont obtenus comme suit (), il est considéré qu'il n'y a pas de dossier.

Dès réception de l'enregistrement suivant pour le résumé du groupement, il est cru qu'il n'y a pas de dossier.

· Courant (courant). Vous devez obtenir l'entrée actuelle.

Dès réception de la somme du regroupement, le premier enregistrement est obtenu.

· Limité (BoundaryValue). Besoin d'obtenir un enregistrement à la valeur spécifiée. Après le mot Limité Entre-arrière, vous devez spécifier l'expression, avec la valeur dont vous avez besoin pour démarrer un fragment, le premier champ de commande.

Le premier enregistrement sera reçu sous forme d'entrée, la valeur de commande de commande dans laquelle est supérieur ou égal à la valeur spécifiée. Par exemple, si le champ est utilisé comme champ de commande, et qu'il importe le 01/01/2010, 01.02.2010, 01.03.2010, et vous devez obtenir Restreint (Demander (2010, 1, 15))), Je recevrai un enregistrement avec la date 01.02.2010.

Un type: Ligne. Les expressions sont énumérées, séparées par des virgules, décrivant la commande. Si non spécifié, la commande est effectuée ainsi que dans le groupement pour lequel l'expression est calculée. Après chaque expression, vous pouvez spécifier un mot clé Czé (pour commander ascendant), Descendant (pour commander en descendant) et Commande automatique (Pour rationaliser les références dans les champs pour lesquels vous devez organiser un objet auquel le lien est effectué). Mot Commande automatique peut être utilisé comme avec le mot Czéet avec le mot Descendant.

Un type: Ligne. Semblable au paramètre Tri. Il est utilisé pour rationaliser les enregistrements hiérarchiques. Sauf indication contraire, la disposition de la mise en page génère une commande conformément à la commande spécifiée dans le paramètre Tri.

Un type: Ligne. Indique la règle de définition de la précédente ou la prochaine entrée au cas où il existe plusieurs entrées avec la même valeur de commande:

· Séparément (séparément) Indique que pour déterminer les enregistrements précédents et suivants, la séquence des enregistrements commandés est utilisée. La valeur par défaut.

· Ensemble ensemble) Indique que les entrées précédentes et suivantes sont déterminées en fonction des valeurs des expressions d'arrangement.

Par exemple, si la séquence résultante est commandée par date:

Date Nom et prénom Valeur
1 01 janvier 2001

Ivanov M.

10
2 02 janvier 2001 Petrov S. 20
3 03 janvier 2001 Sidorov R. 30
4 4 janvier 2001 Petrov S. 40

Séparément, ensuite:

§ L'enregistrement précédent pour écrire 3 enregistrera 2.

Courant, courant (respectivement, paramètres Démarrer et la fin), alors pour l'enregistrement 2, ce fragment comprendra un enregistrement 2. L'expression sera égale à 20.

Si la valeur du paramètre est égale Ensemble, ensuite:

§ L'enregistrement précédent à l'enregistrement 3 sera enregistré 1.

§ si le fragment calculé est défini comme Courant, courant (respectivement, paramètres Démarrer et la fin), alors pour l'enregistrement 2, ce fragment consistera en enregistrement 2 et 3. Expression Calculer l'attente ("montant (valeur)", actuel, actuel) Ce sera 50.

Lors de la spécification de la valeur du paramètre égal Ensemble, dans les paramètres Démarrer et la fin Vous ne pouvez pas spécifier le décalage des positions Tout d'abord, dernier, précédent, suivant.

Calculer l'exécution ("montant (couche de taille)", "premier", "courant")

Si vous souhaitez obtenir une valeur de regroupement dans la ligne précédente, vous pouvez utiliser l'expression suivante:

Exécution informatique ("Cours", "Précédent")

Lister nouveau Les fonctions:

Calculer WASTEREISIBOUPROUPSOMASSIVE(,) -

La fonction renvoie une matrice, dont chaque élément contient le résultat du calcul de l'expression pour le regroupement par le champ spécifié.

Calculer / séparationGroupsCountries(,) -

La fonction renvoie la table des valeurs, dont chaque ligne contient le résultat du calcul des expressions de regroupement par le champ spécifié

La valeur est remplie() - Renvoie la vérité Si la valeur est différente de la valeur de ce type par défaut, est différente de la valeur de NULL, excellente du lien vide, est différente de la valeur. Pour les valeurs logiques, une valeur NULL est cochée. Pour les chaînes, vérifie l'absence de caractères non spatiaux

Format(,) - Obtenez la chaîne formatée de la valeur transmise. La chaîne de format est définie conformément à la chaîne de format du système "1C: Enterprise".

Sous-chaîne(,,) - Cette fonction est conçue pour mettre en évidence la sous-chaîne de la ligne.

Coup plat() - La fonction est conçue pour déterminer la longueur de la chaîne. Paramètre - Expression de chaîne

Ligne() - Si un tableau est transmis comme un paramètre, la fonction renvoie une chaîne contenant des représentations de chaîne de tous les éléments de tableau séparés par des symboles ";". Si la table de valeur est transmise sous forme de paramètre, la fonction renvoie une chaîne contenant les représentations de chaîne de toutes les lignes des valeurs des valeurs et que les échantillons de chaque chaîne sont séparés par des symboles ";" et les cordes - la limite de la traduction de la ligne. Si une représentation de chaîne est vide dans n'importe quel élément, la chaîne est affichée au lieu de sa présentation.

L'utilisation compétente du circuit de mise en page (CCD) vous permet de:

  • réduire considérablement le temps nécessaire au développement du rapport;
  • débarrassez-vous de la nécessité de créer une forme de gestionnaire gérée;
  • obtenez un beau résultat avec la possibilité d'un paramètre utilisateur supplémentaire.

Mais tous les développeurs n'utilisent pas au maximum les capacités du système, car tous ses paramètres ne sont pas évidents et compris intuitivement. En particulier, beaucoup savent qu'en 1C en PMA, il existe des champs calculés, cependant, la zone de leur utilisation et des méthodes de travail avec eux ne sont pas complètement calculées.

Quel est le champ calculé

Dans la plupart des cas, une demande est demandée comme source de données dans la disposition de la mise en page. En principe, diverses formules, conceptions et expressions peuvent déjà être utilisées dans la demande. Il y a une question de droit de fait, pourquoi avez-vous besoin d'une fonctionnalité en double?

Le fait est que le CCD est quelque chose de plus que de simplement afficher le résultat de l'exécution de la requête et cela est parfaitement vu à partir du formulaire de création de schéma (Fig. 1).

Le champ calculé vous permet d'effectuer certaines actions avec un ensemble de données généré:

  • Affichez une gamme de données obtenues par la requête sur une certaine cellule en reliant plusieurs lignes en une;
  • Accéder aux fonctions d'exportation du module général;
  • Effectuer diverses expressions disponibles pour la langue de présentation et l'utilisation de fonctions de calcul spéciales.

Allons sur cette liste et allons.

Tableau de valeurs dans une cellule

Nous simulons la situation lorsque vous devez obtenir tout le nombre de documents sur la contrepartie dans une cellule distincte:


ainsi, nous avons créé un champ calculé supplémentaire dans notre programme;


Comme on peut le voir de l'exemple ci-dessus, il n'y a aucune difficulté à ajouter et à manipuler des champs calculés. Nous avons utilisé deux fonctions: tableau () et connexions ().

Quelques mots sur le dernier. En plus du premier paramètre indiquant l'identifiant de la matrice, les valeurs ou les valeurs, deux autres peuvent être installés dessus:

  1. Éléments de séparation - Indique quel caractère séparera un élément de la matrice ou une ligne de la table des valeurs de l'autre (dans notre cas, nous avons abaissé ce paramètre et le transfert de chaîne a été attribué par défaut);
  2. Pantoufles - Un symbole utilisé pour séparer les haut-parleurs des colonnes de la table de valeur (le point-virgule par défaut est utilisé).

Appel aux fonctions d'exportation du module général

En tant que source de données pour remplir le champ calculé, les fonctions d'un module partagé peuvent agir.

Plusieurs points importants:

  • La fonction doit exporter;
  • Si la fonction est située dans un module partagé avec une fonction définie "globale", son appel est effectué directement par nom, sinon l'appel de la fonction doit se produire en fonction du schéma "Nom du module général". "Le nom de la fonction appelée".

À titre d'exemple d'utilisation, nous suivrons la même demande aux documents du reçu et apportez une colonne séparée. Nous ne décrirons pas la demande elle-même, nous allons passer directement aux champs calculés:


Ainsi, nous constatons que presque tout gestionnaire de données peut être initialisé à partir du CCD, ce qui élargit considérablement la possibilité d'utiliser le schéma.

Expressions longues

Très souvent, dans les travaux du développeur, il y a une situation dans laquelle dans le domaine du CCD, il est nécessaire de tirer le résultat de la division:

  1. Calculer la valeur moyenne de la nomenclature;
  2. Toutes sortes d'intérêts;
  3. Calculs de gains moyens, etc.

Afin d'éviter des problèmes, dans ces cas, il est souhaitable d'entrer une vérification de la division pour 0 calculée dans ces cas.

Cela peut être fait en utilisant le design "choix quand ... .Chen ... sinon ... fin."

En fin de compte, quelques mots sur une relief nouvelle fonction du système de calcul (). Avec son aide, en particulier, vous pouvez calculer les écarts dans le coût entre la ligne actuelle et précédente, le résidu accumulatif, etc.

Supposons obtenir un nom de substitution de la ligne précédente de notre demande, vous pouvez spécifier dans le champ "Expression" de la valeur du système de calcul ("Résumé", "Prefeptsummum").

Langue des expressions du système de mise en page de données

Les expressions de langues expressions des expressions de données sont conçues pour enregistrer des expressions utilisées dans différentes parties du système.

Les expressions sont utilisées dans les sous-systèmes suivants:

  • diagramme de présentation de données - Pour décrire les champs calculés, les résultats des résultats, les expressions de communication, etc.
  • paramètres de mise en page de données - pour décrire les expressions de champ utilisateur;
  • disposition de la mise en page de données - Pour décrire les expressions de définition de la communication, décrivant les paramètres de la disposition, etc.

Littéral

L'expression peut avoir des littéraux. Les types suivants sont possibles:

  • Ligne;
  • Nombre;
  • Date;
  • Booleo.

Ligne

Le littéral à chaîne est écrit dans les personnages "", par exemple:

"Casque littéral"

Si vous devez utiliser dans le littéral de la chaîne du symbole "", deux caractères de ce type doivent être utilisés.

Par example:

"Littéral" "dans les citations" ""

Nombre

Le nombre est écrit sans espaces, en format décimal. La partie fractionnée est séparée en utilisant le symbole ".". Par example:

10.5 200

Date

Type de date Literal est écrit à l'aide d'une clé DATTime littéral. Après ce mot-clé, entre parenthèses, un an, un mois, une journée, des heures, des minutes, des secondes sont répertoriées par des virgules. Une indication du temps n'est pas nécessaire.

Par example:

DATABERN (1975, 1, 06) - Sixième janvier 1975 Datastern (2006, 12, 2, 23, 56, 57) - Deuxième décembre 2006, 23 heures 56 minutes 57 secondes, 23 heures 56 minutes 57 secondes

Booléen

Les valeurs booléennes peuvent être enregistrées en utilisant des littéraux de la vérité (true), des mensonges (faux).

Valeur

Pour spécifier les littéraux d'autres types (énumérations de système, données prédéfinies), un mot clé est utilisé, après quoi le nom littéral est indiqué entre parenthèses.

Signification (Vidcet. Active)

Opérations sur les chiffres

Unisaire -

Cette opération est conçue pour modifier le signe du numéro à l'opposé. Par example:

Ventes. Nationalité

Unisaire +.

Cette opération n'effectue aucune action au-dessus du nombre. Par example:

Ventes. Nationalité

Binaire -

Cette opération est conçue pour calculer la différence en deux nombres. Par example:

Vedues résiduelles. Résistance exclusif - Résidus. Concentré résidus résidus. Protection, 100 400 - 357

Binaire +.

Cette opération est destinée à calculer la somme de deux nombres. Par example:

Feuilles résiduelles. Propriétaire + querelles résiduelles. Variation des résidus. Protection. + 100 400 + 357

Composition

Cette opération est conçue pour calculer le travail de deux chiffres. Par example:

Nomenclature. Prix * 1.2 2 * 3.14

Division

Cette opération est conçue pour obtenir le résultat de la division d'un opérande à un autre. Par example:

Nomenclature. Prix / 1.2 2 / 3.14

Reste de la division

Cette opération est conçue pour obtenir un équilibre de la division d'un opérande à un autre. Par example:

Nomenclature. Prix% 1.2 2% 3.14

Opérations sur les chaînes

Concaténation (binaire +)

Cette opération est conçue pour concaténer deux lignes. Par example:

Nomenclature.article + ":" + nomenclature. Nom

Comme

Cette opération vérifie la correspondance du motif transmis par chaîne.

Le valide de l'opérateur est vrai si la valeur est<Выражения> Satisfait le modèle et faux sinon.

Les caractères suivants B.<Строке_шаблона> avoir un sens, différent d'un autre symbole de chaîne:

  • % - Pourcentage: une séquence contenant des caractères zéro et plus arbitraires;
  • _ - Un soulignement: un symbole arbitraire;
  • [...] - Un ou plusieurs caractères de crochets: un caractère, l'un des éléments énumérés entre crochets. Les listes peuvent survenir les gammes, par exemple A-Z, ce qui signifie un symbole arbitraire inclus dans la plage, y compris les extrémités de la plage;
  • [^ ...] - entre crochets, l'icône de déni, suivi d'un ou plusieurs caractères: n'importe quel caractère, à l'exception de ceux énumérés dans l'icône négative;

Tout autre caractère signifie lui-même et ne porte aucune charge supplémentaire. Si l'un des caractères énumérés doit être écrit comme lui-même, il doit précéder<Спецсимвол>, Spécifié après le mot clé Lait spécial (Escape).

Par exemple, modèle

"% ABB [ABBG] \\ _ ABV%" SPÉCIALIMOL "\\"

signifie une sous-chaîne constituée d'une séquence de symboles: lettres A; lettres b; lettres dans; Un chiffre; une des lettres A, B, dans ou G; Symbole de stress; Lettres a; lettres b; Lettres in. De plus, cette séquence peut être située à partir d'une position arbitraire dans la chaîne.

Opérations de comparaison

Également

Cette opération est destinée à comparer deux opérandes par égalité. Par example:

Ventes. Contrôle \u003d Ventes. Nomelaclatura-Binding

Inégal

Cette opération est conçue pour comparer deux opérandes pour les inégalités. Par example:

Ventes. Kontragent<> Ventes. Nomelaclatura-Binding

Moins

Cette opération est conçue pour vérifier que le premier opérande est inférieur à la seconde. Par example:

Exigeant< ПродажиПрошлые.Сумма

Suite

Cette opération est conçue pour vérifier que le premier opérande est supérieur à la seconde. Par example:

Surie. Summum\u003e dit. Summum

Moins ou égal

Cette opération est conçue pour vérifier que le premier opérande est inférieur ou égal à la seconde. Par example:

Exigeant<= ПродажиПрошлые.Сумма

Plus ou égal

Cette opération est conçue pour vérifier que le premier opérande est plus ou égal à la seconde. Par example:

À vendre. MASM: \u003d dit. Résumé

Opération B.

Cette opération vérifie la disponibilité de la valeur dans la liste transmise des valeurs. Le résultat de l'opération sera vrai, au cas où la valeur est trouvée, ou faux - sinon. Par example:

Nomenclature in (& Product11, et produit2)

Opération Vérifier la disponibilité dans le jeu de données

L'opération vérifie la disponibilité de la valeur dans l'ensemble de données spécifié. Les données définies pour vérifier doivent contenir un champ. Par example:

Ventes. Contrecount dans les contreparties

Vérification de la valeur Opération sur NULL

Cette opération renvoie la valeur de la vérité si la valeur est la valeur de NULL. Par example:

Ventes. Le progénurant est null

Valeur de vérification de l'opération pour l'inégalité nulle

Cette opération renvoie la valeur de la vérité au cas où la valeur n'est pas la valeur de NULL. Par example:

Vendre. L'agent de contrôle n'est pas null

Opérations logiques

Les opérations logiques sont prises comme des opérandes d'expression ayant un type de boolevo.

Opération NE.

L'opération ne renvoie pas la valeur de la vérité si son opérande est défini sur FALSE, et la valeur est fausse si son opérande est de la valeur de la vérité. Par example:

Pas de document. Fragment du programme. Document.

Opération I.

Opération et renvoie la valeur de la vérité si les deux opérandes sont de la valeur de la vérité et la valeur est fausse si l'un des opérandes compte un mensonge. Par example:

Document. Document encadré \u003d document. Sous-chef et document. Entrepreneur \u003d & contrat

Opération ou

Opération ou renvoie la valeur de la vérité si l'un des opérandes est la valeur de la vérité et un mensonge au cas où les deux opérandes sont valides. Par example:

Document. Framed \u003d Document. Un chargeur ou un document. Fragmentist \u003d & Contrepart

Fonctions globales

Les fonctions globales effectuent une action au-dessus du jeu de données.

Somme

Le montant de la fonction globale calcule la quantité de valeurs des expressions qui lui sont transmises comme argument pour tous les enregistrements détaillés. Par example:

Montant (vente. Résumé)

numéro

Le numéro de fonction calcule le nombre de valeurs autres que les valeurs NULL. Par example:

Quantité (vente. Contrecount)

Nombre de différents

Cette fonctionnalité calcule le nombre de valeurs différentes. Par example:

Quantité (diverses ventes. Agent de contrôle)

Maximum

La fonction obtient la valeur maximale. Par example:

Maximum (résidus. Nalité)

Le minimum

La fonction obtient la valeur minimale. Par example:

Minimum (résidu. Nalité)

Moyenne

La fonction obtient une valeur moyenne pour les valeurs autres que NULL. Par example:

Moyenne (résidus. Nalité)

Autres opérations

Sélection de l'opération

Fonctionnement La sélection est destinée à sélectionner l'une des valeurs de plusieurs conditions lors de l'exécution de certaines conditions. Par example:

Sélection lorsque la somme\u003e 1000 alors la somme sinon 0 fin

Règles de comparaison de deux valeurs

Si les types de valeurs compatibles diffèrent de l'autre, la relation entre les valeurs est déterminée en fonction de la priorité des types:

  • Null (le plus bas);
  • Booléen;
  • Nombre;
  • Date;
  • Ligne;
  • Types de référence

Les relations entre différents types de référence sont déterminées sur la base des numéros de référence de tables correspondant à ce type ou à un autre type.

Si les types de données sont les mêmes, les valeurs sont comparées aux règles suivantes:

  • au type booléen, la valeur de la vérité est supérieure à la valeur de faux;
  • au nombre de règles de comparaison habituelles pour les chiffres;
  • au type de dates antérieures inférieures à la plus tard;
  • au type de ligne - Comparaison des lignes conformément aux fonctionnalités de base de données nationales établies;
  • les types de référence sont comparés sur la base de leurs valeurs (numéros d'enregistrement, etc.).

Travailler avec null

Toute opération dans laquelle la valeur de l'un des opérandes nuls donnera le résultat null.

Il y a des exceptions:

  • opération et retournera NULL uniquement si aucun des opérandes ne compte un mensonge;
  • opération ou retournera NULL uniquement si aucun des opérandes n'a pas d'importance, la vérité.

Priorités des opérations

Les opérations ont les priorités suivantes (la première ligne a une priorité inférieure):

  • B, il y a , il n'y a pas null;
  • =, <>, <=, <, >=, >;
  • Binaire +, binaire -;
  • *, /, %;
  • Unisaire +, unaire -.

Fonctions de la langue des expressions du système de mise en page des données

Calculer

La fonction est destinée à calculer l'expression dans le contexte de certains groupements. La fonction a les paramètres suivants:

  • Expression. Type de chaîne. Contient une expression calculée;
  • Regroupement. Type de chaîne. Contient le nom du groupe, dans le contexte dont il est nécessaire de calculer l'expression. Si une chaîne vide est utilisée comme nom de groupe, le calcul sera exécuté dans le contexte du regroupement en cours. Dans le cas où un certain nombre de groupes communs seront utilisés comme groupe de regroupement, le calcul sera exécuté dans le cadre d'un résultat total. Dans d'autres cas, le calcul sera effectué dans le contexte du groupe parent avec le même nom. Par example:
Montant (Ventes. Masmoboto) / Calculez («Montant (Ventes. Résumé)», obnutogit »)

Dans cet exemple, le résultat est le ratio du montant des «ventes. Résumé» Entrée du regroupement à la somme du même champ dans l'ensemble de la disposition.

Niveau

La fonction est conçue pour obtenir le niveau d'enregistrement en cours.

Niveau()

Autogure

Obtenez le numéro de séquence suivant.

Auto-ordres ()

Le nombre est en ordre

Renvoie le numéro de séquence suivant dans le groupement en cours.

Groupe de Callergling ()

Format

Obtenez la chaîne formatée de la valeur transmise.

La chaîne de format est définie conformément à la ligne de format 1C: Entreprise.

Paramètres:

  • Valeur;
  • Format String.

Format (valeur excentreuse. Summer, "CDC \u003d 2")

Début de la période

Paramètres:

    • Minute;
    • Jour;
    • Une semaine;
    • Mois;
    • Trimestre;
    • Décennie;
    • Semestre.

Starteriod (Datastern (2002, 10, 12, 10, 15, 34), "Mois")

Résultat:

01.10.2002 0:00:00

Fin de fin

La fonction est conçue pour mettre en évidence une date spécifique d'une date donnée.

Paramètres:

  • Date. Date de type. Date spécifiée;
  • Type de période. Type de chaîne. Contient l'une des valeurs:
    • Minute;
    • Jour;
    • Une semaine;
    • Mois;
    • Trimestre;
    • Décennie;
    • Semestre.

Extrudeuse finale (DATAVERN (2002, 10, 12, 10, 15, 34), "Semaine")

Résultat:

13.10.2002 23:59:59

Ajouter de l'espace

La fonction est conçue pour être ajoutée à la date de la taille.

Paramètres:

  • Type de grossissement. Type de chaîne. Contient l'une des valeurs:
    • Minute;
    • Jour;
    • Une semaine;
    • Mois;
    • Trimestre;
    • Décennie;
    • Semestre.
  • La valeur est combien vous devez augmenter la date. Numéro de type. La partie fractionnée est ignorée.

Ajouter un espace (Datastern (2002, 10, 12, 10, 15, 34), "Mois", 1)

Résultat:

12.11.2002 10:15:34

Division

La fonction est conçue pour obtenir une différence entre deux dates.

Paramètres:

  • Expression. Date de type. Date source;
  • Expression. Date de type. Date proposée;
  • Type de différence. Type de chaîne. Contient l'une des valeurs:
    • Deuxième;
    • Minute;
    • Jour;
    • Mois;
    • Trimestre;

Distribution (DATABERN (2002, 10, 12, 10, 15, 34), DATAVERN (2002, 10, 14, 9, 18, 06), "JOUR")

Résultat:

Sous-chaîne

Cette fonctionnalité est conçue pour mettre en évidence la sous-chaîne de la ligne.

Paramètres:

  • Ligne. Type de chaîne. La chaîne de laquelle est distinguée par une sous-chaîne;
  • Positionner. Numéro de type. La position du symbole à partir de laquelle la soustrine allouée de la ligne commence;
  • Longueur. Numéro de type. La longueur de la sous-chaîne sécrétée.

Substrage (contreparties. Appuyez sur, 1, 4)

Coup plat

La fonction est conçue pour déterminer la longueur de la chaîne.

Paramètre:

  • Ligne. Type de chaîne. Rangée, dont la longueur est déterminée.

String (contreparties. Appuyez sur)

An

Cette fonctionnalité est conçue pour mettre en évidence l'année à compter de la valeur de la date.

Paramètre:

  • Date. Date de type. La date pour laquelle l'année est déterminée.

Année (DAT)

Trimestre

Cette fonctionnalité est destinée à mettre en surbrillance le trimestre de la valeur de type de date. Le nombre de trimestres est normal situé dans la gamme de 1 à 4.

Paramètre

  • Date. Date de type. Date sur laquelle le trimestre est déterminé
Quartier (rask'dat)

Mois

Cette fonctionnalité est destinée à mettre en évidence le nombre du mois à partir de la valeur de type de date. Le nombre du mois est normalement situé dans la zone de bande de 1 à 12.

  • Date. Date de type. La date à laquelle le mois est déterminé.
Mois (DAT)

De l'argent

Cette fonctionnalité est conçue pour recevoir le jour de l'année à partir du type de date. Le jour de l'année est normal compris entre 1 et 365 (366).

  • Date. Date de type. La date pour laquelle le jour de l'année est déterminé.
Argent (données Rask)

Jour

Cette fonctionnalité est conçue pour recevoir une journée du mois à partir du type de date. Le jour du mois est normalement compris entre 1 et 31.

  • Date. Date de type. La date à laquelle est déterminé par la journée du mois.
Jour (DAT)

Une semaine

Cette fonctionnalité est conçue pour recevoir le nombre de l'année de l'année à partir de la valeur de type de date. Les semaines de l'année sont numérotées, à partir de 1.

  • Date. Date de type. Date sur laquelle le nombre de la semaine est déterminé.
Semaine (Raskakl. Données)

Doublé

Cette fonctionnalité est conçue pour recevoir le jour de la semaine du type de date. Le jour de la semaine est normalement compris entre 1 (lundi) au 7 (dimanche).

  • Date. Date de type. Date à laquelle le jour de la semaine est déterminé.
Doublé (Raskakl. Données)

Heure

Cette fonctionnalité est conçue pour obtenir une heure de la journée à partir du type de date. Une heure de journée est comprise entre 0 et 23 ans.

  • Date. Date de type. La date pour laquelle l'heure de la journée est déterminée.
Heure (rask tat)

Minute

Cette fonctionnalité est conçue pour obtenir une minute d'heure du type de date. Une minute d'une heure est comprise entre 0 et 59.

  • Date. Date de type. La date sur laquelle est déterminée par une minute d'heures.
Minute (raskakl. Données)

Deuxième

Cette fonction est conçue pour obtenir une deuxième minute à partir de la valeur de type de date. La deuxième minute est comprise entre 0 et 59.

  • Date. Date de type. Date sur laquelle les secondes sont définies minutes.
Deuxièmement (DAT)

Express

Cette fonction est conçue pour mettre en évidence le type d'une expression pouvant contenir de type composite. Si l'expression contient un type autre que le type requis, la valeur de NULL sera renvoyée.

Paramètres:

  • Expression transformée;
  • Type de note. Type de chaîne. Contient de la chaîne de type. Par exemple, "nombre", "chaîne", etc. Outre les types primitifs, cette chaîne peut contenir le nom de la table. Dans ce cas, une tentative sera faite pour faire référence au lien vers la table spécifiée.

Express (données. Obligatoire1, "numéro (10.3)")

Nauline

Cette fonction renvoie la valeur du deuxième paramètre dans le cas si la valeur du premier paramètre NULL.

Sinon, la valeur du premier paramètre sera renvoyée.

Il y aNull (montant (vente. Résumé), 0)

Fonctions de modules communs

L'expression du mécanisme de mise en page des données peut contenir des appels aux fonctions des modules de configuration courants globaux. Aucune autre syntaxe pour appeler de telles fonctions n'est requise.

Cet exemple sera appelé la fonction "Abréviation" du module de configuration générale.

Notez que l'utilisation de fonctions de module communes n'est autorisée que lorsque vous spécifiez le paramètre de processeur de disposition de données correspondant.

De plus, les fonctions des modules communes ne peuvent pas être utilisées dans des expressions sur le terrain des utilisateurs.

Avez-vous aimé l'article? Partager avec des amis: