Βρείτε κενά στη γραμμή 1c 8. Νέες συναρτήσεις για εργασία με χορδές. Λειτουργίες μετατροπής θήκης

Μια συμβολοσειρά είναι ένας από τους πρωτόγονους τύπους δεδομένων στο 1C: Enterprise 8. Μεταβλητές με τον τύπο γραμμήπεριέχει κείμενο.

Τιμές μεταβλητών τύπου γραμμήπερικλείονται σε διπλά εισαγωγικά. Πολλαπλές Μεταβλητές αυτού του τύπουμπορεί να διπλωθεί.

Per1 = "Λέξη 1";
Per2 = "Λέξη 2";
Per3 = Per1 + "" + Per2;

Τελικά Per3θα σημαίνει " Λέξη 1 Λέξη 2 ″.

Επιπλέον, τα συστήματα 1C: Enterprise 8 παρέχουν λειτουργίες για εργασία με χορδές. Ας εξετάσουμε τα κυριότερα:

Εισαγάγετε συμβολοσειρά (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — η συνάρτηση προορίζεται να εμφανίσει ένα παράθυρο διαλόγου στο οποίο ο χρήστης μπορεί να καθορίσει την τιμή μιας μεταβλητής του τύπου Γραμμή... Παράμετρος <Строка> απαιτείται και περιέχει το όνομα της μεταβλητής στην οποία θα γραφεί η εισαγόμενη συμβολοσειρά. Παράμετρος <Подсказка> προαιρετικός είναι ο τίτλος του πλαισίου διαλόγου. Παράμετρος <Длина> προαιρετικό, υποδεικνύει το μέγιστο μήκος της συμβολοσειράς εισόδου. Η προεπιλογή είναι μηδέν, που σημαίνει απεριόριστο μήκος. Παράμετρος <Многострочность> προαιρετικός. Καθορίζει τη λειτουργία εισαγωγής κειμένου πολλών γραμμών: True - εισαγωγή κειμένου πολλών γραμμών με διαχωριστικά γραμμών. False - εισαγωγή απλής συμβολοσειράς.

Η συμβολοσειρά μπορεί να εισαχθεί και να δοθεί ο κωδικός χαρακτήρων Unicode:

Σύμβολο(<КодСимвола>) — ο κωδικός εισάγεται ως αριθμός.

Γράμμα = Σύμβολο (1103); // ΕΙΜΑΙ

Υπάρχει επίσης μια αντίστροφη συνάρτηση που σας επιτρέπει να μάθετε τον κωδικό ενός χαρακτήρα.

Κωδικός συμβόλου (<Строка>, <НомерСимвола>) — επιστρέφει τον καθορισμένο αριθμό χαρακτήρων Unicode ως αριθμό.

Λειτουργίες μετατροπής θήκης:

Μπρεγκ (<Строка>) - μετατρέπει όλους τους χαρακτήρες της συμβολοσειράς σε κεφαλαία.

HPreg (<Строка>) - μετατρέπει όλους τους χαρακτήρες μιας συμβολοσειράς σε πεζούς.

Treg (<Строка>) - μετατρέπει όλους τους χαρακτήρες μιας συμβολοσειράς σε κεφαλαία. Δηλαδή, τα πρώτα γράμματα σε όλες τις λέξεις μετατρέπονται σε κεφαλαία και τα υπόλοιπα γράμματα σε πεζά.

Λειτουργίες αναζήτησης και αντικατάστασης χαρακτήρων σε μια συμβολοσειρά:

Εύρημα(<Строка>, <ПодстрокаПоиска>) - βρίσκει τον αριθμό χαρακτήρων της εμφάνισης της υποσυμβολοσειράς αναζήτησης. Για παράδειγμα:

Εύρεση ("String", "Oka"); // 4

Εύρημα (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - βρίσκει τον αριθμό χαρακτήρα της εμφάνισης της υποσυμβολοσειράς αναζήτησης, ο αριθμός εμφάνισης υποδεικνύεται στην αντίστοιχη παράμετρο. Σε αυτήν την περίπτωση, η αναζήτηση ξεκινά με τον χαρακτήρα, ο αριθμός του οποίου καθορίζεται στην παράμετρο Αρχική θέση.Η αναζήτηση είναι δυνατή από την αρχή ή από το τέλος της συμβολοσειράς. Για παράδειγμα:

Number4 Occurrences = StrFind ( «Αμυντική ικανότητα», "o", Κατεύθυνση αναζήτησης. Από την αρχή, 1, 4). // 7

Αντικατάσταση (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - βρίσκει όλες τις εμφανίσεις της υποσυμβολοσειράς αναζήτησης στην αρχική συμβολοσειρά και την αντικαθιστά με την υποσυμβολοσειρά αντικατάστασης.

StrReplace ("String", "Oka", ""); // Σελίδα

Κενή γραμμή(<Строка>) - ελέγχει μια συμβολοσειρά για σημαντικούς χαρακτήρες. Εάν δεν υπάρχουν σημαντικοί χαρακτήρες ή δεν υπάρχουν καθόλου χαρακτήρες, τότε η τιμή επιστρέφεται Αληθής... Σε διαφορετική περίπτωση - Ψέμα.

StrΑριθμός εμφανίσεων (<Строка>, <ПодстрокаПоиска>) - υπολογίζει τον αριθμό των εμφανίσεων της υποσυμβολοσειράς αναζήτησης στην αρχική συμβολοσειρά.

StrΑριθμός εμφανίσεων ( "Μελέτη, μελέτη και μελέτη ξανά", "να διαβάσω" , "" ) ; // 3

StrPattern (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — αντικαθιστά τις παραμέτρους στη συμβολοσειρά με αριθμό. Η συμβολοσειρά πρέπει να περιέχει δείκτες αντικατάστασης της μορφής: "% 1 ..% N". Οι δείκτες αριθμούνται ξεκινώντας από το 1. Εάν η τιμή της παραμέτρου Απροσδιόριστος, αντικαθίσταται μια κενή συμβολοσειρά.

StrPattern ( "Παράμετρος 1 =% 1, Παράμετρος 2 =% 2", "1" , "2" ) ; // Παράμετρος 1 = 1, Παράμετρος 2 = 2

Συναρτήσεις μετατροπής συμβολοσειρών:

Ενα λιοντάρι(<Строка>, <ЧислоСимволов>) - επιστρέφει πρώτα τους πρώτους χαρακτήρες της συμβολοσειράς.

Σωστά (<Строка>, <ЧислоСимволов>) - επιστρέφει τους τελευταίους χαρακτήρες της συμβολοσειράς.

Τετάρτη (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - επιστρέφει μια σειρά μήκους<ЧислоСимволов>ξεκινώντας από τον χαρακτήρα<НачальныйНомер>.

AbbrL (<Строка>) περικόπτει ασήμαντους χαρακτήρες στα αριστερά του πρώτου σημαντικού χαρακτήρα της συμβολοσειράς.

Συντομογραφία (<Строка>) - κόβει ασήμαντους χαρακτήρες στα δεξιά του τελευταίου σημαντικού χαρακτήρα της συμβολοσειράς.

SocrLP (<Строка>) - κόβει ασήμαντους χαρακτήρες στα αριστερά του πρώτου σημαντικού χαρακτήρα στη γραμμή και στα δεξιά του τελευταίου σημαντικού χαρακτήρα στη γραμμή.

StrGetString (<Строка>, <НомерСтроки>) - παίρνει μια συμβολοσειρά πολλών γραμμών ανά αριθμό.

Άλλες λειτουργίες:

StrLength (<Строка>) - επιστρέφει τον αριθμό των χαρακτήρων σε μια συμβολοσειρά.

StrΑριθμός Γραμμών (<Строка>) - επιστρέφει τον αριθμό των γραμμών σε μια συμβολοσειρά πολλών γραμμών. Μια γραμμή θεωρείται νέα εάν διαχωρίζεται από την προηγούμενη γραμμή με χαρακτήρα νέας γραμμής.

Συγκρίνω (<Строка1>, <Строка2> ) - συγκρίνει δύο χορδές, χωρίς διάκριση πεζών-κεφαλαίων. Η συνάρτηση λειτουργεί με τον ίδιο τρόπο όπως ένα αντικείμενο Σύγκριση Αξιών... Επιστροφές:

  • 1 - εάν η πρώτη γραμμή είναι μεγαλύτερη από τη δεύτερη
  • -1 - εάν η δεύτερη γραμμή είναι μεγαλύτερη από την πρώτη
  • 0 - αν οι χορδές είναι ίσες

StrCompare ("Πρώτη γραμμή", "Δεύτερη γραμμή"); // ένας

Υλοποιήθηκε στην έκδοση 8.3.6.1977.

Έχουμε επεκτείνει το σύνολο των συναρτήσεων για την εργασία με χορδές. Το κάναμε αυτό για να σας προσφέρουμε πιο προηγμένα εργαλεία για την ανάλυση δεδομένων συμβολοσειράς. Οι νέες λειτουργίες θα είναι βολικές και χρήσιμες σε τεχνολογικές εργασίες ανάλυσης κειμένου. Σε εργασίες που σχετίζονται με την ανάλυση κειμένου που περιέχει μορφοποιημένα δεδομένα. Αυτό μπορεί να είναι η ανάλυση ορισμένων αρχείων που λαμβάνονται από τον εξοπλισμό ή, για παράδειγμα, η ανάλυση ενός τεχνολογικού αρχείου καταγραφής.

Όλες οι ενέργειες που εκτελούν νέες λειτουργίες, θα μπορούσατε να τις εκτελέσετε πριν. Με τη βοήθεια περισσότερο ή λιγότερο πολύπλοκων αλγορίθμων γραμμένων σε ενσωματωμένη γλώσσα. Επομένως, οι νέες λειτουργίες δεν σας δίνουν ουσιαστικά νέες δυνατότητες. Ωστόσο, μπορούν να μειώσουν την ποσότητα του κώδικα, να κάνουν τον κώδικα πιο απλό και πιο κατανοητό. Και εκτός αυτού, σας επιτρέπουν να επιταχύνετε την εκτέλεση των ενεργειών. Επειδή οι λειτουργίες που υλοποιούνται στην πλατφόρμα λειτουργούν, φυσικά, πιο γρήγορα από έναν παρόμοιο αλγόριθμο γραμμένο σε μια ενσωματωμένη γλώσσα.

Συνάρτηση μορφοποίησης StrPattern ()

Αυτή η συνάρτηση αντικαθιστά τις παραμέτρους σε μια συμβολοσειρά. Η ανάγκη για μια τέτοια μετατροπή προκύπτει συχνά, για παράδειγμα, κατά την εμφάνιση προειδοποιητικών μηνυμάτων. Η σύνταξη αυτής της συνάρτησης είναι η εξής:

StrPattern (<Шаблон>, <Значение1-Значение10>)

<Шаблон>είναι μια συμβολοσειρά που αντικαθιστά τις αναπαραστάσεις παραμέτρων.

<Значение1> , ... <Значение10>- αυτές είναι παράμετροι (μέγιστο - δέκα), οι αναπαραστάσεις των οποίων πρέπει να αντικατασταθούν στη συμβολοσειρά.

Για να υποδείξετε μια συγκεκριμένη θέση στο πρότυπο όπου θέλετε να πραγματοποιήσετε αντικατάσταση, πρέπει να χρησιμοποιήσετε διακριτικά της μορφής% 1, ...% 10. Ο αριθμός των δεικτών που χρησιμοποιούνται στο πρότυπο και ο αριθμός των παραμέτρων που περιέχουν τιμές πρέπει να είναι ο ίδιος.

Για παράδειγμα, το αποτέλεσμα της εκτέλεσης μιας τέτοιας δήλωσης:

θα υπάρχει μια γραμμή:

Σφάλμα δεδομένων στη γραμμή 2 (απαιτείται τύπος ημερομηνίας)

Λειτουργία για εργασία με συμβολοσειρές StrCompare ()

Αυτή η συνάρτηση συγκρίνει δύο συμβολοσειρές με τρόπο χωρίς διάκριση πεζών-κεφαλαίων. Για παράδειγμα, όπως αυτό:

Θα μπορούσατε να είχατε εκτελέσει την ίδια ενέργεια νωρίτερα χρησιμοποιώντας το αντικείμενο Σύγκριση τιμών:

Ωστόσο, η χρήση της νέας λειτουργίας φαίνεται πιο απλή. Και εκτός από αυτό, η συνάρτηση, σε αντίθεση με το αντικείμενο σύγκρισης τιμών, λειτουργεί επίσης λεπτός πελάτηςκαι στο πρόγραμμα-πελάτη Ιστού.

Λειτουργίες για εργασία με συμβολοσειρές RowStart With (), RREnd With ()

Αυτές οι συναρτήσεις καθορίζουν εάν μια συμβολοσειρά αρχίζει με μια καθορισμένη υποσυμβολοσειρά ή τελειώνει με μια καθορισμένη υποσυμβολοσειρά. Ο αλγόριθμος αυτών των συναρτήσεων δεν είναι δύσκολο να εφαρμοστεί στην ενσωματωμένη γλώσσα, αλλά η παρουσία τους σας επιτρέπει να γράψετε καθαρότερο και πιο κατανοητό κώδικα. Και λειτουργούν πιο γρήγορα.

Για παράδειγμα, είναι βολικό να τα χρησιμοποιήσετε στον χειριστή Εάν:

Λειτουργίες για εργασία με συμβολοσειρές StrSplit (), StrConnect ()

Αυτές οι συναρτήσεις χωρίζουν τη συμβολοσειρά σε μέρη σύμφωνα με τον καθορισμένο οριοθέτη. Ή αντίστροφα, συνδυάζουν πολλές γραμμές σε μία, εισάγοντας το επιλεγμένο διαχωριστικό μεταξύ τους. Είναι βολικά για τη δημιουργία ή την ανάλυση αρχείων καταγραφής, τεχνολογικών αρχείων καταγραφής. Για παράδειγμα, μπορείτε εύκολα να αποσυναρμολογήσετε μια εγγραφή ενός τεχνολογικού αρχείου καταγραφής σε μέρη κατάλληλα για περαιτέρω ανάλυση:

Λειτουργία για εργασία με συμβολοσειρές StrFind ()

Αντί για την παλιά συνάρτηση Find (), εφαρμόσαμε νέα λειτουργία, το οποίο διαθέτει επιπλέον χαρακτηριστικά:

  • Αναζήτηση σε διαφορετικές κατευθύνσεις (από την αρχή, από το τέλος).
  • Αναζήτηση από μια καθορισμένη θέση.
  • Αναζήτηση για ένα περιστατικό με τον καθορισμένο αριθμό (δεύτερο, τρίτο, κ.λπ.).

Στην πραγματικότητα, αντιγράφει τις δυνατότητες της παλιάς λειτουργίας. Αυτό γίνεται για να διατηρηθεί η συμβατότητα με ενότητες που έχουν μεταγλωττιστεί σε παλαιότερες εκδόσεις. Συνιστούμε να μην χρησιμοποιείτε πλέον την παλιά συνάρτηση Εύρεση ().

Ακολουθεί ένα παράδειγμα χρήσης των νέων δυνατοτήτων αναζήτησης. Η αναζήτηση προς τα πίσω είναι χρήσιμη όταν χρειάζεστε, για παράδειγμα, το τελευταίο κομμάτι μιας επίσημης συμβολοσειράς πλήρες όνομααρχείο σε url. Και η αναζήτηση από μια καθορισμένη θέση βοηθάει σε περιπτώσεις που χρειάζεται να κάνετε αναζήτηση σε ένα γνωστό κομμάτι και όχι σε ολόκληρη τη συμβολοσειρά.

Ο τύπος "String" βρίσκεται σε όλες τις γλώσσες προγραμματισμού. Είναι πρωτόγονο και στο 1C υπάρχουν πολλές λειτουργίες για να δουλέψετε μαζί του. Σε αυτό το άρθρο, θα ρίξουμε μια πιο προσεκτική ματιά διαφορετικοί τρόποιεργασία με τύπους συμβολοσειρών στο 1C 8.3 και 8.2 με παραδείγματα.

Γραμμή

Για να μετατρέψετε μια μεταβλητή οποιουδήποτε τύπου σε συμβολοσειρά, υπάρχει μια συνάρτηση με το ίδιο όνομα "String ()". Η παράμετρος εισόδου θα είναι η ίδια η μεταβλητή, η αναπαράσταση συμβολοσειράς της οποίας θα ληφθεί.

Η συμβολοσειρά (False) // επιστρέφει "Όχι"
Η συμβολοσειρά (12345) // επιστρέφει "12 345"
Συμβολοσειρά (Τρέχουσα Ημερομηνία ()) // 21/07/2017 11:55:36 ″

Είναι δυνατή η μετατροπή όχι μόνο πρωτόγονων τύπων σε συμβολοσειρά, αλλά και άλλων, για παράδειγμα, στοιχεία βιβλίων αναφοράς, έγγραφα.

SocrLP, SocrL, SocrP

Οι παράμετροι εισόδου αυτών των συναρτήσεων είναι μια μεταβλητή τύπου συμβολοσειράς. Οι συναρτήσεις αφαιρούν ασήμαντους χαρακτήρες (κενά, επιστροφές μεταφοράς και άλλα): από την αριστερή και τη δεξιά πλευρά, μόνο από την αριστερή πλευρά και μόνο από τη δεξιά, αντίστοιχα.

AbbrLP ("Θα αφαιρεθούν κενά και στις δύο πλευρές") // "Θα αφαιρεθούν κενά και στις δύο πλευρές"
Συντομογραφία ("Θα αφαιρεθούν τα κενά και στις δύο πλευρές") // "Τα κενά στα αριστερά θα αφαιρεθούν"
Συντομογραφία ("Θα αφαιρεθούν τα κενά και στις δύο πλευρές") // "Τα κενά στα δεξιά θα αφαιρεθούν"

Λέων, Σωστά, Τετάρτη

Αυτές οι λειτουργίες σάς επιτρέπουν να κόψετε μέρος μιας συμβολοσειράς. Η συνάρτηση "Lion ()" θα επιστρέψει το τμήμα της συμβολοσειράς από την αριστερή πλευρά του καθορισμένου μήκους. Η λειτουργία "Δεξιά ()" είναι η ίδια, αλλά η περικοπή γίνεται στα δεξιά. Η συνάρτηση "Avg ()" σάς επιτρέπει να καθορίσετε τον αριθμό του χαρακτήρα από τον οποίο θα επιλεγεί η συμβολοσειρά και το μήκος της.

Lion ("String variable", 4) // επιστρέφει "Stro"
Right ("String variable", 7) // επιστρέφει "variable"
Τετ ("Μεταβλητή συμβολοσειράς", 2, 5) // επιστρέφει "troco"

Μήκος Στρ

Η συνάρτηση καθορίζει τον αριθμό των χαρακτήρων που περιέχονται στη μεταβλητή συμβολοσειράς.

StrLength ("Word") // το αποτέλεσμα εκτέλεσης θα είναι ο αριθμός 5

Εύρημα

Η συνάρτηση καθιστά δυνατή την αναζήτηση ενός τμήματος μιας συμβολοσειράς σε οποιαδήποτε μεταβλητή συμβολοσειράς. Η επιστρεφόμενη τιμή θα είναι ένας αριθμός που δείχνει τη θέση της αρχής της συμβολοσειράς που βρέθηκε. Εάν δεν βρεθεί αντιστοιχία, επιστρέφεται το μηδέν.

Λάβετε υπόψη ότι οι αναζητήσεις κάνουν διάκριση πεζών-κεφαλαίων. Εάν η αρχική συμβολοσειρά περιέχει περισσότερες από μία εμφανίσεις της υποσυμβολοσειράς αναζήτησης, η συνάρτηση θα επιστρέψει την αρχή της πρώτης εμφάνισης.

Εύρεση ("ένα, δύο, ένα, δύο, τρία", "δύο") // η συνάρτηση θα επιστρέψει τον αριθμό 6

Κενή γραμμή

Η χρήση αυτής της συνάρτησης σάς επιτρέπει να προσδιορίσετε εάν μια συμβολοσειρά είναι κενή. Ασήμαντοι χαρακτήρες όπως το διάστημα, η επιστροφή άμαξα και άλλοι αγνοούνται.

EmptyString ("Pupkin Vasily Ivanovich") // η συνάρτηση θα επιστρέψει την τιμή False
Η συνάρτηση EmptyString ("") // θα επιστρέψει True

VReg, NReg, Treg

Αυτές οι συναρτήσεις είναι πολύ χρήσιμες για τη σύγκριση και τη μετατροπή μεταβλητών συμβολοσειρών. Η Breg () θα επιστρέψει την αρχική συμβολοσειρά με κεφαλαία, η HPreg () με πεζά και η TRreg () θα τη μορφοποιήσει έτσι ώστε ο πρώτος χαρακτήρας κάθε μεμονωμένης λέξης να είναι με κεφαλαίο γράμμα, και όλα τα επόμενα με ένα μικρό.

Vreg ("ΓΕΝΙΚΟΣ ΔΙΕΥΘΥΝΤΗΣ") // τιμή επιστροφής - "ΓΕΝΙΚΟΣ ΔΙΕΥΘΥΝΤΗΣ"
НReg ("ΓΕΝΙΚΟΣ ΔΙΕΥΘΥΝΤΗΣ") // τιμή επιστροφής - "γενικός διευθυντής"
TREG ("ΓΕΝΙΚΟΣ ΔΙΕΥΘΥΝΤΗΣ") // επιστρεφόμενη τιμή - "Γενικός Διευθυντής"

Αντικατάσταση σελίδας

Αυτή η λειτουργία είναι ανάλογη με την αντικατάσταση στο συντάκτες κειμένου... Σας επιτρέπει να αντικαταστήσετε έναν χαρακτήρα ή σύνολο χαρακτήρων με ένα άλλο σε μεταβλητές συμβολοσειράς.

StrReplace ("κόκκινο, λευκό, κίτρινο", ",", ";") // θα επιστρέψει "κόκκινο; Ασπρο; κίτρινος"

StrNumberStrings

Η συνάρτηση σάς επιτρέπει να προσδιορίσετε τον αριθμό των γραμμών που χωρίζονται από επιστροφές μεταφοράς σε μια μεταβλητή κειμένου.

Ο βρόχος στο παρακάτω παράδειγμα θα περάσει από τρεις κύκλους επειδή η συνάρτηση RowNumber of Rows θα επιστρέψει μια τιμή 3:

Για ind = 1 από StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Βρόχος
<тело цикла>
Τέλος Κύκλου;

StrGetString

Αυτή η συνάρτηση λειτουργεί με κείμενο πολλών γραμμών με τον ίδιο τρόπο όπως η προηγούμενη. Σας επιτρέπει να λάβετε μια συγκεκριμένη συμβολοσειρά από μια μεταβλητή κειμένου.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // θα επιστρέψει "String2"

StrΑριθμός εμφανίσεων

Η συνάρτηση μετράει τον αριθμό των εμφανίσεων ενός χαρακτήρα ή υποσυμβολοσειράς στη συμβολοσειρά αναζήτησης.

Σειρά συνημμένων ("a; β; γ; δ;", ";") // η συνάρτηση θα επιστρέψει τον αριθμό 4

Σύμβολο και κωδικός συμβόλου

Αυτές οι λειτουργίες σάς επιτρέπουν να λάβετε έναν χαρακτήρα από τον κωδικό Unicode του, καθώς και να προσδιορίσετε αυτόν τον κωδικό από τον ίδιο τον χαρακτήρα.

SymbolCode ("A") // η συνάρτηση θα επιστρέψει τον αριθμό 1 040
SymbolCode (1040) // η συνάρτηση θα επιστρέψει "A"

Συχνές εργασίες κατά την εργασία με χορδές

Συνδεόμενες χορδές

Για να συνδέσετε πολλές συμβολοσειρές (για να πραγματοποιήσετε συνένωση), αρκεί να χρησιμοποιήσετε τον τελεστή πρόσθεσης.

"Γραμμή 1 ″ +" Γραμμή 2 ″ // το αποτέλεσμα της προσθήκης δύο γραμμών θα είναι "Γραμμή 1 Γραμμή 2"

Μετατροπή τύπου

Για να μετατρέψετε έναν τύπο σε συμβολοσειρά, για παράδειγμα, μια αναφορά σε ένα στοιχείο λεξικού, έναν αριθμό κ.λπ., αρκεί να χρησιμοποιήσετε τη συνάρτηση "String ()". Συναρτήσεις όπως η "Συντομογραφία ()" θα μετατρέψουν επίσης τις μεταβλητές σε συμβολοσειρά, αλλά αμέσως με την περικοπή ασήμαντων χαρακτήρων.

Η συμβολοσειρά (1000) // θα επιστρέψει "1000"

Λάβετε υπόψη ότι κατά τη μετατροπή ενός αριθμού σε συμβολοσειρά, το πρόγραμμα πρόσθεσε αυτόματα ένα διάστημα που χωρίζει χίλια. Για να αποφύγετε αυτό, μπορείτε να χρησιμοποιήσετε τις ακόλουθες κατασκευές:

StrReplace (String (1000), Characters.NPP, "") // θα επιστρέψει "1000"

Η συμβολοσειρά (Μορφή (1000, "CHG =")) // θα επιστρέψει "1000"

Εισαγωγικά σε μια συμβολοσειρά

Αρκετά συχνά, θα πρέπει να αντιμετωπίσετε την ανάγκη να καθορίσετε εισαγωγικά σε μια μεταβλητή συμβολοσειράς. Μπορεί να είναι είτε ένα κείμενο αίτησης γραμμένο στον διαμορφωτή, είτε απλώς μια μεταβλητή. Για να λύσετε αυτό το πρόβλημα, πρέπει απλώς να ορίσετε δύο εισαγωγικά.

Title = String ("Horns and Hooves LLC" - αυτό είμαστε! ") // επιστρέφει" Horns and Hooves LLC - είμαστε εμείς!"

Πολλαπλές γραμμές, αλλαγή γραμμής

Για να δημιουργήσετε κείμενο πολλών γραμμών, αρκεί να προσθέσετε χαρακτήρες αλλαγής γραμμής (Symbols.PS).

MultilineText = "Πρώτη γραμμή" + Symbols.PS + "Δεύτερη γραμμή"

Πώς να αφαιρέσετε κενά

Για να αφαιρέσετε κενά προς τα δεξιά ή προς τα αριστερά, μπορείτε να χρησιμοποιήσετε τη συνάρτηση "Συντομογραφία ()" (καθώς και "Συντομογραφία ()" και "Συντομογραφία ()"):

StringNoSpaces = AbbreviatedLP ("Πολλά γράμματα") // η συνάρτηση θα επιστρέψει την τιμή "Πολλά γράμματα"

Εάν, μετά τη μετατροπή ενός αριθμού σε συμβολοσειρά, πρέπει να αφαιρέσετε κενά που δεν διακόπτουν, χρησιμοποιήστε την ακόλουθη κατασκευή:

StringNoSpaces = StrReplace (String (99999), Characters.NPP, "") // θα επιστρέψει "99999"

Επίσης, οι προγραμματιστές χρησιμοποιούν συχνά την ακόλουθη κατασκευή, η οποία σας επιτρέπει να αφαιρέσετε ή να αντικαταστήσετε όλα τα κενά μιας μεταβλητής κειμένου με έναν άλλο χαρακτήρα:

StringNoSpaces = StrReplace ("καλώς ήρθατε", "", "") // επιστρέφει "γεια"

Σύγκριση χορδών μεταξύ τους

Οι όροι μπορούν να συγκριθούν με το συνηθισμένο πρόσημο ίσου. Η σύγκριση είναι διάκριση πεζών-κεφαλαίων.

"Hello" = "γεια" // θα επιστρέψει False
"Hello" = "Hello" // θα επιστρέψει True
"Hello" = "Αντίο" // θα επιστρέψει False

ΠΡΟΣ ΤΟ βασικές δυνατότητεςΗ γλώσσα προγραμματισμού συνήθως αναφέρεται ως εργασία με αριθμούς και συμβολοσειρές. Συνήθως αυτά τα χαρακτηριστικά κωδικοποιούνται στον κώδικα του μεταγλωττιστή (ή υλοποιούνται οι «βασικές» κλάσεις της γλώσσας προγραμματισμού).

Στο 1C, η δυνατότητα εργασίας με χορδές προγραμματίζεται στην ίδια την πλατφόρμα. Σήμερα θα εξετάσουμε τα χαρακτηριστικά της εργασίας με συμβολοσειρές 1C σε προγράμματα στην ενσωματωμένη γλώσσα 1C.

Η τιμή της γραμμής 1C

1. Ας ξεκινήσουμε με το πιο απλό. Η δημιουργία μιας μεταβλητής και η αντιστοίχιση μιας σταθερής τιμής συμβολοσειράς μοιάζει με αυτό στο 1C:

Μεταβλητή = "Γεια σου κόσμο!";

Εάν πρέπει να καθορίσετε έναν χαρακτήρα εισαγωγικού σε μια σταθερή τιμή συμβολοσειράς 1C, τότε πρέπει να το διπλασιάσετε ""

Μεταβλητή = "Γεια", "κόσμος" "!";

2. Η αλλαγή γραμμής 1C μπορεί να καθοριστεί με δύο τρόπους ταυτόχρονα. Το πρώτο χρησιμοποιεί το σύμβολο |

Μεταβλητή = "Γεια σας,
| ειρήνη! ";

Το δεύτερο χρησιμοποιεί την απαρίθμηση του συστήματος Συμβόλων. Σας επιτρέπει να προσθέσετε αλλαγές γραμμής 1C και άλλους μη εκτυπώσιμους χαρακτήρες, όπως το TAB.

Μεταβλητή = "Hello" + Symbols.PS + "world!";

3. Οι διαμορφώσεις στο 1C μπορούν να αναπτυχθούν όχι μόνο για μία γλώσσα (ρωσικά, αγγλικά ή άλλη) - αλλά ταυτόχρονα για πολλές γλώσσες. Σε αυτήν την περίπτωση, η γλώσσα που χρησιμοποιείται αυτήν τη στιγμή επιλέγεται στο κάτω μέρος του παραθύρου 1C.

Η λίστα των γλωσσών βρίσκεται στο παράθυρο διαμόρφωσης στον κλάδο General / Languages. Κάθε γλώσσα έχει ένα σύντομο αναγνωριστικό όπως ruή αγγλ.

Είναι σαφές ότι κατά τον προγραμματισμό μιας τέτοιας διαμόρφωσης, οι γραμμές 1C μπορούν επίσης να είναι πολύγλωσσες. Για να γίνει αυτό, είναι δυνατό να δημιουργηθεί μια τέτοια γραμμή 1C καθορίζοντας μέσω; επιλογές ανά αναγνωριστικό γλώσσας:

Variable = "ru =" "Γεια, κόσμο!" "; En =" "Γεια, κόσμο!" "";

Εάν χρησιμοποιείτε τη γραμμή 1C που σχηματίζεται με αυτόν τον τρόπο ως συνήθως, τότε θα είναι αυτό που γράφεται σε αυτήν. Για να το χωρίσει το σύστημα σε δύο επιλογές και να χρησιμοποιήσει την επιθυμητή, πρέπει να χρησιμοποιήσετε τη συνάρτηση HStr ():

// σωστό για δίγλωσσες διαμορφώσεις
Αναφορά (НStr (Μεταβλητή));

Στηρίγματα με γραμμή τύπου 1C

Απαραίτητη προϋπόθεση είναι ένα πεδίο αναφοράς / εγγράφου 1C. Διαφέρει από μια μεταβλητή σε ένα πρόγραμμα 1C στο ότι ο τύπος της (αριθμός, συμβολοσειρά 1C, κ.λπ.) υποδεικνύεται με ακρίβεια για ένα χαρακτηριστικό. Εάν πρέπει να μάθετε τι είναι τα στηρίγματα - παρακολουθήστε το μάθημα.

Εάν καθορίσετε τον τύπο του χαρακτηριστικού - γραμμή 1C, τότε πρέπει να καθορίσετε επιπλέον τις παραμέτρους.

Οι συμβολοσειρές 1C έχουν απεριόριστο μήκος (καθορίζεται ως μήκος = 0) και περιορισμένο μήκος, υποδεικνύοντας τον ακριβή αριθμό των χαρακτήρων. Οι γραμμές 1C απεριόριστου μήκους αποθηκεύονται σε ξεχωριστό πίνακας SQLεπομένως η χρήση τους είναι λιγότερο παραγωγική παρά περιορισμένη.

Αυτός είναι ο λόγος για τον οποίο η χρήση χορδών 1C απεριόριστου μήκους έχει τους δικούς της περιορισμούς - δεν είναι δυνατή η χρήση τους παντού. Για παράδειγμα, δεν μπορεί να χρησιμοποιηθεί ως αριθμός εγγράφου, κωδικός καταλόγου, διάσταση.

Εργασία με χορδές 1C

Υπάρχουν πολλές ενσωματωμένες λειτουργίες της πλατφόρμας 1C για εργασία με χορδές.

  • SocrLP ("Απίστευτο, αλλά αληθινό!")
    Αφαιρείται από τη γραμμή 1C επιπλέον χώρους... Μπορεί επίσης να χρησιμοποιηθεί για τη μετατροπή οποιωνδήποτε τύπων σε συμβολοσειρές 1C (για παράδειγμα, αριθμούς).
  • Μεταβλητή = "Vasya" + SokrLP ("συν") + "Olya"; // θα είναι "Vasya plus Olya"
    Ένα παράδειγμα άθροισης πολλών τιμών συμβολοσειράς 1C. Το αποτέλεσμα θα είναι μια γραμμή 1C.
  • Μεταβλητή = Λέων ("Μουσική", 2); // θα είναι "Mu"
    Μεταβλητή = Τετάρτη ("Μουσική", 2, 2); // θα είναι "shl"
    Μεταβλητή = Δεξιά ("Μουσική", 2); // θα είναι "ka"
    Διάφορες επιλογές για τη λήψη μιας υποσυμβολοσειράς από μια συμβολοσειρά 1C.
  • Μεταβλητή = Εύρεση ("Music", "Shl"); // θα είναι 3
    Αναζητήστε μια υποσυμβολοσειρά στη συμβολοσειρά 1C, ξεκινώντας από τον χαρακτήρα 1.
  • Μεταβλητή = StrLength ("Μουσική"); // θα είναι 6
    Επιστρέφει τον αριθμό των χαρακτήρων στη γραμμή 1C.
  • Αναφορά ("Hello") // στο παράθυρο μηνύματος στο κάτω μέρος του παραθύρου 1C
    Προειδοποίηση ("Hello") // αναδυόμενο παράθυρο διαλόγου
    Δηλώστε ("Hello") // στη γραμμή εμφάνισης κατάστασης κάτω αριστερά
    .

Χύτευση αντικειμένων στη γραμμή 1C

Όπως γνωρίζετε, η πιο δημοφιλής μορφή για την ανταλλαγή δομημένων πληροφοριών αυτή τη στιγμή είναι η XML. Ακόμη και τελευταία έκδοσηΚυρία Office Wordκαι το Excel αποθηκεύουν αρχεία σε αυτήν τη μορφή (docx και xlsx, αντίστοιχα, αλλάξτε την επέκταση σε zip, ανοίξτε στο αρχείο αρχειοθέτησης).

Η πλατφόρμα 1C για ανταλλαγή δεδομένων παρέχει πολλές επιλογές, η κύρια από τις οποίες είναι επίσης η XML.

1. Η απλούστερη μέθοδος είναι να χρησιμοποιήσετε τη συνάρτηση Abbreviation () ή String (). Στο σώμα του ερωτήματος, μπορείτε να χρησιμοποιήσετε τη συνάρτηση ΑΝΑΠΑΡΑΣΤΑΣΗ (). Το αποτέλεσμα της δράσης τους είναι το ίδιο - δημιουργούν μια παράσταση συμβολοσειράς οποιουδήποτε αντικειμένου 1C για τον χρήστη.

Για ένα βιβλίο αναφοράς, αυτό θα είναι το όνομά του από προεπιλογή. Για ένα έγγραφο - το όνομα του εγγράφου, ο αριθμός και η ημερομηνία.

2. Οποιοδήποτε αντικείμενο 1C (με περιορισμούς) μπορεί να μετατραπεί σε XML και αντίστροφα. Η διαδικασία μετατροπής ονομάζεται σειριοποίηση.

ViewStringXml = XMLString (Τιμή); // λάβετε XML από την τιμή 1C
Value1C = XMLValue (Τύπος ("ReferenceLink.Nomenclature"), ViewStringXml); // λάβετε την τιμή 1C από τη συμβολοσειρά XML, πρέπει να καθορίσετε τον τύπο 1C που πρέπει να ληφθεί

3. Υπάρχει ένας τρόπος της πλατφόρμας 1C να μετατρέψει οποιοδήποτε αντικείμενο 1C σε συμβολοσειρά. Μετακόμισε από την έκδοση 1C 7.7. Αυτή η μορφή δεν είναι κατανοητή από άλλα προγράμματα, αλλά γίνεται κατανοητή από ένα άλλο 1C, γεγονός που καθιστά εύκολη τη χρήση του για ανταλλαγή μεταξύ βάσεων 1C.

Συμβολοσειρά = ValueVSStringInter (Τιμή1C); // λάβετε τη γραμμή 1C από την τιμή 1C
ValueVFile ("C: \ MyFile.txt", Value1C); // μια άλλη επιλογή, λαμβάνουμε ένα αρχείο με μια αποθηκευμένη συμβολοσειρά από την τιμή 1C
Value1C = ValueFromStringInternal (String); // πίσω από τη γραμμή 1C
Value1C = ValueOfFile ("C: \ MyFile.txt"); // επιστροφή από το αρχείο

Επεξεργασία γραμμών 1C στη φόρμα

Εκτός από την εργασία με συμβολοσειρές 1C σε ένα πρόγραμμα 1C, φυσικά, θα ήθελα ο χρήστης να μπορεί να τις επεξεργαστεί. Υπάρχουν πολλές δυνατότητες για αυτό:

1. Ο ευκολότερος τρόπος είναι να ζητήσετε είσοδο της γραμμής 1C κατ' απαίτηση. Αυτή η μέθοδος χρησιμοποιείται κατά τη διδασκαλία του προγραμματισμού 1C, στην πραγματική ζωή χρησιμοποιείται πολύ λιγότερο συχνά (αλλά χρησιμοποιείται!).

Μεταβλητή = "";
String = EnterValue (Μεταβλητή, "Εισαγάγετε το πλήρες όνομά σας");

2. Για να εμφανίσετε το χαρακτηριστικό του αντικειμένου 1C (βιβλίο αναφοράς / έγγραφο) ή το χαρακτηριστικό της φόρμας (βλ.), το πεδίο εισαγωγής χρησιμοποιείται συχνότερα. Αυτό είναι το πιο κοινό εργαλείο στο 1C για εργασία χρήστη με πεδία επεξεργασίας.

3. Οι δυνατότητες του πεδίου εισαγωγής μπορούν να επεκταθούν (δείτε τις ιδιότητες του πεδίου εισαγωγής, κάντε δεξί κλικ πάνω του, για περισσότερες λεπτομέρειες):

  • Επιλέξτε Λειτουργία επεξεργασίας πολλαπλών γραμμών
  • Πλαίσιο ελέγχου Σύνθετη επεξεργασία (διαθέσιμο εάν είναι επιλεγμένο το προηγούμενο πλαίσιο ελέγχου)
  • Πλαίσιο ελέγχου Λειτουργία κωδικού πρόσβασης (βλ.).

4. Εάν δεν σας επαρκούν όλες οι δυνατότητες του πεδίου εισαγωγής, υπάρχει ενσωματωμένος επεξεργαστής. Για να το προσθέσετε στη φόρμα, πρέπει να προσθέσετε ένα Πεδίο στο μενού Φόρμα / Εισαγωγή ελέγχου. έγγραφο κειμένου... Στις ιδιότητες του, μπορείτε να καθορίσετε τον τρόπο λειτουργίας του - την ιδιότητα Επέκταση.

Ένα πεδίο εγγράφου κειμένου δεν μπορεί να συνδεθεί απευθείας με δεδομένα. Είναι απαραίτητο να γράψετε μια συνάρτηση στον χειριστή συμβάντων OnOpening () της φόρμας (δείτε):

FormElements.ElementNameTextDocumentField.SetText (ValueString); // εδώ ValueString είναι το κείμενο που λαμβάνεται, για παράδειγμα, από τα στηρίγματα

Και στον χειριστή αποθήκευσης - για παράδειγμα, στο κουμπί Αποθήκευση - προσθέστε μια αποθήκευση:

ValueString = FormElements.ElementNameTextDocumentField.GetText (); // ValueΗ συμβολοσειρά εδώ είναι τα στηρίγματα όπου αποθηκεύουμε την τιμή

5.Στην έκδοση 8.2.11 1C, σε διαχειριζόμενες φόρμεςεμφανίστηκε νέα ευκαιρίααναπαράσταση γραμμής 1C - Μορφοποιημένο πεδίο εγγράφου.


Παρόμοια με το πεδίο ενός εγγράφου κειμένου, είναι απαραίτητο να ορίσετε όταν ανοίγετε και να γράφετε όταν αποθηκεύετε μόνοι σας το κείμενο χρησιμοποιώντας το πρόγραμμα.

  • Στο αντικείμενο 1C, τη μορφή του οποίου φτιάχνουμε (βιβλίο αναφοράς, έγγραφο, επεξεργασία κ.λπ.) - προσθέστε ένα χαρακτηριστικό με τον τύπο αποθήκευσης
  • Στη συνάρτηση ReadOnServer (), ορίστε το κείμενο από τα στηρίγματα

    // εδώ Το Props είναι η προστιθέμενη ιδιότητα του αντικειμένου 1C
    // here FormattedDocument είναι το όνομα του πεδίου στη φόρμα προς επεξεργασία
    &Στον διακομιστή

    FormattedDocument = CurrentObject.Props.Get ();
    Τέλος Διαδικασίας

  • Στη συνάρτηση BeforeWriteOnServer () ή με το κουμπί, γράψτε το κείμενο από το πεδίο

    &Στον διακομιστή
    Διαδικασία για το ReadingOnServer (CurrentObject)
    CurrentObject.Props = NewValueStore (FormattedDocument);
    Τέλος Διαδικασίας