Hızlı arama 1s 8.3.

Bu yazımda sizlere 1C Enterprise 8'in hızlı arama fonksiyonunu anlatacağım. Ne oldu hızlı arama? Çok basit. Hızlı arama, geniş 1C kayıt listelerinde gezinmenin yollarından biridir. Bunlar belge listeleri, dizinler, kayıtlar - tablolarda sunulan her şey olabilir.

Hızlı arama nedir?

1C Enterprise belgelerindeki hızlı arama işlevi son derece kullanışlıdır ve büyük miktarda veriyi kaydırmanıza (örneğin kaydırma çubuğunu kullanarak) değil, listede hemen istediğiniz yere gitmenize olanak tanır. Ne yazık ki, 1C Enterprise 8'in (1C Accounting 8 dahil) acemi kullanıcıları ilk başta hızlı arama yeteneklerini kullanmazlar, belge listelerinde manuel olarak gezinmeyi tercih ederler (ve bunlar Çok büyük). Bu makale, 1C'de hızlı aramayı kullanmayı anlamanıza yardımcı olacaktır.

Her şeyden önce, yönetilen formlar üzerine kurulu 1C Enterprise 8 yapılandırmalarında hızlı aramanın, önceki sürümler 1C. Bu nedenle hızlı aramanın kullanımını ayrı ayrı inceleyeceğiz. kontrollü formlar ve sıradan olanlarda.

1C Muhasebe 8.2'de hızlı arama

1C Muhasebenin 8.0'dan 8.2'ye kadar olan sürümlerinde Bu işlev özellikle aşağıdakiler için tasarlanmıştır: geçiş listenin istediğiniz kısmına Örneğin, şekilde gösterilen hesap planı penceresine bakın.


Pencerede belirli bir satır vurgulanır. Kırmızı okla gösterilen ince çizgili üçgene dikkat edin. Listelerin bulunduğu diğer Windows programlarında olduğu gibi (örneğin Explorer'da), bu işaretin (üçgen) konumu listenin bir bütün olarak sıralamasını belirler - İşaretçinin hangi sütuna yerleştirildiği, listenin tamamı o sütuna göre sıralanacaktır.Şekilde işaretçi Kod sütununda olduğundan hesap planındaki hesaplar koda göre sıralanacaktır.

İşaretleyici, istenen sütuna tıklanarak bir sütundan diğerine taşınabilir ( HEADING sütununda!) fareyle. İşaretçi zaten geçerli sütundaysa, tıklandığında sıralama yönü tersine (yani büyükten küçüğe veya tam tersi) değişecektir. Bu herkes için standart bir davranıştır. Windows programları. 1C Enterprise'daki bu işaretleyicinin özelliği nedir ve hızlı aramayla nasıl bir ilişkisi var?

1C Enterprise 8 listelerinde hızlı arama, işaretçinin bulunduğu sütun tarafından gerçekleştirilir. Bu durumda Kod sütunu kullanılarak hesap planında hızlı bir arama yapılacaktır.

Buradaydı önemli kısım makale, ancak JavaScript olmadan görünmez!

1C'de hızlı arama nasıl kullanılır? Kolayca! BU sütuna bulmak istediğiniz şeyi yazmaya başlayın yani işaretleyicinin olduğu yer. Yukarıdaki şekildeki örnekte hesap numarasını girmeniz gerekmektedir. Örneğin 50 Cash hesabını bulmak istiyorsunuz. Bu durumda girin ( Herhangi bir yere tıklamanıza gerek yok!) klavyeden 50 numarayı seçin ve bu sütunda bu numaraya sahip bir hesap varsa (ve elbette bir tane varsa), liste bu satıra kaydırılacak ve satırın kendisi vurgulanacaktır. Sonuç aşağıdaki hesap planı ekran görüntüsünde gösterilmektedir.

İnternet sitesi_

Okun işaret ettiği metin sonrasında yıkamaya gerek yok- kendi başına ortadan kaybolacak.

Yukarıdaki örnekte “Kasiyer” kelimesini yazmaya başladığınızda pencerenin alt kısmındaki yazı girilecek ve ardından silinecektir. Bu olur çünkü en kısa sürede Başlangıç girilen hızlı arama dizesi artık bu sütundaki en az bir satırın başlangıcıyla eşleşmiyorsa, 1C Enterprise aranan dizenin bulunamadığına karar verir ve onu otomatik olarak siler. Buna bağlı Unutulmaması gereken iki kural var.

1C Enterprise 8'de satırın başında hızlı bir arama gerçekleştirilir, yani. Bir sütunda girilen metnin bu sütunun satırlarından birinin başlangıcıyla eşleşmesi aranır.
Bu, önemli bir öneriye yol açar: Dizinlere veri girerken, öğeleri hızlı bir aramayla kolayca bulunabilecek şekilde adlandırın. Örneğin karşı tarafın adını “Firm Name LLC” yerine “Firm Name LLC” olarak yazmak daha iyidir. Ve dahası, isimde tırnak işaretleri ve diğer gereksiz sembolleri kullanmamalısınız (formlardaki İsim alanını doldurmaktan bahsediyoruz).

Eğer metni yazmaya başlarsanız ve silinirse aradığınız şey bu sütunda değildir! Bu durumda giriş dilini ve hızlı aramanın gerçekleştirildiği sütunu kontrol edin. Yaygın hata— yanlış sütun seçilmiş. Örneğin, işaretçi Kod sütununda ayarlanır ve arama hesap adına göre gerçekleştirilir.

1C Muhasebe 8.3'te hızlı arama

Şimdi hızlı aramanın 1C Enterprise 8.3 sürümünde ne kadar farklı olduğunu görelim. Kullanımı büyük ölçüde sürüm 8.2'ye benzer, ancak hatırlanması gereken önemli bir fark var.

1C Accounting 8.3'te ve yönetilen formlardaki diğer yapılandırmalarda (aynı yeni arayüz) bir filtre görevi görür. Basitçe söylemek gerekirse, hızlı arama fonksiyonunun bir sonucu olarak listenin bir kısmı saklanmak.

Şimdi bunu nasıl kullanacağımızı öğreneceğiz. Öncelikle aşağıdaki 1C Muhasebe 8.3 hesap planı penceresinin ekran görüntüsüne bakın.

İnternet sitesi_

Gördüğünüz gibi aynı işaret sütunlardan birinde de var. Arama ayrıca işaretleyicinin kurulu olduğu sütunda da gerçekleştirilir. Bunların hepsi değişmeden kalıyor. Ancak metin girmeye başlarsanız (örnekte hesap numarası), aşağıdakiler gerçekleşecektir.

İnternet sitesi_

Gördüğünüz gibi arama penceresi otomatik olarak açıldı. Pencere araç çubuğundaki arama düğmesine tıklarsanız (şekilde altı çizili) tam olarak aynı pencere açılacaktır. Sonuç olarak, arama penceresindeki Bul düğmesini (resimde açılır menünün arkasında gizlidir) tıkladığınızda veya yalnızca Enter tuşuna bastığınızda aşağıdaki sonucu elde edersiniz.

İnternet sitesi_

Bundan açıkça görülüyor ki 1C Accounting 8.3'teki hızlı arama, listenin arama koşullarını karşılayan kısmını görünür bırakır. Bu durumda, Bul düğmesi kaybolur ve bunun yerine çarpı işaretli bir mercek görünür (şekilde altı çizili), tıklandığında liste geri döner. başlangıç ​​durumu(bu durumda hızlı arama sonucunda bulunan satır vurgulanmış olarak kalır).

1C Muhasebe 8.3'te hızlı aramanın bir diğer önemli özelliği— sürüm 8.2'de olduğu gibi satırın başında bir eşleşme aranmaz, ancak sütundaki satırların herhangi bir bölümünde bir eşleşme aranır. Böylece, karşı tarafa “Firma Adı LLC” adını verirseniz ve arama yaparken “Firma Adı LLC” girmeye başlarsanız, satır yine de bulunacaktır!

Çizim sonuçları

Bu nedenle, 1C Accounting 8.2 ve önceki sürümlerde hızlı arama, listeyi istenen satıra kaydırmayı amaçlamaktadır ve 1C Accounting 8.3'te hızlı arama, listenin ihtiyacınız olmayan kısmını gizleyerek normal bir filtre gibi çalışır.

İyi günler meslektaşlarım, bugün 1C 8.3 listelerinde aramayı, kullanılan algoritmaları, ana sorunları, hataları ve listelerde arama yaparken kaynakların rasyonel kullanımını anlatacağım.

Arama Öğelerinin Kısa Açıklaması

Önünüzde tanıdık bir pencere var. İçinde arama çubuğunu, arama kontrol düğmesini ve gerçek tablo kısmı nerede arayacağız.

Bu formdaki tabloyu 1c sunucusundan alıyoruz. Ayrıca 1C sunucusu bu tabloyu kendi dosyasında saklar. rasgele erişim belleği ve daha fazlası için veritabanında değil hızlı erişim kullanıcılar buna. örneğin bellek isteği hızı 32 GB/s, disk isteği ise maksimum 6 GB/s'dir, yani minimum 5 kat daha yavaş. Buna önbellekleme adı verilir; yani verilerin en sık talep edilen kısmının saklanması. Bu özel örnekte veriler sayıya göre sıralanmıştır, dolayısıyla bu önbellek oldukça statiktir, yani son derece nadir değişir ve çok sık talep edilir. Tablo tarihe göre azalan düzende sıralanmışsa, her biri yeni belge listenin başına eklendi, böylece önbellekteki veriler değiştirildi.

Hiç kimse her şeyin önbelleğe alınmasını kesinlikle yasaklamaz, ancak birincisi, sunucu belleği sınırlıdır ve ikincisi, önbellek gerçek verilere göre güncelliğini yitirebilir ve üçüncüsü, artık ona ihtiyaç duyulmayabilir. Bu sorunları çözmek için geliştirilen çeşitli algoritmalarönbelleğe alma, bunlar ve önbellek hakkında daha fazla ayrıntıyı bağlantıda bulabilirsiniz.

Arama çubuğunu kullanarak arama yapın

1c'ye geri dönelim ve bir şeyler bulmaya çalışalım:

Gördüğünüz gibi arama benzer yöntemle çalışıyor, yani listeden belirtilen şablonu seçiyor, bu arada giriş süresi de sınırlı, yani 1'e basarsanız bir saniye bekleyin ve ardından tekrar 1'e basın, arama aslında iki kez gerçekleştirilecektir. Bu durumda platform, birkaç değeri (dize parçaları) kullanarak listenin tüm sütunlarında aynı anda arama yapacaktır. Arama sonuçlarında gezinmeyi kolaylaştırmak için platform, bulunan dize parçalarını vurgular. Sonuçlar talebe bağlı olarak önbelleğe de alınabilir.

Burada bir sonuç bulduk, ancak gerçek veritabanlarını kullansaydık, bu istek için arama 0000111 ve 0144100111 ve 11 numaralı alıcı ve 11 numaralı depo ve bazı durumlarda 11 sayısını içeren yorumları döndürürdü. 1c konfigürasyonu ve yılın 2011'inden kalma tarihler. Bu, 1c sunucusunda bellek kaplamasının yanı sıra, çıktı verilerini önemli ölçüde artırır ve yanıtı yavaşlatır.Listenin milyonlarca satır içerdiğini, bu sunucuda diğer çalışanlarla birlikte çalıştığınızı ve sunucunun birkaç veri tabanı kullandığını hayal edin. Bu sorunları önlemek için rehberli arama kullanılır.

Rehberli Arama

Burada kullanılan üç ana kriter vardır

Nereye bakmalı– tablo sütunu seçimi

Bakılacak şey– arama amacı

Nasıl arama yapılır?– hangi arama şablonunun kullanılacağı

Sütunlar için bir içerik menüsü ve sonuç parametrelerine geçişli değerlere göre arama içeren bir içerik menüsü olarak oluşturulmuş olmalarına rağmen ilk iki noktanın açık olduğunu düşünüyorum.

Üçüncü parametre şuna benzer:

Satırın başında:

Arama dizesi: “1 sk”

Sonuçlar: 1 depo, 1 SK, 1 Skolkovo.....

Hattın bir kısmı:

Arama dizesi: “skl”

Sonuçlar: 1 adet depo cehennemi, 1 numaralı depo cehennem odası, katlanır yatak, .....

Tam bir tesadüf eseri:

Sonuç, arama dizesiyle eşleşecektir.

Doğal olarak, homojen değerlere sahip bir sütun seçerseniz herhangi bir arama şablonunu kullanabilirsiniz, ancak örneğin bir yorum veya tedarikçi gibi heterojen değerlere sahip bir sütun seçerseniz, ilk iki şablonun arama sonuçları birden fazla olabilir. kullanıcının ihtiyaç duyduğu şey, ki bu rasyonel değil.

1 saniye içinde indeksler

1C veritabanında aramayı hızlandırmak için indeksler kullanılır. Burada biraz teoriye ihtiyaç var.

Anlaşılması en kolay benzetme, içindekiler tablosunun ve sayfalandırmanın dizin tablosu olduğu ve kelimelerin tablonun sütunları olduğu bir sözlüktür. İçindekiler tablosuna göre arama yapmanın tüm sözlüğü taramaktan daha hızlı olduğunu anlıyorsunuz. Sıralı değerlerin indeksine küme denir, basitlik açısından sadece onu analiz edeceğiz

Bu indeks statik ama diyelim ki sözlüğe yeni bir kelime ekledik, iki veya yüz. Statik indeks tablolarının numaralandırılması burada uygun değildir. İki olası çözüm vardır: Birincisi, dizini tamamen yeniden oluşturmak, yani tüm sözlüğü okumak ve yeni bir içindekiler tablosu derlemek veya dizin mimarisini karmaşıklaştırmak. İndeks mimarisinin ana uygulaması bir B ağacıdır, mantıksal olarak buna benzer.

Ancak aslında bu ayrı bir tablo veya dizini parçalara ayıran birkaç tablodur. Yakın bir benzetme, bir sözlüğün içindekiler tablosuna yeni sayfalar ekleme yeteneği olabilir; sonraki içindekiler tablosu değerleri eklenen öğelerin sayısına göre değişir.

Gördüğünüz gibi, şekil üç seviyeli bir b ağacını gösteriyor, ancak 10, 20, 30 seviye de olabilir...

Birçok indeks türü ve indeks uygulaması vardır. Devamını linkten okuyabilirsiniz.

1C sunucusu sql sunucularıyla çalışır ve verilerin depolanması, değiştirilmesi ve indekslenmesi ile ilgili tüm çalışmalar sql sunucusunda bulunur, çoğu durumda sql indeksleme aramada kullanılır, bazılarında ise kullanılmaz. Bu esas olarak sorgunun karmaşıklığına ve endeksin ne kadar parçalanmış olduğuna bağlıdır.

sonuçlar

Teknolojiler yeterince gelişmiş durumda ve verilere en hızlı erişim için çok sayıda algoritma kullanılıyor. Ancak kullanıcının aynı zamanda arama sorgularının mantığını ve rasyonelliğini de anlaması gerekir; kullanıcının sorgusu ne kadar doğru olursa, o kadar az kaynak harcanır ve o kadar fazla kaynak harcanır. daha hızlı bilgisayar sonucu verecektir. Bir düğmeye basmak her zaman beşe basmaktan daha hızlı çalışmaz. Üstelik klavyeler standarttır ve üzerindeki tuşlar zamanla yer değiştirmez.

1C 8.3'ü temel alan yapılandırmanın en son sürümlerinde, yinelenen dizinlerin aranmasını ve değiştirilmesini otomatikleştirmek için mükemmel bir fırsat ortaya çıktı. Bu, özel işlem 1C - Kopyaların aranması ve değiştirilmesi kullanılarak yapılır. Yönetilen formlardaki şu uygulama çözümlerine entegre edilmiştir: , .

Kısa bir talimata bakalım: arayüzde işleme nasıl bulunur, öğelerin, yüklenicilerin ve diğer dizinlerin yinelenen öğelerini daraltmak için nasıl kullanılır.

Dikkat!İşleme ile çalışmaya başlamadan önce yaptığınızdan emin olun. yedek kopya Veri tabanı.

Kopyaları bulmak için işleniyor

İşleme Arama ve kopyaların kaldırılması, "Destek ve Bakım" bölümündeki "Yönetim" sekmesinde bulunur:

Altta:

1C'de 267 video dersini ücretsiz alın:

İşleme sırasında, hangi dizini “taranmak” istediğimizi (bizim durumumuzda isimlendirme), hangi seçime göre (silinmek üzere işaretlenmemiş olanlar) ve bizim için kopya gerçeğinin ne olacağını (hadi bir tane alalım) belirtmek gerekir. benzer kelimeler için ad eşleşmesi). Ayarladıktan sonra “Kopyaları bul”a tıklayın.

1C kopyalar için seçenekler sunacak:

STINOL buzdolabı örneğini kullanarak: sistem, sonu “101” olan elemanı orijinal olarak ve “103” elemanını kopya olarak işaretledi. Sağdaki pencerede bu öğenin hangi belgelerde yer aldığını görüyoruz.

İnançlarınıza göre "Orijinal olarak işaretle" düğmesini kullanarak "orijinal"i yeniden kullanabilirsiniz. Yapıştırma işlemini hızlandırmak için standart olarak daha fazla "kullanım noktası" olan nesneyi seçmenizi öneririm:

Tam metin araması- kullanılan konfigürasyonun hemen hemen her yerinde bulunan metin bilgilerini bulmanızı sağlayacaktır. Bu durumda, gerekli verileri bir bütün olarak tüm konfigürasyon boyunca arayabilirsiniz veya arama alanını birkaç nesneye (örneğin, belirli belge veya dizin türleri) daraltarak arayabilirsiniz. Arama kriterleri oldukça geniş bir aralıkta değişiklik gösterebilir. Yani gerekli verileri, konfigürasyonda tam olarak nerede saklandığını ve tam olarak nasıl kaydedildiğini hatırlamadan bile bulabilirsiniz.

Tam metin araması aşağıdaki seçenekleri sunar:

  • Harf çevirisi desteği mevcuttur (GOST 7.79-2000'e uygun olarak Latince karakterleri kullanarak Rusça kelimelerin yazılması). Örnek: "Rusça ifade" = "russkaya fraza".
  • Değiştirme desteği vardır (karakterlerin bir kısmının Rusça kelimelerle tek tuşlu Latin karakterleriyle yazılması). Örnek: “russrfz frapf” (örneğin operatör hatası sonucu her kelimenin sonları Latin harfleriyle yazılmıştır).
  • Bulanık eşiğin belirtilmesi ile bulanık arama imkanı vardır (bulunan kelimelerin harfleri farklılık gösterebilir). Örnek: Arama çubuğunda "merhaba" kelimesini ve %17'lik bir belirsizlik belirterek, hatasız olan tüm benzer kelimeleri bulacağız: "merhaba", "prevet", "özel".
  • Seçilen meta veri nesneleri için aramanın kapsamını belirlemek mümkündür.
  • Standart alan adlarının ("Kod", "Ad" vb.) tam metin indekslenmesi tüm konfigürasyon dillerinde gerçekleştirilir.
  • Arama, Rusça, İngilizce ve Ukraynaca dillerinin eşanlamlıları dikkate alınarak gerçekleştirilir.
  • Rus dilinin morfolojik sözlüğü, 1C:Enterprise program sistemi kullanılarak otomatikleştirilen faaliyet alanlarıyla ilgili bir dizi özel kelime içerir.
  • Standart olarak, sağlanan sözlükler sözlük veritabanlarını ve eş anlamlılar sözlüğü sözlüklerini ve Rusça, Ukraynaca ve eşanlamlıları içerir. İngilizce dilleri Bilişim şirketi tarafından sağlanmaktadır.
  • Arama, joker karakterlerin ("*") kullanılmasının yanı sıra, arama işleçleri ("AND", "OR", "NOT", "NEXT") ve özel karakterler belirtilerek de yapılabilir.

Tam metin araması 1C:Enterprise 8 platformundaki herhangi bir konfigürasyonda gerçekleştirilebilir

Tam metin arama kontrol penceresini açmak için aşağıdakileri yapın:

Düzenli başvuru- menü seçeneği Operasyonlar - Tam Metin Aramayı Yönetme.

Yönetilen Uygulama- menü seçeneği Ana menü - Tüm işlevler - Standart -Tam metin arama yönetimi.


  • Dizini güncelle– Dizin oluşturma/Dizin güncellemesi;
  • Dizini temizle– endeksin sıfırlanması (tüm veriler güncellendikten sonra önerilir);
  • öğe Dizin birleştirmeye izin ver– ana ve ek endeksin birleştirilmesinden sorumludur.

Tam metin araması, tam metin dizini kullanılarak gerçekleştirilir. İndeks olmadan tam metin araması mümkün değildir. Bir aramanın etkili olabilmesi için ilgili tüm verilerin tam metin dizinine dahil edilmesi gerekir. Kullanıcının veritabanına yeni veri girmesi durumunda söz konusu indekste yer alması gerekmektedir, aksi takdirde aramaya katılmayacaktır. Bunu önlemek için tam metin dizinini güncellemeniz gerekir. Güncelleme sırasında sistem yalnızca belirli veri türlerini analiz eder: Dize, Referans türü veriler (belgelere, dizinlere bağlantılar), Sayı, Tarih, Değer Depolama. Kullanıcının belirli bilgilere erişim hakkı yoksa, bu bilgiyi arama sonuçlarında göremeyecektir. Ayrıca, aramanın gerçekleştirileceği nesnelerin özelliklerinde değerin ayarlanması gerektiğini de unutmamalısınız. Tam Metin Arama – Kullan, varsayılan olarak ayarlanmıştır.

Özelliği nasıl fark edebilirsiniz? Kullanmak tüm dizin için ayarla Karşı taraflar ancak bu, karşılık gelen türün her bir özelliği için yapılabilir.

İki bölümden (dizinler) oluşan tam metin dizinine daha yakından bakalım: ana dizin ve ek dizin. Ana indeks yüksek veri alma hızını sağlar, ancak veri hacmine bağlı olarak güncellenmesi nispeten yavaştır. Ek endeks bunun tam tersidir. Veriler çok daha hızlı eklenir, ancak arama daha yavaştır. Sistem her iki dizini aynı anda arar. Verilerin çoğu ana indekste yer almakta olup, sisteme eklenen veriler ek indekse girmektedir. Ek indeksteki veri miktarı az olsa da, içinde arama yapmak nispeten hızlıdır. Sistem yükünün hafif olduğu bir zamanda indeks birleştirme işlemi gerçekleşir ve bunun sonucunda ek indeks temizlenir ve tüm veriler ana indekse yerleştirilir. Dizin birleştirmenin sistem yükünün minimum olduğu bir zamanda gerçekleştirilmesi tercih edilir. Bu amaçla düzenlenmiş görevler ve zamanlanmış görevler oluşturabilirsiniz.

Bir arama ifadesi belirtirken özel operatörlere izin verilir

Tam metin arama mekanizması, tek tuşlu Latin karakterlerini kullanarak Rusça bir kelimenin karakterlerinin bir kısmının yazılmasına olanak tanır. Arama sonucu değişmeyecek.

İki operatör SONRAKİ

  • basitleştirilmiş. 8 kelime arayla
  • NEAR/[+/-]n – aralarında n-1 kelimelik bir mesafe bulunan bir öznitelikteki verileri arayın.

İşareti, ilk kelimeden itibaren ikinci kelimenin hangi yöne aranacağını gösterir. (+ - sonra, - önce)

"*" joker karakteri yalnızca kelimenin sonunun yerine kullanılabilir

Bulanıklık operatörü "#". İsmin tam yazılışı ise isim bilinmiyor.

Yazılım ve 1C araçları: programlama.

Eşanlamlı operatör "!" Bir kelimeyi ve eş anlamlılarını bulmanızı sağlar

Tam metin arama dizinini programlı olarak nasıl güncelleyebilirim?

Code 1C v 8.x Prosedürü UpdateIndices() Dışa Aktarma
FulltextSearch.UpdateIndex();
Prosedürün Sonu

Tam metin veri arama örneği

SearchList Değişkenini Tanımlama

Kod 1C v 8.x Değişken Arama Listesi;

Ek olarak, Form Açıldığında olayını işleme prosedüründe, bu değişkenin tam metin arama listesini içereceğini belirleyeceğiz ve bunun yardımıyla verileri arayacağız.

Kod 1C v 8.x Prosedürü OnOpen()
SearchList = FullTextSearch.CreateList();
Prosedürün Sonu

Şimdi Find butonuna tıklamamız olayı için SearchExpression alanında belirttiğimiz ifadeye uygun olarak arama yapmamızı sağlayacak kodu yazacağız.

Code 1C v 8.x Prosedür FindClick(Element)
SearchList.SearchString = SearchExpression;
Girişim
SearchList.FirstPart();
İstisna
Uyarı(ErrorDescription());
Deneme Sonu;
SearchList.FullQuantity() = 0 ise O zaman
Form Elements.ResultMessage.Value = "Bulunamadı";
Form Elements.Search Result.SetText("");
Aksi takdirde
ÇıktıAramaSonucu();
endIf;
Prosedürün Sonu

Bu prosedürde ilk olarak, kullanıcı tarafından girilen arama terimini tam metin araması için arama dizesi olarak ayarlıyoruz. Daha sonra, aslında tam metin aramasını başlatan ve sonuçların ilk bölümünü döndüren FirstPart() yöntemini çalıştırırız. Varsayılan olarak bir yığın 20 öğe içerir. Bundan sonra arama listesindeki öğe sayısını analiz ediyoruz. Herhangi bir öğe içermiyorsa formda karşılık gelen bir mesaj görüntüleriz. Aksi takdirde, sonuçları kullanıcıya görüntüleyen DisplaySearchResult() prosedürü çağrılır.

Form modülünde aynı isimde bir prosedür oluşturalım ve içine kodu yazalım:

Kod 1C v 8.x Prosedür OutputSearchResult()
Form Elements.ResultMessage.Value = "Gösteriliyor" + Row(SearchList.InitialPosition() + 1) + " - " + Row(SearchList.InitialPosition() +SearchList.Quantity()) + " from " + SearchList.FullQuantity() ;
Sonuç = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText(Sonuç);
ButtonAvailability();
Prosedürün Sonu

Bu prosedürdeki adımlar basittir. Öncelikle hangi elemanların görüntülendiği ve toplam kaç eleman bulunduğuna dair bir mesaj üretiyoruz. Daha sonra tam metin aramasının sonucunu HTML metni şeklinde alıyoruz ve bu metni formda yer alan HTML belge alanında görüntülüyoruz.

Son olarak, Önceki Bölüm ve Sonraki Bölüm düğmelerine (elde edilen sonuçların hangi bölümünün görüntülendiğine bağlı olarak) erişimi sağlamak veya tersine erişimi engellemek için kontrolü Button Availability() prosedürüne aktarırız. Bu prosedürün metni Kurallarda sunulmuştur.

Code 1C v 8.x Prosedür Düğmesinin Kullanılabilirliği ()
Form Elements.NextPosition.Availability = (SearchList.FullQuantity() - SearchList.StartPosition()) > SearchList.Quantity();
Form Elements.PreciousPosition.Availability = (SearchList.StartPosition() > 0);
Prosedürün Sonu

Şimdi, ÖncekiPart() ve NextPart() düğmelerine tıklamak için olay işleyicileri oluşturmanız gerekiyor.

Kod 1C v 8.x Prosedürü Önceki Kısım Presleme (Eleman)
AramaList.ÖncekiPart();
ÇıktıAramaSonucu();
Prosedürün Sonu
Prosedür Sonraki Kısım Presleme (Element)
SearchList.NextPart();
ÇıktıAramaSonucu();
Prosedürün Sonu

Son “dokunuş”, formda bulunan HTML belge alanının onclick olayı için bir işleyici oluşturmaktır. Gerçek şu ki, HTML metni biçiminde sunulan tam metin aramasının sonucu, arama listesinin öğelerinin sayısına köprüler içeriyor. Ve kullanıcı bu linke tıkladığında sistemin bu liste elemanının içerdiği nesnenin formunu açmasını istiyoruz. Bunu yapmak için, HTML belge alanında bulunan HTML belgesinin onclick olayına müdahale edeceğiz, liste öğesi numarasını köprüden alacağız ve ilgili nesnenin formunu açacağız. Bir HTML belge alanının onclick olay işleyicisinin metni kodda sunulur

Code 1C v 8.x Prosedür Arama Sonucutıklama(Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Eleman kimliğini kontrol et
If (htmlElement.id = "FullTextSearchListItem") Sonra
// Dosya adını al (arama listesi satır numarası),
// köprünün içinde yer alıyor
NumberInList = Number(htmlElement.nameProp);
// Arama listesi dizesini numaraya göre al
SelectedRow = AramaListesi[NumberInList];
// Bulunan nesnenin formunu aç
OpenValue(SelectedRow.Value);
pEvtObj.returnValue = Yanlış;
endIf;
Prosedürün Sonu