Funktion zum Finden des letzten Eintrags in der 1C-Buchhaltung. Funktionen zur Konvertierung der Groß- und Kleinschreibung von Texten

Zeilen in 1C 8.3 in der integrierten Sprache 1C repräsentieren Werte eines primitiven Typs Linie. Werte dieses Typs enthalten einen Unicode-String beliebiger Länge. Variablen vom Typ String sind eine Reihe von Zeichen, die in Anführungszeichen eingeschlossen sind.

Beispiel 1. Lassen Sie uns eine String-Variable mit Text erstellen.

StringVariable = "Hallo Welt!";

Funktionen zum Arbeiten mit Strings in 1s 8.3

In diesem Abschnitt werden die Hauptfunktionen bereitgestellt, mit denen Sie Zeilen in 1c ändern oder die darin enthaltenen Informationen analysieren können.

StrLength

StrLength(<Строка>) . Gibt die Anzahl der Zeichen zurück, die in der als Parameter übergebenen Zeichenfolge enthalten sind.

Beispiel 2. Zählen wir die Anzahl der Zeichen in der Zeile „Hallo Welt!“

String = "Hallo Welt!"; NumberofCharacters = StrLength(String); Report(NumberCharacters);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Anzahl der Zeichen in der Zeile: 11.

Abk.L

AbbrL(<Строка>) . Schneidet nicht signifikante Zeichen links vom ersten signifikanten Zeichen in der Zeichenfolge ab.
Nebenfiguren:

  • Raum;
  • geschützter Raum;
  • Tabellierung;
  • Wagenrücklauf;
  • Zeilenvorschub;
  • Übersetzung des Formulars (Seite).

Beispiel 3. Entfernen Sie alle Leerzeichen auf der linken Seite der Zeile „world!“. und fügen Sie die Zeile „Hallo“ hinzu.

String = Abkürzung("world!"); String = "Hallo"+String; Bericht(String);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Zeile „Hallo Welt!“ auf dem Bildschirm.

Abgekürzt

Abkürzung(<Строка>) . Schneidet nicht signifikante Zeichen rechts vom ersten signifikanten Zeichen in der Zeichenfolge ab.

Beispiel 4. Form aus den Zeilen „Hallo“ und „Frieden!“ der Satz „Hallo Welt!“

Line = Abbreviation("Hello ")+" "+ Abbreviation(" world!"); Bericht(String);

AbbrLP

AbbrLP(<Строка>) . Schneidet nicht signifikante Zeichen rechts vom ersten signifikanten Zeichen in der Zeichenfolge ab und schneidet außerdem nicht signifikante Zeichen links vom ersten signifikanten Zeichen in der Zeichenfolge ab. Diese Funktion wird häufiger verwendet als die beiden vorherigen, da sie universeller ist.

Beispiel 5. Entfernen Sie unbedeutende Zeichen links und rechts im Namen der Gegenpartei.

Gegenpartei = Verzeichnisse.Find By Details("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

Löwe

Löwe(<Строка>, <ЧислоСимволов>) . Ruft die ersten Zeichen der Zeichenfolge ab, die Anzahl der Zeichen wird im Parameter angegeben Anzahl der Zeichen.

Beispiel 6. Lassen Sie die Struktur ein Mitarbeiter enthalten den Vor-, Nachnamen und Vatersnamen des Mitarbeiters. Holen Sie sich eine Zeichenfolge mit Nachnamen und Initialen.

NameInitial = Lev(Employee.Name, 1); Patronymischer Anfangsbuchstabe = Löwe(Angestellter. Patronym, 1); FullName = Employee.LastName + " " + FirstName Initial + "."

+ Mittlerer Anfangsbuchstabe + „.“;

Rechts<Строка>, <ЧислоСимволов>) Rechts( Anzahl der Zeichen.. Ruft die letzten Zeichen einer Zeichenfolge ab, die Anzahl der im Parameter angegebenen Zeichen

Wenn die angegebene Anzahl von Zeichen die Länge der Zeichenfolge überschreitet, wird die gesamte Zeichenfolge zurückgegeben. Beispiel 7. Lassen Sie ein Datum im Format „JJJJMMTT“ am Ende einer Zeichenfolgenvariablen schreiben, erhalten Sie eine Zeichenfolge mit dem Datum und konvertieren Sie sie in einen Typ.

Datum

String = "Aktuelles Datum: 20170910"; StringDate = Rights(String, 8); Datum = Datum(StringDate);

Mittwoch<Строка>, <НачальныйНомер>, <ЧислоСимволов>) Mittwoch( Linie. Ruft eine Teilzeichenfolge aus der als Parameter übergebenen Zeichenfolge ab , beginnend mit dem Zeichen, dessen Nummer im Parameter angegeben ist Anfangsnummer Anzahl der Zeichen. und die Länge, die an den Parameter übergeben wird , beginnend mit dem Zeichen, dessen Nummer im Parameter angegeben ist Die Nummerierung der Zeichen in einer Zeile beginnt bei 1. Wenn im Parameter Wird ein Wert kleiner oder gleich Null angegeben, dann nimmt der Parameter den Wert 1 an. Wenn der Parameter Anzahl der Zeichen

nicht angegeben ist, werden Zeichen bis zum Ende der Zeile ausgewählt.

Beispiel 8. Lassen Sie die Zeichenfolgenvariable ab der neunten Position den Regionalcode enthalten. Sie sollten ihn abrufen und in eine separate Zeile schreiben.

String = "Region: 99 Moskau"; Region = Avg(String, 9, 2);

PageFind<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) StrFind(

  • Linie. Sucht nach einem angegebenen Teilstring in einem String und gibt die Positionsnummer des ersten Zeichens des gefundenen Teilstrings zurück. Schauen wir uns die Parameter dieser Funktion an:
  • . Quellzeichenfolge; Teilzeichenfolge durchsuchen
  • . Teilzeichenfolge suchen; Suchrichtung
    • . Gibt die Richtung für die Suche nach einem Teilstring in einem String an. Kann Werte annehmen:;
    • Suchrichtung.Von Anfang an;
  • Suche.Endrichtung Anfangsposition
  • . Gibt die Position in der Zeichenfolge an, an der die Suche beginnt. Anzahl Vorkommen

. Gibt die Vorkommensnummer des gesuchten Teilstrings im Quellstring an.

Beispiel 9. In der Zeile „Hallo Welt!“ Bestimmen Sie die Position des letzten Vorkommens des „und“-Zeichens.

PositionNumber = StrFind("Hallo Welt!", "und", SearchDirection.End); Report(PositionNumber);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Nummer des letzten Vorkommens des „und“-Symbols: 9.

VReg<Строка>) VReg(

. Konvertiert alle Zeichen in der angegebenen Zeichenfolge in 1s8 in Großbuchstaben.

Beispiel 10: Konvertieren Sie die Zeichenfolge „hello world!“ in Großbuchstaben umwandeln.

StringVreg = VReg("Hallo Welt!"); Report(StringVreg);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Zeile „HELLO WORLD!“

NReg<Строка>) NReg(

Beispiel 11: Konvertieren Sie die Zeichenfolge „HELLO WORLD!“ in Kleinbuchstaben umwandeln.

StringNreg = NReg("HALLO WELT!"); Report(StringVreg);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Zeile „Hallo Welt!“

Treg

TReg(<Строка>) . Konvertiert eine Zeichenfolge wie folgt: Das erste Zeichen jedes Wortes wird in Großbuchstaben umgewandelt, die restlichen Zeichen des Wortes werden in Kleinbuchstaben umgewandelt.

Beispiel 12: Schreiben Sie die Anfangsbuchstaben der Wörter in der Zeile „Hallo Welt!“ groß.

StringTreg = TReg("Hallo Welt!"); Report(StringTreg);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Zeile „Hello World!“

Symbol

Symbol(<КодСимвола>) . Ruft ein Zeichen anhand seines Unicod-Codes ab.

Beispiel 13. Fügen Sie links und rechts zur Zeile „Hallo Welt!“ hinzu. Symbol ★

StringWithStars = Symbol("9733")+"Hallo Welt!"+Symbol("9733"); Report(StringWithStars);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Zeile „★Hello World!★“

Symbolcode

SymbolCode(<Строка>, <НомерСимвола>) . Ruft den Unicode-Zeichencode aus der im ersten Parameter angegebenen Zeichenfolge ab, die sich an der im zweiten Parameter angegebenen Position befindet.

Beispiel 14. Finden Sie den Code des letzten Zeichens in der Zeile „Hello World!“ heraus.

String = "Hallo Welt!"; CharacterCode = CharacterCode(String, StrLength(String)); Notify(CharacterCode);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige des Symbolcodes „!“ - 33.

EmptyString

EmptyString(<Строка>) . Prüft, ob die Zeichenfolge nur aus unbedeutenden Zeichen besteht, also leer ist.

Beispiel 15. Prüfen Sie, ob eine Zeichenfolge bestehend aus drei Leerzeichen leer ist.

Empty = EmptyString(" "); Bericht (leer);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige des Wortes „Ja“ (ein Zeichenfolgenausdruck eines logischen Werts). WAHR).

PageReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Sucht alle Vorkommen der Suchteilzeichenfolge in der Quellzeichenfolge und ersetzt sie durch die Ersatzteilzeichenfolge.

Beispiel 16. In der Zeile „Hello World!“ Ersetzen Sie das Wort „Frieden“ durch das Wort „Freunde“.

String = StrReplace("Hallo Welt!", "Welt", "Freunde"); Bericht(String);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Zeile „Hallo Freunde!“

StrNumberLines

StrNumberRow(<Строка>) . Ermöglicht Ihnen, die Anzahl der Zeilen in einer mehrzeiligen Zeichenfolge zu zählen. Um in 1s 8 zu einer neuen Zeile zu wechseln, verwenden Sie das Symbol PS(Neuzeilenzeichen).

Beispiel 17. Bestimmen Sie die Anzahl der Zeilen im Text:
„Erste Zeile
Zweite Zeile
Dritte Zeile“

Number = StrNumberString("Erste Zeile"+Characters.PS +"Zweite Zeile"+Symbols.PS +"Dritte Zeile"); Bericht(Nummer);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Anzahl der Zeilen im Text: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Ruft eine Zeile in einer mehrzeiligen Zeichenfolge anhand ihrer Nummer ab. Die Zeilennummerierung beginnt bei 1.

Beispiel 18. Holen Sie sich die letzte Zeile im Text:
„Erste Zeile
Zweite Zeile
Dritte Zeile“

Text = „Erste Zeile“ + Symbole. LastRow = StrGetRow(Text, StrNumberLines(Text)); Bericht(LastLine);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Zeile „Dritte Zeile“.

PageNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Gibt die Anzahl der Vorkommen des angegebenen Teilstrings in einem String zurück. Die Funktion unterscheidet zwischen Groß- und Kleinschreibung.

Beispiel 19. Bestimmen Sie, wie oft der Buchstabe „c“ in der Zeile „Zeilen in 1s 8.3 und 8.2“ vorkommt, unabhängig von der Groß-/Kleinschreibung.

Line = "Zeilen in 1s 8.3 und 8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "With"); Report(NumberOccurrences);

Das Ergebnis der Ausführung dieses Codes ist die Anzeige der Anzahl der Vorkommen: 2.

PageStartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . Prüft, ob die im ersten Parameter übergebene Zeichenfolge mit der Zeichenfolge im zweiten Parameter beginnt.

Beispiel 20. Bestimmen Sie, ob die TIN der ausgewählten Gegenpartei mit der Zahl 1 beginnt. Geben Sie die Variable ein Gegenpartei Gegenparteien.

TIN = Gegenpartei.TIN; StartsUNits = StrStartsWith(TIN, "1"); Wenn mit Einheiten beginnt, dann //Ihr Code EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . Prüft, ob die im ersten Parameter übergebene Zeichenfolge mit der Zeichenfolge im zweiten Parameter endet.

Beispiel 21. Bestimmen Sie, ob die TIN der ausgewählten Gegenpartei mit der Zahl 2 endet. Geben Sie die Variable ein Gegenpartei Es wird ein Verweis auf ein Verzeichniselement gespeichert Gegenparteien.

TIN = Gegenpartei.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Ihr Code EndIf;

Seitenaufteilung

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Teilt eine Zeichenfolge mithilfe der angegebenen Trennzeichen in Teile auf und schreibt die resultierenden Zeichenfolgen in ein Array. Der erste Parameter speichert die Quellzeichenfolge, der zweite enthält die Zeichenfolge mit dem Trennzeichen und der dritte gibt an, ob leere Zeichenfolgen in das Array geschrieben werden sollen (standardmäßig). WAHR).

Beispiel 22. Lassen Sie uns eine Zeichenfolge haben, die durch das Symbol „;“ getrennte Zahlen enthält, und erhalten Sie ein Array von Zahlen aus der Zeichenfolge.

String = "1; 2; 3"; Array = StrDivide(String, ";"); For Count = 0 By Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(AbbrLP(Array[Count]));

Ausnahme Array[Sch] = 0;

EndAttemptsEndCycle;

Als Ergebnis der Ausführung wird ein Array mit Zahlen von 1 bis 3 erhalten.<Строки>, <Разделитель>) PageConnect

Beispiel 23. Rufen Sie mithilfe des Zahlenarrays aus dem vorherigen Beispiel die ursprüngliche Zeichenfolge ab.

For Account = 0 By Array.Quantity() - 1 Cycle Array[Act] = String(Array[Act]); EndCycle; Row = StrConnect(Array, "; ");

In diesem Artikel erzähle ich Ihnen von der Schnellsuchfunktion von 1C Enterprise 8. Was ist eine Schnellsuche? Ganz einfach. Die Schnellsuche ist eine der Möglichkeiten, in großen Listen von 1C-Datensätzen zu navigieren. Das können Dokumentenlisten, Verzeichnisse, Register sein – alles, was in Tabellen dargestellt wird.

Was ist eine Schnellsuche?

Die Schnellsuchfunktion in 1C Enterprise-Dokumenten ist äußerst komfortabel und ermöglicht es Ihnen, nicht durch riesige Datenmengen zu scrollen (z. B. mit der Bildlaufleiste), sondern sofort an die gewünschte Stelle in der Liste zu gelangen. Leider nutzen unerfahrene Benutzer von 1C Enterprise 8 (einschließlich 1C Accounting 8) zunächst nicht die Schnellsuchfunktionen und scrollen lieber manuell durch Dokumentenlisten (was auch möglich ist). Sehr groß). Dieser Artikel hilft Ihnen, die Verwendung der Schnellsuche in 1C zu verstehen.

Zunächst ist zu beachten, dass in 1C Enterprise 8-Konfigurationen, die auf verwalteten Formularen basieren, die Schnellsuche anders funktioniert als in früheren Versionen von 1C. Daher werden wir die Verwendung der Schnellsuche in verwalteten Formularen und in regulären Formularen separat analysieren.

Schnellsuche in 1C Accounting 8.2

In Versionen von 1C Accounting von 8.0 bis 8.2 Diese Funktion ist speziell für gedacht Übergang zum gewünschten Teil der Liste. Schauen Sie sich zum Beispiel das in der Abbildung gezeigte Kontenplanfenster an.


Eine bestimmte Zeile wird im Fenster hervorgehoben. Achten Sie auf das dezente Streifendreieck, auf das der rote Pfeil zeigt. Wie in anderen Windows-Programmen, in denen Listen vorhanden sind (z. B. im Explorer), bestimmt die Position dieser Markierung (Dreieck) die Sortierung der gesamten Liste - In welcher Spalte die Markierung platziert ist, wird die gesamte Liste nach dieser Spalte sortiert. In der Abbildung befindet sich die Markierung in der Spalte Code, daher werden die Konten im Kontenplan nach Code sortiert.

Die Markierung kann von einer Spalte in eine andere verschoben werden, indem Sie auf die gewünschte Spalte klicken ( in der Spalte ÜBERSCHRIFT!) mit der Maus. Befindet sich die Markierung bereits in der aktuellen Spalte, ändert sich durch Klicken die Sortierrichtung in die entgegengesetzte Richtung (d. h. von groß nach klein oder umgekehrt).

Dies ist das Standardverhalten für jedes Windows-Programm. Was ist die Besonderheit dieses Markers in 1C Enterprise und in welcher Beziehung steht er zur Schnellsuche? In diesem Fall erfolgt eine Schnellsuche im Kontenplan über die Spalte Code.

Es gab einen wichtigen Teil des Artikels, aber ohne JavaScript ist er nicht sichtbar!

Wie verwende ich die Schnellsuche in 1C? Leicht! Geben Sie einfach ein, was Sie in DIESER Spalte finden möchten, d.h. wo die Markierung ist. Im Beispiel in der Abbildung oben müssen Sie die Kontonummer eingeben. Sie möchten beispielsweise das Konto 50 Cash finden. Geben Sie in diesem Fall ( Sie müssen nirgendwo klicken!) Nummer 50 über die Tastatur ein und wenn sich in dieser Spalte ein Konto mit dieser Nummer befindet (und natürlich gibt es eines), dann scrollt die Liste zu dieser Zeile und die Zeile selbst wird hervorgehoben. Das Ergebnis ist im folgenden Screenshot des Kontenplans dargestellt.

Webseite_

Der Text, auf den der Pfeil zeigt, ist kein Nachwaschen nötig- Er wird von selbst verschwinden.

Wenn Sie im obigen Beispiel mit der Eingabe des Wortes „Kasse“ beginnen, wird der Text am unteren Rand des Fensters eingegeben und dann gelöscht. Dies geschieht, weil sobald Start Wenn die eingegebene Schnellsuchzeichenfolge nicht mehr mit dem Anfang mindestens einer Zeile in dieser Spalte übereinstimmt, schließt 1C Enterprise daraus, dass die gesuchte Zeichenfolge nicht gefunden wurde, und löscht sie automatisch. Aus diesem Grund Es gibt zwei Regeln, die Sie beachten sollten.

In 1C Enterprise 8 wird eine Schnellsuche am Zeilenanfang durchgeführt, d.h. In einer Spalte wird nach einer Übereinstimmung des eingegebenen Textes mit dem Anfang einer der Zeilen dieser Spalte gesucht.
Daraus ergibt sich eine wichtige Empfehlung: Benennen Sie bei der Eingabe von Daten in Verzeichnissen die Elemente so, dass sie über eine Schnellsuche bequem gefunden werden können. Beispielsweise ist es besser, den Namen der Gegenpartei als „Name der Firma LLC“ und nicht als „LLC-Name der Firma“ zu schreiben. Und noch mehr: Sie sollten im Namen keine Anführungszeichen und andere unnötige Symbole verwenden (wir sprechen hier vom Ausfüllen des Namensfelds in Formularen).

Wenn Sie mit der Texteingabe beginnen und dieser gelöscht wird, befindet sich das Gesuchte nicht in dieser Spalte!Überprüfen Sie in diesem Fall die Eingabesprache sowie die Spalte, in der die Schnellsuche durchgeführt wird. Ein typischer Fehler ist, dass die falsche Spalte ausgewählt wird. Beispielsweise wird die Markierung in der Spalte „Code“ gesetzt und die Suche wird anhand des Kontonamens durchgeführt.

Schnellsuche in 1C Accounting 8.3

Sehen wir uns nun an, wie sich die Schnellsuche in Version 1C Enterprise 8.3 unterscheidet. Die Verwendung ähnelt weitgehend der von Version 8.2, es gibt jedoch einen wesentlichen Unterschied, den Sie beachten sollten.

In 1C Accounting 8.3 sowie in allen anderen Konfigurationen auf verwalteten Formularen (dieselbe neue Schnittstelle) fungiert es als Filter. Vereinfacht gesagt, als Ergebnis der Schnellsuchfunktion ein Teil der Liste.

Wir werden nun herausfinden, wie man dies nutzt. Schauen Sie sich zunächst den Screenshot des Kontenplanfensters von 1C Accounting 8.3 unten an.

Webseite_

Wie Sie sehen können, befindet sich dieselbe Markierung in einer der Spalten. Die Suche erfolgt auch in der Spalte, in der der Marker eingebaut ist. Dies alles bleibt unverändert. Wenn Sie jedoch mit der Eingabe von Text (im Beispiel der Kontonummer) beginnen, geschieht Folgendes.

Webseite_

Wie Sie sehen, öffnete sich das Suchfenster einfach automatisch. Das exakt gleiche Fenster wird geöffnet, wenn Sie auf die Suchschaltfläche in der Symbolleiste des Fensters klicken (in der Abbildung unterstrichen). Wenn Sie im Suchfenster auf die Schaltfläche „Suchen“ klicken (im Bild hinter dem Dropdown-Menü verborgen) oder einfach die Eingabetaste drücken, erhalten Sie das folgende Ergebnis.

Webseite_

Daraus geht hervor, dass Eine schnelle Suche in 1C Accounting 8.3 lässt einfach den Teil der Liste sichtbar, der die Suchbedingungen erfüllt. In diesem Fall verschwindet die Schaltfläche „Suchen“ und stattdessen erscheint eine Linse mit einem Kreuz (in der Abbildung unterstrichen). Wenn Sie darauf klicken, kehrt die Liste in ihren ursprünglichen Zustand zurück (die als Ergebnis einer Schnellsuche gefundene Zeile bleibt hervorgehoben).

Eine weitere wichtige Funktion der Schnellsuche in 1C Accounting 8.3— Eine Übereinstimmung wird nicht am Anfang der Zeile gesucht, wie in Version 8.2, sondern es wird nach einer Übereinstimmung mit einem beliebigen Teil der Zeilen in der Spalte gesucht. Wenn Sie also die Gegenpartei „Firm Name LLC“ nennen und bei der Suche mit der Eingabe von „Firm Name LLC“ beginnen, wird die Zeile trotzdem gefunden!

Schlussfolgerungen ziehen

Daher dient die Schnellsuche in 1C Accounting 8.2 und früheren Versionen dazu, die Liste zur gewünschten Zeile zu scrollen, und in 1C Accounting 8.3 funktioniert die Schnellsuche wie ein normaler Filter, der den Teil der Liste ausblendet, den Sie nicht benötigen.

Heimnotizen von Through the Looking Glass

07.02.2013 Suche nach Zeichenfolge

Implementiert in Version 8.3.3.641.

Wir haben die Zeileneingabe deutlich verbessert. Dazu mussten wir einen neuen leistungsstarken Suchmechanismus im Eingabefeld implementieren. Jetzt kann es schnell die Millionen von Datensätzen in der Datenbank durcharbeiten.

Wir haben die Suchaufgaben analysiert, auf die Benutzer stoßen. Wir haben eine „Prüfung“ der auf der Plattform verfügbaren Mechanismen durchgeführt, die verschiedene Suchalgorithmen verwenden. Dadurch erlangte die Zeileneingabe völlig neue Möglichkeiten.

Jetzt können Benutzer überall in einem Titel suchen, nicht nur am Anfang der Zeile. Sie können die Volltextsuche nutzen und sogar eine Suche im Hintergrund durchführen. Damit die Volltextsuche bei zeilenweiser Eingabe effektiv funktioniert, haben wir die Suchmaschine weiter optimiert und ihre Leistung verbessert.

Wir haben alle neuen Eigenschaften, mit denen Sie die Eingabe zeilenweise anpassen können, auf einer separaten Registerkarte des Konfigurationsobjekt-Bearbeitungsfensters zusammengestellt:

Sie können beispielsweise festlegen, dass die Suche an einer beliebigen Stelle in der Zeichenfolge und nicht nur am Anfang durchgeführt wird:

Dann kann der Benutzer beliebige Wortfragmente eingeben und nicht nur die Zeichen, mit denen die gesuchte Zeichenfolge beginnt:

Die Verwendung der Volltextsuche bei der Eingabe einer Zeile wird durch eine separate Eigenschaft ermöglicht:

Mithilfe der Volltextsuche können Benutzer mithilfe der im Namen enthaltenen Wörter schnell relevante Daten in großen Datenmengen finden:

Sie können auch nach mehreren bekannten Wörtern suchen. Unvollendete Wörter werden automatisch mit möglichen Kombinationen vervollständigt:

Bei großen Datenmengen können Sie in beiden Fällen festlegen, dass die Suche über einen Hintergrundjob erfolgen soll:

Anschließend wird den Benutzern neben dem Eingabefeld ein animiertes Bild angezeigt, ähnlich dem Bild, das angezeigt wird, wenn der Bericht im Hintergrund läuft:

  • Wenn das im Eingabefeld verwendete Objekt voraussichtlich keine große Datenmenge enthält, empfehlen wir, die Zeichenfolgensuche an einer beliebigen Stelle zu aktivieren.
  • Wenn in einem Objekt eine große Datenmenge geplant ist, dann:
    • Wir empfehlen, die Volltext- und Hintergrundsuche zu aktivieren;
    • Gleichzeitig können Sie die String-Suche auch überall verwenden, jedoch in Verbindung mit der Hintergrundsuche und vorzugsweise mit der Volltextsuche; sodass die meisten Suchen über die Volltextsuche durchgeführt werden.

Bei Bedarf können Sie alle aufgeführten Eigenschaften während der Ausführung der Anwendungslösung neu definieren.

Auf dem Client – ​​in den Client-Eingabefeld-Ereignishandlern Automatische Auswahl Und EndInputText :

Auf dem Server – im Managermodul des Objekts, dessen Daten durchsucht werden. Im Event-Handler ProcessingReceiveSelectionData :

Natürlich können Sie an dieser Stelle auf dem Server die Art und Weise, wie die Suche durchgeführt wird, nicht außer Kraft setzen "Direkt" oder „Hintergrundjob“ . Denn die Codeausführung wurde bereits auf den Server übertragen.

Hallo zusammen
Heute wurde ich gebeten, beim Drucken eines Implementierungsdokuments das Dokumentpräfix nicht anzuzeigen. Ich habe das Problem wie folgt gelöst.

StrReplace(Number, Lev(Number, 3), "" );

Als ich mir den Syntaxassistenten ansah, gefiel er mir so gut, dass ich darüber schreiben wollte Arbeiten mit Strings in 1C:Enterprise.

Ein String in 1C bezieht sich auf einen primitiven Datentyp.

Wenn Sie sich die 1C-Hilfe ansehen, sehen wir die folgende Beschreibung des String-Typs:
Werte dieses Typs enthalten einen Unicode-String beliebiger Länge.
Wenn Sie Ihre eigenen Worte zu Strings verwenden, wird es funktionieren. Ein String ist eine Konstante, die aus verschiedenen Zeichen besteht und immer in Anführungszeichen gesetzt ist.

Eine Linie setzen
Anrede = „Hallo Passagier“;

Mehrzeilige Zeilen in typischen Konfigurationen werden am häufigsten mit dem vertikalen Trennzeichen „|“ erstellt:
String = "Mehrzeilig
|string
|schreiben
|text";

Ein Anführungszeichen innerhalb einer Zeichenfolge wird durch doppelte Anführungszeichen angegeben.
String = „Text in Anführungszeichen“;

Es gibt viele Operationen an Zeichenfolgen (Suche innerhalb der Zeichenfolge, Bestimmung der ersten usw.), es ist besser, einen Blick auf den Syntaxassistenten zu werfen.
Syntax-Helfer – Allgemeine Beschreibung der integrierten Sprache -> integrierte Funktionen -> Funktionen zum Arbeiten mit Strings.

Funktionen zum Arbeiten mit Strings

Hier eine kurze Zusammenfassung der Funktionen zum Arbeiten mit Strings:

VReg<Строка>) — Die Funktion wandelt alle Zeichen in der Zeichenfolge in Großbuchstaben um.

SymbolCode(<Строка>, <НомерСимвола>) – Die Funktion empfängt den Code des Zeichens, das sich im übertragenen String an der Stelle mit der angegebenen Nummer befindet.

Löwe(<Строка>, <ЧислоСимволов>) – Die Funktion wählt die ersten linken Zeichen der Zeichenfolge aus.

Finden(<Строка>, <ПодстрокаПоиска>) — Die Funktion findet ein Vorkommen der Suchzeichenfolge als Teilzeichenfolge in der Quellzeichenfolge.

NReg<Строка>) — Die Funktion wandelt alle Zeichen in der Zeichenfolge in Kleinbuchstaben um.

Rechts<Строка>, <ЧислоСимволов>) – Diese Funktion unterscheidet sich von den Left-Funktionen dadurch, dass sie die letzten Zeichen von rechts in der Zeichenfolge auswählt.

EmptyString(<Строка>) — Die Funktion prüft die Zeichenfolge auf das Vorhandensein signifikanter Zeichen.

Symbol(<КодСимвола>) — Die Funktion wandelt den Zeichencode in eine Zeichenfolge um, die das Zeichen enthält.

AbbrL(<Строка>) — Die Funktion schneidet unbedeutende Zeichen links vom ersten signifikanten Zeichen in der Zeichenfolge ab.

AbbrLP(<Строка>) — Die Funktion schneidet nicht signifikante Zeichen links vom ersten signifikanten Zeichen in der Zeile und Leerzeichen rechts vom letzten signifikanten Zeichen in der Zeile ab.

Abkürzung(<Строка>) — Die Funktion schneidet unbedeutende Zeichen rechts vom letzten signifikanten Zeichen in der Zeichenfolge ab.

Mittwoch<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Die Funktion wählt eine Zeichenfolge aus, beginnend mit dem Zeichen<НачальныйНомер>, Gesamtzahl<ЧислоСимволов>.

StrLength(<Строка>) — Die Funktion ermittelt die Anzahl der Zeichen in der Zeile.

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — Die Funktion findet alle Vorkommen der Suchteilzeichenfolge in der Quellzeichenfolge und ersetzt sie durch die Ersatzteilzeichenfolge.

StrGetString(<Строка>, <НомерСтроки>) - Die Funktion ruft eine mehrzeilige Zeichenfolge nach Nummer ab.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) — Die Funktion berechnet die Anzahl der Vorkommen der Suchteilzeichenfolge in der Quellzeichenfolge.

StrNumberRow(<Строка>) — Die Funktion zählt die Anzahl der Zeilen in einer mehrzeiligen Zeichenfolge. In einer mehrzeiligen Zeichenfolge werden die Zeilen durch Zeilenumbrüche getrennt.

TReg(<Строка>) — Die Funktion wandelt die Zeichenfolge in die Groß-/Kleinschreibung des Titels um. Dies bedeutet, dass das erste Zeichen jedes Wortes in die Groß-/Kleinschreibung des Titels bzw. in Großbuchstaben umgewandelt wird, wenn für das Zeichen keine Groß-/Kleinschreibung angegeben ist. Die restlichen Zeichen werden in Kleinbuchstaben umgewandelt.

Typkonvertierungen
Für die explizite Konvertierung von Datentypen gibt es gleichnamige Funktionen mit dem Datentyp, in den die Konvertierung erfolgt: String(<Значение>)

StringFromNumbers = String(Number);

Alle diese Funktionen sind im Syntax-Assistenten ausführlich beschrieben. Wie der Syntax-Assistent einem unerfahrenen Programmierer helfen kann, habe ich im Artikel beschrieben.

Beispiele für die Arbeit mit Strings

Konvertieren einer Zahl in eine Zeichenfolge und zurück.

Um eine Zeichenfolgendarstellung des Jahres zu erhalten, verwenden Sie die Funktion Format.

Jahr = Format(CurrentDate(), "DF=yyyy") // Jahr = "2012"

Um eine Zahl in eine Zeichenfolge umzuwandeln, ohne ein Gruppentrennzeichen (geschütztes Leerzeichen) einzufügen, müssen Sie die Formatfunktion mit dem Parameter NG=0 verwenden:

Number = 2012 Line = Format(Number, "NH=0" );

//String = "2012"

Zeichenfolge Keine Leerzeichen.

Es gibt nur wenige Mechanismen zum Arbeiten mit Zeichenfolgen in 1C-Abfragen. Zunächst können die Zeilen hinzugefügt werden. Zweitens können Sie einen Teilstring aus einem String übernehmen. Drittens können Zeichenfolgen verglichen werden, auch nach Muster. Das ist wahrscheinlich alles, was man mit Strings machen kann.

String-Addition

Um Zeilen in einer Abfrage hinzuzufügen, wird die Operation „+“ verwendet. Sie können nur Zeichenfolgen mit begrenzter Länge hinzufügen.

WÄHLEN Sie „Name:“ + Gegenparteien. Name AS Spalte 1 FROM Gegenparteien AS Gegenparteien Link = &Link

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

SUBSTRING( <Строки> Ein Analogon der Environment()-Funktion aus dem Objektmodell. Die Funktion Substring() kann auf String-Daten angewendet werden und ermöglicht die Auswahl eines Fragments <НачальнаяПозиция> , beginnend mit der Zeichennummer <Длина> (Zeichen in einer Zeile werden beginnend mit 1 nummeriert) und Länge <Строка> Charaktere. Das Ergebnis der Funktionsberechnung hat einen Zeichenfolgentyp variabler Länge, und die Länge wird als unbegrenzt betrachtet, wenn <Длина> hat unbegrenzte Länge und Parameter

ist keine Konstante oder größer als 1024.

Wenn die Länge der Zeichenfolge kürzer ist als im zweiten Parameter angegeben, gibt die Funktion eine leere Zeichenfolge zurück. Aufmerksamkeit!

Es wird nicht empfohlen, die Funktion SUBSTRING() zum Konvertieren von Zeichenfolgen unbegrenzter Länge in Zeichenfolgen begrenzter Länge zu verwenden. Stattdessen ist es besser, den Cast-Operator EXPRESS() zu verwenden.

Funktion ähnlich

Wenn wir sicherstellen müssen, dass ein String-Attribut bestimmte Kriterien erfüllt, vergleichen wir es:

SELECT Counterparties. Name AS Column 1 FROM Counterparties AS Counterparties WHERE Counterpartys Name = „Gazprom“.

Aber was ist, wenn Sie einen subtileren Vergleich benötigen? Nicht nur Gleichheit oder Ungleichheit, sondern Ähnlichkeit mit einem bestimmten Muster? Genau dafür wurde die SIMILAR-Funktion erstellt.

Mit dem SIMILAR-Operator können Sie den Wert des links davon angegebenen Ausdrucks mit der rechts angegebenen Musterzeichenfolge vergleichen. Der Wert des Ausdrucks muss vom Typ Zeichenfolge sein. Wenn der Wert des Ausdrucks mit dem Muster übereinstimmt, ist das Ergebnis des Operators TRUE, andernfalls FALSE.

Die folgenden Zeichen in der Musterzeichenfolge sind Dienstzeichen und haben eine andere Bedeutung als das Zeichenfolgenzeichen:

  • % (Prozent): eine Sequenz, die eine beliebige Anzahl beliebiger Zeichen enthält;
  • _ (Unterstrich): ein beliebiges Zeichen;
  • […] (ein oder mehrere Zeichen in eckigen Klammern): jedes einzelne Zeichen, das in den eckigen Klammern aufgeführt ist. Die Aufzählung kann Bereiche enthalten, zum Beispiel a-z, was bedeutet, dass ein beliebiges Zeichen im Bereich enthalten ist, einschließlich der Enden des Bereichs;
  • [^...] (in eckigen Klammern ein Negationszeichen, gefolgt von einem oder mehreren Zeichen): jedes einzelne Zeichen, außer denen, die nach dem Negationszeichen aufgeführt sind.

Jedes andere Symbol bedeutet sich selbst und stellt keine zusätzliche Belastung dar. Wenn eines der aufgelisteten Zeichen als es selbst geschrieben werden muss, muss ihm ein vorangestellt werden<Спецсимвол>. Ich selbst<Спецсимвол>(jedes geeignete Zeichen) wird in derselben Anweisung nach dem Schlüsselwort SPECIAL CHARACTER definiert.