ZVONEK

Jsou tací, kteří čtou tuto zprávu před vámi.
Přihlaste se k odběru nejnovějších článků.
E-mailem
název
Příjmení
Jak by se vám líbilo číst Zvonek
Žádný spam

Funkce nového vyhledávání je založena na dvou mechanismech:
- fulltextové vyhledávání (funguje velmi rychle a vyžaduje minimum výpočetních zdrojů);
- vyhledávání pomocí DBMS (obecně je doba vyhledávání a náklady na výpočetní zdroje úměrné množství informací v tabulce).

V aktuální implementaci bude seznam prohledán bez použití fulltextové vyhledávání v následujících případech ():
- fulltextový index je zakázán na úrovni infobáze;
- objekt hlavní tabulky není indexován fulltextovým indexem;
- v důsledku vyhledávání pomocí fulltextového vyhledávání byla přijata chyba.

Pokud je v infobázi povoleno fulltextové vyhledávání a index není aktualizován vůbec nebo částečně (z mé praxe 95 % informačních databází zákazníků), pak uživatel během vyhledávání obdrží buď nespolehlivý nebo prázdný výsledek vyhledávání. .

Ptáme se firmy 1C – jak být? Jak zajistit, aby byly výsledky vyhledávání vždy platné?
Dostáváme odpověď: Ano, aby byly výsledky vyhledávání aktuální, když je povoleno fulltextové vyhledávání, musíte zajistit, aby byl index fulltextového vyhledávání aktuální.Neexistují žádné jiné možnosti pro efektivní a aktuální dosavadní vyhledávání ().

A zda obecně existuje „skutečný fulltextový index“? Závisí na počtu uživatelů, intenzitě změn informací v databázi a četnosti aktualizací indexu. Aktualizace indexu se obvykle spouští každých 60 sekund. Tedy, pokud se nezměnilo mnoho objektů a procedura zvládla zpracovat všechny změny za těchto 60 sekund. A pokud jste provedli přeúčtování skupiny dokumentů nebo hromadné přepisování adresáře? V tomto případě nikdo nemůže zaručit dobu, po které bude vyhledávání v indexu opět poskytovat spolehlivá data.
V zásadě to není nijak zvlášť kritické, s výjimkou několika situací. Běžnou možností pro práci uživatelů je nastavit výběr v seznamu nějakou hodnotou, například "Protistrana", zadat nový nebo zkopírovat existující dokument a zapsat jej. Při starém vyhledávání byl nový dokument okamžitě viditelný v seznamu. Nyní jej uživatel uvidí v nejlepším případě pouze po N sekundách, kde N je blíže 50–60 sekundám spíše než 2–3.
Pokud si nevšimnete, že neexistuje žádný nový dokument a na základě vybraných výsledků někomu poskytnete informace, pak bude evidentně nespolehlivý.

To bylo v případě běžné práce s infobází. Co se děje v konkrétních situacích? Dám vám pár příkladů.
1) V pracovní databázi je fulltextový index povolen a často aktualizován. Uživatel požádá o nasazení kopie pracovní databáze, aby mohl analyzovat data v ní.
Obnovíme zálohu a poskytneme přístup. Ale fulltextové vyhledávání nebude fungovat, protože. index není uložen v DBMS, ale v samostatných souborech (jak v souboru, tak ve verzi klient-server). Index není v souboru dt.
těch. aby uživatel mohl používat vyhledávání v seznamu, musí být v této databázi vypnutý fulltextový index. Pravda, uživatele mírně překvapí, že hledání bude trvat mnohem déle. Nebo znovu sestavit index v celé databázi.

2) (Aktuální pro více či méně velké základny). V produkční databázi je fulltextový index povolen a často aktualizován. Přichází konec měsíce a začíná uzávěrka období. Začínáme hromadně načítat a přenášet dokumenty. Abychom snížili zatížení systému, zablokujeme provádění naplánovaných úloh a aktualizace indexu se zastaví. Uživatelé budou mírně řečeno ve ztrátě – proč v seznamech nejsou nové nebo změněné doklady. Jediným východiskem je zakázat fulltextové vyhledávání v infobázi, a tedy ještě větší zatížení zařízení kvůli náročnému hledání všech podrobností.

Zdá se mi tedy, že operace aktualizace indexu bude pro správce infobází další bolestí hlavy.
Systém, který dříve zaručoval 100% přesnost a relevanci informací v kteroukoli dobu, se nyní mění spíše v referenční systém, ve kterém si člověk nemůže být zcela jistý.
A uživatelé získají další důvod k výčitkám IT pracovníků – „váš systém nefunguje správně“.

Navzdory tomu, že fulltextové vyhledávání na platformě 8.3 bylo vývojáři oznámeno již dávno (od platformy 8.3.5), nebylo ve standardních konfiguracích aktivně využíváno. V posledních verzích Enterprise Accounting 3.0 vývojáři zahrnuli fulltextové vyhledávání do mnoha seznamů. Pro mé uživatele to byl šok - program přestal hledat.

Fulltextové vyhledávání samozřejmě funguje, ale uživatelé, kteří nevidí okno „Najít“, jsou zmatení. Typický scénář použití: Začněte psát na klávesnici, během psaní se zobrazí okno „Najít“, které označuje pole, které se má prohledat, text, který má být prohledán, a režim vyhledávání „Část řetězce“.

Stisknutím tlačítka enter se seznam filtruje, nad seznamem se objeví stavový řádek hledání. Uživatel si sám určuje, v jakém oboru a co hledá. Nové vyhledávání začne fungovat, jakmile jej zadáte, a ovlivní všechna pole zobrazená v seznamu. Samostatné okno se nezobrazí, všechny shody hledaných slov jsou barevně zvýrazněny.

Několik dní jsme žili novým hledáním. Uživatelé trpěli, stěžovali si, sabotovali. Stížnosti neustávaly, vedení dostalo za úkol „udělat vše tak, jak bylo“.

kde začít? Musíte pochopit, jak se formy navzájem liší. Stáhl jsem zdrojové kódy konfigurace s novým chováním vyhledávání a se starým a porovnal zdrojové kódy formulářů.

Za funkčnost nového fulltextového vyhledávání je zodpovědné přidání formulářového prvku s typem "Vyhledávací řetězec". Bylo jasné, co hledat. Nalezen článek o ITS 7.3.1.5. Hledat v dynamickém seznamu. Zkoumání tohoto článku mě přivedlo k závěru, že nový způsob, jakým funguje vyhledávání, závisí na dvou faktorech: 1. Formulář musí mít výše uvedené dokončení prvku formuláře, 2. Dynamický seznam ve formuláři musí mít vlastnost "SearchStringPosition" nerovnající se "Žádný".

Teoreticky stačí při vytváření formuláře na serveru nastavit vlastnost seznamu "SearchString Position" na "SearchString Position. Ne", ale nefungovalo to u všech formulářů, v některých případech fungovalo nové vyhledávání i nadále. Nemůžeme programově odstranit neprogramově vytvořené prvky formuláře, ale viditelnost lze ovládat. Pokud je formulářový prvek "AdditionSearchString" odstraněn z viditelnosti, přestane fungovat i fulltextové nové vyhledávání. Během experimentů se zrodil následující kód, který jsem umístil do obecného modulu:

Postup Deaktivace exportu NewSearchInLists(Form) seznamu = Form.Items.Find("List"); If List = Undefined Then Return; EndIf; List.SearchStringPosition = SearchStringPosition.None; AdditionSearchString = Form.Elements.Find("AdditionSearchString"); If NOT ComplementSearchString = Undefined Then ComplementSearchString.Visibility = False; EndIf; EndProcedure

V proceduře "Zakázání nového vyhledávání v seznamech" je potřeba předat opravený formulář. Ale jak to lze udělat pro všechny formy najednou?

Prvním řešením je ruční oprava potřebných formulářů v konfigurátoru pomocí editoru formulářů. Okamžitě jsem toto rozhodnutí odmítl - je dlouhé a nudné a je obtížné později aktualizovat konfiguraci.

Druhým řešením je při otevírání formuláře zavolat proceduru, která nové hledání programově zakáže. Proceduru lze volat z jakékoliv jiné procedury, jejíž spuštění je již registrováno ve všech formulářích, v tomto případě s dalšími aktualizacemi nám bude stačit pouze hlídat tuto proceduru - aby se nezměnila. Vybral jsem si GeneralModule.ManagePrint, který má:

OnCreateOnServer(Form,DefaultCommandPlace,PrintObjects) Export

Tato procedura se volá, když je na serveru vytvořen formulář pro vyplnění tiskových příkazů. V této proceduře napíšeme kód, který volá naši funkci pro zakázání nového vyhledávání v seznamech:

MyGeneralModule.Disabling NewSearchInLists(Form);

Účetní si užívají staré vyhledávání a my se připravujeme na to, kdy nám režim kompatibility Enterprise Accounting 3.0 umožní přenést tuto funkci na rozšíření.

Až dosud málokdo ví, že od verze 8.1 má platforma 1C:Enterprise úžasný a velmi užitečný mechanismus – fulltextové vyhledávání. co to je? Jak to pro vás může být užitečné? Na tyto otázky odpovídá článek V.V. Rybaření, firma "1C".

Nejprve pár slov o tom, o jaký mechanismus se jedná. Fulltextové vyhledávání vám zjednodušeně řečeno umožní najít textové informace umístěné téměř kdekoli v použité konfiguraci. Potřebná data přitom můžete vyhledávat buď napříč celou konfigurací jako celkem, nebo zúžením oblasti hledání na pár objektů (například určité typy dokumentů nebo adresářů). Samotná kritéria vyhledávání se mohou lišit v poměrně širokém rozsahu. To znamená, že můžete najít potřebná data, aniž byste si pamatovali, kde přesně jsou v konfiguraci uložena a jak přesně jsou zaznamenána.

Fulltextové vyhledávání poskytuje následující funkce.

  1. Existuje podpora pro transliteraci (psaní ruských slov s latinskými znaky v souladu s GOST 7.79-2000). Příklad: „Ruská fráze“ = „Ruská fraza“.
  2. K dispozici je podpora substituce (zápis části znaků ruskými slovy s jednoklíčovými latinskými znaky). Příklad: "russrfz frapf" (koncovky každého slova jsou napsány v latině, například v důsledku chyby operátora).
  3. Je zde možnost fuzzy vyhledávání (písmena v nalezených slovech se mohou lišit) s uvedením prahu fuzzy. Příklad: zadáním slova "ahoj" do vyhledávacího řetězce a nejasností 17% najdeme všechna podobná slova s ​​chybami i bez nich: "ahoj", "ahoj", "přines".
  4. Je možné specifikovat rozsah vyhledávání pro vybrané objekty metadat.
  5. Fulltextová indexace názvů standardních polí ("Kód", "Popis" atd.) se provádí ve všech konfiguračních jazycích.
  6. Vyhledávání se provádí s ohledem na synonyma ruského, anglického a ukrajinského jazyka.
  7. Morfologický slovník ruského jazyka obsahuje řadu specifických slov souvisejících s oblastmi činnosti automatizovanými pomocí programového systému 1C:Enterprise.
  8. Součástí dodávaných slovníků jsou standardně slovníkové databáze a slovníky tezauru a synonyma ruštiny, ukrajinštiny a Angličtina poskytuje Informatik.
  9. Můžete vyhledávat pomocí zástupných znaků ("*") a také zadáním vyhledávacích operátorů ("AND", "OR", "NOT", "NEAR") a speciálních znaků.

Fulltextové vyhledávání lze provádět v libovolné konfiguraci na platformě 1C:Enterprise 8.1.

To platí také pro konfigurace, které byly převedeny z verze 8.0. Chcete-li povolit možnosti fulltextového vyhledávání, přejděte do nabídky „Operace“ vaší konfigurace a vyberte položku „Spravovat fulltextové vyhledávání“ a poté tuto funkci povolte (viz obr. 1).

Rýže. jeden

Pokud používáte typické konfigurace na platformě 8.1, pak s největší pravděpodobností již mají zabudované zpracování "Vyhledávání dat" (menu "Nástroje" / "Vyhledávání dat"). Pokud takové zpracování v použité konfiguraci chybí, nevadí.

Vždy jej lze nalézt na disku ITS. V tomto článku použijeme příklady práce tohoto konkrétního zpracování v demo konfiguraci "Enterprise Accounting" (rev. 1.6) k demonstraci možností fulltextového vyhledávání.

Jak již bylo zmíněno, vyhledávání lze provádět několika slovy, pomocí vyhledávacích operátorů a přesné fráze. Kromě toho může být vyhledávací umístění omezeno na konkrétní konfigurační objekty (např. dokumenty zákona o produkčních službách) nebo seznam/množinu konfiguračních objektů.

Při vyhledávání dat je povoleno používat vyhledávací operátory ve vyhledávacím řetězci (všechny operátory musí být uvedeny pouze VELKÝMI písmeny a bez uvozovek) uvedeném v tabulce.

Stůl


Pamatujte: pokud nejsou zadány žádné operátory (slova jsou zadávána s mezerou), program vyhledá všechna slova z dotazu pomocí operátoru „AND“.

Rýže. 2 ukazuje příklad jednoduchého hledání po částech slova. Zadáním "naděje *" jsme jako výsledek obdrželi odkaz na individuální, jakož i na dokumentech, v jejichž komentářích se vyskytuje slovní spojení „Spolehlivý klient“.


Rýže. 2

Rýže. 3 je uveden příklad složitějšího vyhledávání pomocí konstruktu "OR" ve vyhledávacím řetězci a omezení oblasti vyhledávání v adresáři "Číselník" a dokumentech "Příjem zboží a služeb", "Prodej zboží a služeb". Je jasně vidět, že vyhledávání odráželo celou nomenklaturu, jejíž názvy obsahují buď slovo „čajová konvice“ nebo slovo „BINATONE“, jakož i všechny dokumenty tohoto typu obsahující veškerou příslušnou nomenklaturu.


Ne každý účetní o tom ví. užitečný nástroj v 1C: Účetnictví 8, jako fulltextové vyhledávání. Mechanismus fulltextového vyhledávání umožňuje najít textové informace kdekoli v konfiguraci.

Fulltextové vyhledávání se provádí pomocí zpracování "Vyhledávání dat", které se nachází v nabídce "Nástroje":

Podívejme se na pár příkladů, jak funguje mechanismus fulltextového vyhledávání.

Příklad 1 Předpokládejme, že potřebujeme rychle najít dokumenty pro příjem určitého produktu, například cigaret Marlboro.
Z nabídky "Nástroje" vyberte "Vyhledávání dat". V okně, které se otevře, zadejte do horního pole vyhledávací dotaz „Marlboro“ a klikněte na tlačítko „Hledat“:


Příklad 2 Naše organizace si pronajímá kancelář poblíž obchodního centra Rumjancev. V databázi je potřeba rychle najít akt pronájmu za březen 2010. Vytváříme následující vyhledávací dotaz:


Možnost 3. Předpokládejme, že jsme při expedici zboží nechali v některých dokumentech následující komentář „Prodej zboží a služeb“ - „Odložená platba“. A potřebovali jsme najít všechny dokumenty odeslané se zpožděním. Vytváříme následující vyhledávací dotaz:

Můžete také provést složitější vyhledávání pomocí vyhledávacích operátorů (AND, OR, NOT, NEAR).
Oblast hledání může být omezena na konkrétní konfigurační objekty (například dokument Příjem zboží a služeb). Chcete-li to provést, klikněte na tlačítko "Nastavení":

Zobrazí se pole pro výběr konfiguračního objektu. Zaškrtněte políčko „Omezit rozsahy vyhledávání“ a klikněte na tlačítko „Vybrat objekty metadat k vyhledávání“:

Vyberte například doklad „Příjem zboží a služeb“.

Zbývá zadat vyhledávací dotaz a hledat.

Ve spodní části zpracování "Vyhledávání dat" se odráží relevance indexu. Pokud vidíte - "Index není aktuální", musíte kliknout na tlačítko "Aktualizovat index".

Fulltextové vyhledávání- umožňuje najít textové informace umístěné téměř kdekoli v použité konfiguraci. Potřebná data přitom můžete vyhledávat buď napříč celou konfigurací jako celkem, nebo zúžením oblasti hledání na pár objektů (například určité typy dokumentů nebo adresářů). Samotná kritéria vyhledávání se mohou lišit v poměrně širokém rozsahu. To znamená, že můžete najít potřebná data, aniž byste si pamatovali, kde přesně jsou v konfiguraci uložena a jak přesně jsou zaznamenána.

Fulltextové vyhledávání poskytuje následující funkce:

  • Existuje podpora pro transliteraci (psaní ruských slov s latinskými znaky v souladu s GOST 7.79-2000). Příklad: „Ruská fráze“ = „Ruská fraza“.
  • K dispozici je podpora substituce (zápis části znaků ruskými slovy s jednoklíčovými latinskými znaky). Příklad: "russrfz frapf" (koncovky každého slova jsou napsány v latině, například v důsledku chyby operátora).
  • Je zde možnost fuzzy vyhledávání (písmena v nalezených slovech se mohou lišit) s uvedením prahu fuzzy. Příklad: zadáním slova "ahoj" do vyhledávacího řetězce a nejasností 17% najdeme všechna podobná slova s ​​chybami i bez nich: "ahoj", "ahoj", "přines".
  • Je možné specifikovat rozsah vyhledávání pro vybrané objekty metadat.
  • Fulltextová indexace názvů standardních polí ("Kód", "Popis" atd.) se provádí ve všech konfiguračních jazycích.
  • Vyhledávání se provádí s ohledem na synonyma ruského, anglického a ukrajinského jazyka.
  • Morfologický slovník ruského jazyka obsahuje řadu specifických slov souvisejících s oblastmi činnosti automatizovanými pomocí programového systému 1C:Enterprise.
  • Součástí dodávaných slovníků jsou standardně databáze slovní zásoby a slovníky tezauru a synonym ruštiny, ukrajinštiny a angličtiny, které poskytuje Informatik.
  • Můžete vyhledávat pomocí zástupných znaků ("*") a také zadáním vyhledávacích operátorů ("AND", "OR", "NOT", "NEAR") a speciálních znaků.

Fulltextové vyhledávání lze provádět v libovolné konfiguraci na platformě 1C:Enterprise 8

Chcete-li otevřít okno ovládání fulltextového vyhledávání, postupujte takto:

Obecná aplikace- položka menu Operace – Správa fulltextového vyhledávání.

Spravovaná aplikace- položka menu Hlavní menu - Všechny funkce - Standardní -Správa fulltextového vyhledávání.


  • Aktualizovat index– vytvoření indexu/aktualizace indexu;
  • Vymazat index– vynulování indexu (doporučeno po aktualizaci všech dat);
  • položka Povolit slučování indexů- zodpovídá za sloučení hlavního a doplňkového indexu.

Fulltextové vyhledávání se provádí pomocí fulltextového indexu. Při absenci indexu není fulltextové vyhledávání jako takové možné. Aby bylo vyhledávání úspěšné, musí být ve fulltextovém indexu zahrnuta všechna požadovaná data. Pokud uživatel zadá do databáze nová data, musí být zařazena do příslušného indexu, jinak se vyhledávání nezúčastní. Abyste tomu zabránili, musíte aktualizovat fulltextový index. Při aktualizaci systém analyzuje pouze určité typy dat: Řetězec, Data referenčního typu (odkazy na dokumenty, adresáře), Číslo, Datum, Uložení hodnoty. Pokud uživatel nemá přístupová práva k určitým informacím, pak je neuvidí ve výsledcích vyhledávání. Je třeba také pamatovat na to, že je třeba nastavit vlastnosti objektů, pomocí kterých bude vyhledávání prováděno Fulltextové vyhledávání – použití, který je standardně nastaven.

Jak můžete vidět nemovitost Použití nastavit pro celý adresář Protistrany, ale lze to provést také pro každý jeho atribut odpovídajícího typu.

Podívejme se podrobněji na fulltextový rejstřík, který se skládá ze dvou částí (indexů): hlavního rejstříku a doplňkového. Vysoká rychlost Načítání dat je poskytováno na úkor hlavního indexu, ale jeho aktualizace je v závislosti na množství dat poměrně pomalá. Doplňkový index je jeho opakem. Data se do něj přidávají mnohem rychleji, ale vyhledávání je pomalejší. Systém prohledává oba indexy současně. Většina dat se nachází v hlavním indexu, zatímco data přidaná do systému končí v sekundárním indexu. Dokud je množství dat v sekundárním indexu malé, je prohledávání v něm relativně rychlé. V době, kdy je zatížení systému nízké, dojde k operaci sloučení indexu, v důsledku čehož je dodatečný index vymazán a všechna data jsou umístěna do hlavního indexu. Je vhodnější sloučit indexy v době, kdy je zatížení systému minimální. Za tímto účelem můžete vytvářet regulované úlohy a plánované úlohy.

Při zadávání vyhledávacího výrazu jsou povoleny speciální operátory

Mechanismus fulltextového vyhledávání umožňuje psát část znaků ruského slova jednoklíčovými latinskými znaky. Výsledek hledání se nezmění.

Dva operátoři vedle sebe

  • zjednodušený. 8 slov od sebe
  • NEAR/[+/-]n – vyhledá data v jednom atributu ve vzdálenosti n-1 slov mezi nimi.

Značka udává, kterým směrem od prvního slova se bude hledat druhé slovo. (+ - po, - před)

Zástupný znak "*" lze použít pouze jako náhradu za konec slova

Fuzzy operátor "#". Pokud není znám přesný pravopis jména.

Softwarové nástroje a nástroje 1s: programování.

Operátor synonyma "!". Umožňuje vám najít slovo a jeho synonyma

Jak programově aktualizovat index fulltextového vyhledávání?

Kód 1C v 8.x Postup UpdateIndexes() Export
FulltextSearch.UpdateIndex();
EndProcedure

Příklad fulltextového vyhledávání dat

Definice proměnné SearchList

Kód 1C v 8.x Variable SearchList;

Navíc v postupu zpracování události Při otevření formuláře definujeme, že tato proměnná bude obsahovat fulltextový vyhledávací seznam, s jehož pomocí budeme v datech vyhledávat

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

Nyní pro případ kliknutí na tlačítko Najít napíšeme kód, který nám umožní vyhledávat v souladu s výrazem uvedeným v poli SearchExpression

Kód 1C v 8.x Postup FindClick(Element)
SearchList.SearchString = SearchExpression;
Pokus
SearchList.FirstPart();
Výjimka
Warning(ErrorDescription());
Konec pokusu;
If SearchList.TotalCount() = 0 Then
FormElements.MessageOResult.Value = "Nenalezeno";
FormElements.SearchResult.SetText("");
v opačném případě
PrintSearchResult();
EndIf;
EndProcedure

Nejprve v tomto postupu nastavíme hledaný výraz zadaný uživatelem jako vyhledávací řetězec pro fulltextové vyhledávání. Poté spustíme metodu FirstPart(), která ve skutečnosti spustí fulltextové vyhledávání a vrátí první várku výsledků. Ve výchozím nastavení obsahuje část 20 položek. Poté analyzujeme počet prvků ve vyhledávacím seznamu. Pokud neobsahuje žádný prvek, zobrazíme ve formuláři odpovídající zprávu. Jinak je volána procedura OutputSearchResult(), která zobrazí výsledky uživateli.

Vytvořme proceduru se stejným názvem v modulu formuláře a zapišme do ní kód,

Kód 1C v 8.x Postup DisplaySearchResult()
FormElements.MessageOResult.Value = "Shown" + String(SearchList.StartingPosition() + 1) + " - " + String(SearchList.StartingPosition() +SearchList.Count()) + "from" + SearchList.FullCount();
Result = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText(Result);
AccessibilityButtons();
EndProcedure

Kroky v tomto postupu jsou jednoduché. Nejprve vytvoříme zprávu o tom, jaké prvky jsou zobrazeny a kolik prvků bylo celkem nalezeno. Poté získáme výsledek fulltextového vyhledávání ve formě HTML textu a tento text zobrazíme v poli HTML dokumentu umístěného ve formuláři.

Nakonec přeneseme řízení na proceduru ButtonsAccess(), abychom zpřístupnili nebo naopak zakázali přístup k tlačítkům Předchozí část a Další část (podle toho, která část výsledků se zobrazí). Text tohoto postupu je uveden v Kodexu

Kód 1C vs 8.x Button Accessibility Procedure()
FormElements.NextPortion.Availability = (SearchList.FullCount() - SearchList.StartPosition()) > SearchList.Quantity();
FormElements.PreviousPortion.Availability = (SearchList.StartPosition() > 0);
EndProcedure

Nyní musíte vytvořit obslužné rutiny událostí pro stisknutí tlačítek PreviousPortion() a NextPortion().

Kód 1C v 8.x Postup PrevPartPress(Element)
SearchList.PreviousPart();
PrintSearchResult();
EndProcedure
Procedura NextBatchClick(Item)
SearchList.NextPart();
PrintSearchResult();
EndProcedure

Posledním „dotykem“ bude vytvoření obsluhy události pro událost onclick pole dokumentu HTML umístěného ve formuláři. Faktem je, že výsledek fulltextového vyhledávání, prezentovaný jako HTML text, obsahuje hypertextové odkazy na čísla prvků seznamu vyhledávání. A my bychom chtěli, aby systém otevřel formu objektu obsaženého v tomto prvku seznamu, když uživatel klikne na tento odkaz. Za tímto účelem zachytíme událost onclick dokumentu HTML obsaženého v poli dokumentu HTML, získáme číslo položky seznamu z hypertextového odkazu a otevřeme formulář odpovídajícího objektu. V kódu je uveden text obslužné rutiny události onclick pole dokumentu HTML

Kód 1C v 8.x ProcedureSearchResultonclick(Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Kontrola ID prvku
If (htmlElement.id = "FullTextSearchListItem") Then
// Získání názvu souboru (číslo řádku seznamu hledání),
// obsažené v hypertextovém odkazu
NumberInList = Number(htmlElement.nameProp);
// Získání řetězce vyhledávacího seznamu podle čísla
SelectedRow = SearchList[ListNumber];
// Otevřete formulář nalezeného objektu
OpenValue(SelectedRow.Value);
pEvtObj.returnValue = False;
EndIf;
EndProcedure

ZVONEK

Jsou tací, kteří čtou tuto zprávu před vámi.
Přihlaste se k odběru nejnovějších článků.
E-mailem
název
Příjmení
Jak by se vám líbilo číst Zvonek
Žádný spam