KELL

On neid, kes loevad seda uudist enne sind.
Tellige uusimate artiklite saamiseks.
Meil
Nimi
Perekonnanimi
Kuidas teile meeldiks Kellukest lugeda
Rämpsposti pole

Uue otsingu funktsionaalsus põhineb kahel mehhanismil:
- täistekstiotsing (töötab väga kiiresti ja nõuab minimaalselt arvutusressursse);
- otsing DBMS-i abil (üldjuhul on otsingu kestus ja arvutusressursside maksumus võrdeline tabelis oleva teabe hulgaga).

Praeguses teostuses otsitakse loendist kasutamata täistekstiotsing järgmistel juhtudel ():
- täisteksti register on infobaasi tasemel keelatud;
- põhitabeli objekt ei ole täistekstiindeksiga indekseeritud;
- täistekstiotsingu abil tehtud otsingu tulemusena saadi viga.

Kui infobaasis on lubatud täistekstiotsing ja indeksit ei uuendata üldse või osaliselt (minu praktika kohaselt on 95% Klientide infobaasidest), siis saab kasutaja otsingu käigus kas ebausaldusväärse või tühja otsingutulemuse. .

Küsime firmalt 1C – kuidas olla? Kuidas tagada, et otsingutulemused oleksid alati kehtivad?
Saame vastuse: Jah, selleks, et täistekstiotsingu lubamisel otsingutulemused oleksid ajakohased, peate tagama, et täistekstiotsingu register on ajakohane. Tõhusaks ja ajakohaseks otsinguks pole muid võimalusi. praegune otsing veel ().

Ja kas üldiselt on olemas "tegelik täisteksti register"? Sõltub kasutajate arvust, infomuutuste intensiivsusest andmebaasis ja indeksi uuenduste sagedusest. Tavaliselt käivitatakse indeksi värskendus iga 60 sekundi järel. Noh, kui palju objekte ei muudetud ja protseduur suutis kõik muudatused selle 60 sekundi jooksul töödelda. Ja kui teeksite dokumentide rühma uuesti postitamise või kataloogi massilise ümberkirjutamise? Sel juhul ei saa keegi garanteerida aega, mille möödudes indeksi otsing taas usaldusväärseid andmeid annab.
Põhimõtteliselt pole see eriti kriitiline, välja arvatud mõned olukorrad. Levinud kasutajate töövõimalus on määrata loendis valik mõne väärtuse järgi, näiteks "Vastaspool", sisestada uus või kopeerida olemasolev dokument ja see üles kirjutada. Vana otsinguga oli uus dokument kohe loendis nähtav. Nüüd näeb kasutaja seda parimal juhul alles N sekundi pärast, kus N on 2-3 asemel lähemal 50-60 sekundile.
Kui sa ei märka, et uut dokumenti pole ja annad kellelegi infot valitud tulemuste põhjal, siis on see ilmselgelt ebausaldusväärne.

Seda tavatöö puhul infobaasiga. Mis juhtub konkreetsetes olukordades? Toon paar näidet.
1) Tööandmebaasis on täisteksti register lubatud ja seda uuendatakse sageli. Kasutaja palub talle juurutada töötava andmebaasi koopia, et ta saaks selles olevaid andmeid analüüsida.
Taastame varukoopia ja anname juurdepääsu. Kuid täistekstiotsing ei tööta, sest. indeksit ei salvestata DBMS-is, vaid eraldi failides (nii failis kui ka klient-serveri versioonis). Indeks pole dt-failis.
need. selleks, et kasutaja saaks nimekirjaotsingut kasutada, tuleb selles andmebaasis täisteksti register välja lülitada. Tõsi, kasutaja on kergelt üllatunud, et otsing võtab palju kauem aega. Või koostage kogu andmebaasi indeks uuesti.

2) (Tegelik enam-vähem suurte aluste puhul). Tootmisandmebaasis on täisteksti register lubatud ja seda uuendatakse sageli. Saabub kuu lõpp ja algab perioodi lõppemine. Alustame dokumentide hulgilaadimist ja teisaldamist. Süsteemi koormuse vähendamiseks blokeerime vastavalt ajastatud toimingute täitmise ja indeksi värskendamine peatub. Kasutajad jäävad pehmelt öeldes kahjumisse – miks pole nimekirjades uusi ega muudetud dokumente. Ainus väljapääs on infobaasi täistekstiotsingu keelamine ja vastavalt kõigi üksikasjade raske otsimise tõttu seadmetele veelgi suurem koormus.

Seega tundub mulle, et indeksi uuendamise toiming muutub infobaasi administraatoritele järjekordseks peavaluks.
Süsteem, mis varem garanteeris 100% teabe täpsuse ja asjakohasuse igal ajal, on nüüd muutumas rohkem võrdlussüsteemiks, milles ei saa olla täiesti kindel.
Ja kasutajad saavad veel ühe põhjuse IT-inimestele ette heita – "teie süsteem ei tööta korralikult".

Hoolimata asjaolust, et 8.3 platvormi täistekstiotsing kuulutasid arendajad välja juba ammu (alates 8.3.5 platvormist), ei kasutatud seda standardkonfiguratsioonides aktiivselt. Enterprise Accounting 3.0 viimastes väljaannetes on arendajad lisanud paljudesse loenditesse täistekstiotsingu. Minu kasutajate jaoks osutus see šokiks - programm lõpetas otsimise.

Loomulikult töötab täistekstiotsing, kuid kasutajad, kes ei näe akent "Otsi", on segaduses. Tüüpiline kasutusstsenaarium: alustage tippimist klaviatuuril, tippimise ajal kuvatakse aken "Leia", mis näitab otsitavat välja, otsitavat teksti ja otsingurežiimi "Stringi osa".

Vajutades sisestusnuppu, loend filtreeritakse, loendi kohale ilmub otsingu olekuriba. Kasutaja määrab ise, millises valdkonnas ja mida ta otsib. Uus otsing hakkab tööle kohe pärast selle tippimist ja mõjutab kõiki loendis kuvatavaid välju. Eraldi akent ei ilmu, kõik otsingusõnade vasted on värviliselt esile tõstetud.

Mitu päeva elasime uue otsinguga. Kasutajad kannatasid, kaebasid, saboteerisid. Kaebused ei lakanud, juhtkonnale anti ülesanne "teha kõik nii, nagu oli".

Kust alustada? Peate mõistma, kuidas vormid üksteisest erinevad. Laadisin alla konfiguratsiooni lähtekoodid uue otsingukäitumisega ja vanaga ning võrdlesin vormide lähtekoode.

Vormielemendi lisamine tüübiga "Search string" vastutab uue täistekstiotsingu funktsionaalsuse eest. Sai selgeks, mida otsida. Leidsin artikli ITS 7.3.1.5 kohta. Otsige dünaamilises loendis. Seda artiklit uurides jõudsin järeldusele, et otsingu uus toimimisviis sõltub kahest tegurist: 1. Vormil peab olema ülaltoodud vormielemendi täitmine, 2. Vormi dünaamilise loendi atribuut "SearchStringPosition" ei tohi olla võrdne "Mitte ükski".

Teoreetiliselt piisab serveris vormi loomisel loendi atribuudi "SearchString Position" määramisest "SearchString Position. Ei", kuid see ei töötanud kõigi vormidega, mõnel juhul jätkas uut otsingut. Me ei saa programmiliselt mitteprogrammiliselt loodud vormielemente kustutada, kuid nähtavust saab juhtida. Kui vormielement "AdditionSearchString" eemaldatakse nähtavusest, lakkab töötamast ka täisteksti uus otsing. Katsete käigus sündis järgmine kood, mille paigutasin üldmoodulisse:

Protseduur NewSearchInLists(Form) keelamine Export List = Form.Items.Find("Loend"); Kui loend = Undefined, siis Return; EndIf; List.SearchStringPosition = SearchStringPosition.None; AdditionSearchString = Vorm.Elements.Find("AdditionSearchString"); Kui EI ComplementSearchString = määratlemata, siis ComplementSearchString.Visibility = vale; EndIf; Lõppprotseduur

Protseduuris "Uue otsingu keelamine loendites" peate edastama parandatud vormi. Kuid kuidas saab seda teha kõigi vormide jaoks korraga?

Esimene lahendus on vormiredaktoriga konfiguraatoris vajalikud vormid käsitsi parandada. Keeldusin sellest otsusest kohe – see on pikk ja kõle ning konfiguratsiooni on hiljem raske värskendada.

Teine lahendus on vormi avamisel kutsuda protseduur, mis programmiliselt keelab uue otsingu. Protseduuri saab välja kutsuda mis tahes muust protseduurist, mille käivitamine on juba igas vormis registreeritud, sel juhul peame täiendavate uuendustega ainult seda protseduuri jälgima - et see ei muutuks. Valisin GeneralModule.ManagePrinti, millel on:

OnCreateOnServer (vorm, vaikimisi käsukoht, prindiobjektid) eksport

Seda protseduuri kutsutakse välja, kui serveris luuakse printimiskäskude täitmiseks vorm. Selle protseduuri käigus kirjutame koodi, mis kutsub meie funktsiooni välja, et keelata uus otsing loendites:

MyGeneralModule. Disabling NewSearchInLists(Form);

Raamatupidajad naudivad vana otsingut ja me valmistume selleks, millal Enterprise Accounting 3.0 ühilduvusrežiim võimaldab meil selle funktsiooni laiendusse portida.

Seni teavad vähesed, et alates versioonist 8.1 on platvormil 1C:Enterprise suurepärane ja väga kasulik mehhanism - täistekstiotsing. Mis see on? Kuidas see teile kasulik võib olla? Nendele küsimustele vastab artikkel V.V. Kalapüük, firma "1C".

Esiteks paar sõna selle kohta, mis mehhanism see on. Lihtsamalt öeldes võimaldab täistekstiotsing leida tekstilist teavet, mis asub peaaegu kõikjal kasutatavas konfiguratsioonis. Samal ajal saate otsida vajalikke andmeid kas kogu konfiguratsioonist tervikuna või kitsendada otsinguala mõnele objektile (näiteks teatud tüüpi dokumentidele või kataloogidele). Otsingukriteeriumid ise võivad varieeruda üsna laias vahemikus. See tähendab, et leiate vajalikud andmed, isegi kui ei mäleta täpselt, kus need konfiguratsioonis on salvestatud ja kuidas need täpselt salvestatakse.

Täistekstiotsing pakub järgmisi funktsioone.

  1. Toetatakse transliteratsiooni (venekeelsete sõnade kirjutamine ladina tähtedega vastavalt standardile GOST 7.79-2000). Näide: "Vene fraas" = "Vene fraza".
  2. Toetatakse asendamist (osa märkide kirjutamine vene sõnadega üheklahviliste ladina tähtedega). Näide: "russrfz frapf" (iga sõna lõpud trükitakse näiteks operaatorivea tõttu ladina keeles).
  3. Võimalik on uduotsing (leitud sõnade tähed võivad erineda) koos hägususläve näitamisega. Näide: määrates otsingustringis sõna "tere" ja udususe 17%, leiame kõik sarnased sõnad vigadega ja ilma: "tere", "tere", "too".
  4. Valitud metaandmeobjektide jaoks on võimalik määrata otsingu ulatus.
  5. Standardväljade nimede täisteksti indekseerimine ("Kood", "Kirjeldus" jne) toimub kõigis konfiguratsioonikeeltes.
  6. Otsing tehakse vene, inglise ja ukraina keele sünonüüme arvesse võttes.
  7. Vene keele morfoloogiline sõnastik sisaldab mitmeid konkreetseid sõnu, mis on seotud tegevusvaldkondadega, mis on automatiseeritud programmisüsteemi 1C:Enterprise abil.
  8. Standardina sisaldavad tarnitavad sõnastikud sõnastiku andmebaase ja tesauruste sõnastikke ning vene, ukraina ja sünonüüme. Inglise pakub Informatik.
  9. Saate otsida kasutades metamärke ("*"), samuti määrates otsinguoperaatoreid ("AND", "OR", "NOT", "NEAR") ja erimärke.

Täistekstiotsingut saab teha mis tahes konfiguratsioonis platvormil 1C: Enterprise 8.1.

See kehtib ka konfiguratsioonide kohta, mis on teisendatud versioonist 8.0. Täistekstiotsingu lubamiseks minge lihtsalt oma konfiguratsiooni menüüsse "Toimingud" ja valige üksus "Halda täistekstiotsingut" ja seejärel lubage see funktsioon (vt joonis 1).

Riis. üks

Kui kasutate 8.1 platvormil tüüpilisi konfiguratsioone, siis tõenäoliselt on neil juba sisseehitatud "Andmeotsingu" töötlus (menüü "Tööriistad" / "Andmete otsing"). Kui selline töötlemine kasutatavas konfiguratsioonis puudub, pole sellel tähtsust.

Selle võib alati leida ITS-i kettalt. Selles artiklis kasutame täistekstiotsingu võimaluste demonstreerimiseks näiteid selle konkreetse töötlemise tööst demokonfiguratsioonis "Ettevõtte raamatupidamine" (rev. 1.6).

Nagu juba mainitud, saab otsingut teostada mitme sõna järgi, kasutades otsinguoperaatoreid ja täpset fraasi. Lisaks saab otsingu asukohta piirata konkreetsete konfiguratsiooniobjektidega (nt tootmisteenuste seaduse dokumendid) või konfiguratsiooniobjektide loendi/komplektiga.

Andmete otsimisel on lubatud kasutada tabelis määratud otsingustringis olevaid otsinguoperaatoreid (kõik operaatorid tuleb määrata ainult SUURTÄHTEGA ja ilma jutumärkideta).

Tabel


Pidage meeles: kui operaatoreid pole määratud (sõnad sisestatakse tühikuga), otsib programm kõik päringu sõnad, kasutades operaatorit "AND".

Riis. 2 on näide lihtsast sõnaosaotsingust. Sisestades "lootus *", saime selle tulemusel lingi aadressile individuaalne, samuti dokumentidel, mille kommentaarides esineb fraas "Usaldusväärne klient".


Riis. 2

Riis. 3 on näide keerulisemast otsingust, kasutades otsingustringis konstruktsiooni "OR" ja piirates otsinguala kataloogis "Nomenklatuur" ja dokumente "Kaubade ja teenuste vastuvõtmine", "Kaubade ja teenuste müük". Selgelt on näha, et otsing kajastas kogu nomenklatuuri, mille nimetused sisaldavad kas sõna "teekann" või sõna "BINATONE", samuti kõiki seda tüüpi dokumente, mis sisaldavad kogu asjakohast nomenklatuuri.


Mitte iga raamatupidaja ei tea seda. kasulik tööriist 1C: Raamatupidamine 8, täistekstiotsinguna. Täistekstiotsingu mehhanism võimaldab teil leida tekstilist teavet kõikjal konfiguratsioonis.

Täistekstiotsing toimub "Andmeotsingu" töötluse abil, mis asub menüüs "Tööriistad":

Vaatame mõnda näidet täistekstiotsingu mehhanismi toimimisest.

Näide 1 Oletame, et peame kiiresti leidma dokumendid teatud toote, näiteks Marlboro sigarettide, kättesaamiseks.
Valige menüüst "Tööriistad" "Andmete otsing". Sisestage avanevas aknas ülemisele väljale otsingupäring "Marlboro" ja klõpsake nuppu "Otsi":


Näide 2 Meie organisatsioon rendib Rumjantsevi ärikeskuse lähedal asuvat kontorit. Kiiresti on vaja andmebaasist leida 2010. a märtsikuu üüriakt. Teeme järgmise otsingupäringu:


3. võimalus. Oletame, et kaupade saatmisel jätsime mõnesse dokumenti "Kaubade ja teenuste müük" järgmise kommentaari - "Makse edasilükkamine". Ja me pidime leidma kõik viivitusega saadetud dokumendid. Teeme järgmise otsingupäringu:

Samuti saate teha keerukama otsingu, kasutades otsinguoperaatoreid (AND, OR, NOT, NEAR).
Otsinguala saab piirata konkreetsete konfiguratsiooniobjektidega (näiteks dokument Kaupade ja teenuste kviitung). Selleks klõpsake nuppu "Seaded":

Ilmub konfiguratsiooniobjekti valimise väli. Märkige ruut "Piira otsingu ulatust" ja klõpsake nuppu "Vali otsitavad metaandmeobjektid".

Näiteks valige dokument "Kaubade ja teenuste kättesaamine".

Jääb üle sisestada otsingupäring ja otsida.

"Andmeotsingu" töötlemise allosas kajastub indeksi asjakohasus. Kui näete - "Indeks pole ajakohane", peate klõpsama nuppu "Uuenda indeksit".

Täisteksti otsing- võimaldab leida tekstilist teavet, mis on paigutatud peaaegu kõikjale kasutatavas konfiguratsioonis. Samal ajal saate otsida vajalikke andmeid kas kogu konfiguratsioonist tervikuna või kitsendada otsinguala mõnele objektile (näiteks teatud tüüpi dokumentidele või kataloogidele). Otsingukriteeriumid ise võivad varieeruda üsna laias vahemikus. See tähendab, et leiate vajalikud andmed, isegi kui ei mäleta täpselt, kus need konfiguratsioonis on salvestatud ja kuidas need täpselt salvestatakse.

Täistekstiotsing pakub järgmisi funktsioone:

  • Toetatakse transliteratsiooni (venekeelsete sõnade kirjutamine ladina tähtedega vastavalt standardile GOST 7.79-2000). Näide: "Vene fraas" = "Vene fraza".
  • Toetatakse asendamist (osa märkide kirjutamine vene sõnadega üheklahviliste ladina tähtedega). Näide: "russrfz frapf" (iga sõna lõpud trükitakse näiteks operaatorivea tõttu ladina keeles).
  • Võimalik on uduotsing (leitud sõnade tähed võivad erineda) koos hägususläve näitamisega. Näide: määrates otsingustringis sõna "tere" ja udususe 17%, leiame kõik sarnased sõnad vigadega ja ilma: "tere", "tere", "too".
  • Valitud metaandmeobjektide jaoks on võimalik määrata otsingu ulatus.
  • Standardväljade nimede täisteksti indekseerimine ("Kood", "Kirjeldus" jne) toimub kõigis konfiguratsioonikeeltes.
  • Otsing tehakse vene, inglise ja ukraina keele sünonüüme arvesse võttes.
  • Vene keele morfoloogiline sõnastik sisaldab mitmeid konkreetseid sõnu, mis on seotud tegevusvaldkondadega, mis on automatiseeritud programmisüsteemi 1C:Enterprise abil.
  • Standardina sisaldavad tarnitavad sõnastikud sõnavara andmebaase ja tesauruse sõnastikke ning vene, ukraina ja inglise keele sünonüüme, mida pakub Informatik.
  • Saate otsida kasutades metamärke ("*"), samuti määrates otsinguoperaatoreid ("AND", "OR", "NOT", "NEAR") ja erimärke.

Täistekstiotsingut saab teha mis tahes konfiguratsioonis platvormil 1C: Enterprise 8

Täistekstiotsingu juhtakna avamiseks tehke järgmist.

Üldine rakendus- menüüelement Toimingud – täistekstiotsingu haldamine.

Hallatud rakendus- menüüelement Peamenüü - Kõik funktsioonid - Standardne -Täistekstiotsingu haldamine.


  • Uuenda indeksit– indeksi loomine/indeksi uuendamine;
  • Tühjenda indeks– indeksi nullimine (soovitatav pärast kõigi andmete uuendamist);
  • üksus Luba indeksite liitmine- vastutab põhi- ja lisaindeksi ühendamise eest.

Täistekstiotsing tehakse täistekstiindeksi abil. Indeksi puudumisel ei ole täistekstiotsing kui selline võimalik. Otsingu õnnestumiseks peavad kõik vajalikud andmed sisalduma täisteksti indeksis. Kui kasutaja sisestab andmebaasi uusi andmeid, tuleb need lisada kõnealusesse indeksisse, vastasel juhul ei osale ta otsingus. Selle vältimiseks peate uuendama täisteksti registrit. Uuendamisel analüüsib süsteem ainult teatud tüüpi andmeid: string, viitetüüpi andmed (lingid dokumentidele, kataloogidele), number, kuupäev, väärtuste salvestus. Kui kasutajal ei ole teatud teabele juurdepääsuõigusi, siis ta seda otsingutulemustes ei näe. Samuti tuleb meeles pidada, et objektide atribuudid, mille järgi otsing tehakse, peavad olema seatud Täisteksti otsing – kasutamine, mis on vaikimisi määratud.

Nagu näete kinnisvara Kasutage seatud kogu kataloogi jaoks Vastaspooled, kuid seda saab teha ka iga selle vastavat tüüpi atribuudi puhul.

Vaatleme üksikasjalikumalt täisteksti indeksit, mis koosneb kahest osast (indeksist): põhiindeksist ja lisaindeksist. Suur kiirus Andmete otsimine toimub põhiindeksi arvelt, kuid selle uuendamine on suhteliselt aeglane, olenevalt andmemahust. Täiendav indeks on selle vastand. Andmed lisatakse sellele palju kiiremini, kuid otsimine on aeglasem. Süsteem otsib mõlemat indeksit korraga. Suurem osa andmetest asub põhiindeksis, samas kui süsteemi lisatud andmed jõuavad teise indeksisse. Kuni teisese indeksi andmete hulk on väike, on selle kaudu otsimine suhteliselt kiire. Ajal, mil süsteemi koormus on madal, toimub indeksi liitmise operatsioon, mille tulemusena lisaindeks kustutatakse ja kõik andmed paigutatakse põhiindeksisse. Eelistatav on indekseid liita ajal, mil süsteemi koormus on minimaalne. Sel eesmärgil saate luua reguleeritud ülesandeid ja ajastatud ülesandeid.

Otsinguavaldise määramisel on lubatud kasutada erioperaatoreid

Täistekstiotsingu mehhanism võimaldab kirjutada osa venekeelse sõna tähemärkidest üheklahviliste ladina tähtedega. Otsingutulemused ei muutu.

Kaks operaatorit kõrvuti

  • lihtsustatud. 8 sõna vahega
  • NEAR/[+/-]n – andmete otsimine ühest atribuudist n-1 sõna kaugusel.

Märk näitab, millises suunas alates esimesest sõnast teist sõna otsitakse. (+ - pärast, - enne)

Metamärki "*" saab kasutada ainult sõna lõpu asendusena

Hägune operaator "#". Kui nime täpne kirjapilt pole teada.

Tarkvara tööriistad ja tööriistad 1s: programmeerimine.

Sünonüümoperaator "!". Võimaldab leida sõna ja selle sünonüüme

Kuidas programmiliselt uuendada täisteksti otsinguindeksit?

Kood 1C v 8.x Protseduur UpdateIndexes() Eksport
FulltextSearch.UpdateIndex();
Lõppprotseduur

Täisteksti andmete otsimise näide

Muutuja definitsiooni otsinguloend

Kood 1C v 8.x Muutujate otsinguloend;

Lisaks defineerime sündmuse töötlemise protseduuris Vormi avamisel see muutuja sisaldab täisteksti otsinguloendit, mille abil otsime andmetest

Kood 1C v 8.x Protseduur OnOpen()
SearchList = FullTextSearch.CreateList();
Lõppprotseduur

Nüüd, kui klõpsate nupul Otsi, kirjutame koodi, mis võimaldab meil otsida vastavalt väljal SearchExpression määratud väljendile

Kood 1C v 8.x Protseduur FindClick (element)
SearchList.SearchString = SearchExpression;
Katse
SearchList.FirstPart();
Erand
Hoiatus(ErrorDescription());
Katse lõpp;
Kui SearchList.TotalCount() = 0 Siis
FormElements.MessageOResult.Value = "Ei leitud";
FormElements.SearchResult.SetText("");
Muidu
PrintSearchResult();
EndIf;
Lõppprotseduur

Esiteks määrame selles protseduuris kasutaja sisestatud otsinguavaldise täistekstiotsingu otsingustringiks. Seejärel käivitame meetodi FirstPart(), mis tegelikult käivitab täistekstiotsingu ja tagastab esimese tulemuste partii. Vaikimisi sisaldab osa 20 üksust. Pärast seda analüüsime otsinguloendis olevate elementide arvu. Kui see ei sisalda ühtegi elementi, kuvame vormil vastava teate. Vastasel juhul kutsutakse välja protseduur OutputSearchResult(), mis kuvab tulemused kasutajale.

Loome vormimoodulis samanimelise protseduuri ja kirjutame sinna koodi,

Kood 1C v 8.x Protseduur DisplaySearchResult()
FormElements.MessageORsult.Value = "Näidatud" + String(Otsinguloend.Alguspositsioon() + 1) + " - " + String(Otsinguloend.Alguspositsioon() +Otsinguloend.Arv()) + "from" + SearchList.FullCount();
Tulemus = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText(Result);
AccessibilityButtons();
Lõppprotseduur

Selle protseduuri sammud on lihtsad. Esiteks moodustame sõnumi selle kohta, milliseid elemente kuvatakse ja kui palju elemente kokku leiti. Seejärel saame täistekstiotsingu tulemuse HTML-teksti kujul ja kuvame selle teksti vormil asuva HTML-dokumendi väljale.

Lõpuks anname juhtimise üle protseduurile ButtonsAccess(), et teha kättesaadavaks või, vastupidi, keelata juurdepääs nuppudele Eelmine osa ja Järgmine osa (olenevalt sellest, millist tulemuste osa kuvatakse). Selle protseduuri tekst on esitatud koodeksis

Kood 1C v 8.x nuppude juurdepääsetavuse protseduur ()
FormElements.NextPortion.Availability = (SearchList.FullCount() - SearchList.StartPosition()) > SearchList.Quantity();
FormElements.PreviousPortion.Availability = (SearchList.StartPosition() > 0);
Lõppprotseduur

Nüüd peate nuppude PreviousPortion() ja NextPortion() vajutamiseks looma sündmuste käitlejad.

Kood 1C v 8.x Protseduur PrevPartPress (Element)
Otsinimekiri.EelminePart();
PrintSearchResult();
Lõppprotseduur
Protseduur NextBatchClick (üksus)
Otsinimekiri.NextPart();
PrintSearchResult();
Lõppprotseduur

Viimane puudutus on vormil asuva HTML-dokumendi välja onclick sündmuse jaoks sündmuste käitleja loomine. Fakt on see, et täistekstiotsingu tulemus, mis esitatakse HTML-tekstina, sisaldab hüperlinke otsinguloendi elementide arvule. Ja me soovime, et süsteem avaks selles loendielemendis sisalduva objekti vormi, kui kasutaja sellel lingil klõpsab. Selleks peatame HTML-dokumendi väljal oleva HTML-dokumendi onclick sündmuse, saame hüperlingilt loendi üksuse numbri ja avame vastava objekti vormi. Koodis esitatakse HTML-dokumendi välja onclick sündmuste töötleja tekst

Kood 1C v 8.x ProcedureSearchResultonclick (Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Kontrollige elemendi ID-d
Kui (htmlElement.id = "FullTextSearchListItem") Siis
// Hangi faili nimi (otsingunimekirja rea ​​number),
// sisaldub hüperlingis
NumberInList = Number(htmlElement.nameProp);
// Hankige otsinguloendi string numbri järgi
ValitudRida = Otsinimekiri[loendinumber];
// Avage leitud objekti vorm
OpenValue(SelectedRow.Value);
pEvtObj.returnValue = Väär;
EndIf;
Lõppprotseduur

KELL

On neid, kes loevad seda uudist enne sind.
Tellige uusimate artiklite saamiseks.
Meil
Nimi
Perekonnanimi
Kuidas teile meeldiks Kellukest lugeda
Rämpsposti pole