Διαφήμιση

Σπίτι - Windows
Νέες λειτουργίες για εργασία με χορδές. Νέες λειτουργίες για εργασία με συμβολοσειρές Λειτουργίες με συμβολοσειρές 1c

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

Προσθήκη χορδής

Για να προσθέσετε σειρές σε ένα ερώτημα, χρησιμοποιείται η λειτουργία "+". Μπορείτε να προσθέσετε μόνο χορδές περιορισμένου μήκους.

ΕΠΙΛΟΓΗ "Όνομα: " + Όνομα AS Στήλη 1 FROM Αντισυμβαλλόμενοι ΩΣ Αντισυμβαλλόμενοι ΠΟΥ = &Σύνδεσμος

Συνάρτηση υποσυμβολοσειράς

SUBSTRING(<Строка>, <НачальнаяПозиция>, <Длина>)

Ένα ανάλογο της συνάρτησης Environment() από το μοντέλο αντικειμένου. Η συνάρτηση Substring() μπορεί να εφαρμοστεί σε δεδομένα συμβολοσειράς και σας επιτρέπει να επιλέξετε ένα τμήμα <Строки> , ξεκινώντας από τον αριθμό χαρακτήρα <НачальнаяПозиция> (οι χαρακτήρες σε μια γραμμή αριθμούνται ξεκινώντας από το 1) και το μήκος <Длина> χαρακτήρες. Το αποτέλεσμα του υπολογισμού της συνάρτησης έχει τύπο συμβολοσειράς μεταβλητού μήκους και το μήκος θα θεωρείται απεριόριστο εάν <Строка> έχει απεριόριστο μήκος και παράμετρο <Длина> δεν είναι σταθερά ή μεγαλύτερη από 1024.

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

Προσοχή!Η χρήση της συνάρτησης SUBSTRING() για τη μετατροπή συμβολοσειρών απεριόριστου μήκους σε συμβολοσειρές περιορισμένου μήκους δεν συνιστάται. Αντίθετα, είναι καλύτερο να χρησιμοποιήσετε τον τελεστή cast EXPRESS().

Λειτουργία Παρόμοια

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

ΕΠΙΛΕΞΤΕ Αντισυμβαλλόμενοι Όνομα AS Στήλη 1 FROM Αντισυμβαλλόμενοι ΩΣ Αντισυμβαλλόμενοι.

Τι γίνεται όμως αν χρειάζεστε μια πιο λεπτή σύγκριση; Όχι μόνο ισότητα ή ανισότητα, αλλά ομοιότητα με ένα συγκεκριμένο πρότυπο; Για αυτό ακριβώς δημιουργήθηκε η συνάρτηση SIMILAR.

LIKE — Τελεστής για τον έλεγχο μιας συμβολοσειράς για ομοιότητα με ένα μοτίβο. Αναλογικό του LIKE σε SQL.

Ο τελεστής SIMILAR σάς επιτρέπει να συγκρίνετε την τιμή της έκφρασης που καθορίζεται στα αριστερά της με τη συμβολοσειρά μοτίβου που καθορίζεται στα δεξιά. Η τιμή της έκφρασης πρέπει να είναι τύπου string. Εάν η τιμή της παράστασης ταιριάζει με το μοτίβο, το αποτέλεσμα του τελεστή θα είναι TRUE, διαφορετικά θα είναι FALSE.

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

  • % (ποσοστό): μια ακολουθία που περιέχει οποιονδήποτε αριθμό αυθαίρετων χαρακτήρων.
  • _ (υπογράμμιση): ένας αυθαίρετος χαρακτήρας.
  • […] (ένας ή περισσότεροι χαρακτήρες σε αγκύλες): οποιοσδήποτε μεμονωμένος χαρακτήρας παρατίθεται μέσα στις αγκύλες. Η απαρίθμηση μπορεί να περιέχει εύρη, για παράδειγμα a-z, που σημαίνει έναν αυθαίρετο χαρακτήρα που περιλαμβάνεται στο εύρος, συμπεριλαμβανομένων των άκρων του εύρους.
  • [^...] (σε αγκύλες ένα σύμβολο άρνησης ακολουθούμενο από έναν ή περισσότερους χαρακτήρες): οποιοσδήποτε μεμονωμένος χαρακτήρας εκτός από αυτούς που παρατίθενται μετά το σύμβολο άρνησης.

Οποιοδήποτε άλλο σύμβολο σημαίνει τον εαυτό του και δεν φέρει κανένα πρόσθετο φορτίο. Εάν ένας από τους χαρακτήρες που αναφέρονται πρέπει να γραφτεί ως ο ίδιος, τότε πρέπει να προηγείται<Спецсимвол>. Εγώ ο ίδιος<Спецсимвол>(οποιοσδήποτε κατάλληλος χαρακτήρας) ορίζεται στην ίδια πρόταση μετά τη λέξη-κλειδί ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ.

Σημειώσεις από το Through the Looking Glass

18/08/2014 Νέες λειτουργίες για εργασία με χορδές

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ωστόσο, η χρήση της νέας δυνατότητας φαίνεται πιο εύκολη. Και εκτός από αυτό, μια συνάρτηση, σε αντίθεση με ένα αντικείμενο Σύγκριση Αξιών, λειτουργεί τόσο στον thin client όσο και στον web client.

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

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

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

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

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

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

Αντί για την παλιά λειτουργία Εύρημα()Έχουμε εφαρμόσει μια νέα λειτουργία που έχει πρόσθετες δυνατότητες:

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

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

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

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

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

Τιμή γραμμής 1C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Φέρνοντας αντικείμενα στη γραμμή 1C

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

  • Στη συνάρτηση BeforeWritingOnServer() ή χρησιμοποιώντας το κουμπί, θα γράψουμε το κείμενο από το πεδίο

    &Στον διακομιστή
    Διαδικασία κατά την ανάγνωση στον διακομιστή (Τρέχον αντικείμενο)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Τέλος Διαδικασίας

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

Γραμμή

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

String(False) // επιστρέφει "Όχι"
Το String(12345) // επιστρέφει "12.345"
String(CurrentDate()) //"07/21/2017 11:55:36"

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

SokrLP, SokrL, SokrP

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

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

Λέων, Δεξιά, Μεσαίο

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

Lev("String variable", 4) // επιστρέφει "Str"
Right("String variable", 7) // επιστρέφει "variable"
Medium("String variable", 2, 5) // επιστρέφει "troko"

StrLength

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

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

Εύρημα

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

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

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

EmptyString

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

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

VReg, NReg, Treg

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

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

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

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

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

StrNumberLines

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

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

Για ind = 1 κατά StrNumber of Strings ("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") Κύκλος
<тело цикла>
EndCycle;

StrGetString

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

StrGetString("String1" + Characters.PS + "String2" + Characters.PS + "String3", 2) // επιστροφή "String2"

ΣελίδαΑριθμόςΕκδηλώσεις

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

Η συνάρτηση StrNumberAttachments("a;b;c;d; ", ";") // θα επιστρέψει τον αριθμό 4

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

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

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

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

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

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

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

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

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

Το String(1000) // επιστρέφει "1.000"

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

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

String(Format(1000,"HG=")) // επιστρέφει "1000"

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

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

Header = String("Horns and Hooves LLC - that's us!") // θα επιστρέψει "Horns and Hooves LLC - that's us!"

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

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

MultilineText = "First Line" + Symbols.PS + "Second Line"

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

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

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

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

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

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

StringNoSpaces = StrReplace("hello","") // επιστρέφει "γεια"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



 


Ανάγνωση:



Κωδικοί προσφοράς Pandao για πόντους

Κωδικοί προσφοράς Pandao για πόντους

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

Εγκατάσταση πρόσθετης μνήμης RAM

Εγκατάσταση πρόσθετης μνήμης RAM

«Οι αρχές της φυσικής απομνημόνευσης βασίζονται στις νευρικές συνδέσεις που δημιουργούνται στον εγκέφαλο», λέει η Olga Zimnyakova, νευρολόγος...

Τι να κάνετε εάν τα ακουστικά δεν αναπαράγουν ήχο σε φορητό υπολογιστή

Τι να κάνετε εάν τα ακουστικά δεν αναπαράγουν ήχο σε φορητό υπολογιστή

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

Κατάλογος διόδων Ανορθωτές δίοδοι υψηλής ισχύος 220V

Κατάλογος διόδων Ανορθωτές δίοδοι υψηλής ισχύος 220V

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

τροφοδοσία-εικόνα RSS