Maison / Réseaux sociaux / 1c trouver la deuxième occurrence dans la chaîne. Nouvelles fonctions pour travailler avec des chaînes. Comment supprimer des espaces

1c trouver la deuxième occurrence dans la chaîne. Nouvelles fonctions pour travailler avec des chaînes. Comment supprimer des espaces

Le type String se trouve dans tous les langages de programmation. C'est primitif et dans 1C, il existe de nombreuses fonctions pour travailler avec. Dans cet article, nous allons regarder de plus près différentes manières travailler avec des types de chaîne dans 1C 8.3 et 8.2 avec des exemples.

Doubler

Pour convertir une variable de n'importe quel type en chaîne, il existe la fonction "String()" du même nom. Le paramètre d'entrée sera la variable elle-même, dont la représentation sous forme de chaîne doit être obtenue.

Chaîne(Faux) // renvoie "Non"
Chaîne(12345) // renvoie "12 345"
Chaîne(DateActuelle()) //"21.07.2017 11:55:36"

Il est possible de convertir en chaîne non seulement des types primitifs, mais aussi d'autres, par exemple, des éléments de répertoires et de documents.

LP abrégé, L abrégé, P abrégé

Les paramètres d'entrée de ces fonctions sont une variable de type chaîne. Les fonctions suppriment les caractères non significatifs (espaces, retours chariot, etc.) : des côtés gauche et droit, uniquement du côté gauche et uniquement du côté droit, respectivement.

abbrl("Les espaces des deux côtés seront supprimés") // "Les espaces des deux côtés seront supprimés"
abbr("Les espaces des deux côtés seront supprimés") // "Les espaces à gauche seront supprimés"
abbr(" Les espaces des deux côtés seront supprimés ") // "Les espaces à droite seront supprimés"

Lion, droite, milieu

Ces fonctions vous permettent de couper une partie d'une chaîne. La fonction Lion() renverra la partie de la chaîne sur son côté gauche de la longueur spécifiée. La fonction "Right()" est similaire, mais le recadrage se fait à droite. La fonction "Mer()" permet de spécifier le numéro de caractère à partir duquel la chaîne sera sélectionnée et sa longueur.

Lion("Variable chaîne", 4) // renvoie "Stro"
Droite("Variable chaîne", 7) // renvoie "variable"
avg("String variable", 2, 5)// retourne "troco"

LongueurStr

La fonction détermine le nombre de caractères contenus dans une variable de chaîne.

StrLength("Word") // le résultat de l'exécution sera le nombre 5

Trouver

La fonction permet de rechercher une partie d'une chaîne dans une variable chaîne. La valeur de retour sera un nombre indiquant la position du début de la chaîne trouvée. Si aucune correspondance n'est trouvée, zéro est renvoyé.

Notez que la recherche est sensible à la casse. S'il existe plusieurs occurrences de la sous-chaîne de recherche dans la chaîne d'origine, la fonction renverra le début de la première occurrence.

Find("un, deux, un, deux, trois", "deux") // la fonction renverra le nombre 6

Ligne vide

L'utilisation de cette fonction vous permet de déterminer si une chaîne est vide. Les caractères non significatifs, tels que l'espace, le retour chariot et autres ne sont pas pris en compte.

EmptyString("Vasily Ivanovich Pupkin") // la fonction renverra False
EmptyString(" ") // la fonction renverra True

VReg, NReg, TReg

Ces fonctions sont très utiles lors de la comparaison et de la conversion de variables de chaîne. "Vreg()" renverra la chaîne d'origine en majuscules, "HReg()" en minuscules et "TReg()" la formatera de sorte que le premier caractère de chaque mot individuel soit en majuscule et que tous les caractères suivants soient en minuscules.

VReg(" DIRECTEUR GÉNÉRAL ") // valeur de retour - " DIRECTEUR GÉNÉRAL "
HReg("DIRECTEUR GENERAL") // valeur de retour - "PDG"
TReg("DIRECTEUR GÉNÉRAL") // valeur de retour - "Directeur général"

StrRemplace

Cette fonction est un analogue du remplacement dans éditeurs de texte. Il vous permet de remplacer un caractère ou un ensemble de caractères par un autre dans les variables de chaîne.

StrReplace("rouge, blanc, jaune", ",", ";") // renvoie "rouge ; blanc; jaune"

StrNumberRows

La fonction permet de déterminer le nombre de lignes séparées par un retour chariot dans une variable texte.

La boucle dans l'exemple ci-dessous passera par trois cercles car la fonction StrNumberRows renverra la valeur 3 :

Pour ind \u003d 1 par StrNumber of Lines ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Boucle
<тело цикла>
FinCycle ;

StrGetString

Cette fonction fonctionne avec du texte multiligne de la même manière que la précédente. Il vous permet d'obtenir une chaîne spécifique à partir d'une variable de texte.

StrGetString("Chaîne1" + Symboles.PS + "Chaîne2" + Symboles.PS + "Chaîne3", 2) // renvoie "Ligne2"

StrNumberOccurrencesStrNumberOccurrences

La fonction compte le nombre d'occurrences d'un caractère ou d'une sous-chaîne dans la chaîne recherchée.

StrNumberInstallations("a;b;c;d; ", ";") // la fonction renverra le nombre 4

Symbole et SymbolCode

Ces fonctions permettent d'obtenir un caractère par son code Unicode, ainsi que de déterminer ce code par le caractère lui-même.

SymbolCode("A") // la fonction renverra le nombre 1 040
SymbolCode(1040) // la fonction renverra "A"

Tâches fréquentes lors de l'utilisation de chaînes

Concaténation de chaînes

Pour concaténer plusieurs chaînes (concaténer), utilisez simplement l'opérateur d'addition.

"Ligne 1" + "Ligne 2" //le résultat de l'ajout de deux lignes sera "Ligne 1 Ligne 2"

Conversion de types

Pour convertir un type en chaîne, par exemple une référence à un élément du dictionnaire, un nombre, etc., il suffit d'utiliser la fonction "String ()". Des fonctions comme "ShortLP()" convertiront également les variables en chaîne, mais immédiatement en coupant les caractères insignifiants.

String(1000) // renverra "1000"

Veuillez noter que lors de la conversion d'un nombre en chaîne, le programme a automatiquement ajouté un espace séparant les milliers. Pour éviter cela, vous pouvez utiliser les structures suivantes :

StrRemplace(Chaîne(1000),Caractères.NPP,"") // renvoie "1000"

String(Format(1000,"CH=")) // renverra "1000"

Citations dans une chaîne

Très souvent, vous devrez faire face à la nécessité de mettre des guillemets dans une variable de chaîne. Il peut s'agir soit d'un texte de requête écrit dans le configurateur, soit simplement d'une variable. Pour résoudre ce problème, il vous suffit de définir deux guillemets.

Header = String("Horns and Hooves LLC c'est nous !") // renvoie "Roga and Hooves LLC c'est nous !"

Multiligne, saut de ligne

Pour créer un texte multiligne, il suffit d'y ajouter des caractères de saut de ligne (Symbols.PS).

MultilineText = "Première ligne" + Caractères.PS + "Deuxième ligne"

Comment supprimer des espaces

Afin de supprimer les espaces à droite ou à gauche, vous pouvez utiliser la fonction "Stretch()" (ainsi que "Scrpt()" et "ScreenP()") :

StringWithoutSpaces = ShortLP(" Many letters ") // la fonction renverra la valeur "Many letters"

Si, après avoir converti un nombre en chaîne, vous devez supprimer espaces insécables, utilisez la construction suivante :

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // renvoie "99999"

De plus, les programmeurs utilisent souvent la construction suivante, qui vous permet de supprimer ou de remplacer tous les espaces d'une variable de texte par un autre caractère :

ChaîneSansEspaces = StrReplace(" bonjour", " " ,"") // renvoie "bonjour"

Comparer des chaînes entre elles

Vous pouvez comparer les termes avec le signe égal habituel. La comparaison est sensible à la casse.

"hello" = "hello" // retournera faux
"Bonjour" = "Bonjour" // renverra Vrai
"Bonjour" = "Au revoir" // renverra Faux

Les fonctionnalités de base d'un langage de programmation incluent généralement le travail avec des nombres et des chaînes. Habituellement, ces fonctionnalités sont câblées dans le code du compilateur (ou les classes "de base" du langage de programmation sont implémentées).

En 1C, les capacités de travail avec des chaînes sont programmées dans la plate-forme elle-même. Aujourd'hui, nous examinerons les fonctionnalités de travail avec des chaînes 1C dans des programmes en langage 1C intégré.

Valeur ligne 1C

1. Commençons par le plus simple. La création d'une variable et l'attribution d'une valeur constante de chaîne ressemble à ceci en 1C :

Variable = "Bonjour le monde !" ;

Si vous souhaitez spécifier un guillemet dans une valeur de chaîne constante 1C, vous devez le doubler ""

Variable = "Bonjour, "monde"" !" ;

2. Le saut de ligne 1C peut être spécifié de deux manières à la fois. La première utilise le symbole |

Variable = "Bonjour,
| monde! " ;

La seconde utilise l'énumération du système Symbols. Il vous permet d'ajouter à la fois un saut de ligne 1C et d'autres caractères non imprimables, tels que TAB.

Variable = "Salut" + Symbols.ps + "paix !" ;

3. Les configurations en 1C peuvent être développées non seulement pour une langue (russe, anglais ou autre) - mais simultanément pour plusieurs langues. Dans ce cas, la langue actuellement utilisée est sélectionnée en bas de la fenêtre 1C.

La liste des langues se trouve dans la fenêtre de configuration dans la branche Général/Langues. Chaque langue a un identifiant court tel que fr ou fra.

Il est clair que lors de la programmation d'une telle configuration, les lignes 1C peuvent également être multilingues. Pour ce faire, il est possible de créer une telle ligne 1C en spécifiant through ; options par ID de langue :

Variable = "ru=""Bonjour le monde !""; en=""Bonjour le monde !""";

Si vous utilisez la ligne 1C ainsi formée comme d'habitude, ce sera ce qui y est écrit. Pour que le système le divise en deux options et utilise celle souhaitée, vous devez utiliser la fonction NStr() :

//correct pour les configurations bilingues
Report(NStr(Variable));

Étais avec ligne type 1C

La condition requise est un champ du répertoire / document 1C. Elle diffère d'une variable dans un programme en langage 1C en ce que son type est précisément indiqué pour l'attribut (nombre, chaîne 1C, etc.). Si vous avez besoin de vous familiariser avec les accessoires, consultez le didacticiel sur .

Si vous spécifiez le type d'attribut - ligne 1C, vous devez également spécifier les paramètres.

Les chaînes 1C sont de longueur illimitée (indiquée par longueur = 0) et de longueur limitée, indiquant le nombre exact de caractères. Les chaînes 1C de longueur illimitée sont stockées dans une table SQL séparée, leur utilisation est donc moins productive que les chaînes limitées.

C'est pourquoi l'utilisation de chaînes 1C de longueur illimitée a ses limites - il n'est pas possible de les utiliser partout. Par exemple, ce n'est pas possible comme numéro de document, code répertoire, mesure.

Travailler avec des lignes 1C

Pour travailler avec des chaînes, il existe plusieurs fonctions intégrées de la plate-forme 1C.

  • AbbrLP("Incroyable, mais vrai !")
    Supprime de la ligne 1C espaces supplémentaires. Il peut également être utilisé pour convertir n'importe quel type en une chaîne 1C (par exemple, des nombres).
  • Variable = "Vasya" + Abbrl("plus") + "Olya" ; //sera "Vasya plus Olya"
    Un exemple de sommation de plusieurs valeurs de chaîne 1C. Le résultat est une ligne 1C.
  • Variable = Lion("Musique", 2); // sera "Mu"
    Variable = Moy("Musique", 2, 2); // sera "ps"
    Variable = Droits("Musique", 2); // sera "ka"
    Diverses options pour obtenir une sous-chaîne à partir d'une chaîne 1C.
  • Variable = Rechercher("Musique", "ps"); // sera 3
    Recherchez une sous-chaîne dans la chaîne 1C, en commençant par le caractère 1.
  • Variable = StrLength("Musique"); //sera 6
    Renvoie le nombre de caractères dans une chaîne 1C.
  • Notify("Hi") //dans la boîte de message en bas de la fenêtre 1C
    alert("bonjour") //boîte de dialogue contextuelle
    Status("Hello") //dans la ligne d'affichage d'état en bas à gauche
    .

Amener des objets à la ligne 1C

Comme vous le savez, le format le plus populaire pour l'échange d'informations structurées à l'heure actuelle est XML. Même dernière version SP Mot de bureau et Excel enregistrent les fichiers dans ce format (docx et xlsx respectivement, changez l'extension en zip, ouvrez dans un archiveur).

La plate-forme 1C pour l'échange de données propose plusieurs options, dont la principale est également XML.

1. La méthode la plus simple consiste à utiliser la fonction ShortLP() ou String(). Vous pouvez utiliser la fonction REPRESENTATION() dans le texte de la requête. Le résultat de leur action est le même - ils génèrent une représentation sous forme de chaîne de n'importe quel objet 1C pour l'utilisateur.

Pour le répertoire par défaut, ce sera son nom. Pour un document, le nom, le numéro et la date du document.

2. Tout objet 1C (avec des restrictions) peut être converti en XML et vice versa. Le processus de conversion est appelé sérialisation.

ViewStringXml = XMLString(Valeur); // récupère le XML à partir de la valeur 1C
Value1С = XMLValue(Type("CatalogReference.Nomenclature"),ViewStringXml); //obtenir la valeur 1C de la chaîne XML, vous devez spécifier le type de 1C qui doit être reçu

3. Il existe un moyen natif de la plate-forme 1C pour convertir n'importe quel objet 1C en une chaîne. Il a migré de la version 1C 7.7. Ce format n'est pas compris par d'autres programmes, mais comprend un autre 1C, ce qui facilite son utilisation pour échanger entre les bases de données 1C.

Chaîne = ValueInStringInt(Value1S); //récupérer la chaîne 1C à partir de la valeur 1C
ValeurVersFichier("C:\MonFichier.txt", Valeur1C); //une autre option, nous obtenons un fichier avec une chaîne enregistrée à partir de la valeur 1C
Value1C = ValueFromStringInt(String); // retour de la ligne 1C
Value1C = ValueFromFile("C:\MonFichier.txt"); // retour du fichier

Modification des lignes 1C sur le formulaire

En plus de travailler avec des chaînes 1C dans un programme 1C, j'aimerais bien sûr que l'utilisateur puisse les modifier. Il existe plusieurs possibilités pour cela :

1. Le plus simple est de demander l'entrée de la ligne 1C à la demande. Cette méthode est utilisée lors de l'enseignement de la programmation 1C, dans la vie, elle est utilisée beaucoup moins souvent (mais elle est utilisée !).

Variable = "" ;
String = EnterValue(Variable, "Entrez le nom complet");

2. Pour afficher le détail de l'objet 1C (répertoire/document) ou le détail du formulaire (voir), le champ de saisie est le plus souvent utilisé. C'est l'outil le plus courant dans 1C pour que l'utilisateur travaille avec des champs d'édition.

3. Les capacités du champ de saisie peuvent être étendues (voir les propriétés du champ de saisie, faites un clic droit dessus, pour plus de détails) :

  • Case à cocher Mode d'édition multiligne
  • Case à cocher Édition avancée (disponible si la case précédente est cochée)
  • Case à cocher Mode mot de passe (voir ).

4. Si toutes les possibilités du champ de saisie ne vous suffisent pas, il existe un éditeur intégré. Pour l'ajouter au formulaire, il faut ajouter un Champ dans le menu Formulaire / Insérer un champ document texte. Dans ses propriétés, vous pouvez spécifier le mode de son fonctionnement - la propriété Extension.

Un champ de document texte ne peut pas être lié directement aux données. Il est nécessaire d'écrire la fonction suivante dans le gestionnaire d'événement du formulaire OnOpening() (voir ) :

FormElements.ElementNameTextDocumentField.SetText(StringValue); //ici, ValueString est le texte reçu, par exemple, de l'attribut

Et dans le gestionnaire de sauvegarde - par exemple, dans le bouton Enregistrer - ajoutez une sauvegarde :

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueString voici les accessoires où nous enregistrons la valeur

5. Dans la version 1C 8.2.11, dans formulaires gérés, apparu nouvelle opportunité représentation linéaire 1C - Champ de document formaté.


Semblable au champ d'un document texte, il est nécessaire de définir lors de l'ouverture et d'écrire lors de l'enregistrement du texte vous-même à l'aide du programme.

  • Dans l'objet 1C, dont nous créons la forme (livre de référence, document, traitement, etc.) - ajoutez un attribut avec le type de stockage de valeur
  • Dans la fonction OnReadOnServer(), définissez le texte de l'attribut

    //ici Requisite est l'attribut ajouté de l'objet 1C
    //ici FormattedDocument est le nom du champ sur le formulaire d'édition
    &Sur le serveur

    FormattedDocument = CurrentObject.Attributes.Get();
    FinProcédure

  • Dans la fonction BeforeWriteOnServer() ou en appuyant sur le bouton, écrivez le texte du champ

    &Sur le serveur
    Procédure OnReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(FormattedDocument);
    FinProcédure

PARTIE 1. MÉTHODES (26).

1.1. Méthodes de base (10). Indépendant, construit sur leurs algorithmes simples.

Str_Complete() (remplissage droite-gauche avec les caractères spécifiés).

Str_Inverse () (inversion - caractères de droite à gauche).

Str_Codes() (codes de caractères jusqu'à ”,” et un tableau avec des codes)

Str_Symbols() (chaîne de codes séparés par "," ou d'un tableau avec des codes)

Str_ReplaceCharacters() (remplacement d'un caractère par un autre).

Str_FromArray() (chaîne du tableau de fragments séparés par un séparateur)

Str_FindIn() (recherche une sous-chaîne (y compris à droite) avec le numéro d'entrée spécifié).

Str_FindGr() (Rechercher un groupe de caractères inclus dans le jeu de caractères spécifié)

Str_FindNumber() (Rechercher un nombre, y compris à droite avec nombre spécifié occurrences)

Str_Interpret() (vers un tableau, selon la syntaxe établie)

1.2. Méthodes dérivées (12). En fait, il s'agit de l'utilisation de quatre méthodes-algorithmes généralisés (voir partie 2)

Str_Number() (du début et de la fin de la chaîne, n'ayez pas "peur" des caractères non numériques.

Str_Find() (recherche une sous-chaîne (y compris insensible à la casse et à droite) avec le numéro d'entrée spécifié).

Str_Replace() (recherche (y compris insensible à la casse et à droite) et remplace les sous-chaînes de délimitation).

Str_Piece() (un morceau de chaîne entre les occurrences spécifiées du délimiteur (gauche ou droite)).

Str_ReplacePiece() (remplacement dans la chaîne source "piece" par la chaîne spécifiée).

Str_VArray() (entre les occurrences spécifiées du délimiteur (y compris à droite et sans casse).

Str_MoveBySyllables() (scindé en sous-chaînes "Hard", avec un trait d'union).

Str_MoveWords() (divisé en sous-chaînes "Softly")

Str_Cut() ("Couper" en sous-chaînes de longueurs spécifiées)

Str_Short() (remplace le groupe de caractères "réduits" de gauche par une "chaîne de remplacement"

Str_Short() (remplace le bon groupe de caractères "réduits" par une "chaîne de remplacement"

Str_Short() (remplacer au milieu d'un groupe de caractères "réduits" par une "chaîne de remplacement"

Str_Expand (extension à la longueur spécifiée en augmentant le nombre de caractères spécifiés)

1.3. Méthodes détaillées (3). « Préparation » d'une ligne avec transfert vers une table avec des informations détaillées.

Str_inTableIn() (au tableau selon le système des séparateurs imbriqués).

Str_inTableGroup (à la table selon le filtre multiniveau).

Str_inTableNumbers (dans une table avec des nombres et des fragments entre eux).

PARTIE 2. MÉTHODES-ALGORITS GÉNÉRALISÉS (3).

Str_Entry() (méthodes "Rechercher" et "Remplacer").

Str_Fragments() (méthodes "Piece", "ReplacePiece", "ToArray", "ToTableIn").

Str_Short() (méthodes "Short", "ShortP", "Short", "Expand".

Str_Split() (méthodes "Déplacer par syllabes", "Déplacer par mots", "Couper").

PARTIE 3. FONCTION UNIVERSELLE.

C'est une sorte d'interface de programmation conditionnelle qui permet

appliquer plusieurs méthodes à une chaîne à la fois. Mis en œuvre comme

fonctions à sept paramètres ("Demo" est construit sur cette fonction):

Str_(Méthodes, Sous-méthodes, Entrée, Param1, Param2, Length_Position_Number, AdditionalOutput)

Option :

- "Méthodes" - plusieurs méthodes "combinées" et (ou) une méthode "exclusive"

(codes ou noms à un seul caractère, possibles via ",")

- "Sous-méthodes" - plusieurs options "combinables" et (ou) "exclusives"

méthode « exclusive » (codes ou noms à un seul caractère) ;

- "Entrée" - Chaîne, ou tableau ou tableau de valeurs ;

- "Param1" - chaîne de recherche, substitutions, délimiteurs, filtres ;

- "Param2" - chaîne ou symboles de remplacement ;

- "Length_Number_Position" -Number, Numbers via un séparateur ou un tableau avec Numbers ;

- « Quitter » - Nombre ou chaîne ou tableau ou tableau de valeurs ;

Les noms et (ou) les codes à un caractère des méthodes-sous-méthodes, ainsi que les numéros

(Length_Position_Number) peut être dans tous les cas et séparé

l'un des délimiteurs suivants : ”, :;”.

PARTIE 4. QUELQUES EXEMPLES.

HaveNumbersINSstring=(Str_FindNumbers(InString)<>Indéfini);

HaveDigitsINSstring=(Str_FindGr(InString,"+0123456789")>0);

ThereLatin=(Str_FindGr(VxStr, Str_Interpret("lL"))>0);

HaveSpecifiedSigns=(Str_NfindGr(VxStr, "+ à hornYu.0p9")>0);

IsUnprintable=(Str_FindGr(VxStr, Str_Interpret("-l-L-r-R-P-Z-C"))>0);

PARTIE 5. CONCLUSION.

Dans la mesure du possible, géré avec un seul passage le long de la ligne. La deuxième passe - généralement déjà en fragments. N'a pas utilisé la fonction intégrée StrNumberOccurrences().

Fonctions intégrées utilisées : Left(),Right()Mid(),StrLength()

- (le positionnement et la récupération d'une partie d'une chaîne -devraient être "rapides").

String est l'un des types de données primitifs dans les systèmes 1C:Enterprise 8. Variables avec le type doubler contenir du texte.

Saisissez les valeurs des variables doubler sont entre guillemets doubles. Plusieurs variables de ce type peuvent être ajoutées.

Per1 = "Mot 1" ;
Per2 = "Mot 2" ;
Par3 = Par1 + " " + Par2 ;

Finalement Par3 comptera" Mot 1 Mot 2″.

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

EntrezChaîne(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — la fonction est destinée à afficher une boîte de dialogue dans laquelle l'utilisateur peut spécifier une valeur variable de type Doubler. 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 <Многострочность> facultatif. Spécifie le mode de saisie de texte multiligne : True — saisie de texte multiligne avec séparateurs de ligne ; False - Entrez une chaîne simple.

Une chaîne peut être saisie et, connaissant le code du caractère en Unicode :

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

Lettre= Symbole(1103 ) ; // JE

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

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

Fonctions de conversion de casse de texte :

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

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

TReg(<Строка>) - convertit tous les caractères de la chaîne en casse de titre. Autrement dit, les premières lettres de tous les mots sont converties en majuscules et les lettres restantes sont converties en minuscules.

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

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

Rechercher ("String" , "eye" ) ; // 4

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

Nombre4 Entrée= StrRecherche( "Défensif", "o" , Direction de la recherche. Premièrement, 1 , 4 ) ; // 7

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

StrReplace("Chaîne" , "oeil" , "" ) ; // 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, alors la valeur est renvoyée Vrai. Sinon - Mensonge.

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

StrNumberOccurrences ( "Etudier, étudier et étudier encore", "étude" , "" ) ; // 3

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

StrModèle ( "Option 1 = %1, Option 2 = %2", "1" , "2" ) ; // Paramètre 1= 1, Paramètre 2 = 2

Fonctions de conversion de chaînes :

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

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

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

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

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

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

ChaîneRécupèreChaîne(<Строка>, <НомерСтроки>) – obtient la chaîne d'une chaîne multiligne par numéro.

Autres caractéristiques:

LongueurStr(<Строка>) - renvoie le nombre de caractères dans 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 retour à la ligne.

StrCompare(<Строка1>, <Строка2> ) - compare deux chaînes sans tenir compte de la casse. La fonction fonctionne comme un objet Comparer 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

Les chaînes en 1C 8.3 dans le langage intégré 1c sont des valeurs d'un type primitif Doubler. Les valeurs de ce type contiennent une chaîne Unicode de longueur arbitraire. Les variables de type chaîne sont un ensemble de caractères entre guillemets.

Exemple 1. Créons une variable de chaîne avec du texte.

StringVariable = "Bonjour le monde !" ;

Fonctions pour travailler avec des chaînes en 1s 8.3

Cette section fournira les principales fonctions qui vous permettent de changer de ligne en 1s, ou d'analyser les informations qu'elles contiennent.

LongueurStr

LongueurStr(<Строка>) . Renvoie le nombre de caractères contenus dans la chaîne passée en paramètre.

Exemple 2. Comptons le nombre de caractères dans la chaîne "Hello world!".

String = "Bonjour le monde!"; Nombre de caractères = StrLength(String); Rapport (nombre de caractères) ;

Le résultat de l'exécution de ce code affichera le nombre de caractères dans la chaîne : 11.

Abrégé

Abr(<Строка>) . Supprime les caractères non significatifs à gauche du premier caractère significatif d'une chaîne.
Caractères non significatifs :

  • espace;
  • Espace non-cassant;
  • tabulation;
  • retour chariot ;
  • traduction de ligne ;
  • traduction du formulaire (page).

Exemple 3. Supprimez tous les espaces du côté gauche de la chaîne "peace!" et ajoutez-y la chaîne "Bonjour".

String = abbr("monde!"); Chaîne = "Salut"+Chaîne ; notifier(chaîne);

Le résultat de l'exécution de ce code sera l'affichage de la chaîne "Hello world!".

Abréviation

abbr(<Строка>) . Coupe les caractères non significatifs à droite du premier caractère significatif d'une chaîne.

Exemple 4. Form à partir des chaînes "Hello" et "world!" phrase "Bonjour le monde!"

Chaîne = abbr("Salut")+" "+abbr("monde !"); notifier(chaîne);

LP abrégé

abrégé(<Строка>) . Coupe les caractères non significatifs à droite du premier caractère significatif de la chaîne, coupe également les caractères non significatifs à gauche du premier caractère significatif de la chaîne. Cette fonction est utilisée plus souvent que les deux précédentes, car elle est plus polyvalente.

Exemple 5. Supprimer les caractères non significatifs à gauche et à droite du nom de la contrepartie.

Entrepreneur = Directoryes.Entrepreneurs.FindBy Details("TIN", "0777121211"); EntrepreneurObject = Entrepreneur.GetObject(); ContractorObject.Description = LP abrégé (ContractorObject.Description); ContractorObject.Write();

un lion

Un lion(<Строка>, <ЧислоСимволов>) . Obtient les premiers caractères d'une chaîne, le nombre de caractères est spécifié dans le paramètre Nombre de caractères.

Exemple 6. Soit la structure Employé contenir le nom, le prénom et le patronyme de l'employé. Obtenir une chaîne avec le nom de famille et les initiales.

NomInitial = Lion(Employee.Name, 1); Initiale patronymique = Lion(Employee.Patronymic, 1); Nom complet = Employee.LastName + " " + FirstName Initial + "." + Initiale patronymique + "." ;

Droits

Droite(<Строка>, <ЧислоСимволов>) . Obtient les derniers caractères d'une chaîne, le nombre de caractères est spécifié dans le paramètre Nombre de caractères. Si le nombre de caractères spécifié dépasse la longueur de la chaîne, la chaîne entière est renvoyée.

Exemple 7. Laissez une date être écrite à la fin d'une variable de chaîne au format "aaaammjj", obtenez une chaîne avec une date et convertissez-la en type date.

Chaîne = " La date actuelle: 20170910" ; StringDate = Droits(String, 8); Date = Date(StringDate);

Mercredi

Mercredi(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Obtient une sous-chaîne à partir de la chaîne passée en paramètre Doubler, à partir du caractère dont le numéro est spécifié dans le paramètre NuméroInitial et la longueur passée au paramètre Nombre de caractères. La numérotation des caractères d'une chaîne commence à 1. Si le paramètre NuméroInitial une valeur inférieure ou égale à zéro est spécifiée, alors le paramètre prend la valeur 1. Si le paramètre Nombre de caractères n'est pas spécifié, les caractères jusqu'à la fin de la chaîne sont sélectionnés.

Exemple 8. Laissez la variable de chaîne contenir le code de région à partir de la neuvième position, vous devriez l'obtenir et l'écrire sur une ligne séparée.

String = "Région : 99 Moscou" ; Région = Moy(Ligne, 9, 2);

Recherche de page

StrRecherche(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Recherche la sous-chaîne spécifiée dans une chaîne, renvoie le numéro de position du premier caractère de la sous-chaîne trouvée. Considérez les paramètres de cette fonction :

  • Doubler. Chaîne source ;
  • Recherche de sous-chaîne. La sous-chaîne souhaitée ;
  • DirectionRechercher. Spécifie la direction de recherche d'une sous-chaîne dans une chaîne. Peut prendre des valeurs :
    • Direction de la recherche. Depuis le début;
    • Direction de la recherche. Depuis la fin;
  • La position de départ. Spécifie la position dans la chaîne à laquelle commencer la recherche ;
  • Numéro d'entrée. Spécifie le nombre d'occurrences de la sous-chaîne recherchée dans la chaîne source.

Exemple 9. Dans la ligne "Hello world!" déterminer la position de la dernière occurrence du caractère "et".

PositionNumber = StrFind("Hello World!", "and", SearchDirection.From End); Notifier(NuméroPosition);

Le résultat de l'exécution de ce code sera l'affichage du numéro de la dernière occurrence du symbole "et" à l'écran : 9.

VReg

VReg(<Строка>) . Convertit tous les caractères de la chaîne spécifiée en 1s 8 en majuscules.

Exemple 10. Convertir la chaîne "hello world!" en majuscule.

StringVreg = Vreg("bonjour le monde!"); Rapport(StringVreg);

Le résultat de l'exécution de ce code sera l'affichage de la chaîne "HELLO WORLD!"

HReg

HReg(<Строка>) . Convertit tous les caractères de la chaîne spécifiée en 1s 8 en minuscules.

Exemple 11. Convertissez la chaîne "HELLO WORLD!" en minuscules.

StringNreg = NReg("BONJOUR LE MONDE!"); Rapport(StringVreg);

Le résultat de l'exécution de ce code sera l'affichage de la chaîne "hello world!"

TReg

TReg(<Строка>) . Convertit une chaîne comme suit : le premier caractère de chaque mot est converti en majuscule, les caractères restants du mot sont convertis en minuscules.

Exemple 12. Mettez en majuscule les premières lettres des mots de la chaîne "hello world!".

StringTreg = TReg("bonjour le monde!"); Rapport(StringTreg);

Le résultat de l'exécution de ce code sera l'affichage de la chaîne "Hello World!"

Symbole

Symbole(<КодСимвола>) . Obtient un caractère par son code Unicode.

Exemple 13. Ajoutez gauche et droite à la ligne "Hello World!" symbole ★

ChaîneAvecÉtoiles = Caractère("9733")+"Hello World!"+Caractère("9733"); Report(StringWithStars);

Le résultat de l'exécution de ce code sera l'affichage de la chaîne "★Hello World!★"

SymboleCode

CodeSymbole(<Строка>, <НомерСимвола>) . Obtient le code de caractère Unicode à partir de la chaîne spécifiée dans le premier paramètre, située à la position spécifiée dans le deuxième paramètre.

Exemple 14. Trouver le code du dernier caractère de la chaîne "Hello World!".

String = "Bonjour le monde !" ; CharacterCode =CharacterCode(String, StrLength(String)); Notifier (CharacterCode);

Le résultat de l'exécution de ce code sera l'affichage du code du symbole "!" — 33.

Ligne vide

Ligne vide(<Строка>) . Vérifie si la chaîne se compose uniquement de caractères non significatifs, c'est-à-dire si elle est vide.

Exemple 15. Vérifiez si la chaîne est vide et se compose de trois espaces.

Vide = chaîne vide(" "); Rapport (vide);

Le résultat de l'exécution de ce code sera l'affichage du mot "Oui" (expression chaîne d'une valeur booléenne Vrai).

StrRemplace

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

Exemple 16. Dans la ligne "Hello World!" remplacer le mot "Monde" par le mot "Amis".

String = StrReplace("Hello World!", "World", "Friends"); notifier(chaîne);

Le résultat de l'exécution de ce code sera l'affichage de la chaîne "Hello Friends!"

StrNumberRows

StrNombre de lignes(<Строка>) . Permet de compter le nombre de lignes dans une chaîne multiligne. Pour passer à nouvelle ligne en 1s 8 le symbole est utilisé PS(caractère de saut de ligne).

Exemple 17. Déterminez le nombre de lignes dans le texte :
"Première ligne
Deuxième ligne
Troisième ligne"

Number = StrNumber of Lines("Première ligne"+Symboles.PS +"Deuxième ligne"+Symboles.PS +"Troisième ligne"); Signaler le numéro);

Le résultat de l'exécution de ce code sera l'affichage du nombre de lignes dans le texte : 3

StrGetString

ChaîneRécupèreChaîne(<Строка>, <НомерСтроки>) . Obtient une chaîne dans une chaîne multiligne par son numéro. La numérotation des lignes commence à 1.

Exemple 18. Obtenez la dernière ligne du texte :
"Première ligne
Deuxième ligne
Troisième ligne"

Texte = "Première Ligne"+Caractères.PS +"Deuxième Ligne"+Caractères.PS +"Troisième Ligne" ; DernièreLigne = StrGetLine(Texte, StrNombre de Lignes(Texte)); Notifier (dernière ligne) ;

Le résultat de l'exécution de ce code sera l'affichage de la ligne "Troisième ligne".

StrNumberOccurrencesStrNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Renvoie le nombre d'occurrences de la sous-chaîne spécifiée dans une chaîne. La fonction est sensible à la casse.

Exemple 19. Déterminez combien de fois la lettre "c" entre dans la ligne "Lignes en 1s 8.3 et 8.2", quelle que soit sa casse.

String = "Lignes dans 1s 8.3 et 8.2" ; Nombre d'occurrences = StrNombre d'occurrences(Vreg(String), "C"); rapport (nombre d'occurrences);

Le résultat de l'exécution de ce code affichera le nombre d'occurrences à l'écran : 2.

PageCommenceDe

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Vérifie si la chaîne donnée dans le premier paramètre commence par la chaîne dans le deuxième paramètre.

Exemple 20. Déterminez si le TIN de la contrepartie sélectionnée commence par le chiffre 1. Soit la variable contrepartie Contreparties.

NIF = Entrepreneur.TIN ; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Then //Votre code EndIf;

La page se termine le

StrEndsOn(<Строка>, <СтрокаПоиска>) . Vérifie si la chaîne passée dans le premier paramètre se termine par la chaîne dans le deuxième paramètre.

Exemple 21. Déterminez si le TIN de la contrepartie sélectionnée se termine par le chiffre 2. Soit la variable contrepartie le lien vers l'élément de répertoire est stocké Contreparties.

NIF = Entrepreneur.TIN ; Se termine par deux = Str se termine par (TIN, "2"); Si se termine par deux alors //Votre code EndIf;

Fractionnement de page

StrDiviser(<Строка>, <Разделитель>, <ВключатьПустые>) . Divise une chaîne en parties par les caractères de délimitation spécifiés et écrit les chaînes résultantes dans un tableau. Le premier paramètre stocke la chaîne d'origine, le deuxième paramètre contient la chaîne contenant le délimiteur, le troisième paramètre indique si les chaînes vides doivent être écrites dans le tableau (par défaut Vrai).

Exemple 22. Supposons que nous ayons une chaîne contenant des nombres séparés par le symbole ";", obtenez un tableau de nombres à partir de la chaîne.

Chaîne = "1 ; 2 ; 3" ; Tableau = StrSplit(String, ";"); For Count = 0 By Array.Quantity() - 1 Tentative de boucle Array[Count] = Number(Ablp(Array[Count])); Tableau d'exceptions[W] = 0 ; EndTry EndCycle ;

À la suite de l'exécution, un tableau avec des nombres de 1 à 3 sera obtenu.

StrConnect

StrConnect(<Строки>, <Разделитель>) . Convertit un tableau de chaînes du premier paramètre en une chaîne contenant tous les éléments du tableau à l'aide du délimiteur spécifié dans le deuxième paramètre.

Exemple 23. À l'aide du tableau de nombres de l'exemple précédent, récupérez la chaîne d'origine.

For Count = 0 By Array.Quantity() - 1 Loop Array[Count] = String(Array[Count]); FinCycle ; Chaîne = StrConnect(Tableau, "; ");