DIE KLINGEL

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie, um die neuesten Artikel zu erhalten.
Email
Name
Familien-oder Nachname
Wie möchten Sie The Bell lesen?
Kein Spam

Die Funktionalität der neuen Suche basiert auf zwei Mechanismen:
- Volltextsuche (funktioniert sehr schnell und erfordert ein Minimum an Rechenressourcen);
- Suche mit Hilfe eines DBMS (im allgemeinen Fall sind die Dauer der Suche und die Kosten für Rechenressourcen proportional zur Informationsmenge in der Tabelle).

In der aktuellen Implementierung wird die Liste durchsucht ohne Verwendung Volltextsuche in folgenden Fällen ():
- Volltextindex ist auf Infobase-Ebene deaktiviert;
- das Objekt der Haupttabelle wird nicht durch den Volltextindex indiziert;
- Als Ergebnis einer Suche mit Volltextsuche wurde ein Fehler empfangen.

Wenn die Volltextsuche in der Infobase aktiviert ist und der Index überhaupt nicht oder teilweise nicht aktualisiert wird (nach meiner Praxis von 95 % der Infobases der Kunden), erhält der Benutzer während der Suche entweder ein unzuverlässiges oder leeres Suchergebnis .

Wir fragen Firma 1C - wie soll man sein? Wie kann sichergestellt werden, dass Suchergebnisse immer gültig sind?
Wir bekommen die Antwort: Ja, damit die Suchergebnisse bei aktivierter Volltextsuche aktuell sind, müssen Sie sicherstellen, dass der Index der Volltextsuche auf dem neuesten Stand ist. Andere Optionen für eine effektive und aktuelle Suche gibt es nicht. bis heute Suche noch ().

Und ob es überhaupt "einen tatsächlichen Volltextindex" gibt? Hängt von der Anzahl der Benutzer, der Intensität der Informationsänderungen in der Datenbank und der Häufigkeit der Indexaktualisierungen ab. Normalerweise wird alle 60 Sekunden eine Indexaktualisierung ausgeführt. Nun, wenn nicht viele Objekte geändert wurden und die Prozedur es geschafft hat, alle Änderungen in diesen 60 Sekunden zu verarbeiten. Und wenn Sie eine Gruppe von Dokumenten neu veröffentlicht oder das Verzeichnis massenhaft neu geschrieben haben? In diesem Fall kann niemand garantieren, nach welcher Zeit die Suche im Index wieder verlässliche Daten liefert.
Im Prinzip ist das bis auf wenige Situationen nicht besonders kritisch. Eine gängige Arbeitsoption für Benutzer besteht darin, eine Auswahl in der Liste nach einem bestimmten Wert festzulegen, z. B. "Kontrahent", einen neuen einzugeben oder ein vorhandenes Dokument zu kopieren und aufzuschreiben. Bei der alten Suche war das neue Dokument sofort in der Liste sichtbar. Jetzt wird der Benutzer es bestenfalls erst nach N Sekunden sehen, wobei N eher bei 50–60 Sekunden liegt als bei 2–3.
Wenn Sie nicht bemerken, dass es kein neues Dokument gibt, und auf der Grundlage der ausgewählten Ergebnisse Informationen an jemanden weitergeben, ist dies offensichtlich unzuverlässig.

Dies war bei der normalen Arbeit mit der Infobase der Fall. Was passiert in bestimmten Situationen? Ich gebe Ihnen ein paar Beispiele.
1) In der Arbeitsdatenbank ist der Volltextindex aktiviert und wird regelmäßig aktualisiert. Der Benutzer bittet darum, ihm eine Kopie der Arbeitsdatenbank bereitzustellen, damit er die darin enthaltenen Daten analysieren kann.
Wir stellen das Backup wieder her und geben Zugriff. Aber die Volltextsuche wird nicht funktionieren, weil. Der Index wird nicht im DBMS gespeichert, sondern in separaten Dateien (sowohl in der Datei als auch in der Client-Server-Version). Der Index befindet sich nicht in der dt-Datei.
diese. damit der Benutzer die Listensuche nutzen kann, muss der Volltextindex in dieser Datenbank abgeschaltet werden. Der Benutzer wird zwar etwas überrascht sein, dass die Suche viel länger dauert. Oder erstellen Sie den Index über die gesamte Datenbank neu.

2) (Tatsächlich für mehr oder weniger große Basen). In der Produktionsdatenbank wird der Volltextindex aktiviert und regelmäßig aktualisiert. Das Ende des Monats kommt und der Abschluss der Periode beginnt. Wir beginnen mit dem Massenladen und Übertragen von Dokumenten. Um die Belastung des Systems zu verringern, blockieren wir jeweils die Ausführung geplanter Aufgaben und die Indexaktualisierung stoppt. Benutzer werden, gelinde gesagt, ratlos sein - warum gibt es keine neuen oder geänderten Dokumente in den Listen. Der einzige Ausweg besteht darin, die Volltextsuche für die Infobase zu deaktivieren und dementsprechend die Ausrüstung durch eine schwere Suche nach allen Details noch stärker zu belasten.

Daher scheint mir, dass die Indexaktualisierungsoperation zu einem weiteren Problem für Infobase-Administratoren werden wird.
Das System, das früher jederzeit 100% Genauigkeit und Relevanz von Informationen garantierte, wandelt sich nun immer mehr zu einem Referenzsystem, bei dem man sich nicht ganz sicher sein kann.
Und Anwender bekommen einen weiteren Grund, IT-Leuten Vorwürfe zu machen – „Ihr System funktioniert nicht richtig“.

Obwohl die Volltextsuche auf der 8.3-Plattform schon vor langer Zeit (seit der 8.3.5-Plattform) von den Entwicklern angekündigt wurde, wurde sie in Standardkonfigurationen nicht aktiv genutzt. In neueren Versionen von Enterprise Accounting 3.0 haben Entwickler die Volltextsuche in viele Listen aufgenommen. Für meine Benutzer stellte sich dies als Schock heraus - das Programm stoppte die Suche.

Natürlich funktioniert die Volltextsuche, aber Benutzer, die das Fenster "Suchen" nicht sehen, sind verwirrt. Typisches Anwendungsszenario: Beginnen Sie mit der Eingabe auf der Tastatur, während des Tippens erscheint ein „Suchen“-Fenster, das das zu durchsuchende Feld, den zu durchsuchenden Text und den Suchmodus „Teil der Zeichenfolge“ anzeigt.

Durch Drücken der Eingabetaste wird die Liste gefiltert, eine Suchstatusleiste erscheint über der Liste. Der Nutzer bestimmt selbst, in welchem ​​Bereich und wonach er sucht. Die neue Suche funktioniert, sobald Sie sie eingeben, und wirkt sich auf alle in der Liste angezeigten Felder aus. Ein separates Fenster erscheint nicht, alle Übereinstimmungen von Suchbegriffen werden farblich hervorgehoben.

Seit einigen Tagen lebten wir mit einer neuen Suche. Benutzer haben gelitten, sich beschwert, sabotiert. Beschwerden hörten nicht auf, das Management erhielt den Auftrag, „alles so zu machen, wie es war“.

Wo anfangen? Sie müssen verstehen, wie sich die Formen voneinander unterscheiden. Ich habe die Konfigurationsquellcodes mit dem neuen Suchverhalten und mit dem alten heruntergeladen und die Quellcodes der Formulare verglichen.

Für die Funktionalität der neuen Volltextsuche ist das Hinzufügen eines Formularelements vom Typ „Suchbegriff“ verantwortlich. Es wurde klar, wonach gesucht werden musste. Artikel zu ITS 7.3.1.5 gefunden. Suche in dynamischer Liste . Die Untersuchung dieses Artikels führte mich zu dem Schluss, dass die neue Art und Weise, wie die Suche funktioniert, von zwei Faktoren abhängt: 1. Das Formular muss die obige Formularelementvervollständigung haben, 2. Die dynamische Liste auf dem Formular muss die Eigenschaft „SearchStringPosition“ ungleich haben "Keiner".

Theoretisch reicht es beim Anlegen eines Formulars auf dem Server, die Listeneigenschaft "SearchString Position" auf "SearchString Position. No" zu setzen, jedoch funktionierte dies nicht bei allen Formularen, teilweise funktionierte die neue Suche weiterhin. Wir können nicht programmgesteuert erstellte Formularelemente nicht programmgesteuert löschen, aber die Sichtbarkeit kann gesteuert werden. Wird das Formularelement „AdditionSearchString“ aus der Sichtbarkeit entfernt, funktioniert auch die Volltext-Neusuche nicht mehr. Während der Experimente wurde folgender Code geboren, den ich in das allgemeine Modul eingefügt habe:

Prozedur Deaktivieren von NewSearchInLists(Form) Export List = Form.Items.Find("List"); If List = Undefined Then Return; EndIf; List.SearchStringPosition = SearchStringPosition.None; AdditionSearchString = Form.Elements.Find("AdditionSearchString"); Wenn NICHT ComplementSearchString = Undefiniert, dann ComplementSearchString.Visibility = False; EndIf; EndProzedur

In der Prozedur "Neue Suche in Listen deaktivieren" müssen Sie das korrigierte Formular übergeben. Aber wie kann man das für alle Formulare auf einmal machen?

Die erste Lösung besteht darin, die erforderlichen Formulare im Konfigurator mit dem Formulareditor manuell zu fixieren. Ich habe diese Entscheidung sofort abgelehnt - es ist lang und langweilig, und es ist schwierig, die Konfiguration später zu aktualisieren.

Die zweite Lösung besteht darin, beim Öffnen des Formulars eine Prozedur aufzurufen, die die neue Suche programmgesteuert deaktiviert. Das Verfahren kann von jedem anderen Verfahren aufgerufen werden, dessen Start bereits in allen Formularen registriert ist. In diesem Fall müssen wir bei weiteren Aktualisierungen dieses Verfahren nur überwachen - damit es sich nicht ändert. Ich habe das GeneralModule.ManagePrint gewählt, das Folgendes hat:

OnCreateOnServer(Form,DefaultCommandPlace,PrintObjects) Export

Diese Prozedur wird aufgerufen, wenn auf dem Server ein Formular zum Ausfüllen von Druckbefehlen erstellt wird. In diesem Verfahren schreiben wir den Code, der unsere Funktion aufruft, um die neue Suche in Listen zu deaktivieren:

MyGeneralModule.Deaktivieren von NewSearchInLists(Form);

Buchhalter genießen die alte Suche, und wir bereiten uns darauf vor, wann der Kompatibilitätsmodus von Enterprise Accounting 3.0 es uns ermöglichen wird, diese Funktionalität auf eine Erweiterung zu portieren.

Bisher wissen nur wenige, dass die 1C:Enterprise-Plattform ab Version 8.1 über einen wunderbaren und sehr nützlichen Mechanismus verfügt - die Volltextsuche. Was ist das? Wie kann es für Sie nützlich sein? Diese Fragen werden im Artikel von V.V. Angeln, Firma "1C".

Zuerst ein paar Worte darüber, um was für einen Mechanismus es sich handelt. Mit der Volltextsuche können Sie, vereinfacht gesagt, Textinformationen finden, die sich fast überall in der verwendeten Konfiguration befinden. Dabei können Sie entweder über die gesamte Konfiguration nach den benötigten Daten suchen oder den Suchbereich auf wenige Objekte (z. B. bestimmte Arten von Dokumenten oder Verzeichnissen) einschränken. Die Suchkriterien selbst können über einen ziemlich weiten Bereich variieren. Das heißt, Sie können die notwendigen Daten finden, ohne sich genau zu merken, wo sie in der Konfiguration gespeichert sind und wie genau sie erfasst werden.

Die Volltextsuche bietet die folgenden Funktionen.

  1. Es gibt Unterstützung für die Transliteration (Schreiben russischer Wörter mit lateinischen Buchstaben gemäß GOST 7.79-2000). Beispiel: "Russische Phrase" = "Russische Fraza".
  2. Es gibt Unterstützung für die Substitution (Schreiben eines Teils der Zeichen in russischen Wörtern mit lateinischen Ein-Tasten-Zeichen). Beispiel: "russrfz frapf" (die Endungen der einzelnen Wörter sind zB aufgrund eines Bedienungsfehlers in Latein geschrieben).
  3. Es besteht die Möglichkeit der Fuzzy-Suche (die Buchstaben in den gefundenen Wörtern können unterschiedlich sein) mit Angabe der Unschärfeschwelle. Beispiel: Durch die Angabe des Wortes „Hallo“ im Suchstring und der Unschärfe von 17% finden wir alle ähnlichen Wörter mit und ohne Fehler: „Hallo“, „Hallo“, „Bring“.
  4. Es ist möglich, den Umfang der Suche für die ausgewählten Metadatenobjekte festzulegen.
  5. Die Volltextindizierung der Namen von Standardfeldern ("Code", "Beschreibung", etc.) erfolgt in allen Projektierungssprachen.
  6. Die Suche wird unter Berücksichtigung von Synonymen der russischen, englischen und ukrainischen Sprache durchgeführt.
  7. Das morphologische Wörterbuch der russischen Sprache enthält eine Reihe spezifischer Wörter, die sich auf Tätigkeitsbereiche beziehen, die mit dem 1C:Enterprise-Programmsystem automatisiert werden.
  8. Die mitgelieferten Wörterbücher umfassen standardmäßig Wörterbuchdatenbanken und Wörterbücher von Thesaurus und Synonymen für Russisch, Ukrainisch und Englisch von Informatik zur Verfügung gestellt.
  9. Sie können mit Wildcard-Zeichen ("*") suchen, sowie Suchoperatoren ("AND", "OR", "NOT", "NEAR") und Sonderzeichen angeben.

Die Volltextsuche kann in jeder Konfiguration auf der 1C:Enterprise 8.1-Plattform durchgeführt werden.

Dies gilt auch für Konfigurationen, die von Version 8.0 konvertiert wurden. Um die Volltextsuchfunktionen zu aktivieren, gehen Sie einfach zum Menü „Operationen“ Ihrer Konfiguration und wählen Sie den Punkt „Volltextsuche verwalten“ und aktivieren Sie dann diese Funktion (siehe Abb. 1).

Reis. eines

Wenn Sie typische Konfigurationen auf der 8.1-Plattform verwenden, haben diese höchstwahrscheinlich bereits die Verarbeitung "Datensuche" eingebaut (Menü "Extras" / "Datensuche"). Wenn eine solche Verarbeitung in der verwendeten Konfiguration fehlt, spielt dies keine Rolle.

Es ist immer auf der ITS-Diskette zu finden. In diesem Artikel verwenden wir Beispiele für die Arbeit dieser speziellen Verarbeitung in der Demokonfiguration „Enterprise Accounting“ (Rev. 1.6), um die Volltextsuchfunktionen zu demonstrieren.

Wie bereits erwähnt, kann die Suche nach mehreren Wörtern, mit Suchoperatoren und nach der exakten Phrase erfolgen. Außerdem kann der Suchort auf bestimmte Konfigurationsobjekte (z. B. Produktionsdienstleistungsgesetzdokumente) oder eine Liste/ein Satz von Konfigurationsobjekten beschränkt werden.

Bei der Suche nach Daten dürfen Suchoperatoren in der in der Tabelle angegebenen Suchzeichenfolge verwendet werden (alle Operatoren dürfen nur in GROSSBUCHSTABEN und ohne Anführungszeichen angegeben werden).

Tisch


Denken Sie daran: Wenn keine Operatoren angegeben sind (Wörter werden mit einem Leerzeichen eingegeben), sucht das Programm nach allen Wörtern aus der Abfrage mit dem Operator "AND".

Reis. 2 zeigt ein Beispiel einer einfachen Wortteilsuche. Durch die Eingabe von „hope *“ erhielten wir als Ergebnis einen Link zu Individuell, sowie auf Dokumenten, in deren Kommentaren der Ausdruck "Zuverlässiger Kunde" vorkommt.


Reis. 2

Reis. 3 zeigt ein Beispiel für eine komplexere Suche mit dem Konstrukt „ODER“ im Suchstring und Einschränkung des Suchbereichs im Verzeichnis „Nomenklatur“ und den Dokumenten „Waren- und Dienstleistungseingang“, „Waren- und Dienstleistungsverkauf“. Es ist deutlich zu sehen, dass die Suche die gesamte Nomenklatur widerspiegelte, deren Namen entweder das Wort „Teekanne“ oder das Wort „BINATONE“ enthielten, sowie alle Dokumente dieser Art, die alle relevanten Nomenklaturen enthielten.


Nicht jeder Buchhalter weiß davon. nützliches Werkzeug in 1C: Accounting 8, als Volltextsuche. Mit der Volltextsuche können Sie Textinformationen überall in der Konfiguration finden.

Die Volltextsuche wird mit der Verarbeitung "Datensuche" durchgeführt, die sich im Menü "Extras" befindet:

Sehen wir uns einige Beispiele an, wie der Volltextsuchmechanismus funktioniert.

Beispiel 1 Angenommen, wir müssen schnell Dokumente für den Erhalt eines bestimmten Produkts finden, beispielsweise Marlboro-Zigaretten.
Wählen Sie „Datensuche“ aus dem Menü „Extras“. Geben Sie im sich öffnenden Fenster im oberen Feld den Suchbegriff „Marlboro“ ein und klicken Sie auf die Schaltfläche „Suchen“:


Beispiel 2 Unsere Organisation mietet ein Büro in der Nähe des Geschäftszentrums von Rumyantsev. Es ist notwendig, den Mietvertrag für März 2010 schnell in der Datenbank zu finden. Wir stellen folgende Suchanfrage:


Möglichkeit 3. Angenommen, wir haben beim Versand von Waren in einigen Dokumenten den folgenden Kommentar hinterlassen: „Verkauf von Waren und Dienstleistungen“ - „Zahlungsaufschub“. Und wir mussten alle mit Verzögerung versendeten Dokumente finden. Wir stellen folgende Suchanfrage:

Sie können auch eine komplexere Suche mit Suchoperatoren (AND, OR, NOT, NEAR) durchführen.
Der Suchbereich kann auf bestimmte Konfigurationsobjekte (z. B. Wareneingangs- und Dienstleistungsbeleg) eingeschränkt werden. Klicken Sie dazu auf die Schaltfläche „Einstellungen“:

Es erscheint ein Feld zur Auswahl eines Konfigurationsobjekts. Aktivieren Sie das Kontrollkästchen "Suchbereiche einschränken" und klicken Sie auf die Schaltfläche "Zu durchsuchende Metadatenobjekte auswählen":

Wählen Sie zum Beispiel den Beleg „Erhalt von Waren und Dienstleistungen“ aus.

Es bleibt, eine Suchanfrage einzugeben und zu suchen.

Am Ende der "Datensuche"-Verarbeitung wird die Relevanz des Index widergespiegelt. Wenn Sie „Index ist nicht aktuell“ sehen, müssen Sie auf die Schaltfläche „Index aktualisieren“ klicken.

Volltextsuche- Ermöglicht das Auffinden von Textinformationen, die fast überall in der verwendeten Konfiguration platziert sind. Dabei können Sie entweder über die gesamte Konfiguration nach den benötigten Daten suchen oder den Suchbereich auf wenige Objekte (z. B. bestimmte Arten von Dokumenten oder Verzeichnissen) einschränken. Die Suchkriterien selbst können über einen ziemlich weiten Bereich variieren. Das heißt, Sie können die notwendigen Daten finden, ohne sich genau zu merken, wo sie in der Konfiguration gespeichert sind und wie genau sie erfasst werden.

Die Volltextsuche bietet die folgenden Funktionen:

  • Es gibt Unterstützung für die Transliteration (Schreiben russischer Wörter mit lateinischen Buchstaben gemäß GOST 7.79-2000). Beispiel: "Russische Phrase" = "Russische Fraza".
  • Es gibt Unterstützung für die Substitution (Schreiben eines Teils der Zeichen in russischen Wörtern mit lateinischen Ein-Tasten-Zeichen). Beispiel: "russrfz frapf" (die Endungen der einzelnen Wörter sind zB aufgrund eines Bedienungsfehlers in Latein geschrieben).
  • Es besteht die Möglichkeit der Fuzzy-Suche (die Buchstaben in den gefundenen Wörtern können unterschiedlich sein) mit Angabe der Unschärfeschwelle. Beispiel: Durch die Angabe des Wortes „Hallo“ im Suchstring und der Unschärfe von 17% finden wir alle ähnlichen Wörter mit und ohne Fehler: „Hallo“, „Hallo“, „Bring“.
  • Es ist möglich, den Umfang der Suche für die ausgewählten Metadatenobjekte festzulegen.
  • Die Volltextindizierung der Namen von Standardfeldern ("Code", "Beschreibung", etc.) erfolgt in allen Projektierungssprachen.
  • Die Suche wird unter Berücksichtigung von Synonymen der russischen, englischen und ukrainischen Sprache durchgeführt.
  • Das morphologische Wörterbuch der russischen Sprache enthält eine Reihe spezifischer Wörter, die sich auf Tätigkeitsbereiche beziehen, die mit dem 1C:Enterprise-Programmsystem automatisiert werden.
  • Die mitgelieferten Wörterbücher beinhalten standardmäßig Vokabeldatenbanken und Wörterbücher der Thesaurus und Synonyme des Russischen, Ukrainischen und Englischen, die von Informatik bereitgestellt werden.
  • Sie können mit Wildcard-Zeichen ("*") suchen, sowie Suchoperatoren ("AND", "OR", "NOT", "NEAR") und Sonderzeichen angeben.

Die Volltextsuche kann in jeder Konfiguration auf der 1C:Enterprise 8-Plattform durchgeführt werden

Gehen Sie wie folgt vor, um das Steuerungsfenster für die Volltextsuche zu öffnen:

Allgemeine Anwendung- Menüpunkt Operationen - Verwalten der Volltextsuche.

Verwaltete Anwendung- Menüpunkt Hauptmenü - Alle Funktionen - Standard -Verwaltung der Volltextsuche.


  • Index aktualisieren– Indexerstellung/Indexaktualisierung;
  • Index löschen– Index auf Null setzen (empfohlen nach Aktualisierung aller Daten);
  • item Indexzusammenführung zulassen- ist verantwortlich für die Zusammenführung von Haupt- und Zusatzindex.

Die Volltextsuche erfolgt über einen Volltextindex. Ohne Index ist eine Volltextsuche als solche nicht möglich. Für eine erfolgreiche Suche müssen alle erforderlichen Daten im Volltextindex enthalten sein. Werden vom Nutzer neue Daten in die Datenbank eingegeben, müssen diese in den jeweiligen Index aufgenommen werden, sonst nehmen sie nicht an der Suche teil. Um dies zu vermeiden, müssen Sie den Volltextindex aktualisieren. Beim Update analysiert das System nur bestimmte Datentypen: String, Daten eines Referenztyps (Links zu Dokumenten, Verzeichnissen), Zahl, Datum, Wertspeicherung. Wenn der Benutzer keine Zugriffsrechte auf bestimmte Informationen hat, kann er diese nicht in den Suchergebnissen sehen. Es sollte auch daran erinnert werden, dass die Eigenschaften der Objekte, nach denen die Suche durchgeführt wird, eingestellt werden müssen Volltextsuche - Verwenden, die standardmäßig eingestellt ist.

Wie Sie das Anwesen sehen können Verwenden für das gesamte Verzeichnis festgelegt Gegenparteien, dies kann aber auch für jedes seiner Attribute des entsprechenden Typs erfolgen.

Betrachten wir den Volltextindex genauer, der aus zwei Teilen (Indizes) besteht: dem Hauptindex und dem Zusatzindex. Schnelle Geschwindigkeit Der Datenabruf erfolgt auf Kosten des Hauptindexes, dessen Aktualisierung je nach Datenmenge jedoch relativ langsam ist. Der Komplementärindex ist das Gegenteil. Daten werden viel schneller hinzugefügt, aber die Suche ist langsamer. Das System durchsucht beide Indizes gleichzeitig. Die meisten Daten befinden sich im Hauptindex, während die dem System hinzugefügten Daten im Sekundärindex landen. Solange die Datenmenge im Sekundärindex klein ist, ist das Durchsuchen relativ schnell. Zu einem Zeitpunkt, an dem die Belastung des Systems gering ist, findet eine Index-Merge-Operation statt, wodurch der zusätzliche Index gelöscht wird und alle Daten in den Hauptindex gestellt werden. Es ist vorzuziehen, Indizes zu einem Zeitpunkt zusammenzuführen, an dem die Belastung des Systems minimal ist. Zu diesem Zweck können Sie geregelte Aufgaben und geplante Aufgaben erstellen.

Beim Angeben eines Suchausdrucks sind spezielle Operatoren zulässig

Der Volltextsuchmechanismus ermöglicht das Schreiben eines Teils der Zeichen des russischen Wortes mit lateinischen Einzelbuchstaben. Das Suchergebnis ändert sich nicht.

Zwei Bediener nebeneinander

  • vereinfacht. 8 Wörter auseinander
  • NEAR/[+/-]n – Suche nach Daten in einem Attribut in einem Abstand von n-1 Wörtern zwischen ihnen.

Das Vorzeichen gibt an, in welcher Richtung vom ersten Wort zum zweiten Wort gesucht wird. (+ - nachher, - vorher)

Der Platzhalter „*“ kann nur als Ersatz für das Ende eines Wortes verwendet werden

Der Fuzzy-Operator "#". Wenn die genaue Schreibweise des Namens nicht bekannt ist.

Software-Tools und Tools 1s: Programmierung.

Synonymoperator "!". Ermöglicht Ihnen, ein Wort und seine Synonyme zu finden

Wie kann der Volltextsuchindex programmgesteuert aktualisiert werden?

Code 1C v 8.x Prozedur UpdateIndexes() Export
FulltextSearch.UpdateIndex();
EndProzedur

Beispiel für eine Volltextdatensuche

Suchliste für Variablendefinitionen

Code 1C v 8.x Variable SearchList;

Außerdem definieren wir in der Prozedur zur Verarbeitung des Ereignisses Beim Öffnen des Formulars, dass diese Variable eine Volltextsuchliste enthält, mit deren Hilfe wir in den Daten suchen

Code 1C v 8.x Prozedur OnOpen()
Suchliste = FullTextSearch.CreateList();
EndProzedur

Lassen Sie uns nun für den Fall, dass Sie auf die Schaltfläche Suchen klicken, den Code schreiben, der es uns ermöglicht, gemäß dem im Feld SearchExpression angegebenen Ausdruck zu suchen

Code 1C v 8.x Prozedur FindClick(Element)
SearchList.SearchString = Suchausdruck;
Versuchen
SearchList.FirstPart();
Ausnahme
Warnung (Fehlerbeschreibung ());
Ende des Versuchs;
Wenn SearchList.TotalCount() = 0 dann
FormElements.MessageOResult.Value = "Nicht gefunden";
FormElements.SearchResult.SetText("");
Andernfalls
PrintSearchResult();
EndIf;
EndProzedur

In diesem Verfahren setzen wir zunächst den vom Benutzer eingegebenen Suchausdruck als Suchstring für die Volltextsuche. Dann führen wir die FirstPart()-Methode aus, die tatsächlich die Volltextsuche startet und den ersten Ergebnisstapel zurückgibt. Standardmäßig enthält eine Portion 20 Artikel. Danach analysieren wir die Anzahl der Elemente in der Suchliste. Wenn es kein Element enthält, zeigen wir die entsprechende Nachricht im Formular an. Andernfalls wird die Prozedur OutputSearchResult() aufgerufen, die dem Benutzer die Ergebnisse anzeigt.

Lassen Sie uns eine Prozedur mit demselben Namen im Formularmodul erstellen und den Code darin schreiben,

Code 1C v 8.x Prozedur DisplaySearchResult()
FormElements.MessageOResult.Value = "Shown" + String(SearchList.StartingPosition() + 1) + " - " + String(SearchList.StartingPosition() +SearchList.Count()) + "from" + SearchList.FullCount();
Ergebnis = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText(Ergebnis);
AccessibilityButtons();
EndProzedur

Die Schritte in diesem Verfahren sind einfach. Zunächst bilden wir eine Meldung darüber, welche Elemente angezeigt werden und wie viele Elemente insgesamt gefunden wurden. Dann erhalten wir das Ergebnis der Volltextsuche in Form von HTML-Text und zeigen diesen Text im Feld des im Formular befindlichen HTML-Dokuments an.

Schließlich übergeben wir die Kontrolle an die Prozedur ButtonsAccess(), um den Zugriff auf die Schaltflächen Vorheriger Teil und Nächster Teil verfügbar zu machen oder umgekehrt zu verbieten (je nachdem, welcher Teil der Ergebnisse angezeigt wird). Der Wortlaut dieses Verfahrens ist im Kodex enthalten

Code 1C v 8.x Schaltfläche Barrierefreiheitsverfahren()
FormElements.NextPortion.Availability = (SearchList.FullCount() - SearchList.StartPosition()) > SearchList.Quantity();
FormElements.PreviousPortion.Availability = (SearchList.StartPosition() > 0);
EndProzedur

Jetzt müssen Sie Event-Handler zum Drücken der Schaltflächen PreviousPortion() und NextPortion() erstellen.

Code 1C v 8.x Verfahren PrevPartPress(Element)
SearchList.PreviousPart();
PrintSearchResult();
EndProzedur
Verfahren NextBatchClick(Item)
SearchList.NextPart();
PrintSearchResult();
EndProzedur

Der letzte "Touch" wird die Erstellung eines Ereignishandlers für das onclick-Ereignis des HTML-Dokumentfelds sein, das sich im Formular befindet. Tatsache ist, dass das als HTML-Text dargestellte Ergebnis einer Volltextsuche Hyperlinks zu den Nummern der Elemente der Suchliste enthält. Und wir möchten, dass das System das Formular des in diesem Listenelement enthaltenen Objekts öffnet, wenn der Benutzer auf diesen Link klickt. Dazu fangen wir das im Feld HTML-Dokument enthaltene onclick-Event des HTML-Dokuments ab, holen uns die Listenpositionsnummer aus dem Hyperlink und öffnen das Formular des entsprechenden Objekts. Der Text des onclick-Ereignishandlers des HTML-Dokumentfelds wird im Code dargestellt

Code 1C v 8.x ProcedureSearchResultonclick(Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Element-ID prüfen
Wenn (htmlElement.id = "FullTextSearchListItem") Dann
// Dateinamen abrufen (Zeilennummer der Suchliste),
// in einem Hyperlink enthalten
NumberInList = Number(htmlElement.nameProp);
// Hole den Suchlisten-String nach Nummer
AusgewählteReihe = Suchliste[Listennummer];
// Öffnen Sie das Formular des gefundenen Objekts
OpenValue(SelectedRow.Value);
pEvtObj.returnValue = Falsch;
EndIf;
EndProzedur

DIE KLINGEL

Es gibt diejenigen, die diese Nachricht vor Ihnen gelesen haben.
Abonnieren Sie, um die neuesten Artikel zu erhalten.
Email
Name
Familien-oder Nachname
Wie möchten Sie The Bell lesen?
Kein Spam