Maison / Leçons Windows / Champs calculés dans l'exemple SKD 1s 8.3. Langage d'expression du système de composition de données (1Cv8). Qu'est-ce qu'un champ calculé

Champs calculés dans l'exemple SKD 1s 8.3. Langage d'expression du système de composition de données (1Cv8). Qu'est-ce qu'un champ calculé

1. Calculer (Évaluer)- est destiné à évaluer une expression dans le contexte d'un certain regroupement. Cette fonction est utilisée pour la compatibilité avec Versions précédentes plates-formes. 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 par quel enregistrement doit commencer le fragment dans lequel le calcul doit être effectué. fonctions d'agrégation expressions et à partir de quel enregistrement obtenir les valeurs de champ en dehors des fonctions d'agrégation. 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 à entrée actuelle groupes. 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'entrée de regroupement actuelle. 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)), on obtient alors un enregistrement avec la date 02/01. 2010.
  • 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.
  • Gestion de l'ordre des mêmes valeurs. 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 de regroupement- sélection appliquée aux enregistrements de groupe. Par exemple : "Montant (AmountTurnover) > &Paramètre1".
Exemple:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));


Compositeur de mise en page lors de la génération d'expressions pour la sortie champ personnalisé, dans l'expression de laquelle seule la fonction CalculateArrayWithGrouping est présente, génère une expression de sortie de telle manière que les données affichées et les données soient ordonnées.
Par exemple, pour un champ personnalisé avec une expression :
Calculer l'expression avec GroupingArray("Amount(AmountTurnover)", "Counterparty")
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(String) - 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 : « Entrepreneur, Montant (AmountTurnover) As SalesVolume ».
  • Groupes d'expressions de champs- regroupement d'expressions de champs 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, « Indicateur de suppression = 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 de regroupement- sélection appliquée aux enregistrements de groupe. Par exemple : "Montant (AmountTurnover) > &Paramètre1".
Exemple:
Calculer l'expression avec le tableau de regroupement des valeurs ("Compte AS Contrepartie, Montant (Montant Chiffre d'affaires) AS Volume des ventes", "Compte")

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 (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 à formater la chaîne 1C : Entreprise.
Exemple:
Format(Factures.Doc Montant, "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 période - la fonction est conçue pour extraire une date précise 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, Valeur)

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). La longueur de la sous-chaîne sélectionnée.
Exemple:
SUBSTRING(Comptes.Adresse, 1, 4)

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

Syntaxe:
ChaîneLongueur(Chaîne)

Paramètre :

  • Doubler(Doubler). Chaîne dont la longueur est en cours de détermination.
Exemple:
Chaîne (Comptes. 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 (Date Inc.)

16. Trimestre (Quartier) - 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 (Facture.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 (Dépense.Date)

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 conçue pour obtenir la minute de l'heure à partir d'une valeur de type Date. Les minutes de l'heure vont de 0 à 59.

Syntaxe:
Minutes (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(Dépense.Date)

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- expression à convertir ;
  • Type Indication(Doubler). Contient une chaîne de type. Par exemple, "Nombre", "Chaîne", etc. Outre les types primitifs ligne donnée 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- la valeur de retour si la valeur de Expression1 est NULL.
Exemple:
IsNULL(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) qui détermine l'angle.
28.ASin- calcule l'arc sinus en radians.

Syntaxe:
ASin(Expression)

Paramètre :

  • Expression(Nombre). La valeur sinusoïdale (dans la plage -1 ... 1) qui détermine l'angle.
29.ATan- calcule l'arc tangent 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 du sinus par laquelle l'angle est déterminé.
38. Rond- arrondit le nombre d'origine à la profondeur de bits souhaitée. Le mode d'arrondi est standard (1,5 équivaut à 2).

Syntaxe:
Env (Expression, Profondeur de bits)

Possibilités :

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

Syntaxe:
Int(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 module commun configurations.
Notez que l'utilisation des fonctions communes du module 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.

À 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, dans la sélection du groupe 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 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.

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.

Possibilités

<Выражение>

Type : chaîne. L'expression à évaluer.

<Группировка>

Type : chaîne. 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)/Calculate("Somme(Sales.SumTurnover)", "Total")

Dans cet exemple, le résultat sera le rapport entre le montant du champ Sales.SumTurnover de l'enregistrement de regroupement et le montant du même champ dans l'ensemble de la mise en page ;

<ОбластьВычисления>

Type : chaîne. Le paramètre peut prendre les valeurs suivantes :

  • GeneralTotal : 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 actuel.
  • Regroupement hors ressource - lors du calcul d'une fonction pour un enregistrement de groupe par ressource, l'expression sera évaluée pour le premier enregistrement de groupe du regroupement d'origine.

Lors du calcul d'une fonction CalculerExpression() avec la valeur Regroupement sans ressources pour les enregistrements de groupe qui ne sont pas des regroupements de 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 de 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 du 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 Non-Regroupement de ressources. Pour les autres ressources, les expressions de ressources habituelles sont placées dans le groupe de ressources.

<Начало>

Type : chaîne. 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 :

<Конец>

Type : chaîne. 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. 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 le 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. 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'entrée de regroupement actuelle. 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 enregistrements et que Next() est reçu pour le troisième enregistrement, alors on considère qu'il n'y a aucun enregistrement.

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 LimitingValues ​​​​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)), on obtient alors un enregistrement avec la date 02/01. 2010.

<Сортировка>

Type : chaîne. 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 les mots-clés Ascending (pour trier par ordre croissant), Descending (pour trier par ordre décroissant) et AutoOrder (pour trier les champs de référence en fonction des champs selon 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.

<ИерархическаяСортировка>

Type : chaîne. Identique à l’option Trier. 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.

<ОбработкаОдинаковыхЗначенийПорядка>

Type : chaîne. Spécifie la règle permettant de déterminer l'enregistrement précédent ou suivant dans le cas où il existe plusieurs enregistrements avec la même valeur commande :

  • Séparément signifie 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 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 :

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

Si la valeur du paramètre est Séparément, alors :

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

§ si le fragment de calcul est défini comme Current, Current (respectivement les paramètres Start et End), alors pour l'enregistrement 2 ce fragment sera constitué d'un enregistrement 2. L'expression CalculateExpression(“Sum (Value)”, Current, Current) sera être égal à 20.

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

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

§ si le fragment de calcul est défini comme Current, Current (respectivement les paramètres Start et End), alors pour l'enregistrement 2 ce fragment sera constitué des enregistrements 2 et 3. L'expression CalculateExpression(« Somme (Valeur) », Current, Current) sera égal à 50.

Lorsque vous spécifiez une valeur de paramètre égale à Together, dans les paramètres Début et Fin, vous ne pouvez pas spécifier de décalage pour les positions Premier, Dernier, Précédent et Suivant.

CalculateExpression("Sum(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 autre que la valeur par défaut de ce type, autre que NULL, autre qu'une référence vide, autre qu'Indéfini. Les valeurs booléennes sont vérifiées pour NULL. Les chaînes sont vérifiées pour l'absence de caractères autres que des espaces

Format(<Выражение>, <Форматная строка>) – Recevez 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 destiné à 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. Paramètre - 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 les caractères « ; « . Si une table de valeurs est passée en paramètre, la fonction renvoie une chaîne contenant les 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 les caractères « ; ", et les lignes sont un symbole de saut de ligne. Si un élément a une représentation sous forme de chaîne vide, alors la chaîne est affichée à la place de sa représentation<Пустое значение>.

À 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 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 du 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'entrée de regroupement actuelle. 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 Organisation automatique(pour classer les champs de référence selon les champs selon lesquels vous souhaitez classer l'objet référencé). Mot Organisation automatique peut être utilisé comme avec le mot Âge, et 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)", Courant, Courant) 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 un 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 autre que la valeur par défaut de ce type, autre que NULL, autre qu'une référence vide, autre qu'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.

Langage d'expression du système de composition de données

Le langage d'expression du système de composition de données est conçu pour écrire des expressions utilisées dans diverses parties du système.

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

  • diagramme de présentation des données - pour décrire les champs calculés, les champs totaux, les expressions de connexion, etc. ;
  • paramètres de présentation des données - pour décrire les expressions de champs personnalisés ;
  • disposition de mise en page des données - pour décrire les expressions permettant de connecter des ensembles de données, de décrire les paramètres de mise en page, etc.

Littéraux

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

  • Doubler;
  • Nombre;
  • Date de;
  • Booléen.

Doubler

Une chaîne littérale est écrite en caractères « », par exemple :

« Chaîne littérale »

Si vous devez utiliser le caractère « » dans une chaîne littérale, vous devez utiliser deux de ces caractères.

Par exemple:

« Littéral « « entre guillemets » « »

Nombre

Le nombre est écrit sans espaces, au format décimal. Fraction séparés par le caractère "." Par exemple:

10.5 200

date

Un littéral de date est écrit en utilisant le littéral clé DATETIME. Après ça mot-clé, entre parenthèses, séparés par des virgules, sont indiqués l'année, le mois, le jour, les heures, les minutes et les secondes. La spécification du temps n’est pas requise.

Par exemple:

DATETIME(1975, 1, 06) – 6 janvier 1975 DATETIME(2006, 12, 2, 23, 56, 57) – 2 décembre 2006, 23 heures 56 minutes 57 secondes, 23 heures 56 minutes 57 secondes

Booléen

Les valeurs booléennes peuvent être écrites en utilisant les littéraux True (True), False (False).

Signification

Pour spécifier des littéraux d'autres types (énumérations système, données prédéfinies), le mot-clé Value est utilisé, suivi du nom du littéral entre parenthèses.

Valeur (Type de compte. Actif)

Opérations sur les nombres

Unaire –

Cette opération a pour but de changer le signe d'un nombre en signe opposé. Par exemple:

Ventes.Quantité

Unaire +

Cette opération n'effectue aucune action sur le numéro. Par exemple:

Ventes.Quantité

Binaire -

Cette opération vise à calculer la différence de deux nombres. Par exemple:

Résiduels et chiffres d'affaires.InitialRemaining – Restes et chiffres d'affaires.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357

Binaire +

Cette opération vise à calculer la somme de deux nombres. Par exemple:

RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Chiffre d'affaires RésidusAndTurnover.InitialRemaining + 100 400 + 357

Travail

Cette opération vise à calculer le produit de deux nombres. Par exemple:

Nomenclature.Prix * 1,2 2 * 3,14

Division

Cette opération vise à obtenir le résultat de la division d'un opérande par un autre. Par exemple:

Nomenclature.Prix / 1,2 2 / 3,14

Reste de la division

Cette opération a pour but d'obtenir le reste lorsqu'un opérande est divisé par un autre. Par exemple:

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 chaînes. Par exemple:

Nomenclature.Article + « : »+ Nomenclature.Nom

Comme

Cette opération vérifie si la chaîne correspond au modèle transmis.

La valeur de l'opérateur LIKE est VRAI si la valeur<Выражения>satisfait le modèle, et FALSE sinon.

Les personnages suivants dans<Строке_шаблона>avoir une signification différente de celle d'un simple autre caractère dans la ligne :

  • % - pourcentage : une séquence contenant zéro ou plusieurs caractères arbitraires ;
  • _ - soulignement : un caractère arbitraire;
  • […] - un ou plusieurs caractères entre crochets : un caractère, l'un de ceux énumérés entre crochets. L'énumération peut contenir des plages, par exemple a-z, signifiant un caractère arbitraire inclus dans la plage, y compris les extrémités de la plage ;
  • [^...] - entre crochets une icône de négation suivie d'un ou plusieurs caractères : tout caractère sauf ceux listés après l'icône de négation ;

Tout autre symbole signifie lui-même et n'entraîne aucune charge supplémentaire. Si l'un des caractères répertoriés doit être écrit tel quel, il doit alors être précédé de<Спецсимвол>, spécifié après le mot clé SPECIAL CHARACTER (ESCAPE).

Par exemple, modèle

"%ABV[abvg]\_abv%" CARACTÈRE SPÉCIAL "\"

désigne une sous-chaîne constituée d'une séquence de caractères : la lettre A ; lettres B; lettres B; Un chiffre; une des lettres a, b, c ou d ; souligner; lettres a; lettres b; lettres v. De plus, cette séquence peut être repérée à partir d'une position arbitraire dans la ligne.

Opérations de comparaison

Équivaut à

Cette opération est destinée à comparer deux opérandes pour l'égalité. Par exemple:

Sales.Counterparty = Sales.NomenclatureMainSupplier

Inégal

Cette opération vise à comparer deux opérandes d’inégalité. Par exemple:

Ventes.Contrepartie<>Sales.NomenclatureMainSupplier

Moins

Cette opération a pour but de vérifier que le premier opérande est inférieur au second. Par exemple:

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

Plus

Cette opération a pour but de vérifier que le premier opérande est supérieur au second. Par exemple:

VentesCurrent.Sum > VentesPast.Sum

Inférieur ou égal

Cette opération a pour but de vérifier que le premier opérande est inférieur ou égal au second. Par exemple:

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

Plus ou égal

Cette opération a pour but de vérifier que le premier opérande est supérieur ou égal au second. Par exemple:

SalesCurrent.Amount >= SalesPast.Amount

Opération B

Cette opération vérifie la présence d'une valeur dans la liste de valeurs transmise. Le résultat de l'opération sera True si la valeur est trouvée, ou False sinon. Par exemple:

Article B (&Produit1, &Produit2)

Opération de vérification de la présence d'une valeur dans un ensemble de données

L'opération vérifie la présence d'une valeur dans l'ensemble de données spécifié. L'ensemble de données de validation doit contenir un champ. Par exemple:

Ventes. Contrepartie aux contreparties

Opération de vérification d'une valeur pour NULL

Cette opération renvoie True si la valeur est NULL. Par exemple:

Sales.Counterparty EST NULL

Opération de vérification d'une valeur pour l'inégalité NULL

Cette opération renvoie True si la valeur n'est pas NULL. Par exemple:

Ventes. La contrepartie n'est pas nulle

Opérations logiques

Les opérations logiques acceptent comme opérandes des expressions de type booléen.

Opération NON

L'opérateur NOT renvoie True si son opérande est False et renvoie False si son opérande est True. Par exemple:

PAS Document.Consignee = Document.Expéditeur

Opération I

L'opération AND renvoie True si les deux opérandes sont True et renvoie False si l'un des opérandes est False. Par exemple:

Document.Consignee = Document.Consignor ET Document.Consignee = &Contractor

Opération OU

L'opération OR renvoie True si l'un des opérandes est True et False si les deux opérandes sont False. Par exemple:

Document.Consignee = Document.Consignor OU Document.Consignee = &Contractor

Fonctions d'agrégation

Les fonctions d'agrégation effectuent une action sur un ensemble de données.

Somme

La fonction d'agrégation Somme calcule la somme des valeurs des expressions qui lui sont transmises comme argument pour tous les enregistrements détaillés. Par exemple:

Montant (Sales.AmountTurnover)

Quantité

La fonction Count calcule le nombre de valeurs autres que NULL. Par exemple:

Quantité (Ventes. Contrepartie)

Nombre de différents

Cette fonction calcule le nombre de valeurs distinctes. Par exemple:

Quantité (Diverses ventes. Contrepartie)

Maximum

La fonction obtient la valeur maximale. Par exemple:

Maximum (quantité restante)

Le minimum

La fonction obtient valeur minimum. Par exemple:

Minimum (quantité restante)

Moyenne

La fonction obtient la moyenne des valeurs non NULL. Par exemple:

Moyenne (quantité restante)

Autres opérations

Opération SELECT

L'opération Select est conçue pour sélectionner l'une parmi plusieurs valeurs sous certaines conditions. Par exemple:

Sélectionnez Quand Montant > 1000 Puis Montant Sinon 0 Fin

Règles pour comparer deux valeurs

Si les types des valeurs comparées diffèrent les uns des autres, alors la relation entre les valeurs est déterminée en fonction de la priorité des types :

  • NULL (le plus bas) ;
  • booléen ;
  • Nombre;
  • Date de;
  • Doubler;
  • Types de référence

Les relations entre les différents types de référence sont déterminées en fonction des numéros de référence des tables correspondant à un type particulier.

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

  • pour le type booléen la valeur TRUE est supérieure à la valeur FALSE ;
  • le type Nombre a les règles de comparaison habituelles pour les nombres ;
  • pour le type Date, les dates antérieures sont plus petites que les dates ultérieures ;
  • pour le type String - comparaisons de chaînes conformément aux caractéristiques nationales établies de la base de données ;
  • les types de référence sont comparés en fonction de leurs valeurs (numéro d'enregistrement, etc.).

Travailler avec une valeur NULL

Toute opération dans laquelle la valeur de l'un des opérandes est NULL produira un résultat NULL.

Il y a des exceptions :

  • l'opération AND ne renverra NULL que si aucun des opérandes n'est False ;
  • L'opération OR ne renverra NULL que si aucun de ses opérandes n'est vrai.

Priorités opérationnelles

Les opérations ont les priorités suivantes (la première ligne a la priorité la plus basse) :

  • B, EST NULL, N'EST PAS NULL ;
  • =, <>, <=, <, >=, >;
  • Binaire +, Binaire – ;
  • *, /, %;
  • Unaire +, Unaire -.

Fonctions du langage d'expression du système de composition de données

Calculer

La fonction Calculer est conçue pour calculer une expression dans le contexte d'un certain regroupement. La fonction a les paramètres suivants :

  • Expression. Tapez Chaîne. Contient une expression calculée ;
  • Regroupement. Tapez Chaîne. 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.

Niveau

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

Niveau()

NuméroDansOrdre

Obtenez le numéro de séquence suivant.

NuméroParCommande()

NuméroDansOrdreDansGroupe

Renvoie le numéro ordinal suivant dans le regroupement actuel.

NuméroParCommandeInGroup()

Format

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

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

Possibilités :

  • Signification;
  • Formater la chaîne.

Format(Factures.Doc Montant, "NPV=2")

Début de période

Possibilités :

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

PériodeDébut(DateHeure(2002, 10, 12, 10, 15, 34), "Mois")

Résultat:

01.10.2002 0:00:00

Fin de période

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

Possibilités :

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

FinPériode(DateHeure(2002, 10, 12, 10, 15, 34), "Semaine")

Résultat:

13.10.2002 23:59:59

AjouterDate

La fonction est conçue pour ajouter une certaine valeur à une date.

Possibilités :

  • Type de grossissement. Tapez Chaîne. Contient l'une des valeurs suivantes :
    • Minute;
    • Jour;
    • Une semaine;
    • Mois;
    • Quart;
    • Décennie;
    • Semestre.
  • Montant – de combien vous devez augmenter la date. Tapez le numéro. La partie fractionnaire est ignorée.

AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Mois", 1)

Résultat:

12.11.2002 10:15:34

Différence de dates

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

Possibilités :

  • Expression. Tapez Date. Date originale ;
  • Expression. Tapez Date. Date soustraite ;
  • Type de différence. Tapez Chaîne. Contient l'une des valeurs suivantes :
    • Deuxième;
    • Minute;
    • Jour;
    • Mois;
    • Quart;

DATEDIFFÉRENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), "JOUR")

Résultat:

Sous-chaîne

Cette fonction est conçue pour sélectionner une sous-chaîne dans une chaîne.

Possibilités :

  • Doubler. Tapez Chaîne. La chaîne à partir de laquelle la sous-chaîne est extraite ;
  • Position. Tapez le numéro. La position du caractère à partir duquel commence la sous-chaîne à extraire de la chaîne ;
  • Longueur. Tapez le numéro. La longueur de la sous-chaîne sélectionnée.

SUBSTRING(Comptes.Adresse, 1, 4)

Longueur de la ligne

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

Paramètre:

  • Doubler. Tapez Chaîne. Chaîne dont la longueur est en cours de détermination.

Chaîne (Comptes. Adresse)

Année

Cette fonction est conçue pour extraire l'année d'une valeur de type Date.

Paramètre:

  • Date de. Tapez Date. La date à laquelle l'année est déterminée.

ANNÉE (Date Inc.)

Quart

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.

Paramètre

  • Date de. Tapez Date. La date à laquelle le trimestre est déterminé
TRIMESTRE (Facture.Date)

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.

  • Date de. Tapez Date. La date à laquelle le mois est déterminé.
MOIS(Facture.Date)

Jour de l'année

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

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

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.

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

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

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

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

  • Date de. Tapez Date. La date à laquelle le jour de la semaine est déterminé.
JOUR DE LA SEMAINE (Dépense.Date)

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.

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

Minute

Cette fonction est conçue pour obtenir la minute de l'heure à partir d'une valeur de type Date. Les minutes de l'heure vont de 0 à 59.

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

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.

  • Date de. Tapez Date. La date à laquelle les secondes de la minute sont déterminées.
DEUXIÈME(Dépense.Date)

Exprimer

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

Possibilités :

  • Expression à convertir ;
  • Indication du type. Tapez Chaîne. 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é.

Express(Data.Props1, "Nombre(10,3)")

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.

IsNULL(Montant(Sales.AmountTurnover), 0)

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.

Dans cet exemple, la fonction "AbbreviatedName" sera appelée depuis le module de configuration générale.

Notez que l'utilisation des fonctions communes du module 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.

La bonne utilisation d'un schéma de composition de données (DCS) permet de :

  • réduire considérablement le temps requis pour élaborer un rapport ;
  • se débarrasser du besoin de créer forme contrôlée processeur;
  • obtenez un beau résultat avec possibilité de personnalisation supplémentaire par l'utilisateur.

Mais tous les développeurs ne tirent pas le meilleur parti des capacités du système, car tous ses paramètres ne sont pas évidents et intuitifs. En particulier, beaucoup de gens savent qu'il existe des champs calculés dans 1C dans ACS, cependant, ils ne comprennent pas complètement le domaine de leur utilisation et les méthodes pour travailler avec eux.

Qu'est-ce qu'un champ calculé

Dans la plupart des cas, la source de données dans le diagramme de présentation est une requête. En principe, dans la requête elle-même, vous pouvez déjà utiliser diverses formules, constructions et expressions. Une question naturelle se pose : pourquoi avons-nous besoin de fonctionnalités dupliquées ?

Le fait est que le système de contrôle d'accès est bien plus que simplement afficher le résultat d'une requête, et cela est clairement visible sur le formulaire de création de diagramme (Fig. 1).

Les champs calculés vous permettent d'effectuer certaines actions avec l'ensemble de données généré :

  • Génère un tableau de données reçues par une requête dans une cellule spécifique, combinant plusieurs lignes en une seule ;
  • Accéder aux fonctions d'export du module général ;
  • Exécutez les différentes expressions disponibles pour le langage de mise en page et utilisez les fonctions spéciales EvaluateExpression.

Passons en revue cette liste.

Tableau de valeurs dans une cellule

Simulons une situation où il est nécessaire de recevoir tous les numéros de documents de réception pour une contrepartie dans une cellule séparée :


Ainsi, nous avons créé un champ de calcul supplémentaire dans notre schéma ;


Comme vous pouvez le voir dans l'exemple ci-dessus, il n'y a aucune difficulté à ajouter et à traiter des champs calculés. Nous avons utilisé deux fonctions : Array() et ConnectRows().

Quelques mots sur ce dernier. En plus du premier paramètre indiquant l'identifiant du tableau, des valeurs ou une valeur, deux autres peuvent y être définis :

  1. Séparateur d'éléments – indique quel caractère séparera un élément du tableau ou une ligne d'un tableau de valeurs d'un autre (dans notre cas, nous avons omis ce paramètre et un saut de ligne a été attribué par défaut) ;
  2. Séparateur de colonnes – un caractère utilisé pour séparer les colonnes d'un tableau de valeurs (le point-virgule est utilisé par défaut).

Accéder aux fonctions d'export d'un module commun

Les fonctions d'un module commun peuvent servir de source de données pour remplir un champ calculé.

Quelques points importants :

  • La fonction doit être exportable ;
  • Si une fonction se trouve dans un module commun avec l'attribut « Global », elle est appelée directement par son nom, sinon la fonction doit être appelée selon le schéma « Nom du module partagé ». "Nom de la fonction à appeler."

A titre d'exemple d'utilisation, nous prendrons la même demande de justificatifs de réception et l'afficherons dans une colonne séparée. Nous ne décrirons pas la requête elle-même ; passons directement aux champs calculés :


Ainsi, nous voyons que presque n'importe quel processeur de données peut être initialisé à partir du système de contrôle d'accès, ce qui élargit considérablement les possibilités d'utilisation du système.

Expressions du langage de mise en page

Très souvent, dans le travail d'un développeur, une situation se présente lorsqu'il est nécessaire d'afficher le résultat de la division dans le champ ACS :

  1. Calculer le coût moyen de l'article ;
  2. Toutes sortes d'intérêts ;
  3. Calculs des gains moyens, etc.

Pour éviter des problèmes, il est conseillé dans ces cas de saisir un test de division par 0 dans le champ calculé.

Cela peut être fait en utilisant la construction « Choix Quand…. Alors… Sinon… Fin ».

À la fin, quelques mots suffisent nouvelle fonctionnalité Calculer l'expression(). Avec son aide, vous pouvez notamment calculer les écarts de coût entre les lignes actuelles et précédentes, le solde cumulé, etc.

Disons que vous pouvez obtenir la somme du document à partir de la ligne précédente de notre demande en spécifiant la valeur Calculer l'expression ("Somme du document", "Somme précédente") dans le champ "Expression".