CLOPOTUL

Sunt cei care citesc aceasta stire inaintea ta.
Abonați-vă pentru a primi cele mai recente articole.
E-mail
Nume
Nume de familie
Cum ți-ar plăcea să citești Clopoțelul
Fără spam

Funcționalitatea noii căutări se bazează pe două mecanisme:
- căutare full-text (funcționează foarte rapid și necesită un minim de resurse de calcul);
- căutarea prin intermediul unui SGBD (în cazul general, durata căutării și costul resurselor de calcul sunt proporționale cu cantitatea de informații din tabel).

În implementarea curentă, lista va fi căutată fara folosire căutare full-text în următoarele cazuri ():
- indexul full-text este dezactivat la nivelul bazei de informații;
- obiectul tabelului principal nu este indexat de indexul full-text;
- ca urmare a unei căutări folosind căutarea text integral, a fost primită o eroare.

Dacă căutarea full-text este activată în baza de informații, iar indexul nu este actualizat deloc sau parțial (din practica mea a 95% din bazele de informații ale clienților), atunci utilizatorul va primi fie un rezultat de căutare nesigur, fie gol în timpul căutării. .

Întrebăm Firma 1C - cum să fie? Cum să vă asigurați că rezultatele căutării sunt întotdeauna valide?
Primim raspunsul: Da, pentru ca rezultatele căutării să fie actualizate atunci când căutarea full-text este activată, trebuie să vă asigurați că indexul căutării full-text este actualizat. Nu există alte opțiuni pentru eficient și actualizat. căutare până în prezent ().

Și dacă există în general „un index de text complet”? Depinde de numărul de utilizatori, de intensitatea modificărilor informațiilor din baza de date și de frecvența actualizărilor indexului. De obicei, o actualizare a indexului este rulată la fiecare 60 de secunde. Ei bine, dacă nu multe obiecte au fost schimbate, iar procedura a reușit să proceseze toate modificările în aceste 60 de secunde. Și dacă ați făcut o republicare a unui grup de documente sau o rescrie în masă a directorului? În acest caz, nimeni nu poate garanta timpul după care căutarea în index va oferi din nou date fiabile.
În principiu, acest lucru nu este deosebit de critic, cu excepția câtorva situații. O opțiune comună pentru ca utilizatorii să lucreze este să seteze o selecție în listă cu o anumită valoare, de exemplu, „Contraparte”, să introducă unul nou sau să copieze un document existent și să-l noteze. Cu vechea căutare, noul document era vizibil instantaneu în listă. Acum utilizatorul îl va vedea numai după N secunde în cel mai bun caz, unde N este mai aproape de 50-60 de secunde, mai degrabă decât de 2-3.
Dacă nu observați că nu există un document nou și furnizați informații cuiva pe baza rezultatelor selectate, atunci va fi evident nesigur.

Aceasta a fost în cazul lucrului normal cu baza de informații. Ce se întâmplă în situații specifice? Vă dau câteva exemple.
1) În baza de date de lucru, indexul full-text este activat și actualizat frecvent. Utilizatorul solicită să-i trimită o copie a bazei de date de lucru, astfel încât să poată analiza datele de pe aceasta.
Restabilim backup-ul și acordăm acces. Dar căutarea full-text nu va funcționa, deoarece. indexul este stocat nu în SGBD, ci în fișiere separate (atât în ​​fișier, cât și în versiunea client-server). Indexul nu se află în fișierul dt.
acestea. pentru ca utilizatorul să poată utiliza căutarea în listă, indexul full-text din această bază de date trebuie să fie dezactivat. Adevărat, utilizatorul va fi ușor surprins că căutarea va dura mult mai mult. Sau reconstruiți indexul în întreaga bază de date.

2) (Actual pentru baze mai mult sau mai puțin mari). În baza de date de producție, indexul full-text este activat și actualizat frecvent. Vine sfârșitul lunii și începe închiderea perioadei. Începem să încărcăm în vrac și să transferăm documente. Pentru a reduce încărcarea sistemului, blocăm execuția sarcinilor programate, respectiv, iar actualizarea indexului se oprește. Utilizatorii vor fi, pentru a spune ușor, în pierdere - de ce nu există documente noi sau modificate în liste. Singura cale de ieșire este să dezactivați căutarea full-text pentru baza de informații și, în consecință, să obțineți o încărcare și mai mare a echipamentului datorită unei căutări grele pentru toate detaliile.

Astfel, mi se pare că operațiunea de actualizare a indexului va deveni o altă bătaie de cap pentru administratorii de infobase.
Sistemul, care anterior garanta 100% acuratețea și relevanța informațiilor în orice moment, se transformă acum mai mult într-un sistem de referință în care nu se poate fi complet sigur.
Iar utilizatorii au un alt motiv pentru a le reproșa oamenilor IT - „sistemul dumneavoastră nu funcționează corect”.

În ciuda faptului că căutarea full-text pe platforma 8.3 a fost anunțată de dezvoltatori cu mult timp în urmă (de la platforma 8.3.5), aceasta nu a fost utilizată în mod activ în configurațiile standard. În versiunile recente ale Enterprise Accounting 3.0, dezvoltatorii au inclus căutarea full-text în multe liste. Pentru utilizatorii mei, acest lucru s-a dovedit a fi un șoc - programul a încetat să caute.

Desigur, căutarea full-text funcționează, dar utilizatorii, care nu văd fereastra „Găsiți”, sunt confuzi. Scenariu de utilizare tipic: Începeți să tastați pe tastatură, în timp ce introduceți, apare o fereastră „Găsiți”, care indică câmpul de căutat, textul de căutat și modul de căutare „Parte din șir”.

Prin apăsarea butonului enter, lista este filtrată, deasupra listei apare o bară de stare a căutării. Utilizatorul însuși determină în ce domeniu și ce caută. Noua căutare începe să funcționeze imediat ce o tastați și afectează toate câmpurile afișate în listă. Nu apare o fereastră separată, toate potrivirile cuvintelor căutate sunt evidențiate color.

Timp de câteva zile am trăit cu o nouă căutare. Utilizatorii au suferit, s-au plâns, au sabotat. Plângerile nu au încetat, conducerii i s-a dat sarcina de a „face totul așa cum a fost”.

Unde sa încep? Trebuie să înțelegeți cum diferă formele unele de altele. Am descărcat codurile sursă de configurare cu noul comportament de căutare și cu cel vechi și am comparat codurile sursă ale formularelor.

Adăugarea unui element de formular cu tipul „Șir de căutare” este responsabilă pentru funcționalitatea noii căutări full-text. A devenit clar ce să cauți. Am găsit un articol pe ITS 7.3.1.5. Căutați în lista dinamică. Examinarea acestui articol m-a condus la concluzia că noul mod în care funcționează căutarea depinde de doi factori: 1. Formularul trebuie să aibă completarea elementului de formular de mai sus, 2. Lista dinamică de pe formular trebuie să aibă proprietatea „SearchStringPosition” care nu este egală cu "Nici unul".

În teorie, la crearea unui formular pe server, este suficient să setați proprietatea listei „SearchString Position” la „SearchString Position. Nu”, dar acest lucru nu a funcționat cu toate formularele, în unele cazuri noua căutare a continuat să funcționeze. Nu putem șterge în mod programatic elemente de formular care nu sunt create în mod programatic, dar vizibilitatea poate fi controlată. Dacă elementul de formular „AdditionSearchString” este eliminat din vizibilitate, căutarea nouă cu text integral nu mai funcționează. În timpul experimentelor s-a născut următorul cod, pe care l-am plasat în modulul general:

Procedură Dezactivarea NewSearchInLists(Form) Export List = Form.Items.Find("List"); Dacă Listă = Nedefinit atunci Return; EndIf; List.SearchStringPosition = SearchStringPosition.None; AdditionSearchString = Form.Elements.Find("AdditionSearchString"); Dacă NU ComplementSearchString = Nedefinit, atunci ComplementSearchString.Visibility = False; EndIf; EndProcedure

În procedura „Dezactivarea căutării noi în liste” trebuie să treceți formularul corectat. Dar cum se poate face acest lucru pentru toate formele simultan?

Prima soluție este să remediați manual formularele necesare în configurator folosind editorul de formulare. Am refuzat imediat această decizie - este lungă și tristă și este dificil să actualizați configurația mai târziu.

A doua soluție este apelarea unei proceduri la deschiderea formularului, care va dezactiva programatic noua căutare. Procedura poate fi apelată din orice altă procedură, a cărei lansare este deja înregistrată în toate formele, în acest caz, cu actualizări ulterioare, va trebui doar să monitorizăm această procedură - astfel încât să nu se schimbe. Am ales GeneralModule.ManagePrint, care are:

OnCreateOnServer(Form,DefaultCommandPlace,PrintObjects) Export

Această procedură este apelată atunci când este creat un formular pe server pentru a completa comenzile de imprimare. În această procedură, scriem codul care apelează funcția noastră pentru a dezactiva căutarea nouă în liste:

MyGeneralModule.Disabling NewSearchInLists(Form);

Contabilii se bucură de vechea căutare și ne pregătim pentru momentul în care modul de compatibilitate al Enterprise Accounting 3.0 ne va permite să portăm această funcționalitate la o extensie.

Până acum puțină lume știe că, începând cu versiunea 8.1, platforma 1C:Enterprise are un mecanism minunat și foarte util – căutarea full-text. Ce este? Cum vă poate fi de folos? La aceste întrebări se răspunde în articolul lui V.V. Pescuit, firma "1C".

În primul rând, câteva cuvinte despre ce fel de mecanism este. Căutarea full-text, în termeni simpli, vă va permite să găsiți informații textuale situate aproape oriunde în configurația utilizată. În același timp, puteți căuta datele necesare fie în întreaga configurație în ansamblu, fie prin restrângerea zonei de căutare la câteva obiecte (de exemplu, anumite tipuri de documente sau directoare). Criteriile de căutare în sine pot varia într-o gamă destul de largă. Adică, puteți găsi datele necesare fără să vă amintiți exact unde sunt stocate în configurație și cum exact sunt înregistrate.

Căutarea text integral oferă următoarele caracteristici.

  1. Există suport pentru transliterare (scrierea cuvintelor rusești cu caractere latine în conformitate cu GOST 7.79-2000). Exemplu: „frază rusă” = „frază rusă”.
  2. Există suport pentru substituție (scrierea unei părți a caracterelor în cuvinte rusești cu caractere latine cu o singură cheie). Exemplu: „russrfz frapf” (terminările fiecărui cuvânt sunt tastate în latină, de exemplu, ca urmare a unei erori de operator).
  3. Există o posibilitate de căutare neclară (literele din cuvintele găsite pot diferi) cu o indicație a pragului de neclaritate. Exemplu: prin specificarea cuvântului „hello” în șirul de căutare și neclaritatea de 17%, vom găsi toate cuvintele similare cu și fără erori: „hello”, „hello”, „bring”.
  4. Este posibil să specificați domeniul de aplicare al căutării pentru obiectele de metadate selectate.
  5. Indexarea textului integral al numelor câmpurilor standard („Cod”, „Descriere”, etc.) se realizează în toate limbile de configurare.
  6. Căutarea se efectuează ținând cont de sinonimele limbilor rusă, engleză și ucraineană.
  7. Dicționarul morfologic al limbii ruse conține o serie de cuvinte specifice legate de domenii de activitate automatizate folosind sistemul programului 1C:Enterprise.
  8. Ca standard, dicționarele furnizate includ baze de date de dicționar și dicționare de tezaur și sinonime din rusă, ucraineană și Engleză furnizate de Informatik.
  9. Puteți căuta folosind caractere wildcard ("*"), precum și specificarea operatorilor de căutare ("ȘI", "SAU", "NU", "APROAPE") și caractere speciale.

Căutarea full-text poate fi efectuată în orice configurație pe platforma 1C:Enterprise 8.1.

Acest lucru se aplică și configurațiilor care au fost convertite din versiunea 8.0. Pentru a activa capabilitățile de căutare a textului integral, trebuie doar să accesați meniul „Operațiuni” din configurația dvs. și să selectați elementul „Gestionați căutarea în text integral”, apoi activați această funcție (vezi Fig. 1).

Orez. unu

Dacă utilizați configurații tipice pe platforma 8.1, atunci cel mai probabil acestea au deja încorporată procesarea „Căutare date” (meniul „Instrumente” / „Căutare date”). Dacă o astfel de procesare este absentă în configurația utilizată, nu contează.

Acesta poate fi întotdeauna găsit pe discul ITS. În acest articol, vom folosi exemple ale activității acestei procesări specifice în configurația demo „Contabilitatea întreprinderii” (rev. 1.6) pentru a demonstra capabilitățile de căutare full-text.

După cum sa menționat deja, căutarea poate fi efectuată prin mai multe cuvinte, folosind operatori de căutare și prin expresia exactă. În plus, locația de căutare poate fi limitată la anumite obiecte de configurare (de exemplu, documente Production Services Act) sau la o listă/set de obiecte de configurare.

La căutarea datelor, este permisă folosirea operatorilor de căutare în șirul de căutare (toți operatorii trebuie specificați numai cu majuscule și fără ghilimele) specificati în tabel.

Masa


Rețineți: dacă nu sunt specificati operatori (cuvintele sunt tastate cu un spațiu), programul caută toate cuvintele din interogare folosind operatorul „ȘI”.

Orez. 2 prezintă un exemplu de căutare simplă a unei părți din cuvânt. Tastând „speranță *”, am primit ca rezultat un link către individual, precum și pe documente, în comentariile cărora apare sintagma „Client de încredere”.


Orez. 2

Orez. 3 prezintă un exemplu de căutare mai complexă folosind constructul „SAU” din șirul de căutare și limitând zona de căutare în directorul „Nomenclatură” și documentele „Recepție de bunuri și servicii”, „Vânzare de bunuri și servicii”. Se vede clar că căutarea a reflectat întreaga nomenclatură, ale cărei nume conțin fie cuvântul „ceainic”, fie cuvântul „BINATONE”, precum și toate documentele de acest tip care conțin tot nomenclatorul relevant.


Nu toți contabilii știu despre asta. unealtă folositoareîn 1C: Contabilitate 8, ca căutare full-text. Mecanismul de căutare full-text vă permite să găsiți informații textuale oriunde în configurație.

Căutarea textului integral se efectuează utilizând procesarea „Căutare date”, care se află în meniul „Instrumente”:

Să ne uităm la câteva exemple despre cum funcționează mecanismul de căutare full-text.

Exemplul 1 Să presupunem că trebuie să găsim rapid documente pentru primirea unui anumit produs, de exemplu, țigările Marlboro.
Selectați „Căutare date” din meniul „Instrumente”. În fereastra care se deschide, în câmpul de sus, introduceți interogarea de căutare „Marlboro” și faceți clic pe butonul „Căutare”:


Exemplul 2 Organizația noastră închiriază un birou lângă centrul de afaceri Rumyantsev. Este necesar să găsiți rapid actul de închiriere pentru luna martie 2010 în baza de date. Facem următoarea interogare de căutare:


Opțiunea 3. Să presupunem că, atunci când expediem mărfuri, am lăsat următorul comentariu în unele documente „Vânzarea de bunuri și servicii” - „Plată amânată”. Și trebuia să găsim toate documentele expediate cu întârziere. Facem următoarea interogare de căutare:

De asemenea, puteți efectua o căutare mai complexă folosind operatori de căutare (ȘI, SAU, NU, APROAPE).
Zona de căutare poate fi limitată la anumite obiecte de configurare (de exemplu, documentul de chitanță de bunuri și servicii). Pentru a face acest lucru, faceți clic pe butonul „Setări”:

Va apărea un câmp pentru selectarea unui obiect de configurare. Bifați caseta „Limitați domeniile de căutare” și faceți clic pe butonul „Selectați obiectele metadate pentru căutare”:

De exemplu, selectați documentul „Recepție de bunuri și servicii”.

Rămâne să introduceți o interogare de căutare și să căutați.

În partea de jos a procesării „Căutare date”, se reflectă relevanța indexului. Dacă vedeți - „Indexul nu este actualizat”, trebuie să faceți clic pe butonul „Actualizare index”.

Căutare text integral- vă permite să găsiți informații textuale plasate aproape oriunde în configurația utilizată. În același timp, puteți căuta datele necesare fie în întreaga configurație în ansamblu, fie prin restrângerea zonei de căutare la câteva obiecte (de exemplu, anumite tipuri de documente sau directoare). Criteriile de căutare în sine pot varia într-o gamă destul de largă. Adică, puteți găsi datele necesare fără să vă amintiți exact unde sunt stocate în configurație și cum exact sunt înregistrate.

Căutarea text integral oferă următoarele caracteristici:

  • Există suport pentru transliterare (scrierea cuvintelor rusești cu caractere latine în conformitate cu GOST 7.79-2000). Exemplu: „frază rusă” = „frază rusă”.
  • Există suport pentru substituție (scrierea unei părți a caracterelor în cuvinte rusești cu caractere latine cu o singură cheie). Exemplu: „russrfz frapf” (terminările fiecărui cuvânt sunt tastate în latină, de exemplu, ca urmare a unei erori de operator).
  • Există o posibilitate de căutare neclară (literele din cuvintele găsite pot diferi) cu o indicație a pragului de neclaritate. Exemplu: prin specificarea cuvântului „hello” în șirul de căutare și neclaritatea de 17%, vom găsi toate cuvintele similare cu și fără erori: „hello”, „hello”, „bring”.
  • Este posibil să specificați domeniul de aplicare al căutării pentru obiectele de metadate selectate.
  • Indexarea textului integral al numelor câmpurilor standard („Cod”, „Descriere”, etc.) se realizează în toate limbile de configurare.
  • Căutarea se efectuează ținând cont de sinonimele limbilor rusă, engleză și ucraineană.
  • Dicționarul morfologic al limbii ruse conține o serie de cuvinte specifice legate de domenii de activitate automatizate folosind sistemul programului 1C:Enterprise.
  • Ca standard, dicționarele furnizate includ baze de date de vocabular și dicționare ale tezaurului și sinonime din rusă, ucraineană și engleză, care sunt furnizate de Informatik.
  • Puteți căuta folosind caractere wildcard ("*"), precum și specificarea operatorilor de căutare ("ȘI", "SAU", "NU", "APROAPE") și caractere speciale.

Căutarea full-text poate fi efectuată în orice configurație pe platforma 1C:Enterprise 8

Pentru a deschide fereastra de control a căutării cu text integral, procedați în felul următor:

Aplicatie generala- articol din meniu Operațiuni - Gestionarea căutării text integral.

Aplicație gestionată- articol din meniu Meniul principal - Toate funcțiile - Standard -Gestionarea căutării text integral.


  • Actualizare index– Crearea indexului/Actualizarea indexului;
  • Ștergeți indexul– punerea la zero a indexului (recomandat după actualizarea tuturor datelor);
  • element Permite îmbinarea indexului- este responsabil pentru îmbinarea indexului principal și suplimentar.

Căutarea full-text se efectuează folosind un index full-text. În absența unui index, căutarea în text integral nu este posibilă. Pentru ca o căutare să aibă succes, toate datele necesare trebuie incluse în indexul full-text. Dacă în baza de date sunt introduse date noi de către utilizator, acestea trebuie incluse în indexul în cauză, altfel nu va participa la căutare. Pentru a evita acest lucru, trebuie să actualizați indexul full-text. La actualizare, sistemul analizează doar anumite tipuri de date: șir, date de tip referință (linkuri către documente, directoare), număr, dată, stocare valori. Dacă utilizatorul nu are drepturi de acces la anumite informații, atunci nu le va putea vedea în rezultatele căutării. De asemenea, trebuie reținut că proprietățile obiectelor prin care se va efectua căutarea trebuie setate la Căutare text integral - Utilizare, care este setat implicit.

După cum puteți vedea proprietatea Utilizare setată pentru întregul director Contrapartide, dar acest lucru se poate face și pentru fiecare dintre atributele sale de tipul corespunzător.

Să luăm în considerare mai detaliat indexul full-text, care constă din două părți (indexuri): indexul principal și cel suplimentar. De mare viteză Preluarea datelor este asigurată în detrimentul indexului principal, dar actualizarea acestuia este relativ lentă, în funcție de cantitatea de date. Indicele complementar este opusul lui. Datele sunt adăugate mult mai rapid, dar căutarea este mai lentă. Sistemul caută ambii indici simultan. Majoritatea datelor se află în indexul principal, în timp ce datele adăugate în sistem ajung în indexul secundar. Atâta timp cât cantitatea de date din indexul secundar este mică, căutarea prin el este relativ rapidă. Într-un moment în care sarcina sistemului este scăzută, are loc o operație de îmbinare a indexului, în urma căreia indexul suplimentar este șters și toate datele sunt plasate în indexul principal. Este de preferat să îmbinați indecșii într-un moment în care sarcina sistemului este minimă. În acest scop, puteți crea sarcini reglementate și sarcini programate.

Operatori speciali sunt permisi atunci când se specifică o expresie de căutare

Mecanismul de căutare full-text permite scrierea unei părți din caracterele cuvântului rusesc cu caractere latine cu o singură cheie. Rezultatul căutării nu se va modifica.

Doi operatori unul lângă altul

  • simplificat. 8 cuvinte una de alta
  • NEAR/[+/-]n – caută date într-un singur atribut la o distanță de n-1 cuvinte între ele.

Semnul indică în ce direcție din primul cuvânt va fi căutat al doilea cuvânt. (+ - după, - înainte)

Caracterul „*” poate fi folosit doar ca înlocuitor pentru sfârșitul unui cuvânt

Operatorul neclar „#”. Dacă nu se cunoaște ortografia exactă a numelui.

Instrumente software și instrumente 1s: programare.

Operator sinonim „!”. Vă permite să găsiți un cuvânt și sinonimele acestuia

Cum se actualizează în mod programatic indexul de căutare a textului integral?

Cod 1C v 8.x Procedura UpdateIndexes() Export
FulltextSearch.UpdateIndex();
EndProcedure

Exemplu de căutare de date text integral

Lista de căutare cu definiții variabile

Cod 1C v 8.x Lista de căutare variabile;

În plus, în procedura de procesare a evenimentului Când se deschide formularul, definim că această variabilă va conține o listă de căutare full-text, cu ajutorul căreia vom căuta în date.

Cod 1C v 8.x Procedura OnOpen()
SearchList = FullTextSearch.CreateList();
EndProcedure

Acum, în cazul în care facem clic pe butonul Find, să scriem codul care ne va permite să căutăm în conformitate cu expresia specificată în câmpul SearchExpression

Cod 1C v 8.x Procedura FindClick(Element)
SearchList.SearchString = SearchExpression;
Atentat, încercare
SearchList.FirstPart();
Excepție
Avertisment(Descrierea erorii());
Sfârșitul încercării;
Dacă SearchList.TotalCount() = 0, atunci
FormElements.MessageOResult.Value = "Nu a fost găsit";
FormElements.SearchResult.SetText("");
In caz contrar
PrintSearchResult();
EndIf;
EndProcedure

În primul rând, în această procedură, setăm expresia de căutare introdusă de utilizator ca șir de căutare pentru căutarea full-text. Apoi executăm metoda FirstPart(), care începe de fapt căutarea full-text și returnează primul lot de rezultate. În mod implicit, o porție conține 20 de articole. După aceea, analizăm numărul de elemente din lista de căutare. Dacă nu conține niciun element, atunci afișăm mesajul corespunzător în formular. În caz contrar, este apelată procedura OutputSearchResult(), care afișează rezultatele utilizatorului.

Să creăm o procedură cu același nume în modulul formular și să scriem codul în ea,

Cod 1C v 8.x Procedura DisplaySearchResult()
FormElements.MessageOResult.Value = "Afișat" + String(SearchList.StartingPosition() + 1) + " - " + String(SearchList.StartingPosition() +SearchList.Count()) + "de la" + SearchList.FullCount();
Rezultat = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText(Result);
AccesibilitateButoane();
EndProcedure

Pașii din această procedură sunt simpli. Mai întâi, formăm un mesaj despre ce elemente sunt afișate și câte elemente au fost găsite în total. Apoi obținem rezultatul căutării full-text sub formă de text HTML și afișăm acest text în câmpul documentului HTML aflat în formular.

În final, transferăm controlul către procedura ButtonsAccess() pentru a pune la dispoziție sau, dimpotrivă, a interzice accesul la butoanele Porțiunea anterioară și Porțiunea următoare (în funcție de ce porțiune a rezultatelor este afișată). Textul acestei proceduri este prezentat în Cod

Cod 1C v 8.x Procedura de accesibilitate butoane ()
FormElements.NextPortion.Availability = (SearchList.FullCount() - SearchList.StartPosition()) > SearchList.Quantity();
FormElements.PreviousPortion.Availability = (SearchList.StartPosition() > 0);
EndProcedure

Acum trebuie să creați handlere de evenimente pentru a apăsa butoanele PreviousPortion() și NextPortion().

Cod 1C v 8.x Procedură PrevPartPress(Element)
SearchList.PreviousPart();
PrintSearchResult();
EndProcedure
Procedura NextBatchClick(Articol)
SearchList.NextPart();
PrintSearchResult();
EndProcedure

„Atingerea” finală va fi crearea unui handler de evenimente pentru evenimentul onclick al câmpului documentului HTML aflat în formular. Faptul este că rezultatul unei căutări full-text, prezentat ca text HTML, conține hyperlinkuri către numărul de elemente din lista de căutare. Și am dori ca sistemul să deschidă forma obiectului conținut în acest element de listă atunci când utilizatorul face clic pe acest link. Pentru a face acest lucru, vom intercepta evenimentul onclick al documentului HTML conținut în câmpul document HTML, vom obține numărul articolului din listă din hyperlink și vom deschide formularul obiectului corespunzător. Textul handler-ului de evenimente onclick al câmpului document HTML este prezentat în cod

Cod 1C v 8.x ProcedureSearchResultonclick(Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Verificați id-ul elementului
Dacă (htmlElement.id = "FullTextSearchListItem") Atunci
// Obține numele fișierului (numărul liniei listei de căutare),
// conținut într-un hyperlink
NumberInList = Number(htmlElement.nameProp);
// Obține șirul listei de căutare după număr
SelectedRow = SearchList[ListNumber];
// Deschideți forma obiectului găsit
OpenValue(SelectedRow.Value);
pEvtObj.returnValue = Fals;
EndIf;
EndProcedure

CLOPOTUL

Sunt cei care citesc aceasta stire inaintea ta.
Abonați-vă pentru a primi cele mai recente articole.
E-mail
Nume
Nume de familie
Cum ți-ar plăcea să citești Clopoțelul
Fără spam