1s 8.3 Champs calculés du rapport SCD. Langage d'expression du système de composition de données (1Cv8)

À la lumière de la prochaine version 8.2.14, je vais essayer de décrire quelques nouvelles fonctions du système de composition de données.

Ouvrez le diagramme de présentation des données, de préférence dans un rapport externe, pour faciliter la modification.

Nous ajoutons un ensemble de données de type requête et écrivons, soit manuellement, soit à l'aide du concepteur de requêtes, une requête simple :

1. Configurez une demande dans le système de contrôle d'accès.

2. Configurer les champs calculés dans le système de contrôle d'accès

3. Configurez la disposition des données dans l'onglet Paramètres

4. Lancez 1C Entreprise 8.2.14. Ouvrez le rapport. On forme, on reçoit.

Description des nouvelles fonctions elles-mêmes :

1. La date actuelle()

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

2. COMPUTEEXPRESSION()

Syntaxe:

CalculerExpression(,)

Description:

La fonction est conçue pour évaluer une expression dans le contexte d'un certain regroupement.

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

La fonction ne peut pas être appliquée à un regroupement dans la sélection de groupe de ce regroupement. Par exemple, en sélectionnant le groupe Nomenclature, vous ne pouvez pas utiliser l'expression CalculerExpression("Somme(SumTurnover)", "TotalTotal") > 1000. Mais une telle expression peut être utilisée en sélection hiérarchique.

Si l'enregistrement de fin précède l'enregistrement de début, on considère qu'il n'y a aucun enregistrement pour calculer les données détaillées et calculer les fonctions d'agrégation.

Lors du calcul d'expressions d'intervalle pour un total général (le paramètre Grouping est défini sur GrandTotal), il est supposé qu'il n'existe aucun enregistrement pour calculer les données détaillées et calculer les fonctions d'agrégation.

Editeur de liens de mise en page lors de la génération d'une expression de fonction CalculerExpression, si l'expression de tri contient des champs qui ne peuvent pas être utilisés dans le regroupement, remplace la fonction CalculerExpression sur NUL.

Possibilités

Taper: Doubler. L'expression à évaluer.

Taper: Doubler. Contient le nom du regroupement dans le contexte duquel l'expression doit être évaluée. Si une chaîne vide est utilisée comme nom de regroupement, le calcul sera effectué dans le contexte du regroupement actuel. Si la chaîne GeneralTotal est utilisée comme nom de groupe, le calcul sera effectué dans le contexte du total général. Dans le cas contraire, le calcul sera effectué dans le contexte du groupe parent du même nom.

Par exemple:

Somme(Sales.SumTurnover)/Calculate("Somme(Sales.SumTurnover)", "Total")

DANS dans cet exemple le résultat sera le rapport de la somme par champ Sales.AmountTurnover regrouper les enregistrements à la somme du même champ dans l'ensemble de la mise en page ;

Taper: Doubler. Le paramètre peut prendre les valeurs suivantes :

· total— l'expression sera calculée pour tous les enregistrements de regroupement.

· Hiérarchie— l'expression sera évaluée pour l'enregistrement hiérarchique parent, s'il existe, et pour l'ensemble du regroupement, s'il n'y a pas d'enregistrement hiérarchique parent.

· Regroupement— l'expression sera évaluée pour l'enregistrement de regroupement de groupe actuel.

· GroupingNonResource— lors du calcul d'une fonction pour un enregistrement de groupe par ressources, l'expression sera calculée pour le premier enregistrement de groupe du regroupement d'origine.

Lors du calcul d'une fonction CalculerExpression() avec du sens GroupingNonResource pour les enregistrements de groupe qui ne sont pas regroupés par ressources, la fonction est calculée de la même manière qu'elle le serait si la valeur du paramètre était égale à la valeur Regroupement.

Le générateur de mise en page de composition de données, lors de la génération d'une mise en page de composition de données lors de la sortie d'un champ de ressource par lequel le regroupement est effectué vers la mise en page, place une expression dans la mise en page qui est calculée à l'aide de la fonction CalculerExpression() , indiquant le paramètre GroupingNonResource. Pour les autres ressources, les expressions de ressources habituelles sont placées dans le groupe de ressources.

Taper: Doubler. Indique à partir de quel enregistrement le fragment doit commencer, dans lequel les fonctions d'expression d'agrégat doivent être calculées et à partir de quel enregistrement obtenir les valeurs de champ en dehors des fonctions d'agrégat. La valeur peut être l'une des suivantes :

· D'abord

· Dernier (Dernier)

· Précédent

· Suivant Suivant)

· Actuel

· Valeur Limitante(Valeur limite) Valeur Limitante

Taper: Doubler. Indique vers quel enregistrement le fragment doit être continué, dans lequel les fonctions globales de l'expression doivent être calculées. La valeur peut être l'une des suivantes :

· D'abord. Il est nécessaire d'obtenir le premier enregistrement de regroupement. Après le mot entre parenthèses, vous pouvez préciser une expression dont le résultat sera utilisé comme décalage depuis le début du regroupement. La valeur résultante doit être un entier supérieur à zéro. Par exemple, First(3) - reçoit le troisième enregistrement depuis le début du regroupement.

Si le premier enregistrement est en dehors du regroupement, alors on considère qu’il n’y a aucun enregistrement. Par exemple, s'il y a 3 enregistrements et que vous souhaitez obtenir First(4), alors on considère qu'il n'y a aucun enregistrement.

· Dernier (Dernier). Vous devez obtenir le dernier enregistrement de regroupement. Après le mot entre parenthèses, vous pouvez spécifier une expression dont le résultat sera utilisé comme décalage par rapport à la fin du regroupement. La valeur résultante doit être un entier supérieur à zéro. Par exemple, Last(3) : reçoit le troisième enregistrement de la fin du groupe.

Si le dernier enregistrement est en dehors du regroupement, alors on considère qu'il n'y a aucun enregistrement. Par exemple, s'il y a 3 enregistrements et que vous souhaitez obtenir Last(4), alors on considère qu'il n'y a aucun enregistrement.

· Précédent. Vous devez obtenir l'enregistrement de regroupement précédent. Après le mot entre parenthèses, vous pouvez spécifier une expression dont le résultat sera utilisé comme décalage par rapport à l'enregistrement de regroupement actuel. Par exemple, Précédent(2) - obtient le précédent à partir de l'enregistrement précédent.

Si l'enregistrement précédent dépasse le regroupement (par exemple, pour le deuxième enregistrement de regroupement, vous devez obtenir Précédent(3)), alors le premier enregistrement de regroupement est obtenu.

Lors de la récupération de l'enregistrement précédent pour un total de regroupement, on considère que le premier enregistrement est obtenu.

· Suivant Suivant). Vous devez obtenir le prochain enregistrement de regroupement. Après le mot entre parenthèses, vous pouvez spécifier une expression dont le résultat sera utilisé comme décalage vers l'avant par rapport à l'enregistrement de regroupement actuel. Par exemple, Next(2) - obtenir le suivant à partir de l'enregistrement suivant.

Si l'enregistrement suivant dépasse le regroupement, alors on considère qu'il n'y a aucun enregistrement. Par exemple, s'il y a 3 entrées et que la troisième entrée reçoit Next() , alors on considère qu'il n'y a aucune entrée.

Lorsque l'enregistrement suivant est reçu pour le total de regroupement, on considère qu'il n'y a pas d'enregistrement.

· Actuel. Vous devez obtenir l'enregistrement actuel.

Lors de la récupération d'un total de regroupement, le premier enregistrement est obtenu.

· Valeur Limitante(Valeur limite). La nécessité d'obtenir un enregistrement par la valeur spécifiée. Après le mot Valeur Limitante entre parenthèses, vous devez indiquer l'expression avec la valeur de laquelle vous souhaitez commencer le fragment, le premier champ de tri.

Le premier enregistrement dont la valeur du champ de classement est supérieure ou égale à la valeur spécifiée sera renvoyé en tant qu'enregistrement. Par exemple, si le champ Période est utilisé comme champ de tri et qu'il a les valeurs 01/01/2010, 01/02/2010, 01/03/2010 et que vous souhaitez obtenir Valeur Limite (DateHeure (2010, 1, 15)), alors un enregistrement avec la date du 01/02/2010 sera reçu.

Taper: Doubler. Répertorie les expressions, séparées par des virgules, qui décrivent les règles de classement. S'il n'est pas spécifié, le classement est effectué de la même manière que pour le regroupement pour lequel l'expression est évaluée. Après chaque expression, vous pouvez spécifier un mot-clé Âge(pour commander par ordre croissant), Descendant(pour commander par ordre décroissant) et Commande automatique(pour trier les champs de référence selon les champs selon lesquels vous souhaitez trier l'objet référencé). Mot Commande automatique peut être utilisé comme avec le mot Âge, donc avec le mot Descendant.

Taper: Doubler. Identique au paramètre Tri. Utilisé pour organiser les enregistrements hiérarchiques. S'il n'est pas spécifié, le générateur de mise en page génère l'ordre selon l'ordre spécifié dans le paramètre Tri.

Taper: Doubler. Spécifie la règle permettant de déterminer l'enregistrement précédent ou suivant au cas où il existe plusieurs enregistrements avec la même valeur de classement :

· Séparément indique qu'une séquence d'enregistrements ordonnés est utilisée pour déterminer les enregistrements précédents et suivants. Valeur par défaut.

· Ensemble indique que les enregistrements précédents et suivants sont déterminés en fonction des valeurs des expressions de classement.

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

date Nom et prénom Signification
1 01 janvier 2001

Ivanov M.

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

Séparément, Que:

§ l'entrée précédente à l'entrée 3 sera l'entrée 2.

Actuel, Actuel(en conséquence, les paramètres Commencer Et Fin), alors pour l'enregistrement 2 ce fragment sera constitué d'un enregistrement 2. L'expression sera égale à 20.

Si la valeur du paramètre est Ensemble, Que:

§ l'entrée précédente à l'entrée 3 sera l'entrée 1.

§ si le fragment de calcul est défini comme Actuel, Actuel(en conséquence, les paramètres Commencer Et Fin), alors pour l'enregistrement 2, ce fragment sera constitué des enregistrements 2 et 3. Expression CalculerExpression("Somme(Valeur)", Actuel, Actuel) sera égal à 50.

Lors de la spécification d'une valeur de paramètre égale à Ensemble, en paramètres Commencer Et Fin vous ne pouvez pas spécifier de décalage pour les positions Premier, Dernier, Précédent, Suivant.

CalculateExpression("Somme(SumTurnover)", "Premier", "Actuel")

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

CalculerExpression("Taux", "Précédent")

Liste nouveau les fonctions:

CalculerExpressionAvecGroupArray(,) -

La fonction renvoie un tableau dont chaque élément contient le résultat de l'évaluation d'une expression pour le regroupement par le champ spécifié.

CalculateExpressionWithGroupValueTable(,) -

La fonction renvoie un tableau de valeurs dont chaque ligne contient le résultat de l'évaluation des expressions pour le regroupement par le champ spécifié.

ValeurRemplie() - Renvoie True si la valeur est différente de la valeur de ce genre par défaut, autre que NULL, autre qu'une référence vide, autre que Indéfini. Les valeurs booléennes sont vérifiées pour les valeurs NULL. Les chaînes sont vérifiées pour l'absence de caractères autres que des espaces

Format(, ) - Recevoir une 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 extraire une sous-chaîne d'une chaîne.

Longueur de la ligne() - La fonction est conçue pour déterminer la longueur d'une chaîne. Le paramètre est une expression de chaîne

Doubler() - Si un tableau est passé en paramètre, la fonction renvoie une chaîne contenant des représentations sous forme de chaîne de tous les éléments du tableau, séparés par des caractères ";". Si une table de valeurs est passée en paramètre, la fonction renvoie une chaîne contenant des représentations sous forme de chaîne de toutes les lignes de la table de valeurs, avec les représentations de cellules de chaque ligne séparées par des caractères ";" et les lignes par une nouvelle ligne. personnage. Si la représentation sous forme de chaîne d'un élément est vide, une chaîne est affichée à la place de sa représentation.

Dans cette courte note, je souhaite montrer comment résumer des valeurs à différents niveaux de regroupement dans un rapport à l'aide d'un système de composition de données.
Comme le montre l'image, uniquement au niveau de regroupement « Groupes d'articles », la ressource « Commande » est calculée, elle affiche la quantité qui doit être commandée pour le groupe d'articles actuel en fonction de certaines conditions :


Cette valeur ne peut être calculée qu'à ce niveau de regroupement, puisqu'il n'y a pas de valeurs supérieures ou inférieures à calculer. Par exemple, au niveau des enregistrements détaillés, il n'existe pas de données sur la quantité maximale dans un groupe, car ces données ne sont valables que pour le groupe dans son ensemble, et non pour ses composants individuels.

En conséquence, il est maintenant nécessaire de calculer les totaux pour les groupements ci-dessus (« Entrepôts », « Types d'entrepôts ») et le total global.
Pour ce faire, utilisez la fonction CalculerExpressionAvecGroupArray :
ÉVALUER L'EXPRESSIONAVECGROUPARRAY (EVALEXPRESSIONAVECGROUPARRAY)
Syntaxe:
ÉvaluerExpressionWithGroupArray(,)
Description:
La fonction renvoie un tableau dont chaque élément contient le résultat de l'évaluation d'une expression pour le regroupement par le champ spécifié.
Le compositeur de mise en page, lors de la génération d'une mise en page, convertit les paramètres de fonction en termes de champs de mise en page de composition de données. Par exemple, le champ Compte sera converti en DataSet.Account.
Compositeur de mise en page lors de la génération d'expressions pour la sortie champ personnalisé, dont l'expression contient uniquement la fonction CalculateArrayWithGroupArray(), génère une expression de sortie de telle manière que les informations de sortie soient ordonnées. Par exemple, pour un champ personnalisé avec l'expression :

CalculateExpressionWithGroupArray("Montant(AmountTurnover)", "Contrepartie")
Le générateur de mise en page générera l'expression suivante pour la sortie :

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))

Possibilités :

Type : chaîne. L'expression à évaluer. Ligne, par exemple, Amount(AmountTurnover).

Type : chaîne. Expressions de champs de regroupement – ​​expressions de champs de regroupement, séparées par des virgules. Par exemple, Entrepreneur, Partie.

Type : chaîne. Expression décrivant la sélection appliquée aux enregistrements de détail. L'expression ne prend pas en charge l'utilisation de fonctions d'agrégation. Par exemple, DeletionFlag = False.

Type : chaîne. Expression décrivant la sélection appliquée aux enregistrements de groupe. Par exemple, Montant (AmountTurnover) > &Paramètre1.
Exemple:

Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));

Une description détaillée de la syntaxe de la fonction peut être trouvée sur http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Maintenant, pour le calcul, nous dupliquons le champ « Ordre », avec différentes valeurs « Calculer par... », en utilisant les expressions suivantes, notons que dans chaque niveau supérieur les valeurs des niveaux inférieurs aux regroupements sont utilisées .

On obtient alors la construction suivante :

L'un des outils de développement les plus pratiques et les plus uniques de 1C est le système de composition de données (DCS). Peu en aucun cas systèmes d'information les développeurs peuvent créer des rapports sans écrire de code. Ce mécanisme a été développé pour simplifier et accélérer le développement des formulaires de rapport et donner plus de possibilités aux utilisateurs de travailler avec les données de sortie. Ce dernier est très apprécié des utilisateurs avancés, qui grâce à cela peuvent personnaliser indépendamment le rapport selon leurs propres besoins, sans attendre les actions des développeurs.

Création d'un rapport en 1C via SKD

Le processus d'élaboration d'un rapport à l'aide d'ACS peut être divisé en les étapes suivantes :

  1. Création d'une demande. Vous pouvez rédiger une requête manuellement ou vous passer de code à l'aide d'une interface pratique ;
  2. Mise en place du rapport. Sélectionnez les champs, les totaux, les regroupements, les paramètres, la conception du rapport ;
  3. Après cela, tout ce que nous avons à faire est de connecter le rapport résultant à la configuration de n'importe quelle manière disponible.

Malgré la possibilité pour les utilisateurs de personnaliser les rapports sur le système de contrôle d'accès, ils doivent être créés via le configurateur.

Regardons un exemple de création rapport externe sur SKD :


Passons maintenant à 1C, ouvrons notre rapport pour nous assurer que les actions entreprises sont correctes. Toutes les données sont reflétées, les regroupements peuvent être réduits et développés. Comme vous pouvez le constater, le système de contrôle d'accès vous permet de recevoir des rapports complets sans écrire de code, à l'exception des exigences non standard. Étant donné que la plupart des rapports ont une structure similaire, la connaissance du système de contrôle d'accès réduira considérablement le temps de développement de ces objets.

Ce mécanisme est devenu très populaire en raison de sa prise en charge de capacités de reporting étendues. De plus, non seulement les développeurs, mais aussi les utilisateurs ordinaires peuvent les utiliser.

Capacités ACS

Il y a des situations où nous avons fait un rapport, puis un utilisateur vient demander une petite modification. Par exemple, au lieu des noms de produits, affichez les numéros d’articles. SKD permet aux utilisateurs d'effectuer de telles modifications indépendamment à l'aide du bouton « Plus » - « Modifier l'option... ».


La fenêtre qui s'ouvre est similaire à la fenêtre des paramètres du rapport dans le configurateur et possède également des fonctions similaires. Pour résoudre la tâche, l'utilisateur doit se rendre dans l'onglet « Champs » et modifier le champ « Nomenclature ». Ce champ d'édition s'ouvre en double-cliquant et le bouton « Sélectionner » devient disponible.


La fenêtre qui s'ouvre nous donne la possibilité de sélectionner n'importe quelle valeur qui apparaîtra dans le champ « Nomenclature ». Certains champs ont un signe plus à gauche - le développeur a placé des liens dans ces champs, ce qui signifie que nous pouvons voir leurs détails. Nous ouvrons « Nomenclature » et voyons l'article dont nous avons besoin. Sélectionnez-le et sélectionnez-le.


La fenêtre de modification des options du rapport contient de nombreuses fonctions utiles du système de composition des données. Par exemple, l'utilisateur peut modifier indépendamment l'ordre des regroupements, ajouter une sélection ou appliquer une conception conditionnelle. Nous terminons l'édition et générons un rapport - comme vous pouvez le constater, l'ensemble de la gamme de produits est désormais affichée sous forme d'articles.


Le mécanisme SKD 1C:Enterprise 8.3 offre également des fonctionnalités étendues pour les développeurs. Lors de l'élaboration du rapport, nous n'avons utilisé que 2 onglets - « Ensembles de données » et « Paramètres », mais il y en a beaucoup plus dans l'ACS. Pour utiliser toutes les fonctions du système de composition des données, vous devez comprendre à quoi sert chacun des onglets :

  1. Ensembles de données – toutes les requêtes impliquées dans la génération du rapport sont répertoriées ici ;
  2. Connexions d'ensembles de données – utilisées pour établir des connexions entre différentes requêtes à partir du premier onglet ;
  3. Champs calculés – une liste de champs ajoutés ne provenant pas de la demande. Le plus souvent utilisé dans les cas où, en fonction des valeurs de plusieurs champs, vous devez obtenir 1 valeur de la requête ;
  4. Ressources. En 1C, c'est le nom des champs dont vous devez connaître les résultats. Les ressources prennent en charge diverses opérations arithmétiques– montant, quantité, maximum et autres ;
  5. Possibilités. Ils sont utilisés si, pour générer un rapport, il est nécessaire que l'utilisateur saisisse certaines données - date, divisions ou nomenclature, par exemple ;
  6. Mises en page. Conçu pour les cas où les utilisateurs souhaitent voir un rapport au design unique. Vous pouvez créer un emplacement séparé pour les signatures ou une nouvelle partie supérieure du rapport - tout cela peut être fait ici ;
  7. Diagrammes imbriqués. Ils sont nécessaires lorsque votre rapport doit contenir des données provenant d'autres rapports ;
  8. Paramètres. La section déclare les champs affichés, les regroupements et configure apparence rapport.


Le nombre de possibilités intégrées au mécanisme ACS par les développeurs est important, mais nombre d'entre elles sont extrêmement rarement utilisées. Même les programmeurs 1C expérimentés peuvent ne pas utiliser certaines fonctions après des années de travail. Pour commencer à travailler avec succès dans le système de contrôle d'accès, il suffit de connaître les concepts de base et les paramètres fréquemment utilisés. Dans de rares cas, la documentation viendra à la rescousse.

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 : compter les résultats (ressources)

Le but de cette leçon sera :

  • Rédigez un rapport qui affiche une liste de produits (Répertoire alimentaire), leur teneur en calories et leur goût.
  • Regroupez les produits par couleur.
  • Découvrez la synthèse (ressources) et les champs calculés.

Créer un nouveau rapport

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

Type de document - rapport externe:

Dans le formulaire de configuration du rapport, écrivez le nom " Lecon 3" et appuyez sur le bouton " Diagramme de composition de données ouvertes":

Laissez le nom du schéma par défaut et cliquez sur le bouton " Prêt":

Ajout d'une requête via le constructeur

Sur l'onglet " Base de données" Cliquez sur vert signe plus et sélectionnez " Ajouter un ensemble de données – Requête":

Au lieu d'écrire le texte de la requête manuellement, nous le réexécutons constructeur de requête:

Sur "l'onglet" les tables"faites glisser la table" Nourriture" de la première colonne à la seconde :

Sélectionnez dans le tableau " Nourriture"les champs que nous demanderons. Pour cela, faites glisser et déposez les champs" Nom", "Goût", "Couleur" Et " Teneur en calories" de la deuxième colonne à la troisième :

Cela s'est passé comme ceci :

Appuie sur le bouton " D'ACCORD" - le texte de la demande a été généré automatiquement :

Création des paramètres de présentation du rapport

Allez dans l'onglet " Paramètres" et cliquez sur baguette magique, appeler concepteur de paramètres:

Sélectionnez le type de rapport " Liste..." et appuyez sur le bouton " Plus loin":

Faites glisser de la colonne de gauche vers la droite les champs qui seront affichés dans la liste et cliquez sur " Plus loin":

Faites glisser de la colonne de gauche vers le champ de droite " Couleur" - cela va arriver regroupement lignes du rapport. Cliquez sur " D'ACCORD":

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

  • le rapport dans son ensemble
  • regroupement "Couleur"
  • entrées détaillées - lignes avec les noms des aliments

Enregistrez le rapport (bouton disquette) Et sans fermer Nous ouvrirons immédiatement le configurateur en mode utilisateur. Cela s'est passé comme ceci :

Changer l'ordre des colonnes

Mais allons changeons l'ordre colonnes (flèches haut et bas) pour que cela ressemble à la figure ci-dessous :

Sauvons le rapport et ouvrons-le à nouveau en mode utilisateur :

Super, c'est bien mieux.

Résumons la teneur en calories

Ce serait bien de résumer la teneur en calories des aliments par groupe. Pour voir la somme de la teneur en calories de tous les produits, par exemple blancs ou jaunes. Ou découvrez la teneur totale en calories de tous les produits dans la base de données.

A cet effet, il existe un mécanisme de calcul des ressources.

Allez dans l'onglet " Ressources"et faites glisser le champ" Teneur en calories"(nous allons le résumer) de la colonne de gauche vers la droite.

Dans ce cas, dans le champ, sélectionnez l'expression dans la liste déroulante " Quantité (calories)", puisque le total sera la somme de tous les éléments inclus dans le total :

Nous enregistrons et générons un rapport :

Nous disposons désormais de résultats pour chacun des groupes et pour le rapport dans son ensemble.

Résumons (moyenne) en termes de calories

Faisons-le maintenant apparaître dans une autre colonne moyenne teneur en calories des produits par groupes et dans le rapport dans son ensemble.

Vous ne pouvez pas toucher la colonne « Calories » existante : le total y est déjà affiché, donc créons un autre champ, qui sera une copie exacte du champ « Calorie ».

Pour créer un tel champ « virtuel », nous utiliserons le mécanisme champs calculés.

Allez dans l'onglet " Champs calculés" et appuyez sur vert signe plus :

Dans une chronique " Chemin de données"on écrit le nom du nouveau champ ( en toute transparence, sans espaces). Qu'il s'appelle " Teneur moyenne en calories", et dans la colonne " Expression"on écrit le nom d'un champ existant sur la base duquel le nouveau champ sera calculé. On y écrit " Teneur en calories". Colonne " Titre" sera renseigné automatiquement.

Nous avons ajouté un nouveau champ (" Teneur moyenne en calories"), mais il n'apparaîtra pas tout seul dans le rapport - vous devez soit rappeler concepteur de paramètres("baguette magique") ou ajoutez ce champ manuellement.

Faisons-le deuxième chemin. Pour cela, rendez-vous dans l'onglet " Paramètres", sélectionner " Rapport"(après tout, nous voulons ajouter le champ dans son ensemble au rapport), sélectionnez l'onglet en bas" Champs sélectionnés"et faites glisser le champ" Teneur moyenne en calories"de la colonne de gauche vers la droite :

Cela s'est passé comme ceci :

Nous enregistrons et générons un rapport :

Le champ est apparu et on voit que ses valeurs sont les valeurs du champ "Calorie". Super!

Pour ce faire, nous utiliserons à nouveau le mécanisme qui nous est déjà familier ressources(résumant). Allez dans l'onglet " Ressources"et faites glisser le champ" Teneur moyenne en calories"de la colonne de gauche vers la droite :

D'ailleurs, dans la colonne " Expression"choisir" Moyenne (calories moyennes)":

Nous enregistrons et générons un rapport :

On voit que pour les groupes, c'est-à-dire pour chaque couleur, et pour le rapport dans son ensemble, la valeur moyenne a été calculée de manière tout à fait correcte. Mais ils sont présents entrées supplémentaires pour les produits individuels (et non les groupes) que je souhaite supprimer du rapport.

Savez-vous pourquoi ils sont apparus (valeurs non par groupe) ? Parce que quand on a ajouté le champ " Teneur moyenne en calories"dans les paramètres du rapport, dans la deuxième étape, nous avons sélectionné l'intégralité du rapport et ce nouveau champ est entré dans l'élément " Détaillé enregistrements".

Corrigeons l'erreur. Pour cela, retournez dans l'onglet " Paramètres", sélectionner " Entrées détaillées" d'abord par le haut (étape 2) puis " Entrées détaillées"par le bas (étape 3), allez dans le favori" Choisi des champs" et nous verrons dans sa colonne de droite l'élément " Auto".

Élément " Auto" - ce n'est pas un champ. Il s'agit de plusieurs champs qui tombent ici automatiquement en fonction de paramètres de niveau supérieur.

Pour voir quels sont ces champs, cliquez sur l'élément " Auto" droite et sélectionnez " Développer":

Élément " Auto" développé dans les domaines suivants :

Et voici notre terrain" Teneur moyenne en calories"qui est venu ici du point" Rapport"quand nous l'avons traîné là-bas. Juste supprimons cochez la case à côté de ce champ pour supprimer sa sortie.

1. Calculer (Évaluer)- est destiné à évaluer une expression dans le contexte d'un certain regroupement. La fonction est utilisée pour la compatibilité avec les versions précédentes de la plateforme. Il est recommandé d'utiliser plutôt la fonction CalculateExpression.

Syntaxe:
Calculer (Expression, Regroupement, Type de calcul)

Possibilités :

  • Expression(Doubler). Contient une expression calculée ;
  • Regroupement(Doubler). Contient le nom du regroupement dans le contexte duquel l'expression doit être évaluée. Si une chaîne vide est utilisée comme nom de regroupement, le calcul sera effectué dans le contexte du regroupement actuel. Si la chaîne GrandTotal est utilisée comme nom de groupe, le calcul sera effectué dans le contexte du total général. Dans le cas contraire, le calcul sera effectué dans le contexte du groupe parent du même nom.
    Par exemple:
    Somme(Sales.SumTurnover) / Calculer("Somme(Sales.SumTurnover)", "Total").
    Dans cet exemple, le résultat sera le rapport entre le montant du champ « Sales.AmountTurnover » de l'enregistrement de regroupement et le montant du même champ dans l'ensemble de la mise en page.
  • Type de calcul(Doubler). Si ce paramètre est défini sur "TotalTotal", l'expression sera calculée pour tous les enregistrements de regroupement. Si la valeur du paramètre est "Regroupement", les valeurs seront calculées pour l'enregistrement du groupe de regroupement en cours.
2. Évaluer l'expression (EvalExpression) - est destiné à évaluer une expression dans le contexte d'un certain regroupement. La fonction prend en compte la sélection des regroupements, mais ne prend pas en compte les sélections hiérarchiques. La fonction ne peut pas être appliquée à un regroupement dans la sélection de groupe de ce regroupement.

Syntaxe:
CalculateExpression (Expression, Regroupement, CalculationType, Début, Fin, Tri, HierarchicalSort, ProcessingIdenticalOrderValues)

Possibilités :

  • Expression(Doubler). Contient une expression calculée ;
  • Regroupement(Doubler). Contient le nom du regroupement dans le contexte duquel l'expression doit être évaluée. Si une chaîne vide est utilisée comme nom de regroupement, le calcul sera effectué dans le contexte du regroupement actuel. Si la chaîne GrandTotal est utilisée comme nom de groupe, le calcul sera effectué dans le contexte du total général. Dans le cas contraire, le calcul sera effectué dans le contexte du regroupement parent portant ce nom ;
  • Type de calcul(Doubler). Si ce paramètre est défini sur "TotalTotal", l'expression sera calculée pour tous les enregistrements de regroupement. Si la valeur du paramètre est "Regroupement", les valeurs seront calculées pour l'enregistrement du groupe de regroupement en cours. Si le paramètre est défini sur « Regroupement hors ressource », alors lors du calcul de la fonction pour un enregistrement de groupe par ressource, l'expression sera évaluée pour le premier enregistrement de groupe du regroupement d'origine. Lors de l'évaluation de la fonction CalculateExpression avec la valeur « GroupingNonResource » pour les enregistrements de groupe qui ne sont pas des regroupements par ressource, la fonction est évaluée de la même manière qu'elle le serait avec la valeur du paramètre « Grouping ». Le générateur de mise en page de composition de données, lors de la génération d'une mise en page de composition de données lors de la sortie d'un champ - une ressource par laquelle le regroupement est effectué, vers la mise en page, génère dans la mise en page une expression calculée à l'aide de la fonction CalculateExpression avec le paramètre "GroupingNon-Resource" spécifié. Pour les autres ressources regroupées par ressource, les expressions de ressources normales sont renvoyées. Si le paramètre est défini sur "Hiérarchie", alors l'expression doit être évaluée pour l'enregistrement hiérarchique parent, s'il existe, et pour l'ensemble du regroupement, s'il n'y a pas d'enregistrement hiérarchique parent. Le générateur de présentation, lors de la génération d'une expression pour le champ % dans le groupe hiérarchique, génère une expression contenant la relation entre l'expression de ressource et la fonction CalculateExpression pour l'expression de ressource en cours de calcul pour le regroupement actuel avec le type de calcul Hiérarchie.
  • Commencer. Indique à partir de quel enregistrement le fragment doit commencer, dans lequel les fonctions d'expression d'agrégat doivent être calculées et à partir de quel enregistrement obtenir les valeurs de champ en dehors des fonctions d'agrégat. Une chaîne contenant l'un des éléments suivants :
    • "D'abord" Il est nécessaire d'obtenir le premier enregistrement de regroupement. Après le mot entre parenthèses, vous pouvez préciser une expression dont le résultat sera utilisé comme décalage depuis le début du regroupement. La valeur résultante doit être un entier supérieur à zéro. Par exemple, First(3) – reçoit le troisième enregistrement depuis le début du regroupement. Si le premier enregistrement est en dehors du regroupement, alors on considère qu’il n’y a aucun enregistrement. Par exemple, s'il y a 3 enregistrements et que vous souhaitez obtenir First(4), alors on considère qu'il n'y a aucun enregistrement.
    • "Dernier" Vous devez obtenir le dernier enregistrement de regroupement. Après le mot entre parenthèses, vous pouvez spécifier une expression dont le résultat sera utilisé comme décalage par rapport à la fin du regroupement. La valeur résultante doit être un entier supérieur à zéro. Par exemple, Last(3) – reçoit le troisième enregistrement de la fin du groupe. Si le dernier enregistrement est en dehors du regroupement, alors on considère qu'il n'y a aucun enregistrement. Par exemple, s'il y a 3 enregistrements et que vous souhaitez obtenir Last(4), alors on considère qu'il n'y a aucun enregistrement.
    • "Précédent" Vous devez obtenir l'enregistrement de regroupement précédent. Après le mot entre parenthèses, vous pouvez spécifier une expression dont le résultat sera utilisé comme décalage par rapport à l'enregistrement de regroupement actuel. Par exemple, Précédent(2) – obtient le précédent à partir de l'enregistrement précédent. Si l'enregistrement précédent est en dehors du regroupement (par exemple, le deuxième enregistrement de regroupement nécessite l'obtention de Précédent(3)), alors le premier enregistrement de regroupement est obtenu. Lors de la réception de l'enregistrement précédent pour le total de regroupement, le premier enregistrement est obtenu.
    • "Suivant" Vous devez obtenir le prochain enregistrement de regroupement. Après le mot entre parenthèses, vous pouvez spécifier une expression dont le résultat sera utilisé comme décalage vers l'avant par rapport à l'enregistrement de regroupement actuel. Par exemple, Next(2) – obtenir le suivant à partir de l'enregistrement suivant. Si l'enregistrement suivant dépasse le regroupement, alors on considère qu'il n'y a aucun enregistrement. Par exemple, s'il y a 3 entrées et que la troisième entrée reçoit Next, alors on considère qu'il n'y a aucune entrée. Lorsque l'enregistrement suivant est reçu pour le total de regroupement, on considère qu'il n'y a pas d'enregistrement.
    • "Actuel". Vous devez obtenir l'enregistrement actuel. Lors de la récupération d'un total de regroupement, le premier enregistrement est obtenu.
    • "Valeur limite". La nécessité d'obtenir un enregistrement par la valeur spécifiée. Après le mot LimitingValue entre parenthèses, vous devez indiquer l'expression avec la valeur dont vous souhaitez démarrer le fragment, le premier champ de tri. Le premier enregistrement dont la valeur du champ de classement est supérieure ou égale à la valeur spécifiée sera renvoyé en tant qu'enregistrement. Par exemple, si le champ Période est utilisé comme champ de tri et qu'il a les valeurs 01/01/2010, 01/02/2010, 01/03/2010 et que vous souhaitez obtenir la valeur LimitingValue(DateTime(2010 , 1, 15)), alors un enregistrement avec la date 02/01 sera obtenu.
  • Fin. Indique vers quel enregistrement le fragment doit être continué, dans lequel l'expression globale doit être calculée. Une chaîne contenant l'un des éléments suivants :
    • "D'abord"
    • "Dernier"
    • "Précédent"
    • "Suivant"
    • "Actuel".
    • "Valeur limite".
  • Tri. Chaîne qui répertorie les expressions, séparées par des virgules, dans le sens dans lesquelles la séquence doit être ordonnée. S'il n'est pas spécifié, le classement est effectué de la même manière que pour le regroupement pour lequel l'expression est évaluée. Après chaque expression, vous pouvez spécifier le mot-clé Ascending, pour trier par ordre croissant, Descending, pour trier par ordre décroissant, Auto-Ordering, pour trier les champs de référence selon les champs par lesquels vous souhaitez trier l'objet référencé. Le mot Ordre automatique peut être utilisé à la fois avec le mot Ascendant et le mot Descendant.
  • Tri hiérarchique. Semblable au tri. Utilisé pour organiser les enregistrements hiérarchiques. S’il n’est pas spécifié, le compositeur de mise en page génère l’ordre selon l’ordre spécifié dans le paramètre Sort.
  • Traitement des mêmes valeurs de commande. Une chaîne contenant l'un des éléments suivants :
    • « Ensemble » signifie qu'une séquence d'enregistrements ordonnés est utilisée pour déterminer les enregistrements précédents et suivants ;
    • « Séparément » signifie que les enregistrements précédents et suivants sont déterminés en fonction des valeurs des expressions de classement ;
    Par exemple, si la séquence résultante est classée par date :
    1. 01 janvier 2001 Ivanov M. 10
    2. 2 janvier 2001 Petrov S. 20
    3. 2 janvier 2001 Sidorov R. 30
    4. 3 janvier 2001 Petrov S. 40
    Lors de l'utilisation du traitement de valeurs identiques de l'ordre "Séparément", le précédent pour l'enregistrement 3 sera l'enregistrement 2, et lors de l'utilisation de "Ensemble" - l'enregistrement 1. Et le fragment de l'enregistrement actuel pour l'enregistrement 2 pour "Séparément" sera l'enregistrement 2, et pour "Ensemble" - les enregistrements 2 et 3. Ainsi, le total pour l'enregistrement actuel pour "Séparément" sera de 20 et pour "Ensemble" - 50. Lorsque "Ensemble" est spécifié dans les champs Début et Paramètres de fin, vous ne pouvez pas spécifier de décalage pour les positions « Premier », « Dernier », « Précédent », « Suivant ». La valeur par défaut est "Séparé".
Exemple:
Obtention du rapport entre le montant du champ "Sales.AmountTurnover" d'un enregistrement de regroupement et le montant du même champ dans l'ensemble du layout :
Somme(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)", "Total").

Cet exemple calcule la valeur de la hiérarchie actuelle :
Choix
Lorsque Niveau() > 0
Puis EvaluateExpression("Référence", "Hiérarchie")
Sinon nul
Fin

Remarques:
La fonction prend en compte la sélection des regroupements, mais ne prend pas en compte les sélections hiérarchiques. La fonction ne peut pas être appliquée à un regroupement dans la sélection de groupe de ce regroupement. Par exemple, lors de la sélection du regroupement Nomenclature, vous ne pouvez pas utiliser l'expression CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 . Mais une telle expression peut être utilisée en sélection hiérarchique. Si l'enregistrement de fin précède l'enregistrement de début, on considère qu'il n'y a aucun enregistrement pour calculer les données détaillées et calculer les fonctions d'agrégation. Lors du calcul d'expressions d'intervalle pour un total général (le paramètre de regroupement est défini sur « GrossTotal »), il est supposé qu'il n'existe aucun enregistrement pour calculer les données détaillées et calculer les fonctions d'agrégation. Lors de la génération d'une expression pour la fonction CalculateExpression, le compositeur de mise en page, si l'expression de tri contient des champs qui ne peuvent pas être utilisés dans le regroupement, remplace la fonction CalculateExpression par NULL.

3. Évaluer l'expression avec un tableau de groupe (EvalExpression avec un tableau de groupe) - la fonction renvoie un tableau dont chaque élément contient le résultat du calcul d'une expression de regroupement par le champ spécifié.

Syntaxe:
CalculateExpressionWithGroupArray (Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

Possibilités :

  • Expression(Chaîne) - l'expression à évaluer. Par exemple, « Montant (AmountTurnover) » ;
  • Groupes d'expressions de champs
  • Sélection des enregistrements
  • Sélection des groupes- sélection appliquée aux enregistrements de groupe. Par exemple : "Montant (AmountTurnover) > &Paramètre1".
Exemple:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));


Le générateur de mise en page, lors de la génération d'expressions pour afficher un champ personnalisé dont l'expression contient uniquement la fonction CalculateArrayWithGroup, génère l'expression de sortie de telle manière que les données d'affichage et les données soient ordonnées.
Par exemple, pour un champ personnalisé avec l'expression :
CalculateExpressionWithGroupArray("Montant(AmountTurnover)", "Contrepartie")
Le générateur de mise en page générera l'expression suivante pour la sortie :
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. EvalExpressionWithGroupValueTable - la fonction renvoie un tableau de valeurs dont chaque élément contient le résultat du calcul d'une expression de regroupement par le champ spécifié.

Syntaxe:
CalculateExpressionWithGroupValueTable (Expression, Expressions GroupField, Sélection d'enregistrements, Sélection de groupe)

Possibilités :

  • Expression(Chaîne) - l'expression à évaluer. Une ligne peut contenir plusieurs expressions séparées par des virgules. Après chaque expression, il peut y avoir un mot-clé facultatif AS et le nom de la colonne de la table de valeurs. Par exemple : « Contrepartie, montant (AmountTurnover) en tant que volume des ventes ».
  • Groupes d'expressions de champs- des expressions de champs de regroupement, séparées par des virgules. Par exemple, « Contrepartie, Partie » ;
  • Sélection des enregistrements- une expression appliquée aux enregistrements de détail. Par exemple, « Supprimer l'indicateur = Faux ». Si dans ce paramètre une fonction d'agrégation est utilisée, une erreur se produira lors de la composition des données ;
  • Sélection des groupes- sélection appliquée aux enregistrements de groupe. Par exemple : "Montant (AmountTurnover) > &Paramètre1".
Exemple:
CalculateExpressionWithGroupValueTable("Contrepartie AS Contrepartie, Montant(AmountTurnover) ASSalesVolume", "Contrepartie")

Le résultat de cette fonction sera un tableau de valeurs avec des colonnes Contrepartie et Volume des ventes, qui contiendra les contreparties avec leurs volumes de ventes.
Le compositeur de mise en page, lors de la génération d'une mise en page, convertit les paramètres de fonction en termes de champs de mise en page de composition de données. Par exemple, le champ Compte sera converti en DataSet.Account.
Par exemple, un champ personnalisé avec l'expression :
CalculateExpressionWithGroupValueTable("Compte, Montant(AmountTurnover)", "Compte")
Le générateur de mise en page générera l'expression suivante pour la sortie :
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField", "DataSet.Account"), "5, 1, 3" ), "2, 4"))

5. Niveau - la fonction est conçue pour obtenir le niveau d'enregistrement actuel.

Syntaxe:
Niveau()

Exemple:
Niveau()

6. Numéro de séquence - obtenez le prochain numéro de série.

Syntaxe:
NuméroParCommande()

Exemple:
NuméroParCommande()

7. Numéro de séquence dans le groupe - renvoie le numéro de séquence suivant dans le regroupement actuel.

Exemple:
NuméroParCommandeInGroup()

8. Formater - récupère une chaîne formatée de la valeur transmise.

Syntaxe:
Format(Valeur, FormatChaîne)

Possibilités :

  • Signification- l'expression à formater ;
  • Chaîne de format- la chaîne de format est définie conformément à la chaîne de format 1C:Enterprise.
Exemple:
Format (Factures Consommables. Montant Doc, "NPV=2")

9. Début de la période

Syntaxe:
Période de début (Date, Type de période)

Possibilités :

  • date(Date de). Date spécifiée ;
  • Type de période
Exemple:
PériodeDébut(DateHeure(2002, 10, 12, 10, 15, 34), "Mois")
Résultat : 10/01/2002 0:00:00

10. Fin de la période - la fonction est conçue pour sélectionner une date précise à partir d'une date donnée.

Syntaxe:
FinPériode(Date, TypePériode)

Possibilités :

  • date(Date de). Date spécifiée ;
  • Type de période(Doubler). Contient l’une des valeurs suivantes : Minute ; Heure; Jour; Une semaine; Mois; Quart; Année; Décennie; Semestre.
Exemple:
FinPériode(DateHeure(2002, 10, 12, 10, 15, 34), "Semaine")
Résultat : 13/10/2002 23:59:59

11. AddKDate (DateAjouter) - la fonction est conçue pour ajouter une certaine valeur à la date.

Syntaxe:
AddToDate (Expression, IncrementType, Magnitude)

Possibilités :

  • Expression(Date de). Date originale ;
  • TypeGrossissement(Doubler). Contient l’une des valeurs suivantes : Minute ; Heure; Jour; Une semaine; Mois; Quart; Année; Décennie; Semestre.
  • Ordre de grandeur(Nombre). De combien la date doit être augmentée, la partie fractionnaire est ignorée.
Exemple:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Mois", 1)
Résultat : 12/11/2002 10:15:34

12. Différence de date - la fonction est conçue pour obtenir la différence entre deux dates.

Syntaxe:
DateDifférence(Expression1, Expression2, TypeDifférence)

Possibilités :

  • Expression1(Date de). Date soustraite ;
  • Expression2(Date de). Date originale ;
  • TypeDifférence(Doubler). Contient l’une des valeurs : Second ; Minute; Heure; Jour; Mois; Quart; Année.
Exemple:
DATEDIFFÉRENCE(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), "JOUR")
Résultat : 2

13. Sous-chaîne - cette fonction est conçue pour extraire une sous-chaîne d'une chaîne.

Syntaxe:
Sous-chaîne (Chaîne, Position, Longueur)

Possibilités :

  • Doubler(Doubler). La chaîne à partir de laquelle la sous-chaîne est extraite ;
  • Position(Nombre). La position du caractère à partir duquel commence la sous-chaîne à extraire de la chaîne ;
  • Longueur(Nombre). Longueur de la sous-chaîne allouée.
Exemple:
SUBSTRING(Comptes.Adresse, 1, 4)

14. Longueur de chaîne - la fonction est conçue pour déterminer la longueur d'une chaîne.

Syntaxe:
ChaîneLongueur(Chaîne)

Paramètre :

  • Doubler(Doubler). Une chaîne dont la longueur est spécifiée.
Exemple:
Ligne (Contreparties.Adresse)

15. Année- cette fonction est conçue pour extraire l'année d'une valeur de type Date.

Syntaxe:
Année (Date)

Paramètre :

  • date(Date de). La date à laquelle l'année est déterminée.
Exemple:
ANNÉE (Dépense.Date)

16. Trimestre - cette fonction est conçue pour extraire le numéro du trimestre d'une valeur de type Date. Le nombre de quarts varie normalement de 1 à 4.

Syntaxe:
Trimestre (Date)

Paramètre :

  • date(Date de). La date à laquelle le trimestre est déterminé
Exemple:
TRIMESTRE (Dépense.Date)

17. Mois - cette fonction est conçue pour extraire le numéro du mois d'une valeur de type Date. Le numéro du mois varie normalement de 1 à 12.

Syntaxe:
Mois (Date)

Paramètre :

  • date(Date de). La date à laquelle le mois est déterminé.
Exemple:
MOIS(Dépense.Date)

18. Jour de l'année (DayOfYear) - cette fonction est conçue pour obtenir le jour de l'année à partir d'une valeur de type Date. Le jour de l'année varie normalement de 1 à 365 (366).

Syntaxe:
Jour de l'année (Date)

Paramètre :

  • date(Date de). La date à laquelle le jour de l'année est déterminé.
Exemple:
ANNÉEJOUR(DépenseCompte.Date)

19. Jour- cette fonction est conçue pour obtenir le jour du mois à partir d'une valeur de type Date. Le jour du mois va normalement de 1 à 31.

Syntaxe:
Jour(Date)

Paramètre :

  • date(Date de). La date à laquelle le jour du mois est déterminé.
Exemple:
JOUR(Dépense.Date)

20. Semaine - cette fonction est conçue pour obtenir le numéro de semaine de l'année à partir d'une valeur de type Date. Les semaines de l'année sont numérotées à partir de 1.

Syntaxe:
Semaine (Date)

Paramètre :

  • date(Date de). Date à laquelle les numéros de semaine sont déterminés.
Exemple:
SEMAINE(Dépense.Date)

21. Jour de la semaine - cette fonction est conçue pour obtenir le jour de la semaine à partir d'une valeur de type Date. Le jour normal de la semaine va de 1 (lundi) à 7 (dimanche).

Syntaxe:
Jour de la semaine (Date)

Paramètre :

  • date(Date de). La date à laquelle le jour de la semaine est déterminé.
Exemple:
JOUR DE LA SEMAINE (Date de la facture de dépenses)

22. Heure- cette fonction est conçue pour obtenir l'heure du jour à partir d'une valeur de type Date. L'heure du jour varie de 0 à 23.

Syntaxe:
Heure (Date)

Paramètre :

  • date(Date de). La date à laquelle l'heure du jour est déterminée.
Exemple:
HEURE(Dépense.Date)

23. Minutes - cette fonction est destinée à obtenir la minute de l'heure à partir d'une valeur de type Date. Les minutes de l'heure vont de 0 à 59.

Syntaxe:
Minute(Date)

Paramètre :

  • date(Date de). La date à laquelle la minute de l'heure est déterminée.
Exemple:
MINUTE (Dépense.Date)

24. Deuxième - cette fonction est conçue pour obtenir la seconde d'une minute à partir d'une valeur de type Date. La seconde d'une minute va de 0 à 59.

Syntaxe:
Deuxième (Date)

Paramètre :

  • date(Date de). La date à laquelle les secondes de la minute sont déterminées.
Exemple:
DEUXIÈME (Date d'expiration)

25. Casting - cette fonction est conçue pour extraire un type d'une expression pouvant contenir un type composé. Si l'expression contient un type autre que le type requis, NULL sera renvoyé.

Syntaxe:
Express(Expression, TypeIndication)

Possibilités :

  • Expression- l'expression à convertir ;
  • Type Indication(Doubler). Contient une chaîne de type. Par exemple, "Nombre", "Chaîne", etc. En plus des types primitifs, cette ligne peut contenir le nom de la table. Dans ce cas, une tentative sera faite pour exprimer une référence au tableau spécifié.
Exemple:
Express(Data.Props1, "Nombre(10,3)")

26. EstNull (EstNull) - cette fonction renvoie la valeur du deuxième paramètre si la valeur du premier paramètre est NULL. Sinon, la valeur du premier paramètre sera renvoyée.

Syntaxe:
EstNull(Expression1, Expression2)

Possibilités :

  • Expression1- valeur à vérifier ;
  • Expression2- valeur de retour si Expression1 est NULL.
Exemple:
OuiNULL(Montant(Sales.AmountTurnover), 0)

27.ACos- calcule l'arc cosinus en radians.

Syntaxe:
ACos(Expression)

Paramètre :

  • Expression(Nombre). La valeur du cosinus (dans la plage -1 ... 1) par laquelle l'angle est déterminé.
28.ASin- calcule l'arc sinus en radians.

Syntaxe:
ASin(Expression)

Paramètre :

  • Expression(Nombre). La valeur sinusoïdale (dans la plage -1 ... 1) par laquelle l'angle est déterminé.
29.ATan- calcule l'arctangente en radians.

Syntaxe:
ATan(Expression)

Paramètre :

  • Expression(Nombre). La valeur de la tangente par laquelle l'angle est déterminé.
30.Cos- calcule le cosinus.

Syntaxe:
Cos(Expression)

Paramètre :

  • Expression
31. Expérience- élever le nombre e à une puissance.

Syntaxe:
Exp(Expression)

Paramètre :

  • Expression(Nombre). La signification du diplôme.
32.Journal- calcule le logarithme népérien.

Syntaxe:
Journal (expression)

Paramètre :

  • Expression
33.Journal10- calcule le logarithme de X en base 10.

Syntaxe:
Journal10 (expression)

Paramètre :

  • Expression(Nombre). Le nombre d'origine est supérieur à 0.
34. Pouvoir- exponentiation.

Syntaxe:
Puissance (base, indicateur)

Possibilités :

  • Base(Nombre). La base de l'opération d'exponentiation.
  • Indice(Nombre). Exposant.
35. Péché- calcule le sinus.

Syntaxe:
Péché (expression)

Paramètre :

  • Expression(Nombre). Spécifié en radians.
36. SQL- calcule la racine carrée.

Syntaxe:
SQL (expression)

Paramètre :

  • Expression(Nombre). Nombre non négatif.
37. bronzage- calcule la tangente.

Syntaxe:
Bronzage (expression)

Paramètre :

  • Expression(Nombre). La valeur sinusoïdale par laquelle l'angle est déterminé.
38. Rond- arrondit le nombre d'origine à la profondeur de bits requise. Le mode d'arrondi est standard (1,5 comme 2).

Syntaxe:
Env (Expression, Profondeur de bits)

Possibilités :

  • Expression(Nombre). Numéro d'origine ;
  • Peu profond(Nombre). Le nombre de décimales à arrondir.
39. Int- coupe partie fractionnaire Nombres.

Syntaxe:
Objet (Expression)

Paramètre :

  • Expression(Nombre). Un nombre fractionnaire.
40. Fonctions des modules communs

Une expression de moteur de composition de données peut contenir des appels à des fonctions de modules de configuration communs globaux. Aucune syntaxe supplémentaire n'est requise pour appeler de telles fonctions.

Exemple:
Nom abrégé (Documents.Link, Documents.Date, Documents.Number)

Dans cet exemple, la fonction "AbbreviatedName" sera appelée depuis le module de configuration générale.
Notez que l'utilisation de fonctions de module communes n'est autorisée que si le paramètre approprié du processeur de composition de données est spécifié.
De plus, les fonctions des modules communs ne peuvent pas être utilisées dans les expressions de champs personnalisés.

41. Ressentiment - cette fonction renvoie une représentation sous forme de chaîne de la valeur transmise d'un type non primitif. Pour les valeurs de type primitif, renvoie la valeur elle-même.

<Пустое значение>".

Exemple:
Présentation (Contrepartie)

42. Chaîne - cette fonction convertit la valeur transmise en chaîne.

Si un tableau ou une table de valeurs est utilisé comme paramètre, la fonction renvoie une chaîne contenant une représentation sous forme de chaîne de tous les éléments du tableau, séparés par les caractères "; ". Si un élément a une représentation sous forme de chaîne vide, alors la chaîne "<Пустое значение>".

Exemple:
Ligne (Date de vente)

43. ValueImpled

Pour les valeurs NULL, Undefined renvoie toujours False.
Pour les valeurs booléennes, elle renvoie toujours True.
Pour les autres types, renvoie True si la valeur diffère de la valeur par défaut pour le type donné.

Exemple:
ValueFilled (Date de livraison)

44. NiveauDansGroupe - cette fonction obtient le niveau d'enregistrement actuel par rapport au regroupement.

Peut être utilisé pour obtenir le niveau d'imbrication d'un enregistrement dans un regroupement hiérarchique.

Exemple:
NiveauDansGroupe()

45. Type de valeur

Syntaxe:
Type de valeur (Expression)

Paramètre :

  • Expression(Doubler). Type de valeur de chaîne.
Renvoie une valeur de type Type contenant le type de valeur du paramètre de fonction.
mob_info