KOMBANA

Ka nga ata që e lexojnë këtë lajm para jush.
Regjistrohu për të marrë artikujt më të fundit.
Email
Emri
Mbiemri
Si do të dëshironit të lexoni Këmbanën
Nuk ka spam

Funksionaliteti i kërkimit të ri bazohet në dy mekanizma:
- Kërkimi me tekst të plotë (funksionon shumë shpejt dhe kërkon një minimum burimesh kompjuterike);
- kërkimi me anë të një DBMS (në rastin e përgjithshëm, kohëzgjatja e kërkimit dhe kostoja e burimeve llogaritëse janë proporcionale me sasinë e informacionit në tabelë).

Në zbatimin aktual, lista do të kërkohet pa perdorim kërkimi i tekstit të plotë në rastet e mëposhtme ():
- indeksi i tekstit të plotë është i çaktivizuar në nivelin e infobazës;
- objekti i tabelës kryesore nuk indeksohet nga indeksi i tekstit të plotë;
- si rezultat i një kërkimi duke përdorur kërkimin me tekst të plotë, u mor një gabim.

Nëse kërkimi me tekst të plotë është aktivizuar në bazën e informacionit dhe indeksi nuk përditësohet fare ose pjesërisht (nga praktika ime e 95% të bazave të informacionit të klientëve), atëherë përdoruesi do të marrë ose një rezultat kërkimi jo të besueshëm ose bosh gjatë kërkimit. .

Ne pyesim Firmën 1C - si të jesh? Si të siguroheni që rezultatet e kërkimit të jenë gjithmonë të vlefshme?
Ne marrim përgjigjen: Po, në mënyrë që rezultatet e kërkimit të jenë të përditësuara kur është aktivizuar kërkimi me tekst të plotë, duhet të siguroheni që indeksi i kërkimit me tekst të plotë të jetë i përditësuar. Nuk ka opsione të tjera për efektiv dhe të përditësuar ende kërkimi i sotëm ().

Dhe nëse në përgjithësi ekziston "një indeks aktual i tekstit të plotë"? Varet nga numri i përdoruesve, intensiteti i ndryshimeve të informacionit në bazën e të dhënave dhe shpeshtësia e përditësimeve të indeksit. Në mënyrë tipike, një përditësim i indeksit kryhet çdo 60 sekonda. Epo, nëse jo shumë objekte u ndryshuan, dhe procedura arriti të përpunojë të gjitha ndryshimet në këto 60 sekonda. Dhe nëse keni bërë një ripostim të një grupi dokumentesh, apo një rishkrim masiv të drejtorisë? Në këtë rast, askush nuk mund të garantojë kohën pas së cilës kërkimi në indeks do të japë përsëri të dhëna të besueshme.
Në parim, kjo nuk është veçanërisht kritike, me përjashtim të disa situatave. Një opsion i zakonshëm që përdoruesit të punojnë është të vendosin një përzgjedhje në listë sipas një vlere, për shembull, "Kontraparti", të futni një të re ose të kopjoni një dokument ekzistues dhe ta shkruani atë. Me kërkimin e vjetër, dokumenti i ri u shfaq menjëherë në listë. Tani përdoruesi do ta shohë atë vetëm pas N sekondave në rastin më të mirë, ku N është më afër 50-60 sekonda dhe jo 2-3.
Nëse nuk vëreni se nuk ka asnjë dokument të ri dhe i jepni dikujt informacion bazuar në rezultatet e zgjedhura, atëherë ai do të jetë padyshim jo i besueshëm.

Kjo ishte në rastin e punës normale me infobazën. Çfarë ndodh në situata specifike? Unë do t'ju jap disa shembuj.
1) Në bazën e të dhënave të punës, indeksi i tekstit të plotë aktivizohet dhe përditësohet shpesh. Përdoruesi kërkon të vendosë një kopje të bazës së të dhënave të punës tek ai, në mënyrë që ai të mund të analizojë të dhënat mbi të.
Ne rivendosim kopjen rezervë dhe japim akses. Por kërkimi me tekst të plotë nuk do të funksionojë, sepse. indeksi nuk ruhet në DBMS, por në skedarë të veçantë (si në skedar ashtu edhe në versionin klient-server). Indeksi nuk është në skedarin dt.
ato. në mënyrë që përdoruesi të mund të përdorë kërkimin e listës, indeksi i tekstit të plotë në këtë bazë të dhënash duhet të fiket. Vërtetë, përdoruesi do të befasohet pak që kërkimi do të zgjasë shumë më gjatë. Ose rindërtoni indeksin në të gjithë bazën e të dhënave.

2) (Aktuale për baza pak a shumë të mëdha). Në bazën e të dhënave të prodhimit, indeksi i tekstit të plotë aktivizohet dhe përditësohet shpesh. Vjen fundi i muajit dhe fillon mbyllja e periudhës. Ne po fillojmë të ngarkojmë dhe transferojmë dokumente me shumicë. Për të zvogëluar ngarkesën në sistem, ne bllokojmë respektivisht ekzekutimin e detyrave të planifikuara dhe përditësimi i indeksit ndalon. Përdoruesit do të jenë, për ta thënë butë, në humbje - pse nuk ka dokumente të reja ose të ndryshuara në lista. E vetmja rrugëdalje është të çaktivizoni kërkimin me tekst të plotë për bazën e informacionit dhe, në përputhje me rrethanat, të merrni një ngarkesë edhe më të madhe në pajisje për shkak të një kërkimi të rëndë për të gjitha detajet.

Kështu, më duket se operacioni i përditësimit të indeksit do të bëhet një dhimbje koke tjetër për administratorët e infobazës.
Sistemi, i cili më parë garantonte 100% saktësi dhe rëndësi të informacionit në çdo kohë, tani po kthehet më shumë në një sistem referimi në të cilin nuk mund të jesh plotësisht i sigurt.
Dhe përdoruesit kanë një arsye tjetër për të qortuar njerëzit e IT - "sistemi juaj nuk po funksionon siç duhet".

Përkundër faktit se kërkimi me tekst të plotë në platformën 8.3 u njoftua nga zhvilluesit shumë kohë më parë (që nga platforma 8.3.5), ai nuk u përdor në mënyrë aktive në konfigurimet standarde. Në publikimet e fundit të Enterprise Accounting 3.0, zhvilluesit kanë përfshirë kërkimin e tekstit të plotë në shumë lista. Për përdoruesit e mi, kjo doli të ishte një tronditje - programi ndaloi kërkimin.

Sigurisht, kërkimi me tekst të plotë funksionon, por përdoruesit, duke mos parë dritaren "Gjej", janë të hutuar. Skenari tipik i përdorimit: Filloni të shkruani në tastierë, ndërsa shkruani, shfaqet një dritare "Gjej", që tregon fushën që do të kërkoni, tekstin që do të kërkoni dhe modalitetin e kërkimit "Pjesë e vargut".

Duke shtypur butonin Enter, lista filtrohet, mbi listë shfaqet një shirit i statusit të kërkimit. Vetë përdoruesi përcakton se në cilën fushë dhe çfarë kërkon. Kërkimi i ri fillon të funksionojë sapo ta shtypni dhe prek të gjitha fushat e shfaqura në listë. Një dritare e veçantë nuk shfaqet, të gjitha ndeshjet e fjalëve të kërkimit theksohen me ngjyra.

Për disa ditë jetuam me një kërkim të ri. Përdoruesit vuajtën, u ankuan, sabotuan. Ankesat nuk u ndalën, menaxhmentit iu dha detyra që "të bëjë gjithçka ashtu siç ishte".

Ku të fillojë? Ju duhet të kuptoni se si ndryshojnë format nga njëri-tjetri. Kam shkarkuar kodet burimore të konfigurimit me sjelljen e re të kërkimit dhe me atë të vjetër dhe krahasova kodet burimore të formularëve.

Shtimi i një elementi të formës me llojin "Starg Kërko" është përgjegjës për funksionalitetin e kërkimit të ri me tekst të plotë. U bë e qartë se çfarë të kërkonte. Gjet një artikull mbi ITS 7.3.1.5. Kërkoni në listën dinamike. Shqyrtimi i këtij artikulli më çoi në përfundimin se mënyra e re e funksionimit të kërkimit varet nga dy faktorë: 1. Formulari duhet të ketë plotësimin e elementit të formularit të mësipërm, 2. Lista dinamike në formular duhet të ketë veçorinë "SearchStringPosition" jo e barabartë me "Asnje".

Teorikisht, kur krijoni një formular në server, mjafton të vendosni veçorinë e listës "SearchString Position" në "SearchString Position. Jo", por kjo nuk funksionoi me të gjitha format, në disa raste kërkimi i ri vazhdoi të funksionojë. Ne nuk mund të fshijmë në mënyrë programore elementet e formës të krijuar jo programatikisht, por dukshmëria mund të kontrollohet. Nëse elementi i formës "AdditionSearchString" hiqet nga dukshmëria, kërkimi i ri me tekst të plotë gjithashtu nuk funksionon. Gjatë eksperimenteve, lindi kodi i mëposhtëm, të cilin e vendosa në modulin e përgjithshëm:

Procedura e çaktivizimit të NewSearchInLists(Form) Lista e eksportit = Form.Items.Find("Lista"); Nëse Lista = E Pacaktuar Pastaj Kthehu; FundNëse; List.SearchStringPosition = SearchStringPosition.Asnjë; AdditionSearchString = Form.Elements.Find("AdditionSearchString"); Nëse JO ComplementSearchString = I Padefinuar Atëherë ComplementSearchString.Dukshmëria = False; FundNëse; Përfundimi i procedurës

Në procedurën "Çaktivizimi i kërkimit të ri në lista" duhet të kaloni formularin e korrigjuar. Por si mund të bëhet kjo për të gjitha format në të njëjtën kohë?

Zgjidhja e parë është të rregulloni manualisht format e nevojshme në konfigurues duke përdorur redaktuesin e formularit. E refuzova menjëherë këtë vendim - është i gjatë dhe i zymtë, dhe është e vështirë të përditësosh konfigurimin më vonë.

Zgjidhja e dytë është thirrja e një procedure gjatë hapjes së formularit, e cila do të çaktivizojë në mënyrë programore kërkimin e ri. Procedura mund të thirret nga çdo procedurë tjetër, nisja e së cilës tashmë është regjistruar në të gjitha format, në këtë rast, me përditësime të mëtejshme, do të na duhet vetëm të monitorojmë këtë procedurë - në mënyrë që të mos ndryshojë. Zgjodha GeneralModule.ManagePrint, i cili ka:

Eksporto OnCreateOnServer (Forma,DefaultCommandPlace,PrintObjects)

Kjo procedurë thirret kur krijohet një formë në server për të plotësuar komandat e printimit. Në këtë procedurë, ne shkruajmë kodin që thërret funksionin tonë për të çaktivizuar kërkimin e ri në lista:

MyGeneralModule.Çaktivizimi i NewSearchInLists(Form);

Kontabilistët po shijojnë kërkimin e vjetër dhe ne po përgatitemi kur modaliteti i përputhshmërisë së Enterprise Accounting 3.0 do të na lejojë ta transferojmë këtë funksion në një shtesë.

Deri më tani, pak njerëz e dinë se, duke filluar nga versioni 8.1, platforma 1C:Enterprise ka një mekanizëm të mrekullueshëm dhe shumë të dobishëm - kërkimin me tekst të plotë. Cfare eshte? Si mund të jetë e dobishme për ju? Këto pyetje janë përgjigjur në artikullin e V.V. Peshkimi, firma "1C".

Së pari, disa fjalë se çfarë lloj mekanizmi është. Kërkimi me tekst të plotë, me fjalë të thjeshta, do t'ju lejojë të gjeni informacione tekstuale të vendosura pothuajse kudo në konfigurimin e përdorur. Në të njëjtën kohë, mund të kërkoni për të dhënat e nevojshme ose në të gjithë konfigurimin në tërësi, ose duke ngushtuar zonën e kërkimit në disa objekte (për shembull, disa lloje dokumentesh ose drejtorish). Vetë kriteret e kërkimit mund të ndryshojnë në një gamë mjaft të gjerë. Kjo do të thotë, ju mund të gjeni të dhënat e nevojshme pa kujtuar saktësisht se ku janë ruajtur në konfigurim dhe si saktësisht janë regjistruar.

Kërkimi i tekstit të plotë ofron veçoritë e mëposhtme.

  1. Ekziston mbështetje për transliterimin (shkrimi i fjalëve ruse me karaktere latine në përputhje me GOST 7.79-2000). Shembull: "fraza ruse" = "fraza ruse".
  2. Ekziston mbështetje për zëvendësimin (shkrimi i një pjese të karaktereve me fjalë ruse me karaktere latine me një çelës). Shembull: "russrfz frapf" (mbaresat e secilës fjalë janë shkruar në latinisht, për shembull, si rezultat i një gabimi të operatorit).
  3. Ekziston mundësia e kërkimit të paqartë (gërmat në fjalët e gjetura mund të ndryshojnë) me një tregues të pragut të paqartësisë. Shembull: duke specifikuar fjalën "përshëndetje" në vargun e kërkimit dhe paqartësinë prej 17%, do të gjejmë të gjitha fjalët e ngjashme me dhe pa gabime: "përshëndetje", "përshëndetje", "sjell".
  4. Është e mundur të specifikohet shtrirja e kërkimit për objektet e përzgjedhura të meta të dhënave.
  5. Indeksimi me tekst të plotë i emrave të fushave standarde ("Kodi", "Përshkrimi", etj.) kryhet në të gjitha gjuhët e konfigurimit.
  6. Kërkimi kryhet duke marrë parasysh sinonimet e gjuhëve ruse, angleze dhe ukrainase.
  7. Fjalori morfologjik i gjuhës ruse përmban një numër fjalësh specifike që lidhen me fushat e veprimtarisë të automatizuara duke përdorur sistemin e programit 1C: Enterprise.
  8. Si standard, fjalorët e furnizuar përfshijnë bazat e të dhënave të fjalorëve dhe fjalorë të thesaurus dhe sinonime të gjuhës ruse, ukrainase dhe anglisht siguruar nga Informatik.
  9. Ju mund të kërkoni duke përdorur shkronja të egra ("*"), si dhe duke specifikuar operatorët e kërkimit ("AND", "OR", "NOT", "AFËR") dhe karaktere speciale.

Kërkimi me tekst të plotë mund të kryhet në çdo konfigurim në platformën 1C:Enterprise 8.1.

Kjo vlen edhe për konfigurimet që janë konvertuar nga versioni 8.0. Për të aktivizuar aftësitë e kërkimit në tekst të plotë, thjesht shkoni te menyja "Operacionet" e konfigurimit tuaj dhe zgjidhni artikullin "Menaxho kërkimin në tekst të plotë" dhe më pas aktivizoni këtë funksion (shih Fig. 1).

Oriz. një

Nëse përdorni konfigurime tipike në platformën 8.1, atëherë ka shumë të ngjarë që ata tashmë e kanë të integruar përpunimin "Kërkimi i të dhënave" (menyja "Vegla" / "Kërkimi i të dhënave"). Nëse një përpunim i tillë mungon në konfigurimin e përdorur, nuk ka rëndësi.

Mund të gjendet gjithmonë në diskun e ITS. Në këtë artikull, ne do të përdorim shembuj të punës së këtij përpunimi të veçantë në konfigurimin demo "Kontabiliteti i ndërmarrjes" (rev. 1.6) për të demonstruar aftësitë e kërkimit në tekst të plotë.

Siç është përmendur tashmë, kërkimi mund të kryhet me disa fjalë, duke përdorur operatorët e kërkimit dhe me frazën e saktë. Përveç kësaj, vendndodhja e kërkimit mund të kufizohet në objekte të veçanta konfigurimi (p.sh. dokumente të Ligjit për Shërbimet e Prodhimit) ose një listë/bashkësi objektesh konfigurimi.

Gjatë kërkimit të të dhënave, lejohet përdorimi i operatorëve të kërkimit në vargun e kërkimit (të gjithë operatorët duhet të specifikohen vetëm me shkronja KAPITALE dhe pa thonjëza) të specifikuar në tabelë.

Tabela


Mbani në mend: nëse nuk specifikohen operatorë (fjalët shtypen me një hapësirë), programi kërkon të gjitha fjalët nga pyetja duke përdorur operatorin "AND".

Oriz. 2 tregon një shembull të një kërkimi të thjeshtë të pjesës së fjalës. Duke shtypur "shpresa *", ne morëm si rezultat një lidhje me individual, si dhe në dokumente, në komentet e të cilave shfaqet shprehja "Klient i besueshëm".


Oriz. 2

Oriz. 3 tregon një shembull të një kërkimi më kompleks duke përdorur konstruktin "OR" në vargun e kërkimit dhe duke kufizuar zonën e kërkimit në drejtorinë "Nomenklatura" dhe dokumentet "Pranimi i mallrave dhe shërbimeve", "Shitja e mallrave dhe shërbimeve". Shihet qartë se në kërkim është pasqyruar e gjithë nomenklatura, emrat e së cilës përmbajnë ose fjalën “cajnik” ose fjalën “BINATONE”, si dhe të gjitha dokumentet e këtyre llojeve që përmbajnë të gjithë nomenklaturën përkatëse.


Jo çdo kontabilist e di për këtë. mjet i dobishëm në 1C: Kontabiliteti 8, si një kërkim me tekst të plotë. Mekanizmi i kërkimit të tekstit të plotë ju lejon të gjeni informacione tekstuale kudo në konfigurim.

Kërkimi i tekstit të plotë kryhet duke përdorur përpunimin "Kërkimi i të dhënave", i cili ndodhet në menunë "Vegla":

Le të shohim disa shembuj se si funksionon mekanizmi i kërkimit me tekst të plotë.

Shembulli 1 Supozoni se duhet të gjejmë shpejt dokumente për marrjen e një produkti të caktuar, për shembull, cigaret Marlboro.
Zgjidhni "Kërkimi i të dhënave" nga menyja "Vegla". Në dritaren që hapet, në fushën e sipërme, futni pyetjen e kërkimit "Marlboro" dhe klikoni butonin "Kërko":


Shembulli 2 Organizata jonë merr me qira një zyrë pranë qendrës së biznesit Rumyantsev. Është e nevojshme të gjendet shpejt akti i qirasë për Mars 2010 në bazën e të dhënave. Ne bëjmë pyetjen e mëposhtme të kërkimit:


Opsioni 3. Supozoni, kur dërgojmë mallra, kemi lënë komentin e mëposhtëm në disa dokumente "Shitja e mallrave dhe shërbimeve" - ​​"Pagesa e shtyrë". Dhe na duhej të gjenim të gjitha dokumentet e dërguara me vonesë. Ne bëjmë pyetjen e mëposhtme të kërkimit:

Ju gjithashtu mund të kryeni një kërkim më kompleks duke përdorur operatorët e kërkimit (AND, OSE, JO, AFËR).
Zona e kërkimit mund të kufizohet në objekte specifike të konfigurimit (për shembull, dokumenti i marrjes së mallrave dhe shërbimeve). Për ta bërë këtë, klikoni në butonin "Cilësimet":

Do të shfaqet një fushë për zgjedhjen e një objekti konfigurimi. Kontrolloni kutinë "Limitoni shtrirjet e kërkimit" dhe klikoni butonin "Zgjidhni objektet e meta të dhënave për të kërkuar":

Për shembull, zgjidhni dokumentin "Marrja e mallrave dhe shërbimeve".

Mbetet të futni një pyetje kërkimi dhe të kërkoni.

Në fund të përpunimit të "Kërkimit të të dhënave", pasqyrohet rëndësia e indeksit. Nëse shihni - "Indeksi nuk është i përditësuar", duhet të klikoni butonin "Përditëso indeksin".

Kërkimi i tekstit të plotë- ju lejon të gjeni informacione tekstuale të vendosura pothuajse kudo në konfigurimin e përdorur. Në të njëjtën kohë, mund të kërkoni për të dhënat e nevojshme ose në të gjithë konfigurimin në tërësi, ose duke ngushtuar zonën e kërkimit në disa objekte (për shembull, disa lloje dokumentesh ose drejtorish). Vetë kriteret e kërkimit mund të ndryshojnë në një gamë mjaft të gjerë. Kjo do të thotë, ju mund të gjeni të dhënat e nevojshme pa kujtuar saktësisht se ku janë ruajtur në konfigurim dhe si saktësisht janë regjistruar.

Kërkimi i tekstit të plotë ofron veçoritë e mëposhtme:

  • Ekziston mbështetje për transliterimin (shkrimi i fjalëve ruse me karaktere latine në përputhje me GOST 7.79-2000). Shembull: "fraza ruse" = "fraza ruse".
  • Ekziston mbështetje për zëvendësimin (shkrimi i një pjese të karaktereve me fjalë ruse me karaktere latine me një çelës). Shembull: "russrfz frapf" (mbaresat e secilës fjalë janë shkruar në latinisht, për shembull, si rezultat i një gabimi të operatorit).
  • Ekziston mundësia e kërkimit të paqartë (gërmat në fjalët e gjetura mund të ndryshojnë) me një tregues të pragut të paqartësisë. Shembull: duke specifikuar fjalën "përshëndetje" në vargun e kërkimit dhe paqartësinë prej 17%, do të gjejmë të gjitha fjalët e ngjashme me dhe pa gabime: "përshëndetje", "përshëndetje", "sjell".
  • Është e mundur të specifikohet shtrirja e kërkimit për objektet e përzgjedhura të meta të dhënave.
  • Indeksimi me tekst të plotë i emrave të fushave standarde ("Kodi", "Përshkrimi", etj.) kryhet në të gjitha gjuhët e konfigurimit.
  • Kërkimi kryhet duke marrë parasysh sinonimet e gjuhëve ruse, angleze dhe ukrainase.
  • Fjalori morfologjik i gjuhës ruse përmban një numër fjalësh specifike që lidhen me fushat e veprimtarisë të automatizuara duke përdorur sistemin e programit 1C: Enterprise.
  • Si standard, fjalorët e furnizuar përfshijnë bazat e të dhënave të fjalorit dhe fjalorët e tezaurit dhe sinonimeve të gjuhës ruse, ukrainase dhe angleze, të cilat ofrohen nga Informatik.
  • Ju mund të kërkoni duke përdorur shkronja të egra ("*"), si dhe duke specifikuar operatorët e kërkimit ("AND", "OR", "NOT", "AFËR") dhe karaktere speciale.

Kërkimi i tekstit të plotë mund të kryhet në çdo konfigurim në platformën 1C:Enterprise 8

Për të hapur dritaren e kontrollit të kërkimit me tekst të plotë, bëni sa më poshtë:

Aplikim i Përgjithshëm- artikulli i menysë Operacionet - Menaxhimi i kërkimit të tekstit të plotë.

Aplikim i menaxhuar- artikulli i menysë Menyja kryesore - Të gjitha funksionet - Standard -Menaxhimi i kërkimit të tekstit të plotë.


  • Përditëso Indeksin– Krijimi i indeksit/përditësimi i indeksit;
  • Pastro indeksin– zerimi i indeksit (rekomandohet pas përditësimit të të gjitha të dhënave);
  • artikull Lejo bashkimin e indeksit- është përgjegjës për bashkimin e indeksit kryesor dhe shtesë.

Kërkimi i tekstit të plotë kryhet duke përdorur një indeks me tekst të plotë. Në mungesë të një indeksi, kërkimi me tekst të plotë si i tillë nuk është i mundur. Që një kërkim të jetë i suksesshëm, të gjitha të dhënat e kërkuara duhet të përfshihen në indeksin e tekstit të plotë. Nëse të dhëna të reja futen në bazën e të dhënave nga përdoruesi, ato duhet të përfshihen në indeksin në fjalë, përndryshe nuk do të marrin pjesë në kërkim. Për të shmangur këtë, duhet të përditësoni indeksin e tekstit të plotë. Kur përditësohet, sistemi analizon vetëm disa lloje të dhënash: String, Të dhëna të një lloji referencë (lidhje me dokumente, drejtori), Numri, Data, Ruajtja e vlerës. Nëse përdoruesi nuk ka të drejta aksesi në informacione të caktuara, atëherë ai nuk do të jetë në gjendje ta shohë atë në rezultatet e kërkimit. Duhet mbajtur mend gjithashtu se vetitë e objekteve me të cilat do të kryhet kërkimi duhet të vendosen në Kërkimi i tekstit të plotë - Përdor, i cili është vendosur si parazgjedhje.

Siç mund ta shihni pronën Përdorni vendosur për të gjithë drejtorinë Kundërpalët, por kjo mund të bëhet edhe për secilin atribut të tij të llojit përkatës.

Le të shqyrtojmë më në detaje indeksin e tekstit të plotë, i cili përbëhet nga dy pjesë (indekse): indeksi kryesor dhe ai shtesë. Shpejtësi e lartë Marrja e të dhënave sigurohet në kurriz të indeksit kryesor, por përditësimi i tij është relativisht i ngadaltë, në varësi të sasisë së të dhënave. Indeksi plotësues është e kundërta e tij. Të dhënat i shtohen shumë më shpejt, por kërkimi është më i ngadalshëm. Sistemi kërkon të dy indekset njëkohësisht. Shumica e të dhënave qëndrojnë në indeksin kryesor, ndërsa të dhënat e shtuara në sistem përfundojnë në indeksin dytësor. Për sa kohë që sasia e të dhënave në indeksin sekondar është e vogël, kërkimi në të është relativisht i shpejtë. Në një kohë kur ngarkesa në sistem është e ulët, ndodh një operacion i bashkimit të indeksit, si rezultat i të cilit indeksi shtesë pastrohet dhe të gjitha të dhënat vendosen në indeksin kryesor. Preferohet të bashkohen indekset në një kohë kur ngarkesa në sistem është minimale. Për këtë qëllim, ju mund të krijoni detyra të rregulluara dhe detyra të planifikuara.

Operatorët specialë të lejuar kur specifikojnë një shprehje kërkimi

Mekanizmi i kërkimit të tekstit të plotë ju lejon të shkruani një pjesë të karaktereve të fjalës ruse me karaktere latine me një çelës. Rezultati i kërkimit nuk do të ndryshojë.

Dy operatorë krah për krah

  • thjeshtuar. 8 fjalë larg njëri-tjetrit
  • AFËR/[+/-]n – kërkoni të dhëna në një atribut në një distancë prej n-1 fjalësh ndërmjet tyre.

Shenja tregon se në cilin drejtim nga fjala e parë do të kërkohet fjala e dytë. (+ - pas, - para)

Shenja "*" mund të përdoret vetëm si zëvendësim për fundin e një fjale

Operatori fuzzy "#". Nëse nuk dihet drejtshkrimi i saktë i emrit.

Mjetet dhe mjetet softuerike 1s: programimi.

Operatori sinonim "!". Ju lejon të gjeni një fjalë dhe sinonimet e saj

Si të përditësoni në mënyrë programore indeksin e kërkimit të tekstit të plotë?

Kodi 1C v 8.x Procedura UpdateIndexes() Eksporto
FulltextSearch.UpdateIndex();
Përfundimi i procedurës

Shembull i kërkimit të të dhënave të tekstit të plotë

Lista e kërkimit me definicion të variablave

Kodi 1C v 8.x Lista e Kërkimit të Variablave;

Përveç kësaj, në procedurën e përpunimit të ngjarjes Kur hapet formulari, përcaktojmë që kjo variabël do të përmbajë një listë kërkimi me tekst të plotë, me ndihmën e së cilës do të kërkojmë në të dhëna.

Kodi 1C v 8.x Procedura OnOpen()
Search List = FullTextSearch.CreateList();
Përfundimi i procedurës

Tani, për ngjarjen e klikimit në butonin Gjej, le të shkruajmë kodin që do të na lejojë të kërkojmë në përputhje me shprehjen e specifikuar në fushën SearchExpression

Kodi 1C v 8.x Procedura FindClick(Element)
SearchList.SearchString = SearchExpression;
Përpjekje
Search List.FirstPart();
Përjashtim
Paralajmërim(Përshkrimi i Gabimit());
Fundi i Përpjekjes;
Nëse SearchList.TotalCount() = 0 Pastaj
FormElements.MessageOResult.Value = "Nuk u gjet";
FormElements.SearchResult.SetText("");
Përndryshe
PrintSearchResult();
FundNëse;
Përfundimi i procedurës

Së pari në këtë procedurë, ne vendosëm shprehjen e kërkimit të futur nga përdoruesi si vargun e kërkimit për kërkimin e tekstit të plotë. Pastaj ne ekzekutojmë metodën FirstPart(), e cila në fakt fillon kërkimin e tekstit të plotë dhe kthen grupin e parë të rezultateve. Si parazgjedhje, një pjesë përmban 20 artikuj. Pas kësaj, ne analizojmë numrin e elementeve në listën e kërkimit. Nëse nuk përmban asnjë element, atëherë ne shfaqim mesazhin përkatës në formë. Përndryshe, thirret procedura OutputSearchResult(), e cila i shfaq rezultatet tek përdoruesi.

Le të krijojmë një procedurë me të njëjtin emër në modulin e formularit dhe të shkruajmë kodin në të,

Kodi 1C v 8.x Procedura DisplaySearchResult()
FormElements.MessageOResult.Value = "Shfaqet" + String(SearchList.StartingPosition() + 1) + " - " + String(SearchList.StartingPosition() +SearchList.Count()) + "nga" + Search List.FullCount();
Rezultati = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText(Rezultati);
Accessibility Buttons();
Përfundimi i procedurës

Hapat në këtë procedurë janë të thjeshta. Së pari, ne gjenerojmë një mesazh se cilat elemente shfaqen dhe sa elementë u gjetën në total. Pastaj marrim rezultatin e kërkimit të tekstit të plotë në formën e tekstit HTML dhe e shfaqim këtë tekst në fushën e dokumentit HTML që ndodhet në formë.

Së fundi, ne e transferojmë kontrollin në procedurën ButtonsAccess() në mënyrë që të vëmë në dispozicion ose, anasjelltas, të ndalojmë aksesin në butonat Pjesa e mëparshme dhe pjesa tjetër (në varësi të asaj se cila pjesë e rezultateve shfaqet). Teksti i kësaj procedure është paraqitur në Kod

Kodi 1C v 8.x Procedura e aksesueshmërisë së butonit()
FormElements.NextPortion.Availability = (SearchList.FullCount() - SearchList.StartPosition()) > SearchList.Quantity();
FormElements.PreviousPortion.Availability = (SearchList.StartPosition() > 0);
Përfundimi i procedurës

Tani ju duhet të krijoni mbajtës të ngjarjeve për të shtypur butonat PreviousPortion() dhe NextPortion().

Kodi 1C v 8.x Procedura PrevPartPress(Element)
Lista e kërkimit.Pjesa e mëparshme();
PrintSearchResult();
Përfundimi i procedurës
Procedura NextBatchClick(Artikulli)
Lista e kërkimit.Pjesa tjetër();
PrintSearchResult();
Përfundimi i procedurës

"Prekja" e fundit do të jetë krijimi i një mbajtësi të ngjarjeve për ngjarjen onclick të fushës së dokumentit HTML që ndodhet në formë. Fakti është se rezultati i një kërkimi me tekst të plotë, i paraqitur si tekst HTML, përmban lidhje me numrat e elementeve të listës së kërkimit. Dhe ne do të dëshironim që sistemi të hapte formën e objektit që përmbahet në këtë element të listës kur përdoruesi klikon në këtë lidhje. Për ta bërë këtë, ne do të përgjojmë ngjarjen onclick të dokumentit HTML që gjendet në fushën e dokumentit HTML, do të marrim numrin e artikullit të listës nga hiperlidhja dhe do të hapim formën e objektit përkatës. Teksti i mbajtësit të ngjarjeve onclick të fushës së dokumentit HTML paraqitet në kod

Kodi 1C v 8.x ProceduraSearchResultonclick(Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Kontrollo id-në e elementit
If (htmlElement.id = "FullTextSearchListItem") Pastaj
// Merrni emrin e skedarit (numrin e rreshtit të listës së kërkimit),
// të përfshira në një hiperlidhje
NumberInList = Numri (htmlElement.nameProp);
// Merrni vargun sipas numrit të listës së kërkimit
Rreshti i Zgjedhur = Lista e Kërkimit[Numri i Listës];
// Hapni formën e objektit të gjetur
OpenValue (SelectedRow.Value);
pEvtObj.returnVlera = False;
FundNëse;
Përfundimi i procedurës

KOMBANA

Ka nga ata që e lexojnë këtë lajm para jush.
Regjistrohu për të marrë artikujt më të fundit.
Email
Emri
Mbiemri
Si do të dëshironit të lexoni Këmbanën
Nuk ka spam