Trouvez des espaces à la ligne 1c 8. Nouvelles fonctions pour travailler avec des chaînes. Fonctions de conversion de casse

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. Variables multiples de ce genre peut être plié.

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 la valeur d'une variable du type 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 du texte multiligne : True - saisie de texte multiligne avec 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 de la chaîne en majuscules.

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 (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - trouve le numéro du caractère de l'occurrence de la sous-chaîne de recherche, le numéro de l'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

PRemplacer (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - 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 chaîne 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

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

Implémenté dans la version 8.3.6.1977.

Nous avons étendu l'ensemble des fonctions permettant de travailler avec des chaînes. Nous avons fait cela afin de vous donner des outils plus avancés pour l'analyse des données de chaîne. Les nouvelles fonctions seront pratiques et utiles dans les tâches technologiques d'analyse de texte. Dans les tâches liées à l'analyse de texte contenant des données formatées. Il peut s'agir de l'analyse de certains fichiers reçus de l'équipement, ou, par exemple, de l'analyse d'un journal technologique.

Toutes les actions qui remplissent de nouvelles fonctions, que vous auriez pu effectuer auparavant. A l'aide d'algorithmes plus ou moins complexes écrits dans un langage embarqué. Par conséquent, les nouvelles fonctions ne vous offrent pas de possibilités fondamentalement nouvelles. Cependant, ils vous permettent de réduire la quantité de code, de rendre le code plus simple et plus facile à comprendre. Et en plus de cela, ils vous permettent d'accélérer l'exécution des actions. Car les fonctions implémentées dans la plateforme sont bien entendu plus rapides qu'un algorithme similaire écrit dans un langage embarqué.

Fonction de formatage PpTemplate ()

Cette fonction substitue des paramètres dans une chaîne. La nécessité d'une telle conversion apparaît souvent, par exemple, lors de l'affichage de messages d'avertissement. La syntaxe de cette fonction est la suivante :

Modèle de page (<Шаблон>, <Значение1-Значение10>)

<Шаблон>est une chaîne à remplacer pour les représentations de paramètres.

<Значение1> , ... <Значение10>- ce sont des paramètres (maximum - dix), dont les représentations doivent être substituées dans la chaîne.

Pour indiquer un endroit spécifique dans le modèle où vous souhaitez effectuer la substitution, vous devez utiliser des jetons de la forme % 1, ...% 10. Le nombre de marqueurs utilisés dans le modèle et le nombre de paramètres contenant des valeurs doivent être les mêmes.

Par exemple, le résultat de l'exécution d'une telle instruction :

il y aura une ligne :

Erreur de données sur la ligne 2 (Type de date requis)

Fonction pour travailler avec des chaînes StrCompare ()

Cette fonction compare deux chaînes sans tenir compte de la casse. Par exemple, comme ceci :

Vous auriez pu effectuer la même action plus tôt en utilisant l'objet ValueComparison :

Cependant, l'utilisation de la nouvelle fonction semble plus simple. Et en plus de cela, la fonction, contrairement à l'objet Comparaison de valeurs, fonctionne également dans client léger, et dans le client Web.

Fonctions pour travailler avec des chaînes RowStart With (), RRend With ()

Ces fonctions déterminent si une chaîne commence par une sous-chaîne spécifiée ou se termine par une sous-chaîne spécifiée. L'algorithme de ces fonctions n'est pas difficile à implémenter dans le langage embarqué, mais leur présence permet d'écrire un code plus propre et plus compréhensible. Et ils travaillent plus vite.

Par exemple, il est pratique de les utiliser dans le If :

Fonctions pour travailler avec des chaînes StrSplit (), StrConnect ()

Ces fonctions divisent la chaîne en parties selon le délimiteur spécifié. Ou vice versa, ils joignent plusieurs lignes en une seule, en insérant le séparateur sélectionné entre elles. Ils sont pratiques pour créer ou analyser des logs, des logs technologiques. Par exemple, vous pouvez facilement désassembler un enregistrement d'un journal technologique en pièces adaptées à une analyse plus approfondie :

Fonction pour travailler avec des chaînes StrFind ()

Au lieu de l'ancienne fonction Find(), nous avons implémenté nouvelle fonction, qui possède des fonctionnalités supplémentaires :

  • Rechercher dans différentes directions (du début, de la fin);
  • Recherche à partir d'une position spécifiée ;
  • Recherchez une occurrence avec le numéro spécifié (deuxième, troisième, etc.).

En fait, il duplique les capacités de l'ancienne fonction. Ceci est fait afin de maintenir la compatibilité avec les modules compilés dans les anciennes versions. Il est recommandé de ne plus utiliser l'ancienne fonction Find().

Vous trouverez ci-dessous un exemple utilisant les nouvelles fonctionnalités de recherche. La recherche en arrière est utile lorsque vous avez besoin du dernier morceau d'une chaîne formalisée, par exemple nom et prénom fichier dans l'url. Et la recherche à partir d'une position spécifiée est utile dans les cas où vous devez rechercher dans un fragment connu et non dans la chaîne entière.

Le type "String" est présent dans tous les langages de programmation. Il est primitif et dans 1C, il existe de nombreuses fonctions pour travailler avec. Dans cet article, nous examinerons de plus près différentes façons travailler avec des types de chaîne dans 1C 8.3 et 8.2 par des exemples.

Ligne

Afin de convertir une variable de n'importe quel type en chaîne, il existe une fonction du même nom "String ()". 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 (CurrentDate ()) // 21/07/2017 11:55:36 ″

Il est possible de convertir non seulement les types primitifs en chaîne, mais également d'autres, par exemple des éléments d'ouvrages de référence, des documents.

SocrLP, SocrL, SocrP

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.) : respectivement des côtés gauche et droit, uniquement du côté gauche et uniquement du côté droit.

AbbrLP ("Les espaces des deux côtés seront supprimés") // "Les espaces des deux côtés seront supprimés"
Abrégé ("Les espaces des deux côtés seront supprimés") // "Les espaces à gauche seront supprimés"
Abréviation ("Les espaces des deux côtés seront supprimés") // "Les espaces à droite seront supprimés"

Lion, à droite, mercredi

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

Lion ("String variable", 4) // renvoie "Stro"
Droite ("String variable", 7) // renvoie "variable"
Mercredi ("String variable", 2, 5) // renvoie "troco"

Longueur de chaîne

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

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

Trouve

La fonction permet de rechercher une partie d'une chaîne dans n'importe quelle variable de 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é.

Veuillez noter que les recherches sont sensibles à la casse. Si la chaîne d'origine contient plusieurs occurrences de la sous-chaîne de recherche, la fonction renvoie 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 sont ignorés.

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

VReg, NReg, Treg

Ces fonctions sont très utiles lors de la comparaison et de la conversion de variables de chaîne. "Breg ()" renverra la chaîne d'origine en majuscules, "HPreg ()" en minuscules et "TReg ()" la formatera de sorte que le premier caractère de chaque mot individuel soit avec lettre capitale, et tous les suivants avec un petit.

Vreg ("DIRECTEUR GENERAL") // valeur de retour - "DIRECTEUR GENERAL"
НReg ("DIRECTEUR GENERAL") // valeur de retour - "directeur général"
TREG ("DIRECTEUR GENERAL") // valeur de retour - "Directeur Général"

PageRemplacer

Cette fonction est analogue au 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", ",", ";") // retournera "rouge; Blanche; jaune"

ChaîneNuméroString

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

La boucle de l'exemple ci-dessous passera par trois cercles puisque la fonction RowNumber renverra 3 :

Pour ind = 1 par StrNumber of Lines ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Boucle
<тело цикла>
Fin de cycle ;

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 ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // retournera "String2"

StrNombre d'occurrences

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

StrNumber of Attachments ("a; b; c; d;", ​​​​";") // la fonction renverra le nombre 4

Symbole et code de symbole

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 lorsque vous travaillez avec des chaînes

Chaînes de concaténation

Pour concaténer plusieurs chaînes (pour effectuer la concaténation), il suffit d'utiliser 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 type

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 telles que "Abréviation ()" convertiront également les variables en chaîne, mais immédiatement avec la troncature des caractères non significatifs.

Chaîne (1000) // retournera "1000"

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

StrReplace (String (1000), Characters.NPP, "") // retournera "1000"

Chaîne (Format (1000, "CHG =")) // retournera "1000"

Citations dans une chaîne

Très souvent, vous devrez faire face à la nécessité de spécifier 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 mettre deux guillemets.

Titre = Chaîne ("LLC" Horns and Hooves "" - c'est nous ! ") // renvoie" LLC " Horns and Hooves" - c'est nous ! "

Plusieurs lignes, saut de ligne

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

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

Comment supprimer des espaces

Afin de supprimer les espaces à droite ou à gauche, vous pouvez utiliser la fonction "Abréviation ()" (ainsi que "Abréviation ()" et "Abréviation ()") :

StringNoSpaces = AbbreviatedLP ("Plusieurs lettres") // la fonction renverra la valeur "Plusieurs lettres"

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

StringNoSpaces = StrReplace (String (99999), Characters.NPP, "") // retournera "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 :

StringNoSpaces = StrReplace ("bienvenue", "", "") // renvoie "bonjour"

Comparer des chaînes entre elles

Les termes peuvent être comparés avec le signe égal habituel. La comparaison est sensible à la casse.

"Bonjour" = "bonjour" // retournera False
"Bonjour" = "Bonjour" // retournera True
"Bonjour" = "Au revoir" // retournera Faux

À capacités de base Le langage de programmation est généralement appelé travail avec des nombres et des chaînes. Habituellement, ces fonctionnalités sont codées en dur dans le code du compilateur (ou les classes "de base" du langage de programmation sont implémentées).

Dans 1C, la possibilité de travailler avec des chaînes est programmée dans la plate-forme elle-même. Aujourd'hui, nous allons examiner les caractéristiques du travail avec des chaînes 1C dans des programmes du langage 1C intégré.

La valeur de la ligne 1C

1. Commençons par le plus simple. Créer une variable et lui attribuer une valeur de chaîne constante ressemble à ceci dans 1C :

Variable = "Bonjour tout le monde !";

Si vous devez 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,
| paix! ";

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

Variable = "Bonjour" + Symbols.PS + "world!";

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 de la branche Général/Langues. Chaque langue a un identifiant court tel que ru 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 précisant through ; options par identifiant de langue :

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

Si vous utilisez la chaîne 1C formée de cette manière comme d'habitude, alors ce sera ce qui y est écrit. Pour que le système le divise en deux options et utilise celle de votre choix, vous devez utiliser la fonction HStr () :

// correct pour les configurations bilingues
Rapport (НStr (Variable));

Accessoires avec type de ligne 1C

Un accessoire est un champ d'une référence / document 1C. Elle diffère d'une variable dans un programme 1C en ce que son type (nombre, chaîne 1C, etc.) est précisément indiqué pour les accessoires. Si vous avez besoin de vous familiariser avec les accessoires, consultez la leçon 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 (spécifiée comme longueur = 0) et de longueur limitée, indiquant le nombre exact de caractères. Les lignes 1C de longueur illimitée sont stockées dans un table SQL leur utilisation est donc moins productive que limitée.

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

Travailler avec des cordes 1C

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

  • SocrLP ("Incroyable, mais vrai !")
    Supprime de la ligne 1C espaces supplémentaires... Il peut également être utilisé pour convertir n'importe quel type en chaîne 1C (par exemple, des nombres).
  • Variable = "Vasya" + SokrLP ("plus") + "Olya" ; // sera "Vasya plus Olya"
    Un exemple de sommation de plusieurs valeurs de chaîne 1C. Le résultat sera une ligne de 1C.
  • Variable = Lion ("Musique", 2); // sera "Mu"
    Variable = mercredi ("Musique", 2, 2); // sera "shl"
    Variable = Droit ("Musique", 2); // sera "ka"
    Diverses options pour obtenir une sous-chaîne à partir d'une chaîne 1C.
  • Variable = Rechercher ("Musique", "Shl"); // sera 3
    Recherchez une sous-chaîne dans la chaîne 1C, à partir du caractère 1.
  • Variable = StrLength ("Musique"); // sera 6
    Renvoie le nombre de caractères de la ligne 1C.
  • Rapport ("Bonjour") // dans la fenêtre de message en bas de la fenêtre 1C
    Avertissement ("Bonjour") // boîte de dialogue contextuelle
    État ("Bonjour") // dans la ligne d'état en bas à gauche
    .

Lancer des objets sur la ligne 1C

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

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

1. La méthode la plus simple consiste à utiliser la fonction Abréviation () ou Chaîne (). Vous pouvez utiliser la fonction REPRESENTATION () dans le corps 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 tout objet 1C pour l'utilisateur.

Pour un ouvrage de référence, ce sera son nom par défaut. Pour un document - le nom du document, le numéro et la date.

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

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

3. Il existe un moyen pour la plate-forme 1C de convertir n'importe quel objet 1C en chaîne. Il a migré de la version 1C 7.7. Ce format n'est pas compris par d'autres programmes, mais il est compris par un autre 1C, ce qui le rend facile à utiliser pour l'échange entre les bases 1C.

Chaîne = ValeurVSStringInter (Valeur1C); // récupère la ligne 1C à partir de la valeur 1C
ValueVFile ("C:\MyFile.txt", Value1C); // une autre option, nous obtenons un fichier avec une chaîne enregistrée à partir de la valeur 1C
Value1C = ValueFromStringInternal (chaîne); // retour de la ligne 1C
Value1C = ValueOfFile ("C:\MyFile.txt"); // retour du fichier

Modification des lignes 1C sur le formulaire

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

1. Le moyen 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 beaucoup moins souvent utilisée (mais appliquée!).

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

2. Pour afficher l'attribut de l'objet 1C (ouvrage/document de référence) ou l'attribut du formulaire (voir), le champ de saisie est le plus souvent utilisé. Il s'agit de l'outil le plus courant dans 1C pour le travail des utilisateurs avec des champs d'édition.

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

  • Coche Mode d'édition multiligne
  • Case à cocher Édition avancée (disponible si la case à cocher 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, vous devez ajouter un Champ dans le menu Champ Formulaire / Insérer. 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 à des données. Il est nécessaire d'écrire une fonction dans le gestionnaire d'événement OnOpen() du formulaire (voir) :

FormElements.ElementNameTextDocumentField.SetText (ValueString); // ici ValueString est le texte obtenu, par exemple, à partir des accessoires

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

ValueString = FormElements.ElementNameTextDocumentField.GetText (); // ValeurLa chaîne ici est les accessoires où nous stockons la valeur

5.Dans la version 1C 8.2.11, dans formulaires gérés apparu nouvelle opportunité représentation en ligne 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 réalisons la forme (ouvrage de référence, document, traitement, etc.) - ajoutez un attribut de type StorageValues
  • Dans la fonction ReadOnServer (), définissez le texte à partir des accessoires

    // ici Props est la propriété ajoutée de l'objet 1C
    // ici FormattedDocument est le nom du champ du formulaire à éditer
    &Sur le serveur

    FormattedDocument = CurrentObject.Props.Get ();
    Fin de la procédure

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

    &Sur le serveur
    Procédure pour ReadingOnServer (CurrentObject)
    CurrentObject.Props = NewValueStore (FormattedDocument);
    Fin de la procédure