Tam mətn axtarışı və onun imkanları. Tam mətn axtarışı 1c-də tam mətn axtarışını indeksləşdirməyə başlayın

08.09.2024

Bu yazıda sizə 1C Enterprise 8-in sürətli axtarış funksiyası haqqında məlumat verəcəyəm. Sürətli axtarış nədir?Çox sadə. Sürətli axtarış 1C qeydlərinin böyük siyahılarında naviqasiya yollarından biridir. Bunlar sənədlərin, kataloqların, registrlərin siyahıları ola bilər - cədvəllərdə təqdim olunan hər şey.

Sürətli axtarış nədir?

1C Enterprise sənədlərində sürətli axtarış funksiyası son dərəcə rahatdır və böyük miqdarda məlumatı (məsələn, sürüşdürmə çubuğundan istifadə etməklə) gəzdirməyə deyil, dərhal siyahıda istədiyiniz yerə getməyə imkan verir. Təəssüf ki, 1C Enterprise 8-in təcrübəsiz istifadəçiləri (1C Mühasibatlığı 8 daxil olmaqla) əvvəlcə sürətli axtarış imkanlarından istifadə etmirlər, sənədlərin siyahılarını əl ilə gəzdirməyə üstünlük verirlər (və onlar ola bilər). Çox böyük). Bu məqalə 1C-də sürətli axtarışdan istifadə etməyi başa düşməyə kömək edəcək.

İlk növbədə qeyd etmək lazımdır ki, idarə olunan formalar üzərində qurulmuş 1C Enterprise 8 konfiqurasiyasında sürətli axtarış 1C-nin əvvəlki versiyalarından fərqli işləyir. Buna görə də, idarə olunan formalarda və adi olanlarda sürətli axtarışın istifadəsini ayrıca təhlil edəcəyik.

1C Mühasibatlıqda sürətli axtarış 8.2

1C Mühasibatlıq versiyalarında 8.0-dan 8.2-ə qədər Bu funksiya xüsusi olaraq üçün nəzərdə tutulub keçid siyahının istədiyiniz hissəsinə. Məsələn, şəkildə göstərilən hesablar planı pəncərəsinə baxın.


Pəncərədə müəyyən bir xətt vurğulanır. Qırmızı oxla göstərilən incə zolaq üçbucağına diqqət yetirin. Siyahıların olduğu digər Windows proqramlarında olduğu kimi (məsələn, Explorer-də), bu markerin (üçbucağın) mövqeyi bütövlükdə siyahının çeşidlənməsini müəyyənləşdirir - Marker hansı sütunda yerləşdirilirsə, bütün siyahı həmin sütuna görə çeşidlənəcək.Şəkildə marker Kod sütunundadır, ona görə də hesablar planındakı hesablar kodla sıralanacaq.

Marker istədiyiniz sütuna klikləməklə bir sütundan digərinə köçürülə bilər ( HEADING sütununda!) siçan ilə. Əgər marker artıq cari sütundadırsa, klikləməklə çeşidləmə istiqaməti əksinə (yəni, böyükdən kiçiyə və ya əksinə) dəyişəcək.

Bu, istənilən Windows proqramı üçün standart davranışdır. 1C Enterprise-də bu markerin özəlliyi nədir və onun sürətli axtarışla əlaqəsi nədir? Bu halda, Kod sütunundan istifadə etməklə hesablar planında sürətli axtarış aparılacaqdır.

Məqalənin vacib bir hissəsi var idi, lakin JavaScript olmadan görünmür!

1C-də sürətli axtarışdan necə istifadə etmək olar? Asanlıqla! Sadəcə BU sütunda tapmaq istədiyinizi yazmağa başlayın, yəni. marker haradadır. Yuxarıdakı şəkildəki nümunədə hesab nömrəsini daxil etməlisiniz. Məsələn, 50 Cash hesabını tapmaq istəyirsən. Bu halda daxil edin ( Heç bir yerə klikləməyə ehtiyac yoxdur!) klaviaturadan 50 nömrəsi və bu sütunda həmin nömrə ilə hesab varsa (və təbii ki, var), o zaman siyahı bu sətirə keçəcək və sətir özü vurğulanacaq. Nəticə aşağıdakı ekran görüntüsündə hesablar cədvəlində göstərilir.

vebsayt_

Okun işarə etdiyi mətndir sonra yumağa ehtiyac yoxdur- o öz-özünə yox olacaq.

Yuxarıdakı misalda “Kassir” sözünü yazmağa başlasanız, pəncərənin altındakı mətn daxil ediləcək və sonra silinəcək. Bu baş verir, çünki tezliklə başlamaq daxil edilmiş sürətli axtarış sətri artıq bu sütunda ən azı bir sətrin əvvəlinə uyğun gəlmir, 1C Müəssisəsi axtarılan sətir tapılmadığı qənaətinə gəlir və onu avtomatik silir. Buna görə Xatırlamaq lazım olan iki qayda var.

1C Enterprise 8-də xəttin əvvəlində sürətli axtarış aparılır, yəni. sütunda daxil edilmiş mətnin bu sütunun sətirlərindən birinin başlanğıcı ilə uyğunluğu axtarılır.
Bu, vacib bir tövsiyəyə gətirib çıxarır: məlumatları qovluqlara daxil edərkən elementləri adlandırın ki, onları sürətli axtarışdan istifadə edərək rahat tapmaq mümkün olsun. Məsələn, qarşı tərəfin adını “MMC-nin Firmanın Adı” deyil, “Firma MMC-nin Adı” kimi yazmaq daha yaxşıdır. Və daha çox, adda dırnaq və digər lazımsız simvollardan istifadə etməməlisiniz (biz formalarda Ad sahəsini doldurmaqdan danışırıq).

Mətn yazmağa başlasanız və o silinirsə, axtardığınız bu sütunda deyil! Bu halda, giriş dilini, həmçinin sürətli axtarışın aparıldığı sütunu yoxlayın. Tipik bir səhv, yanlış sütunun seçilməsidir. Məsələn, marker Kod sütununda qoyulur və axtarış hesab adı ilə həyata keçirilir.

1C Mühasibatlıqda sürətli axtarış 8.3

İndi 1C Enterprise 8.3 versiyasında sürətli axtarışın nə qədər fərqləndiyini görək. İstifadəsi əsasən 8.2 versiyasına bənzəyir, lakin yadda saxlamaq lazım olan bir əsas fərq var.

1C Mühasibat 8.3-də, eləcə də idarə olunan formalardakı hər hansı digər konfiqurasiyalarda (eyni yeni interfeys) filtr kimi işləyir. Sadəcə olaraq, sürətli axtarış funksiyası nəticəsində siyahının bir hissəsi.

Bundan necə istifadə edəcəyimizi indi öyrənəcəyik. Əvvəlcə aşağıdakı 1C Mühasibat 8.3 hesablar planı pəncərəsinin ekran görüntüsünə baxın.

vebsayt_

Gördüyünüz kimi, eyni marker sütunlardan birindədir. Axtarış markerin quraşdırıldığı sütunda da aparılır. Bütün bunlar dəyişməz olaraq qalır. Bununla belə, mətn daxil etməyə başlasanız (məsələn, hesab nömrəsi), aşağıdakılar baş verəcəkdir.

vebsayt_

Gördüyünüz kimi, axtarış pəncərəsi sadəcə olaraq avtomatik olaraq açılır. Pəncərənin alətlər panelində axtarış düyməsini sıxsanız (şəkildə altı xətt çəkilmişdir) eyni pəncərə açılacaqdır. Nəticə olaraq, axtarış pəncərəsində Tap düyməsini (açılan menyunun arxasındakı şəkildə gizlənmişdir) və ya sadəcə Enter düyməsini sıxdıqda aşağıdakı nəticəni əldə edirsiniz.

vebsayt_

Buradan aydın olur ki 1C Mühasibatlıq 8.3-də sürətli axtarış sadəcə siyahının axtarış şərtlərinə cavab verən hissəsini görünən edir. Bu zaman Tap düyməsi yox olur və əvəzində xaç işarəsi olan obyektiv görünür (şəkildə altı çizilmiş), kliklədikdə siyahı ilkin vəziyyətinə qayıdır (sürətli axtarış nəticəsində tapılan xətt vurğulanmış qalır).

1C Mühasibat 8.3-də sürətli axtarışın başqa bir vacib xüsusiyyəti— 8.2 versiyasında olduğu kimi sətrin əvvəlində uyğunluq axtarılmır, lakin sütundakı sətirlərin hər hansı hissəsi ilə uyğunluq axtarılır. Beləliklə, qarşı tərəfə “Firma Adı MMC” adını versəniz və axtarış edərkən “Firm Name MMC” daxil etməyə başlasanız, xətt hələ də tapılacaq!

Nəticələrin çıxarılması

Beləliklə, 1C Mühasibatlıq 8.2 və daha əvvəlki versiyalarda sürətli axtarış siyahını istədiyiniz sətirə sürüşdürmək üçün nəzərdə tutulub və 1C Mühasibatlıq 8.3-də sürətli axtarış siyahının sizə lazım olmayan hissəsini gizlədərək adi filtr kimi işləyir.

İpucu1: Tam mətn axtarışını deaktiv edin*

Əksər mühasiblər bu funksiyanın mövcudluğundan xəbərsizdirlər və heç vaxt istifadə etmirlər (Xidmət - Məlumat Axtarışı)

1C-də tam mətnli axtarış mexanizmi açar sözlərdən istifadə edərək 1C-də məlumat tapmağa imkan verir (İnternetdə axtarışa bənzər, söz daxil etdikdə və sizə sorğunun nəticələri verilir). Eyni zamanda, axtarış vaxtı əhəmiyyətli dərəcədə verilənlər bazasının həcmindən asılıdır və bir neçə saat çəkə bilər. Tam mətn axtarış mexanizminin söndürülməsi 1C-də digər funksiyalara və işin sabitliyinə təsir göstərmir.

1C-də tam mətn axtarış mexanizmi standart olaraq aktivdir. Tam mətn axtarışını söndürmək üçün bura daxil olmalısınız Əməliyyatlar - Tam mətn axtarışına nəzarət- İşarənin qoyulması və silinməsi " Tam mətn axtarışına icazə verin»

Tam mətn axtarış mexanizminin söndürülməsi eksklüziv rejimdə həyata keçirilir (proqramda sizdən başqa heç kim işləməməlidir)**

Tam mətnli axtarış sistemini söndürmək performansı 10%-ə qədər artırır.

İpucu2: Nəticələrin yenidən hesablanması*

Əksər mühasiblər bu əməliyyatın mövcudluğundan xəbərsizdirlər və bu, hər ay aparılmalıdır.

Nəticələr hesabatlar hazırlayarkən və müxtəlif hesablama əməliyyatlarını yerinə yetirərkən məlumatlara sürətli çıxış üçün 1C mexanizmləridir.

Cəmiləri yenidən hesablamaq üçün "Əməliyyatlar - Cəmi İdarəetmə" bölməsinə keçməlisiniz, "Bütün registrlər" bölməsində cəmilərin hesablanacağı tarixi (cari ayın əvvəli) təyin etməlisiniz və "Çalış" düyməsini sıxmalısınız.

Nəticələrin yenidən hesablanması eksklüziv rejimdə həyata keçirilir (proqramda sizdən başqa heç kim işləməməlidir)**

Nəticələrin yenidən hesablanması məhsuldarlığın 10%-ə qədər artmasına səbəb olur.

İpucu3: Obyekt versiyasını deaktiv edin***

Əksər mühasiblər bu funksiyanın mövcudluğundan xəbərsizdirlər və ondan istifadə etmirlər.

Standart jurnaldan fərqli olaraq, versiyalaşdırma obyektləri yalnız hansı istifadəçinin sənədlə işlədiyi barədə deyil, həm də onun dəqiq nəyi dəyişdirdiyi haqqında məlumat saxlamağa imkan verəcəkdir (Xidmət - Obyekt dəyişikliklərinin tarixi). Bu rejim faydalı ola bilər, lakin onu yalnız müəyyən sənədlər siyahısı üçün aktivləşdirmək tövsiyə olunur, çünki 1C performansının azalmasına və məlumat bazasının artmasına səbəb olur

Versiyalaşdırma Əməliyyatlar - Proqram Parametrləri - Versiyalaşdırma vasitəsilə konfiqurasiya edilir. Parametr tələb olunmursa, "Obyekt versiyasını istifadə et" qutusunu silməlisiniz.

Parametr sənədlərin xüsusi siyahısı üçün lazımdırsa, o zaman “Obyekt versiyalarının parametrləri”nə keçin və tələb olunan obyektlər üçün “Versiya” parametrini təyin etmək üçün sağ klikləyin**

Versiyalaşdırmanın söndürülməsi performansı 5%-ə qədər artırır.

_________________________________________________________________

*“1C: Sənaye Müəssisəsinin İdarə Edilməsi”, “1C: İnteqrasiya edilmiş Avtomatlaşdırma”, “1C: Müəssisə Mühasibatlığı 2.0”, “1C: Ticarətin İdarə Edilməsi 10.3” əsasında konfiqurasiyalar üçün

**Verilənlər bazası ilə adi əməliyyatları yerinə yetirməzdən əvvəl verilənlər bazasının surətini yaratmaq lazımdır.

***“1C: İstehsalat Müəssisələrinin İdarə Edilməsi”, “1C: İnteqrasiya edilmiş Avtomatlaşdırma” əsasında konfiqurasiyalar üçün.

8.3 platformasında tam mətn axtarışının tərtibatçılar tərəfindən çoxdan elan edilməsinə baxmayaraq (platforma 8.3.5-dən), o, tipik konfiqurasiyalarda aktiv şəkildə istifadə edilməmişdir. Enterprise Accounting 3.0-ın ən son buraxılışlarında tərtibatçılar bir çox siyahılarda tam mətn axtarışını aktivləşdiriblər. Bu mənim istifadəçilərim üçün şok oldu - proqram axtarışı dayandırdı.

Təbii ki, tam mətn axtarışı işləyir, lakin istifadəçilər Find pəncərəsini görmədən çaşqınlıq içindədirlər. Tipik istifadə ssenarisi: Klaviaturadan yazmağa başlayırlar, yazma prosesi zamanı “Tap” pəncərəsi görünür, burada axtarışın aparılacağı sahə, axtarılan mətn və “Sətrin hissəsi” axtarış rejimi göstərilir.

Enter düyməsini sıxmaqla siyahı süzülür və siyahının üstündə axtarış statusu paneli görünür. Hansı sahədə və nə axtardığını istifadəçi özü müəyyənləşdirir. Yeni axtarış siz yazdığınız anda dərhal işə başlayır və siyahıda göstərilən bütün sahələrə təsir edir. Ayrı bir pəncərə görünmür; axtarış sözlərinin bütün uyğunluqları rənglə vurğulanır.

Bir neçə gün yeni axtarışla yaşadıq. İstifadəçilər əziyyət çəkdi, şikayətləndi, sabotaj edildi. Şikayətlər dayanmadı, rəhbərliyə “hər şeyi olduğu kimi etmək” tapşırığı verildi.

Haradan başlamaq lazımdır? Formaların bir-birindən necə fərqləndiyini başa düşməlisiniz. Konfiqurasiya mənbə kodlarını yeni axtarış davranışı və köhnəsi ilə yüklədim və forma mənbələrini müqayisə etdim.

Yeni tam mətn axtarışının funksionallığı “Axtarış sətri” tipli forma elementinin əlavə edilməsi ilə təmin edilir. Nə axtarmaq lazım olduğu aydın oldu. ITS 7.3.1.5-də məqalə tapdım. Dinamik siyahıda axtarın. Bu məqalənin tədqiqi belə nəticəyə gəldi ki, axtarış əməliyyatının yeni versiyası iki amildən asılıdır: 1. Forma yuxarıdakı forma elementi əlavəsinə malik olmalıdır, 2. Formadakı dinamik siyahıda “SearchStringPosition” xassəsinə bərabər olmamalıdır. “Heç biri”.

Nəzəri olaraq, serverdə forma yaradarkən “SearchStringPosition” siyahı xassəsini “SearchStringPosition.No” dəyərinə təyin etmək kifayətdir, lakin bu, bəzi hallarda bütün formalarla işləmədi, yeni axtarış işləməyə davam etdi; . Proqramlı olaraq yaradılmayan forma elementlərini proqramlı şəkildə silə bilmərik, lakin görünməni idarə edə bilərik. "Add-onSearchString" forma elementinin görünməsi silinərsə, tam mətnli yeni axtarış da fəaliyyətini dayandırır. Təcrübələr zamanı ümumi modula yerləşdirdiyim aşağıdakı kod yarandı:

NewSearchInLists(Forma) İxrac Siyahısının Deaktiv edilməsi proseduru = Form.Elements.Find("Siyahı");

Əgər Siyahı = Qeyri-müəyyən deyilsə, Qayıdın;

Birinci həll forma redaktorundan istifadə edərək konfiquratorda tələb olunan formaları əl ilə düzəltməkdir. Mən dərhal bu həlldən imtina etdim - bu, uzun və yorucu idi və sonradan konfiqurasiyanı yeniləmək çətin idi.

İkinci həll formanı açarkən yeni axtarışı proqramlı şəkildə söndürəcək proseduru çağırmaqdır. Proseduru, işə salınması artıq bütün formalarda qeydə alınmış başqa bir prosedurdan çağırmaq olar, bu halda, əlavə yeniləmələrlə, dəyişməməsi üçün yalnız bu prosedura nəzarət etməliyik. Mən GeneralModule.Print Management-i seçdim, hansı ki:

WhenCreatingOnServer(Forma, Defolt Komanda Yerləşdirmə, Çap Obyektləri) İxrac

Bu prosedur çap əmrlərini doldurmaq üçün serverdə forma yaradıldıqda çağırılır. Bu prosedurda biz siyahılarda yeni axtarışı söndürmək üçün funksiyamızı çağıran kod yazırıq:

MyGeneralModule.DisableNewSearchInLists(Forma);

Mühasiblər köhnə axtarışdan həzz alırlar və biz Müəssisə Mühasibatlığı 3.0 uyğunluq rejiminin bu funksiyanı genişləndirməyə köçürməyə imkan verəcəyi ana hazırlaşırıq.

Tam mətn axtarışı- istifadə olunan konfiqurasiyanın demək olar ki, hər hansı bir yerində yerləşən mətn məlumatını tapmağa imkan verəcək. Bu halda, ya bütövlükdə bütün konfiqurasiyada, ya da axtarış sahəsini bir neçə obyektə (məsələn, müəyyən növ sənədlər və ya kataloqlar) daraltmaqla lazımi məlumatları axtara bilərsiniz. Axtarış meyarlarının özləri kifayət qədər geniş diapazonda dəyişə bilər. Yəni, konfiqurasiyada dəqiq harada saxlandığını və necə dəqiq qeyd edildiyini xatırlamadan lazımi məlumatları tapa bilərsiniz.

Tam mətn axtarışı aşağıdakı seçimləri təmin edir:

  • Transliterasiya üçün dəstək var (QOST 7.79-2000-ə uyğun olaraq latın hərflərindən istifadə edərək rus sözlərini yazmaq). Nümunə: "Rus ifadəsi" = "russkaya fraza".
  • Əvəzetmə (simvolların bir hissəsinin bir düyməli Latın hərfləri ilə rus sözlərində yazılması) dəstəyi var. Misal: “russrfz frapf” (hər sözün sonları latın hərfləri ilə yazılır, məsələn, operator xətası nəticəsində).
  • Qeyri-səlis həddi göstərən qeyri-səlis axtarış (tapılan sözlərdəki hərflər fərqli ola bilər) imkanı var. Nümunə: axtarış çubuğunda “salam” sözünü və 17% qeyri-müəyyənliyi göstərərək, biz səhvli və səhvsiz bütün oxşar sözləri tapacağıq: “salam”, “öncədən”, “prived”.
  • Seçilmiş metadata obyektləri üçün axtarışın əhatə dairəsini müəyyən etmək mümkündür.
  • Standart sahə adlarının ("Kod", "Ad" və s.) tam mətnli indeksləşdirilməsi bütün konfiqurasiya dillərində həyata keçirilir.
  • Axtarış rus, ingilis və ukrayna dillərinin sinonimləri nəzərə alınmaqla aparılır.
  • Rus dilinin morfoloji lüğəti 1C: Enterprise proqram sistemindən istifadə edərək avtomatlaşdırılmış fəaliyyət sahələrinə aid bir sıra xüsusi sözləri ehtiva edir.
  • Standart olaraq təqdim olunan lüğətlərə İnformatik şirkəti tərəfindən təqdim olunan lüğət bazaları və rus, ukrayna və ingilis dillərinin tezaurus və sinonimlərinin lüğətləri daxildir.
  • Axtarış joker simvollardan ("*"), həmçinin axtarış operatorlarının ("AND", "OR", "NOT", "NEXT") və xüsusi simvolların təyin edilməsi ilə həyata keçirilə bilər.

Tam mətnli axtarış 1C: Enterprise 8 platformasında istənilən konfiqurasiyada həyata keçirilə bilər

Tam mətn axtarışına nəzarət pəncərəsini açmaq üçün aşağıdakıları edin:

Daimi tətbiq- menyu elementi Əməliyyatlar - Tam mətn axtarışının idarə edilməsi.

İdarə olunan Tətbiq- menyu elementi Əsas menyu - Bütün funksiyalar - Standart -Tam mətn axtarışının idarə edilməsi.


  • İndeksi yeniləyin– İndeksin yaradılması/İndeksin yenilənməsi;
  • Təmiz indeks– indeksin sıfırlanması (bütün məlumatların yenilənməsindən sonra tövsiyə olunur);
  • element İndeksin birləşməsinə icazə verin– əsas və əlavə indeksin birləşməsinə cavabdehdir.

Tam mətnli axtarış tam mətn indeksindən istifadə etməklə həyata keçirilir. İndeks olmadan tam mətn axtarışı mümkün deyil. Axtarışın effektiv olması üçün bütün müvafiq məlumatlar tam mətn indeksinə daxil edilməlidir. İstifadəçi verilənlər bazasına yeni məlumatlar daxil edərsə, o, sözügedən indeksə daxil edilməlidir, əks halda axtarışda iştirak etməyəcək. Bunun qarşısını almaq üçün tam mətn indeksini yeniləməlisiniz. Yeniləmə zamanı sistem yalnız müəyyən növ məlumatları təhlil edir: String, Reference type data (sənədlərə, kataloqlara keçidlər), Number, Date, Value Storage. İstifadəçinin müəyyən məlumatlara giriş hüququ yoxdursa, o zaman onu axtarış nəticələrində görə bilməyəcək. Siz həmçinin yadda saxlamalısınız ki, axtarış aparılacaq obyektlərin xassələrində qiymət qoyulmalıdır Tam Mətn Axtarışı - İstifadə edin, standart olaraq təyin olunur.

Mülkiyyətə necə diqqət yetirmək olar istifadə edin bütün kataloq üçün təyin edin Qarşı tərəflər, lakin bu, onun müvafiq tipli atributlarının hər biri üçün edilə bilər.

İki hissədən (indekslərdən) ibarət olan tam mətn indeksinə daha yaxından nəzər salaq: əsas indeks və əlavə. Yüksək məlumat axtarış sürəti əsas indeks tərəfindən təmin edilir, lakin məlumatların həcmindən asılı olaraq onun yenilənməsi nisbətən yavaşdır. Əlavə indeks bunun əksidir. Məlumat ona daha sürətli əlavə olunur, lakin axtarış daha yavaş olur. Sistem eyni vaxtda hər iki indeksi axtarır. Məlumatların əksəriyyəti əsas indeksdədir və sistemə əlavə olunan məlumatlar əlavə indeksə daxil olur. Əlavə indeksdəki məlumatların miqdarı kiçik olsa da, onun vasitəsilə axtarış nisbətən sürətlidir. Sistem yükünün yüngül olduğu bir vaxtda indekslərin birləşdirilməsi əməliyyatı baş verir, bunun nəticəsində əlavə indeks təmizlənir və bütün məlumatlar əsas indeksə yerləşdirilir. İndekslərin birləşməsini sistem yükünün minimal olduğu bir vaxtda yerinə yetirmək daha məqsədəuyğundur. Bu məqsədlə siz tənzimlənən tapşırıqlar və planlaşdırılmış tapşırıqlar yarada bilərsiniz.

Axtarış ifadəsini təyin edərkən xüsusi operatorlara icazə verilir

Tam mətnli axtarış mexanizmi tək düyməli Latın hərflərindən istifadə etməklə rus sözünün simvollarının bir hissəsini yazmağa imkan verir. Axtarış nəticəsi dəyişməyəcək.

İki operator NEXT

  • sadələşdirilmiş. 8 söz ayrı
  • NEAR/[+/-]n – aralarında n-1 söz məsafəsində bir atributda verilənləri axtarın.

İşarə birinci sözdən ikinci sözün hansı istiqamətdə axtarılacağını göstərir. (+ - sonra, - əvvəl)

Joker "*" yalnız sözün sonunu əvəz etmək üçün istifadə edilə bilər

Qeyri-səlislik operatoru "#". Adın dəqiq yazılışı varsa, adı bilinmir.

Proqram təminatı və 1C alətləri: proqramlaşdırma.

Sinonim operator "!" Söz və onun sinonimlərini tapmağa imkan verir

Tam mətn axtarış indeksini proqramlı şəkildə necə yeniləmək olar?

Code 1C v 8.x Prosedur UpdateIndices() Export
FulltextSearch.UpdateIndex();
Prosedurun Sonu

Tam mətn data axtarış nümunəsi

Axtarış siyahısı dəyişəninin müəyyən edilməsi

Kod 1C v 8.x Dəyişən Axtarış Siyahısı;

Bundan əlavə, Forma Açıldığında hadisəsinin işlənməsi prosedurunda biz müəyyən edəcəyik ki, bu dəyişən tam mətnli axtarış siyahısını ehtiva edəcək, onun köməyi ilə məlumatları axtaracağıq.

Kod 1C v 8.x Proseduru OnOpen()
SearchList = FullTextSearch.CreateList();
Prosedurun Sonu

İndi Tap düyməsini sıxmaq hadisəsi üçün SearchExpression sahəsində göstərilən ifadəyə uyğun olaraq axtarış aparmağa imkan verəcək kod yazacağıq.

Code 1C v 8.x Proseduru FindClick(Element)
SearchList.SearchString = SearchExpression;
cəhd
SearchList.FirstPart();
İstisna
Xəbərdarlıq (ErrorDescription());
EndAttempt;
SearchList.FullQuantity() = 0 olarsa
Form Elements.MessageOfResult.Value = "Tapılmadı";
Form Elements.SearchResult.SetText("");
Əks halda
OutputSearchResult();
endIf;
Prosedurun Sonu

Bu prosedurda ilk olaraq istifadəçinin daxil etdiyi axtarış terminini tam mətn axtarışı üçün axtarış sətri kimi təyin edirik. Sonra biz FirstPart() metodunu icra edirik ki, bu da əslində tam mətn axtarışını işə salır və nəticələrin ilk hissəsini qaytarır. Varsayılan olaraq, bir yığın 20 elementdən ibarətdir. Bundan sonra axtarış siyahısındakı elementlərin sayını təhlil edirik. Əgər onun tərkibində heç bir element yoxdursa, formada müvafiq mesajı göstəririk. Əks halda, nəticələri istifadəçiyə göstərən DisplaySearchResult() proseduru çağırılır.

Forma modulunda eyni adlı prosedur yaradaq və kodu ona yazaq:

Kod 1C v 8.x Proseduru OutputSearchResult()
Form Elements.ResultMessage.Value = "Göstərildi" + Sıra(SearchList.InitialPosition() + 1) + " - " + Sıra(SearchList.InitialPosition() +SearchList.Quantity()) + " " + AxtarışListindən.FullQuantity() ;
Nəticə = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText(Nəticə);
Button Availability();
Prosedurun Sonu

Bu prosedurun addımları sadədir. Əvvəlcə hansı elementlərin göstərildiyi və cəmi neçə elementin tapıldığı barədə bir mesaj yaradırıq. Sonra tam mətnli axtarış nəticəsini HTML mətni şəklində alırıq və bu mətni formada yerləşən HTML sənədi sahəsində göstəririk.

Nəhayət, əvvəlki hissə və sonrakı hissə düymələrini əlçatan etmək və ya əksinə (alınan nəticələrin hansı hissəsinin göstərilməsindən asılı olaraq) onlara girişi rədd etmək üçün biz nəzarəti Button Availability() proseduruna köçürürük. Bu prosedurun mətni Məcəllədə təqdim olunur

Code 1C v 8.x Prosedur Düyməsinin Mövcudluğu ()
Form Elements.NextPosition.Availability = (SearchList.FullQuantity() - SearchList.StartPosition()) > SearchList.Quantity();
Form Elements.PreviousPosition.Availability = (SearchList.StartPosition() > 0);
Prosedurun Sonu

İndi PreviousPart() və NextPart() düymələrinə basmaq üçün hadisə idarəediciləri yaratmalısınız.

Kod 1C v 8.x Prosedur Əvvəlki hissəyə basma (Element)
SearchList.PreviousPart();
OutputSearchResult();
Prosedurun Sonu
Növbəti hissəyə basma proseduru (Element)
SearchList.NextPart();
OutputSearchResult();
Prosedurun Sonu

Son “toxunma” formada yerləşən HTML sənəd sahəsinin onclick hadisəsi üçün işləyici yaratmaqdır. Fakt budur ki, HTML mətni şəklində təqdim olunan tam mətnli axtarışın nəticəsi axtarış siyahısının elementlərinin nömrələrinə hiperlinkləri ehtiva edir. Biz istərdik ki, istifadəçi bu keçidə kliklədikdə sistem bu siyahı elementində olan obyektin formasını açsın. Bunun üçün biz HTML sənədi sahəsində olan HTML sənədinin onclick hadisəsini kəsəcək, hiperlinkdən siyahı elementinin nömrəsini alacaq və müvafiq obyektin formasını açacağıq. HTML sənəd sahəsinin onclick hadisə idarəedicisinin mətni kodda təqdim olunur

Kod 1C v 8.x Prosedur Axtarış Nəticəsi (Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Element identifikatorunu yoxlayın
Əgər (htmlElement.id = "FullTextSearchListItem") Sonra
// Fayl adını əldə edin (axtarış siyahısı sətir nömrəsi),
// hiperlinkdə var
NumberInList = Number(htmlElement.nameProp);
// Axtarış siyahısı sətirini nömrə ilə əldə edin
SelectedRow = Axtarış Siyahısı[NumberInList];
// Tapılan obyektin formasını açın
OpenValue(SelectedRow.Value);
pEvtObj.returnValue = Yanlış;
endIf;
Prosedurun Sonu

Hər mühasib 1C: Mühasibat 8-də tam mətn axtarışı kimi faydalı bir vasitə haqqında bilmir. Tam mətnli axtarış mexanizmi konfiqurasiyanın istənilən yerində mətn məlumatını tapmağa imkan verir.

Tam mətn axtarışı "Alətlər" menyusunda yerləşən "Məlumat Axtarışı" emalından istifadə etməklə həyata keçirilir:

Tam mətn axtarış mexanizminin necə işlədiyinə dair bir neçə nümunəyə baxaq.

Misal 1. Tutaq ki, müəyyən bir məhsulun, məsələn, Marlboro siqaretinin alınması üçün sənədləri tez tapmalıyıq.
"Xidmət" menyusundan "Məlumat Axtarışı" seçin. Açılan pəncərədə yuxarı sahəyə “Marlboro” axtarış sorğusunu daxil edin və “Axtar” düyməsini basın:


Misal 2. Təşkilatımız Rumyantsev biznes mərkəzindən ofis icarəyə götürür. Verilənlər bazasında 2010-cu ilin mart ayı üçün icarə aktını tez tapmalısınız. Aşağıdakı axtarış sorğusunu yaradaq:


Seçim 3. Tutaq ki, malları göndərərkən bəzi sənədlərdə "Malların və xidmətlərin satışı" - "Təxirə salınmış ödəniş" şərhini buraxdıq. Və gecikmə ilə göndərilən bütün sənədləri tapmalı olduq. Aşağıdakı axtarış sorğusunu yaradaq:

Siz həmçinin axtarış operatorlarından (AND, OR, NOT, NEAR) istifadə edərək daha mürəkkəb axtarışlar həyata keçirə bilərsiniz.
Axtarış sahəsi xüsusi konfiqurasiya obyektləri ilə məhdudlaşdırıla bilər (məsələn, “Malların və xidmətlərin qəbulu” sənədi). Bunu etmək üçün "quraşdırma" düyməsini basın:

Konfiqurasiya obyektini seçmək üçün bir sahə görünəcək. "Axtarış sahələrini məhdudlaşdırın" qutusunu işarələyin və "Axtarmaq üçün metadata obyektlərini seçin" düyməsini basın:

Məsələn, "Malların və xidmətlərin qəbulu" sənədini seçin.

Yalnız bir axtarış sorğusu daxil etmək və axtarış etmək qalır.

Data Axtarış emalının aşağı hissəsi indeksin aktuallığını əks etdirir. Əgər “İndeks cari deyil” yazısını görsəniz, “İndeksi yenilə” düyməsini sıxmalısınız.