1c demande une condition pour une chaîne vide. D'où viennent-ils

Qu'entend-on par une ligne en 1c

Chaînes en 1c, comment distinguer une chaîne des autres types, après tout, dans le module tous les caractères sont du texte, et donc une chaîne. Chaque ensemble contigu de caractères entouré de guillemets ("") est considéré comme une chaîne, par défaut dans le configurateur il est noir.

Rapport ("Bonjour, monde!");

Il convient également de se rappeler que certaines méthodes, à la fois système et auto-écrites, peuvent renvoyer une valeur de chaîne.

Pour savoir si la valeur qui nous intéresse est une chaîne, nous pouvons comparer son type avec le type " Ligne":

If TypeZnch ("Some text") = Type ("String") Then Report ("Type de valeur - String"); Fin si;

Il existe plusieurs fonctions spéciales pour travailler avec des chaînes qui convertissent d'autres types en chaînes et vice versa. Voici quelques exemples:

Chaîne en nombre

Numéro ("123,45");

Numéro ("123,45");

Si le paramètre contient des caractères non valides, tels que des lettres, cela provoquera une erreur.

Chaîne à ce jour

Date ("20101220235959");

L'heure est facultative (6 derniers caractères).

Recherche d'une chaîne vide

EmptyString () - cette fonction vérifie si la chaîne passée contient des caractères significatifs (les caractères non significatifs sont pour la plupart invisibles à l'écran : espace, saut de ligne, etc.)

Ligne vide(" ");
Chaîne vide ("a");

Nombre à chaîne

Chaîne (123,45); Format (1253.25) ;

Pour comparer des chaînes, vous pouvez simplement utiliser le signe égal

Si "Jeudi" = "Jeudi" Alors
Fin si;

Le signe plus (+) est utilisé pour concaténer des chaînes. La concaténation de chaînes dans la programmation est appelée concaténation.

Rusé! Si plusieurs variables de types différents sont ajoutées, le programme prendra comme base le type de la première variable. Par conséquent, pour obtenir la valeur exacte d'un type de chaîne, vous pouvez utiliser la notation suivante :

WhatToString = "" + YearDay (CurrentDate ()) + DayWeek (CurrentDate ());

Si vous obtenez le résultat de la liste précédente, la vue ressemblera à ceci :

Comme vous pouvez le voir, il n'y a pas assez d'espace séparant le jour de l'année et le jour de la semaine, pour cela vous pouvez ajouter un espace ("") comme suit :

WhatToString = "" + Jour de l'année (CurrentDate ()) + "" + Jour de la semaine (CurrentDate ());

Saut de ligne

Pour rompre une ligne, vous pouvez utiliser soit un caractère de saut de ligne :

WhatToString = "" + Jour de l'année (CurrentDate ()) + Symbols.PS + DayWeek (CurrentDate ());

ou une ligne droite

WhatToString = "" + Jour de l'année (CurrentDate ()) + "|" + Jour de la semaine (CurrentDate ());

Une chaîne est l'un des types de données primitifs dans 1C : Enterprise 8. Variables avec le type ligne contenir du texte.

Valeurs des variables de type ligne sont entourés de guillemets doubles. Plusieurs variables de ce type peuvent être ajoutées.

Per1 = "Mot 1" ;
Per2 = "Mot 2" ;
Per3 = Per1 + "" + Per2 ;

Finalement Per3 signifiera " Mot 1 Mot 2 .

De plus, les systèmes 1C: Enterprise 8 fournissent des fonctions pour travailler avec des chaînes. Considérons les principaux :

Entrez la chaîne (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — la fonction est destinée à afficher une boîte de dialogue dans laquelle l'utilisateur peut spécifier une valeur type de variable Ligne... Paramètre <Строка> est obligatoire et contient le nom de la variable dans laquelle la chaîne saisie sera écrite. Paramètre <Подсказка> optionnel est le titre de la boîte de dialogue. Paramètre <Длина> facultatif, indique la longueur maximale de la chaîne d'entrée. La valeur par défaut est zéro, ce qui signifie une longueur illimitée. Paramètre <Многострочность> optionnel. Détermine le mode de saisie pour le texte multiligne : True - saisie de texte multiligne avec des séparateurs de ligne ; False - entrée d'une chaîne simple.

La chaîne peut être saisie et dotée du code de caractère Unicode :

Symbole(<КодСимвола>) — le code est entré sous forme de nombre.

Lettre = Symbole (1103); // JE SUIS

Il existe également une fonction inverse qui permet de connaître le code d'un caractère.

SymboleCode (<Строка>, <НомерСимвола>) — renvoie le numéro de caractère Unicode spécifié sous forme de nombre.

Fonctions de conversion de casse :

BReg (<Строка>) - convertit tous les caractères d'une chaîne en majuscule.

HPreg (<Строка>) - convertit tous les caractères de la chaîne en minuscules.

Treg (<Строка>) - convertit tous les caractères d'une chaîne en majuscules. C'est-à-dire que les premières lettres de tous les mots sont converties en majuscules et le reste des lettres est converti en minuscules.

Fonctions de recherche et de remplacement de caractères dans une chaîne :

Trouve(<Строка>, <ПодстрокаПоиска>) - recherche le numéro de caractère de l'occurrence de la sous-chaîne de recherche. Par exemple:

Trouver ("Chaîne", "Oka"); // 4

Trouve (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - recherche le numéro de caractère de l'occurrence de la sous-chaîne de recherche, le numéro d'occurrence est indiqué dans le paramètre correspondant. Dans ce cas, la recherche commence par un caractère dont le numéro est précisé dans le paramètre Position initiale. La recherche est possible à partir du début ou de la fin de la chaîne. Par exemple:

Nombre4 Occurrences = StrFind ( « Capacité de défense », "o", Direction de la recherche. Depuis le début, 1, 4); // 7

PageRemplacer (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - trouve toutes les occurrences de la sous-chaîne de recherche dans la chaîne d'origine et la remplace par la sous-chaîne de remplacement.

StrReplace ("Chaîne", "Oka", ""); // Page

Ligne vide(<Строка>) - vérifie la chaîne pour les caractères significatifs. S'il n'y a pas de caractères significatifs, ou pas de caractères du tout, la valeur est renvoyée Vrai... Autrement - Mentir.

StrNombre d'occurrences (<Строка>, <ПодстрокаПоиска>) - calcule le nombre d'occurrences de la sous-chaîne de recherche dans la chaîne d'origine.

StrNombre d'occurrences ( "Étudiez, étudiez et étudiez encore", "étudier" , "" ) ; // 3

Modèle de page (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — remplace les paramètres dans la chaîne par un nombre. La ligne doit contenir des marqueurs de substitution de la forme : "% 1 ..% N". Les marqueurs sont numérotés à partir de 1. Si la valeur du paramètre Indéfini, une chaîne vide est substituée.

Modèle de page ( "Paramètre 1 =% 1, Paramètre 2 =% 2", "1" , "2" ) ; // Paramètre 1 = 1, Paramètre 2 = 2

Fonctions de conversion de chaîne :

Un lion(<Строка>, <ЧислоСимволов>) - renvoie les premiers caractères de la chaîne en premier.

Droit (<Строка>, <ЧислоСимволов>) - renvoie les derniers caractères de la chaîne.

Mercredi (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - renvoie une chaîne de longueur<ЧислоСимволов>en commençant par le personnage<НачальныйНомер>.

AbbrL (<Строка>) tronque les caractères non significatifs à gauche du premier caractère significatif de la chaîne.

Abréviation (<Строка>) - coupe les caractères non significatifs à droite du dernier caractère significatif de la chaîne.

SocrLP (<Строка>) - coupe les caractères non significatifs à gauche du premier caractère significatif de la ligne et à droite du dernier caractère significatif de la ligne.

StrGetString (<Строка>, <НомерСтроки>) - obtient une chaîne d'une chaîne multiligne par numéro.

Autres fonctions :

StrLength (<Строка>) - renvoie le nombre de caractères d'une chaîne.

StrNombre de lignes (<Строка>) - renvoie le nombre de lignes dans une chaîne multiligne. Une ligne est considérée comme nouvelle si elle est séparée de la ligne précédente par un caractère de nouvelle ligne.

Comparer (<Строка1>, <Строка2> ) - compare deux chaînes, insensible à la casse. La fonction fonctionne de la même manière qu'un objet Comparaison des valeurs... Retour:

  • 1 - si la première ligne est supérieure à la seconde
  • -1 - si la deuxième ligne est supérieure à la première
  • 0 - si les chaînes sont égales

StrCompare ("Première ligne", "Deuxième ligne"); // 1

En 1C, une vérification d'une valeur vide est effectuée par une fonction spéciale. Pour vérifier si les accessoires ou la variable que vous avez sont remplis, vous devez utiliser une fonction du contexte global ValeurRemplie (<Значение>) .

En 1C 8, une valeur est considérée comme remplie (pas vide) si elle diffère de la valeur par défaut pour ce type. Par exemple, pour un type de référence, la valeur par défaut est Lien vide(ce guide, document, etc.). Les variables et les attributs contenant des valeurs sont également vides. Nul et Indéfini.

1c vérifier la valeur vide. Exemples de

Variable = Répertoires.Nomenclature.RefVide (); Check = ValueFilled (Variable);

Dans ce cas, la variable Examen contiendra la valeur Mentir... Aussi la fonction ValeurRemplie (<Значение>) ... peut être utilisé directement dans des conditions.

Exemple 1.1

If ValueFilled (Variable) Then Report ("La valeur dans la variable n'est pas vide!"); Fin si;

Variable = Documents.AvailableReport.FindByNumber ("000000001"); Check = ValueFilled (Variable);

V cet exemple si document Rapport préalable avec numéro 000000001 existe, alors dans la variable Examen contiendra la valeur Vrai, autrement Mentir.

Utiliser la fonction ValeurRemplie pas possible pour les types de variables mutables tels que Tableau des valeurs, Arbre de valeur etc. La fonction fonctionne pour toutes les configurations.

Comment vérifier que le tableau des valeurs est vide en 1c ? Pour ce faire, utilisez la méthode Quantité(), il peut être utilisé pour vérifier le nombre de lignes dans la table de valeurs.

Exemple 3. Soit Ma table- la table de valeurs définie ci-dessus dans le code.

Si MyTable.Quantity () = 0 Then Return; Fin si;

La même méthode peut être utilisée pour déterminer la plénitude de l'arbre de valeurs et la sélection du résultat de la requête.

Exemple 4. Soit MonArbre- l'arbre de valeurs défini ci-dessus dans le code.

Si MyTree.Strings.Number () = 0 Then Return; Fin si;

Comme vous pouvez le voir, dans l'arbre des valeurs, nous vérifions la présence de lignes de premier niveau, s'il n'y en a pas, alors l'arbre est vide.

Exemple 5. Soit Demande- une requête vers la base de données 1C 8, définie ci-dessus.

Lorsqu'il travaille avec des requêtes, tout programmeur doit interagir avec des valeurs vides d'une manière ou d'une autre. Qu'entendons-nous par valeur vide ?

Une valeur vide est soit aucune valeur, soit une valeur par défaut pour le type de données. Avec les types primitifs, tout est assez simple : la valeur par défaut est une valeur initiale qui sert de point de départ.

Types de valeurs nulles

Considérez les types de valeurs nulles qui peuvent être rencontrées ou requises dans une requête.

  • Pour Nombre - la valeur nulle est zéro - 0.
  • Pour le type String - une chaîne vide - "".
  • Pour le type Date - 1er janvier de la première année - 01.01.001 00:00:00. C'est à partir de cette date que le temps est compté en 1C.*
  • Pour un type booléen, la valeur par défaut est techniquement False, mais logiquement les deux valeurs du type sont renseignées. Par conséquent, la décision de savoir si la valeur vide est False ou non est basée sur la logique d'un algorithme particulier.

* Attention, en dehors de 1C il y a divers systèmes compter des dates avec des points de référence différents.

La valeur manquante au sens plein correspond uniquement au type Nul. Ce type ne contient qu'une seule valeur, ce qui n'indique aucune valeur.

Type similaire à lui Indéfini contient également une seule valeur, mais Undefined ne signifie pas l'absence de données, mais seulement l'impossibilité de définir une valeur par défaut pour le type. Undefined est la valeur par défaut pour les types composites, y compris ceux qui ne sont pas explicitement définis. Par exemple, une valeur dans une nouvelle ligne d'un tableau de valeurs dans une colonne dont le type n'est pas explicitement défini.

Avec référence les types sont beaucoup moins ambigus. Tous les types de référence sont nuls. Une valeur vide est la même référence avec une indication du type de données, mais sans l'identifiant unique d'une valeur spécifique. Grâce à cela, nous pouvons traiter un lien vide comme un lien normal et lui appliquer toutes les méthodes fournies par la plate-forme, en travaillant avec lui comme une valeur complète.

Travailler avec des valeurs nulles dans une requête

Que vous ayez besoin d'entrer explicitement une valeur nulle dans le résultat de la requête ou de comparer des valeurs existantes avec celle-ci, vous devez savoir comment décrire les valeurs nulles dans une requête.

Les types Nombre, Chaîne, Booléen sont décrits dans la requête comme dans le langage intégré :

SÉLECTIONNEZ 0 COMME NUMÉRO DE TYPE D'EXEMPLE, "Hello world" COMME TYPE D'EXEMPLE Chaîne, VRAI COMME TYPE D'EXEMPLE Booléen

Undefined, étant essentiellement un type primitif, est décrit de la même manière :

Sélectionnez Lots.Period From Accumulation Register.Lots As Lots Where Balances.DocumentBatches = Undefined

Les valeurs de référence vides sont un peu plus délicates à définir. Tous les objets référencés ont une valeur de service prédéfinie EmptyRef. Grâce à cela, il est possible de sélectionner un lien vide de manière unifiée - via la fonction Valeur :

Sélectionnez la valeur(Reference.Nomenclature.EmptyRef) En tant que nomenclature vide

Les possibilités de travailler avec des valeurs Null sont un peu plus riches. Comme les autres types primitifs, Null est décrit de la même manière que dans le langage intégré. De plus, il existe un opérateur spécial Yes Null et la fonction YesNull.

  • L'opérateur Yes Null vous permet de créer Expression booléenne comparer la valeur sélectionnée à une valeur Null.
  • La fonction YesNull renvoie le premier argument s'il n'est pas Null, et le deuxième argument sinon.

Les expressions qui spécifient des valeurs nulles peuvent être utilisées dans n'importe quelle clause de requête qui prend en charge les expressions. Par exemple, vous pouvez ajouter un lien vide à la section Sélectionner ou vérifier Null dans la condition.

Exemples pratiques

Utilisation de la fonction Valeur

Sélectionnez Products.Ref As Nomenclature, Products.Ref = Value (Directory.Nomenclature.EmptyLink) Like ThisLink Empty From WTProducts as WTProducts

Utilisation de l'opérateur Oui Nul

Sélectionnez Products.Ref As Nomenclature, Products.Link Have Null Like ThisLink Empty From WTGoods Like TueProducts

Null à gauche ou jointure complète

Vérification de la valeur nulle

L'exemple montre une situation pratique courante où, avec une jointure à gauche, pour la première table il n'y a pas de correspondance dans la seconde. Dans ce cas, tous les champs de la deuxième table seront égaux à Null.

Sélectionnez TuProducts.Ref As Nomenclature, Balance.Quantity Balance As Quantity, Balance.Quantity Balance is null car aucun solde de TuProducts as TuProducts Connexion gauche Registre d'accumulation.Produits dans les entrepôts.Soldes en tant que soldes par TuGoods.Ref = Soldes.Nomenclature

Gestion des valeurs nulles

Modification de la requête précédente pour démontrer une technique courante pour obtenir des valeurs par défaut au lieu de celles manquantes. Dans cet exemple, à l'aide de la fonction YesNull, la valeur de reste manquante est remplacée par un 0 logiquement correct.

Sélectionnez TuProducts.Ref en tant que nomenclature, avoir Null (Balance.QuantityLeft, 0) en tant que quantité de TuProducts en tant que TuProducts Connexion gauche Registre d'accumulation.Produits dans les entrepôts.Soldes en tant que soldes par TuGoods.Ref = Soldes.Nomenclature

Dans le cadre de cet article, nous avons examiné différents types de valeurs vides et leurs propriétés, étudié des moyens de déterminer différents types des valeurs vides dans les requêtes, et dans la partie pratique nous étions convaincus de la facilité d'application du matériel considéré.

2021 wisemotors.ru. Comment ça fonctionne. Le fer. Exploitation minière. Crypto-monnaie.