ХОНХ

Энэ мэдээг чамаас өмнө уншсан хүмүүс бий.
Хамгийн сүүлийн үеийн нийтлэлүүдийг авахын тулд бүртгүүлнэ үү.
Имэйл
Нэр
Овог
Та "Хонх"-ыг хэрхэн уншихыг хүсч байна вэ?
Спам байхгүй

Шинэ хайлтын функц нь хоёр механизм дээр суурилдаг.
- бүрэн текст хайлт (маш хурдан ажилладаг бөгөөд хамгийн бага тооцоолох нөөц шаарддаг);
- DBMS ашиглан хайлт хийх (ерөнхий тохиолдолд хайлтын үргэлжлэх хугацаа ба тооцоолох нөөцийн өртөг нь хүснэгтэд байгаа мэдээллийн хэмжээтэй пропорциональ байна).

Одоогийн хэрэгжилтэд жагсаалтыг хайх болно ашиглахгүйгээрДараах тохиолдолд бүрэн текст хайх ():
- мэдээллийн сангийн түвшинд бүрэн текстийн индексийг идэвхгүй болгосон;
- үндсэн хүснэгтийн объектыг бүтэн текстийн индексээр индексжүүлээгүй;
- бүрэн текст хайлтыг ашиглан хайлтын үр дүнд алдаа гарсан.

Хэрэв мэдээллийн санд бүтэн текст хайлт идэвхжсэн бөгөөд индекс огт эсвэл хэсэгчлэн шинэчлэгдээгүй бол (миний практикт Хэрэглэгчийн мэдээллийн сангийн 95% нь) хайлтын явцад хэрэглэгч найдваргүй эсвэл хоосон хайлтын үр дүнг хүлээн авах болно. .

Бид 1С фирмээс асууж байна - яаж байх вэ? Хайлтын үр дүн үргэлж хүчинтэй байгаа эсэхийг хэрхэн баталгаажуулах вэ?
Бид хариултыг авна: Тийм ээ, бүрэн текст хайлтыг идэвхжүүлсэн үед хайлтын үр дүн шинэчлэгдэхийн тулд та бүтэн текст хайлтын индекс шинэчлэгдсэн эсэхийг шалгах хэрэгтэй. Үр дүнтэй, шинэчлэх өөр сонголт байхгүй. Одоогоор хайлт хийгээгүй байна ().

Мөн ерөнхийдөө "бодит бүтэн текстийн индекс" байгаа эсэх? Хэрэглэгчийн тоо, мэдээллийн сан дахь мэдээллийн өөрчлөлтийн эрчим, индексийн шинэчлэлтийн давтамж зэргээс шалтгаална. Ерөнхийдөө индексийн шинэчлэлтийг 60 секунд тутамд хийдэг. За, хэрэв тийм ч олон объект өөрчлөгдөөгүй бол процедур нь эдгээр 60 секундын дотор бүх өөрчлөлтийг боловсруулж чадсан. Хэрэв та хэсэг баримт бичгийг дахин байршуулах эсвэл лавлахыг бөөнөөр нь дахин бичсэн бол? Энэ тохиолдолд индекс дэх хайлт дахин найдвартай мэдээлэл өгөх хугацааг хэн ч баталж чадахгүй.
Зарчмын хувьд энэ нь цөөн хэдэн нөхцөл байдлаас бусад тохиолдолд тийм ч чухал биш юм. Хэрэглэгчдийн ажиллах нийтлэг сонголт бол жагсаалтад "Харилцагч тал" гэх мэт утгаараа сонголтыг тохируулах, шинийг оруулах эсвэл одоо байгаа баримт бичгийг хуулж, бичих явдал юм. Хуучин хайлт хийснээр шинэ баримт бичиг жагсаалтад шууд харагдах болно. Одоо хэрэглэгч үүнийг хамгийн сайндаа N секундын дараа л харах болно, N нь 2-3 биш харин 50-60 секундэд ойрхон байна.
Хэрэв та шинэ баримт бичиг байхгүй гэдгийг анзаарахгүй, сонгосон үр дүнгийн дагуу хэн нэгэнд мэдээлэл өгвөл энэ нь найдваргүй болох нь ойлгомжтой.

Мэдээллийн баазтай хэвийн ажиллах тохиолдолд энэ нь байсан. Тодорхой нөхцөл байдалд юу тохиолддог вэ? Би танд хэдэн жишээ хэлье.
1) Ажлын мэдээллийн санд бүрэн текстийн индексийг идэвхжүүлж, байнга шинэчилж байдаг. Хэрэглэгч түүн дээрх өгөгдөлд дүн шинжилгээ хийх боломжтой байхын тулд ажлын мэдээллийн сангийн хуулбарыг түүнд байршуулахыг хүсдэг.
Бид нөөцлөлтийг сэргээж, нэвтрэх эрхийг олгодог. Гэхдээ бүтэн текст хайлт ажиллахгүй, учир нь. индекс нь DBMS-д биш, харин тусдаа файлуудад (файл болон клиент-сервер хувилбарт) хадгалагддаг. Индекс dt файлд байхгүй байна.
тэдгээр. Хэрэглэгч жагсаалтын хайлтыг ашиглахын тулд энэ мэдээллийн сан дахь бүтэн текстийн индексийг унтраасан байх ёстой. Үнэн бол хайлт илүү удаан үргэлжлэх болно гэдэгт хэрэглэгч бага зэрэг гайхах болно. Эсвэл бүх мэдээллийн санд индексийг дахин бүтээнэ үү.

2) (Их эсвэл бага том суурийн хувьд бодит). Үйлдвэрлэлийн мэдээллийн санд бүрэн текстийн индексийг идэвхжүүлж, байнга шинэчилдэг. Сарын төгсгөл ирж, хугацааны хаалт эхэлдэг. Баримт бичгийг бөөнөөр нь ачих, шилжүүлэх ажлыг эхлүүлж байна. Системийн ачааллыг багасгахын тулд бид төлөвлөсөн ажлуудын гүйцэтгэлийг хааж, индексийн шинэчлэлт зогсдог. Жагсаалтад яагаад шинэ эсвэл өөрчилсөн баримт бичиг байхгүй байна вэ гэж хэрэглэгчид бага зэрэг хэлэхэд алдагдал хүлээх болно. Цорын ганц гарц бол мэдээллийн сангийн бүрэн текст хайлтыг идэвхгүй болгох, үүний дагуу бүх нарийн ширийн зүйлийг хайж олохын тулд төхөөрөмжид илүү их ачаалал өгөх явдал юм.

Тиймээс индексийг шинэчлэх үйл ажиллагаа нь мэдээллийн сангийн администраторуудын бас нэг толгойны өвчин болж байх шиг байна.
Өмнө нь ямар ч үед мэдээллийн 100% үнэн зөв, хамааралтай болохыг баталгаажуулж байсан систем одоо бүрэн итгэлтэй байж чадахгүй лавлагаа систем болон хувирч байна.
Хэрэглэгчид мэдээллийн технологийн хүмүүсийг зэмлэх өөр нэг шалтгаан олж авдаг - "таны систем зөв ажиллахгүй байна".

Хэдийгээр 8.3 платформ дээрх бүрэн текст хайлтыг хөгжүүлэгчид эртнээс зарласан (8.3.5 платформоос хойш) стандарт тохиргоонд идэвхтэй ашиглагдаагүй байсан. Enterprise Accounting 3.0-ийн сүүлийн хувилбаруудад хөгжүүлэгчид бүрэн текст хайлтыг олон жагсаалтад оруулсан. Миний хэрэглэгчдийн хувьд энэ нь цочирдуулсан - програм хайхаа больсон.

Мэдээжийн хэрэг, бүрэн текст хайлт ажилладаг боловч "хайх" цонхыг харахгүй байгаа хэрэглэгчид андуурч байна. Ашиглалтын ердийн хувилбар: Гар дээр бичиж эхлэх ба бичиж байх үед хайлт хийх талбар, хайлт хийх текст, "Мөрийн хэсэг" гэсэн хайлтын горимыг харуулсан "Find" цонх гарч ирнэ.

Enter товчийг дарснаар жагсаалтыг шүүж, жагсаалтын дээр хайлтын статусын мөр гарч ирнэ. Аль талбарт, юу хайж байгаагаа хэрэглэгч өөрөө тодорхойлдог. Шинэ хайлт нь таныг бичсэн даруйд ажиллаж эхлэх бөгөөд жагсаалтад харагдах бүх талбарт нөлөөлнө. Тусдаа цонх гарч ирэхгүй, хайлтын бүх үгсийг өнгөөр ​​тодруулсан болно.

Хэдэн өдрийн турш бид шинэ эрэл хайгуулаар амьдарсан. Хэрэглэгчид зовж, гомдоллож, хорлон сүйтгэсэн. Гомдол тасрахгүй, удирдлагууддаа “Бүхнийг байгаагаар нь болго” гэсэн үүрэг өгсөн.

Хаанаас эхлэх вэ? Та маягтууд нь бие биенээсээ хэрхэн ялгаатай болохыг ойлгох хэрэгтэй. Би тохиргооны эх кодыг шинэ хайлтын горим болон хуучин кодтой нь татаж аваад маягтуудын эх кодыг харьцуулсан.

"Хайлтын мөр" төрлийн маягтын элементийг нэмэх нь шинэ бүтэн текст хайлтын функцийг хариуцдаг. Юу хайх нь тодорхой болсон. ITS 7.3.1.5-ын тухай нийтлэл олсон. Динамик жагсаалтаас хайх. Энэ нийтлэлийг судалснаар хайлтын шинэ арга нь дараах хоёр хүчин зүйлээс шалтгаална гэсэн дүгнэлтэд хүрсэн: 1. Маягт нь дээрх маягтын элементийн бөглөх, 2. Маягт дээрх динамик жагсаалт нь "SearchStringPosition" шинж чанартай байх ёстой. "Байхгүй".

Онолын хувьд сервер дээр маягт үүсгэх үед "SearchString Position" жагсаалтын шинж чанарыг "SearchString Position. Үгүй" гэж тохируулахад хангалттай боловч энэ нь бүх маягттай ажиллахгүй, зарим тохиолдолд шинэ хайлт үргэлжилсээр байв. Бид программчлаагүй үүсгэсэн маягтын элементүүдийг программчлан устгах боломжгүй ч харагдах байдлыг хянах боломжтой. Хэрэв "AdditionSearchString" маягтын элементийг харагдацаас хасвал бүтэн текстийн шинэ хайлт мөн ажиллахаа болино. Туршилтын үеэр би ерөнхий модульд байрлуулсан дараах кодыг бий болгосон.

NewSearchInLists(Form) Экспортын жагсаалтыг идэвхгүй болгох журам = Form.Items.Find("Жагсаалт"); Хэрэв Жагсаалт = Тодорхойгүй бол буцаана; EndIf; List.SearchStringPosition = SearchStringPosition.None; AdditionSearchString = Form.Elements.Find("AdditionSearchString"); Хэрэв NOT ComplementSearchString = Тодорхойгүй бол ComplementSearchString.Visibility = Худал; EndIf; Төгсгөлийн процедур

"Жагсаалт дахь шинэ хайлтыг идэвхгүй болгох" процедурт та залруулсан маягтыг нэвтрүүлэх хэрэгтэй. Гэхдээ үүнийг бүх хэлбэрт нэг дор яаж хийх вэ?

Эхний шийдэл бол маягт засварлагчийг ашиглан тохируулагч дахь шаардлагатай маягтуудыг гараар засах явдал юм. Би энэ шийдвэрээс шууд татгалзсан - энэ нь урт бөгөөд уйтгартай бөгөөд дараа нь тохиргоог шинэчлэхэд хэцүү байдаг.

Хоёрдахь шийдэл нь маягтыг нээх үед процедурыг дуудах бөгөөд энэ нь програмын хувьд шинэ хайлтыг идэвхгүй болгоно. Процедурыг эхлүүлэх нь бүх хэлбэрээр аль хэдийн бүртгэгдсэн бусад процедураас дуудаж болно, энэ тохиолдолд цаашдын шинэчлэлтүүдээр бид зөвхөн энэ процедурыг хянах шаардлагатай болно - ингэснээр өөрчлөгдөхгүй. Би GeneralModule.ManagePrint-ийг сонгосон бөгөөд үүнд:

OnCreateOnServer(Маягт,ӨгөгдмөлCommandPlace,PrintObjects) Экспорт

Сервер дээр хэвлэх командуудыг бөглөх маягт үүсгэх үед энэ процедурыг дууддаг. Энэ процедурт бид жагсаалтаас шинэ хайлтыг идэвхгүй болгохын тулд функцийг дууддаг кодыг бичнэ.

MyGeneralModule.NewSearchInLists(Маягт)-ыг идэвхгүй болгох;

Нягтлан бодогчид хуучин хайлтанд дуртай байгаа бөгөөд бид Enterprise Accounting 3.0-ийн нийцтэй горим нь бидэнд энэ функцийг өргөтгөл рүү шилжүүлэх боломжийг олгоход бэлдэж байна.

8.1 хувилбараас эхлэн 1C: Enterprise платформ нь бүрэн текст хайлт болох гайхалтай бөгөөд маш хэрэгтэй механизмтай гэдгийг өнөөг хүртэл цөөхөн хүн мэддэг. Энэ юу вэ? Энэ нь танд хэрхэн ашигтай байж болох вэ? Эдгээр асуултын хариултыг В.В. Загас агнуур, "1С" фирм.

Нэгдүгээрт, энэ нь ямар төрлийн механизм болох талаар хэдэн үг хэлье. Бүрэн текст хайлт нь энгийнээр хэлбэл ашигласан тохиргооны бараг хаана ч байгаа текст мэдээллийг олох боломжийг танд олгоно. Үүний зэрэгцээ та шаардлагатай өгөгдлийг бүхэлд нь тохиргооноос хайх эсвэл хайлтын талбарыг цөөн хэдэн объект (жишээлбэл, зарим төрлийн баримт бичиг эсвэл лавлах) болгон нарийсгах замаар хайж болно. Хайлтын шалгуурууд нь өөрөө нэлээд өргөн хүрээнд өөр өөр байж болно. Өөрөөр хэлбэл, та тохиргоонд яг хаана хадгалагдаж, яг хэрхэн бүртгэгдсэнийг санахгүйгээр шаардлагатай өгөгдлийг олох боломжтой.

Бүрэн текст хайлт нь дараах боломжуудыг хангана.

  1. Галиглах (ГОСТ 7.79-2000 стандартын дагуу латин үсгээр орос үгсийг бичих) дэмжлэг байдаг. Жишээ нь: "Орос хэллэг" = "Орос хэллэг".
  2. Орлуулах (тэмдэгтүүдийн хэсгийг нэг товчлууртай латин үсгээр орос үгээр бичих) дэмжлэг байдаг. Жишээ нь: "russrfz frapf" (үг бүрийн төгсгөлийг латинаар бичсэн, жишээ нь операторын алдааны үр дүнд).
  3. Тодорхой бус хайлт хийх боломжтой (олдсон үгсийн үсэг өөр байж болно) бүдэг бадаг байдлын босго үзүүлэлттэй. Жишээ нь: хайлтын мөрөнд "сайн уу" гэсэн үг ба бүдэг бадаг 17% -ийг зааж өгснөөр бид "сайн уу", "сайн уу", "авч" ​​гэсэн алдаатай, алдаагүй бүх ижил төстэй үгсийг олох болно.
  4. Сонгосон мета өгөгдлийн объектуудын хайлтын хамрах хүрээг зааж өгөх боломжтой.
  5. Стандарт талбаруудын нэрсийн ("Код", "Тодорхойлолт" гэх мэт) бүрэн текстийн индексжүүлэлтийг бүх тохиргооны хэл дээр гүйцэтгэдэг.
  6. Хайлтыг орос, англи, украин хэлний синонимыг харгалзан гүйцэтгэдэг.
  7. Орос хэлний морфологийн толь бичиг нь 1С: Enterprise програмын системийг ашиглан автоматжуулсан үйл ажиллагааны чиглэлтэй холбоотой хэд хэдэн тодорхой үгсийг агуулдаг.
  8. Стандарт болгон нийлүүлсэн толь бичигт толь бичгийн мэдээллийн сан, орос, украин, синоним үгсийн толь бичгүүдийг багтаасан болно. Англи Informatik өгсөн.
  9. Та орлуулагч тэмдэгтүүд ("*"), түүнчлэн хайлтын операторууд ("AND", "OR", "NOT", "NEAR") болон тусгай тэмдэгтүүдийг ашиглан хайлт хийж болно.

Бүрэн текст хайлтыг 1C: Enterprise 8.1 платформ дээр ямар ч тохиргоонд хийж болно.

Энэ нь 8.0 хувилбараас хөрвүүлсэн тохиргоонд мөн хамаарна. Бүрэн текст хайх боломжийг идэвхжүүлэхийн тулд өөрийн тохиргооны "Үйл ажиллагаа" цэс рүү очоод "Бүрэн текст хайлтыг удирдах" зүйлийг сонгоод, энэ функцийг идэвхжүүлнэ үү (1-р зургийг үз).

Цагаан будаа. нэг

Хэрэв та 8.1 платформ дээр ердийн тохиргоог ашигладаг бол тэдгээр нь "Өгөгдлийн хайлт" боловсруулалтыг аль хэдийн суулгасан байх магадлалтай ("Хэрэгслүүд" / "Өгөгдөл хайх" цэс). Хэрэв ашигласан тохиргоонд ийм боловсруулалт байхгүй бол энэ нь хамаагүй.

Үүнийг ITS дискнээс үргэлж олж болно. Энэ нийтлэлд бид "Аж ахуйн нэгжийн нягтлан бодох бүртгэл" (Илчлэлт 1.6) тохиргооны энэ боловсруулалтын ажлын жишээг ашиглан бүрэн текст хайх чадварыг харуулах болно.

Өмнө дурьдсанчлан хайлтыг хэд хэдэн үгээр, хайлтын операторууд болон яг тодорхой хэллэгээр хийж болно. Нэмж дурдахад хайлтын байршлыг тодорхой тохиргооны объектууд (жишээ нь, Үйлдвэрлэлийн үйлчилгээний тухай хуулийн баримт бичиг) эсвэл тохиргооны объектуудын жагсаалт/иж бүрдэлээр хязгаарлаж болно.

Өгөгдөл хайхдаа хүснэгтэд заасан хайлтын мөрөнд хайлтын операторуудыг ашиглахыг зөвшөөрнө (бүх операторуудыг зөвхөн ТОМ үсгээр, хашилтгүйгээр зааж өгөх ёстой).

Хүснэгт


Санаж байгаарай: хэрэв ямар ч оператор заагаагүй бол (үгүүдийг хоосон зайгаар бичдэг) програм нь "AND" операторыг ашиглан асуулгын бүх үгийг хайдаг.

Цагаан будаа. 2-т үгийн энгийн хайлтын жишээг харуулав. "Найдвар *" гэж бичснээр бид холбоосыг хүлээн авлаа хувь хүн, түүнчлэн тайлбар дээр "найдвартай үйлчлүүлэгч" гэсэн хэллэг гарсан баримт бичигт.


Цагаан будаа. 2

Цагаан будаа. 3-т хайлтын мөрөнд "OR" бүтцийг ашиглан илүү төвөгтэй хайлтын жишээг харуулж, "Нэршил" лавлах дахь хайлтын талбарыг хязгаарлаж, "Бараа, үйлчилгээний хүлээн авалт", "Бараа, үйлчилгээний борлуулалт" баримт бичгийг харуулав. Хайлтын явцад "цайны сав" эсвэл "BINATONE" гэсэн үг, түүнчлэн холбогдох бүх нэр томъёог агуулсан эдгээр төрлийн бүх баримт бичгүүдийг агуулсан нэр томъёог бүхэлд нь тусгасан нь тодорхой харагдаж байна.


Энэ талаар нягтлан бодогч бүр мэддэггүй. ашигтай хэрэгсэл 1С-д: Нягтлан бодох бүртгэл 8, бүрэн текст хайлт хэлбэрээр. Бүрэн текст хайлтын механизм нь тохиргооны хаанаас ч текстэн мэдээллийг олох боломжийг танд олгоно.

Бүрэн текст хайлтыг "Хэрэгслүүд" цэсэнд байрлах "Өгөгдлийн хайлт" боловсруулалтыг ашиглан гүйцэтгэдэг.

Бүрэн текст хайлтын механизм хэрхэн ажилладаг тухай цөөн хэдэн жишээг харцгаая.

Жишээ 1Бид тодорхой бүтээгдэхүүн, жишээлбэл, Marlboro тамхи хүлээн авах баримт бичгийг хурдан олох хэрэгтэй гэж бодъё.
"Хэрэгслүүд" цэснээс "Өгөгдлийн хайлт" -ыг сонгоно уу. Нээгдсэн цонхны дээд талбарт "Marlboro" хайлтын асуулга оруулаад "Хайх" товчийг дарна уу.


Жишээ 2Манай байгууллага Румянцев бизнес төвийн ойролцоо оффис түрээслэдэг. Мэдээллийн сангаас 2010 оны 3 сарын түрээсийн актыг хурдан олох шаардлагатай. Бид дараах хайлтын асуулга хийдэг.


Сонголт 3.Бараа тээвэрлэхдээ бид зарим баримт бичигт "Бараа, үйлчилгээний борлуулалт" - "Төлбөрийг хойшлуулсан" гэсэн тайлбарыг үлдээсэн гэж бодъё. Тэгээд бид сааталтайгаар ачуулсан бүх бичиг баримтыг олох шаардлагатай болсон. Бид дараах хайлтын асуулга хийдэг.

Та хайлтын операторуудыг (AND, OR, NOT, NEAR) ашиглан илүү төвөгтэй хайлт хийж болно.
Хайлтын талбарыг тодорхой тохиргооны объектоор хязгаарлаж болно (жишээлбэл, Бараа, үйлчилгээний баримт бичиг). Үүнийг хийхийн тулд "тохиргоо" товчийг дарна уу:

Тохиргооны объектыг сонгох талбар гарч ирнэ. "Хайлтын хүрээг хязгаарлах" нүдийг сонгоод "Хайхын тулд мета өгөгдлийн объектуудыг сонгох" товчийг дарна уу:

Жишээлбэл, "Бараа, үйлчилгээний хүлээн авалт" баримт бичгийг сонгоно уу.

Хайлтын асуулга оруулах, хайхад л үлддэг.

"Өгөгдлийн хайлт" боловсруулалтын доод хэсэгт индексийн хамаарлыг тусгасан болно. Хэрэв та "Индекс шинэчлэгдээгүй байна" гэж харвал "Индексийг шинэчлэх" товчийг дарах хэрэгтэй.

Бүрэн текст хайлт- ашигласан тохиргооны бараг хаана ч байрлуулсан текст мэдээллийг олох боломжийг танд олгоно. Үүний зэрэгцээ та шаардлагатай өгөгдлийг бүхэлд нь тохиргооноос хайх эсвэл хайлтын талбарыг цөөн хэдэн объект (жишээлбэл, зарим төрлийн баримт бичиг эсвэл лавлах) болгон нарийсгах замаар хайж болно. Хайлтын шалгуурууд нь өөрөө нэлээд өргөн хүрээнд өөр өөр байж болно. Өөрөөр хэлбэл, та тохиргоонд яг хаана хадгалагдаж, яг хэрхэн бүртгэгдсэнийг санахгүйгээр шаардлагатай өгөгдлийг олох боломжтой.

Бүрэн текст хайлт нь дараах боломжуудыг хангана.

  • Галиглах (ГОСТ 7.79-2000 стандартын дагуу латин үсгээр орос үгсийг бичих) дэмжлэг байдаг. Жишээ нь: "Орос хэллэг" = "Орос хэллэг".
  • Орлуулах (тэмдэгтүүдийн хэсгийг нэг товчлууртай латин үсгээр орос үгээр бичих) дэмжлэг байдаг. Жишээ нь: "russrfz frapf" (үг бүрийн төгсгөлийг латинаар бичсэн, жишээ нь операторын алдааны үр дүнд).
  • Тодорхой бус хайлт хийх боломжтой (олдсон үгсийн үсэг өөр байж болно) бүдэг бадаг байдлын босго үзүүлэлттэй. Жишээ нь: хайлтын мөрөнд "сайн уу" гэсэн үг ба бүдэг бадаг 17% -ийг зааж өгснөөр бид "сайн уу", "сайн уу", "авч" ​​гэсэн алдаатай, алдаагүй бүх ижил төстэй үгсийг олох болно.
  • Сонгосон мета өгөгдлийн объектуудын хайлтын хамрах хүрээг зааж өгөх боломжтой.
  • Стандарт талбаруудын нэрсийн ("Код", "Тодорхойлолт" гэх мэт) бүрэн текстийн индексжүүлэлтийг бүх тохиргооны хэл дээр гүйцэтгэдэг.
  • Хайлтыг орос, англи, украин хэлний синонимыг харгалзан гүйцэтгэдэг.
  • Орос хэлний морфологийн толь бичиг нь 1С: Enterprise програмын системийг ашиглан автоматжуулсан үйл ажиллагааны чиглэлтэй холбоотой хэд хэдэн тодорхой үгсийг агуулдаг.
  • Стандарт болгон нийлүүлсэн толь бичигт Informatik-аас өгсөн орос, украин, англи хэлний синоним, үгийн сангийн мэдээллийн сан, толь бичиг багтсан болно.
  • Та орлуулагч тэмдэгтүүд ("*"), түүнчлэн хайлтын операторууд ("AND", "OR", "NOT", "NEAR") болон тусгай тэмдэгтүүдийг ашиглан хайлт хийж болно.

Бүрэн текст хайлтыг 1C: Enterprise 8 платформ дээр ямар ч тохиргоонд хийж болно

Бүрэн текст хайлтын хяналтын цонхыг нээхийн тулд дараах зүйлийг хийнэ үү.

Ерөнхий өргөдөл- цэсийн зүйл Үйлдлүүд - Бүрэн текст хайлтыг удирдах.

Удирдлагатай програм- цэсийн зүйл Үндсэн цэс - Бүх функцууд - Стандарт -Бүрэн текст хайлтын удирдлага.


  • Индексийг шинэчлэх– Индекс үүсгэх/Индекс шинэчлэх;
  • Индексийг цэвэрлэх– индексийг тэглэх (бүх өгөгдлийг шинэчилсэний дараа зөвлөж байна);
  • зүйл Индекс нэгтгэхийг зөвшөөрөх- үндсэн болон нэмэлт индексийг нэгтгэх үүрэгтэй.

Бүрэн текстийн хайлтыг бүрэн текстийн индекс ашиглан гүйцэтгэдэг. Индекс байхгүй тохиолдолд бүрэн текст хайлт хийх боломжгүй. Хайлт амжилттай болохын тулд шаардлагатай бүх өгөгдлийг бүрэн текстийн индекст оруулах ёстой. Хэрэв хэрэглэгч мэдээллийн санд шинэ өгөгдөл оруулсан бол тухайн индекст оруулах ёстой, эс тэгвээс хайлтанд оролцохгүй. Үүнээс зайлсхийхийн тулд та бүтэн текстийн индексийг шинэчлэх хэрэгтэй. Шинэчлэхдээ систем нь зөвхөн тодорхой төрлийн өгөгдөлд дүн шинжилгээ хийдэг: мөр, лавлагааны төрлийн өгөгдөл (баримт бичгийн холбоос, лавлах), дугаар, огноо, утгыг хадгалах. Хэрэв хэрэглэгч тодорхой мэдээлэлд хандах эрхгүй бол хайлтын үр дүнд үүнийг харах боломжгүй болно. Хайлт хийх объектуудын шинж чанарыг тохируулах ёстой гэдгийг санах нь зүйтэй Бүрэн текст хайх - Ашиглах, энэ нь анхдагчаар тохируулагдсан.

Таны харж байгаагаар үл хөдлөх хөрөнгө Ашиглахбүх лавлахад зориулж тохируулсан Эсрэг талууд, гэхдээ үүнийг харгалзах төрлийн шинж чанар тус бүрээр нь хийж болно.

Үндсэн индекс ба нэмэлт гэсэн хоёр хэсгээс (индекс) бүрдэх бүрэн текстийн индексийг илүү нарийвчлан авч үзье. Өндөр хурдтайМэдээллийн хайлтыг үндсэн индексийн зардлаар хангадаг боловч мэдээллийн хэмжээнээс хамааран шинэчлэх нь харьцангуй удаан байдаг. Нэмэлт индекс нь түүний эсрэг байна. Өгөгдөл нь илүү хурдан нэмэгддэг боловч хайлт нь удаан байдаг. Систем нь хоёр индексийг нэгэн зэрэг хайдаг. Өгөгдлийн ихэнх нь үндсэн индекст байрладаг бол системд нэмсэн өгөгдөл нь хоёрдогч индекст ордог. Хоёрдогч индекс дэх өгөгдлийн хэмжээ бага байвал түүнийг хайх нь харьцангуй хурдан байдаг. Системийн ачаалал бага байгаа үед индексийг нэгтгэх ажиллагаа явагддаг бөгөөд үүний үр дүнд нэмэлт индексийг цэвэрлэж, бүх өгөгдлийг үндсэн индекст байрлуулдаг. Системийн ачаалал хамгийн бага байх үед индексүүдийг нэгтгэх нь дээр. Энэ зорилгоор та зохицуулалттай даалгавар, хуваарьтай ажлуудыг үүсгэж болно.

Хайлтын илэрхийлэлийг зааж өгөхдөө тусгай операторуудыг зөвшөөрдөг

Бүрэн текст хайлтын механизм нь орос үгийн тэмдэгтүүдийн хэсгийг нэг товчлууртай латин үсгээр бичих боломжийг олгодог. Хайлтын үр дүн өөрчлөгдөхгүй.

Хоёр оператор зэрэгцэн ажиллаж байна

  • хялбаршуулсан. 8 үгийн зөрүүтэй
  • NEAR/[+/-]n – тэдгээрийн хооронд n-1 үгийн зайд нэг шинж чанарт өгөгдлийг хайх.

Энэ тэмдэг нь эхний үгнээс хоёр дахь үгийг аль чиглэлд хайхыг заана. (+ - дараа, - өмнө)

"*" орлуулагч тэмдэгтийг зөвхөн үгийн төгсгөлийн орлуулалт болгон ашиглаж болно

Бүдэг оператор "#". Хэрэв нэрний зөв бичиглэл тодорхойгүй бол.

Програм хангамжийн хэрэгсэл ба хэрэгслүүд 1: програмчлал.

Синоним оператор "!". Үг болон түүний синонимыг олох боломжийг танд олгоно

Бүрэн текст хайлтын индексийг хэрхэн программчлан шинэчлэх вэ?

Code 1C v 8.x Procedure UpdateIndexes() Экспорт
FulltextSearch.UpdateIndex();
Төгсгөлийн процедур

Бүрэн текст өгөгдөл хайх жишээ

Хувьсагчийн тодорхойлолт хайлтын жагсаалт

Код 1C v 8.x Хувьсах хайлтын жагсаалт;

Нэмж дурдахад, үйл явдлыг боловсруулах журамд маягт нээгдэх үед бид энэ хувьсагч нь бүрэн текст хайлтын жагсаалтыг агуулж, түүний тусламжтайгаар өгөгдлийг хайх болно гэдгийг тодорхойлдог.

Код 1С v 8.x Процедур OnOpen()
SearchList = FullTextSearch.CreateList();
Төгсгөлийн процедур

Одоо Find товчийг дарах тохиолдолд SearchExpression талбарт заасан илэрхийллийн дагуу хайлт хийх кодыг бичье.

Code 1C v 8.x Процедур FindClick(Элемент)
SearchList.SearchString = SearchExpression;
оролдлого
SearchList.FirstPart();
Үл хамаарах зүйл
Анхааруулга(Алдааны тайлбар());
оролдлогын төгсгөл;
Хэрэв SearchList.TotalCount() = 0 байвал
FormElements.MessageOResult.Value = "Одоогүй";
FormElements.SearchResult.SetText("");
Үгүй бол
PrintSearchResult();
EndIf;
Төгсгөлийн процедур

Эхлээд энэ процедурын хувьд бид хэрэглэгчийн оруулсан хайлтын илэрхийлэлийг бүтэн текст хайх хайлтын мөр болгон тохируулсан. Дараа нь бид бүрэн текстийн хайлтыг эхлүүлж, эхний багц үр дүнг буцаадаг FirstPart() аргыг ажиллуулна. Анхдагч байдлаар, нэг хэсэг нь 20 зүйл агуулдаг. Үүний дараа бид хайлтын жагсаалтад байгаа элементүүдийн тоог задлан шинжилнэ. Хэрэв энэ нь ямар ч элемент агуулаагүй бол бид холбогдох мессежийг маягт дээр харуулна. Үгүй бол үр дүнг хэрэглэгчдэд харуулах OutputSearchResult() процедурыг дуудна.

Формын модульд ижил нэртэй процедур үүсгэж, кодыг нь бичье.

Код 1C v 8.x Процедур DisplaySearchResult()
FormElements.MessageOResult.Value = "Shown" + String(SearchList.StartingPosition() + 1) + " - " + String(SearchList.StartingPosition() +SearchList.Count()) + "from" + SearchList.FullCount();
Үр дүн = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText(Үр дүн);
Хандалтын товчлуурууд();
Төгсгөлийн процедур

Энэ процедурын алхамууд нь энгийн. Эхлээд бид ямар элементүүдийг харуулсан, нийт хэдэн элемент олдсон тухай мессежийг үүсгэдэг. Дараа нь бид бүрэн текст хайлтын үр дүнг HTML текст хэлбэрээр авч, энэ текстийг маягт дээр байрлах HTML баримт бичгийн талбарт харуулна.

Эцэст нь, өмнөх хэсэг болон дараагийн хэсэг (үр дүнгийн аль хэсгийг харуулахаас шалтгаална) товчлууруудыг ашиглах боломжтой болгохын тулд хяналтыг ButtonsAccess() процедурт шилжүүлж, эсвэл эсрэгээр нь хориглодог. Энэхүү журмын текстийг Дүрэмд тусгасан болно

Код 1C v 8.x Товчлуурын хүртээмжийн журам()
FormElements.NextPortion.Availability = (SearchList.FullCount() - SearchList.StartPosition()) > SearchList.Quantity();
FormElements.PreviousPortion.Availability = (SearchList.StartPosition() > 0);
Төгсгөлийн процедур

Одоо та PreviousPortion() болон NextPortion() товчлууруудыг дарахад үйл явдал зохицуулагч үүсгэх хэрэгтэй.

Код 1С v 8.x Процедур PrevPartPress(Элемент)
SearchList.PreviousPart();
PrintSearchResult();
Төгсгөлийн процедур
Процедур NextBatchClick(Зүйл)
SearchList.NextPart();
PrintSearchResult();
Төгсгөлийн процедур

Эцсийн "мэдрэгч" нь маягтанд байрлах HTML баримт бичгийн талбарын onclick үйл явдлын үйл явдал зохицуулагчийг үүсгэх болно. Баримт нь HTML текст хэлбэрээр үзүүлсэн бүрэн текст хайлтын үр дүн нь хайлтын жагсаалтын элементүүдийн тоонуудын холбоосыг агуулдаг. Хэрэглэгч энэ холбоос дээр дарах үед энэ жагсаалтын элементэд агуулагдах объектын хэлбэрийг системээс нээхийг бид хүсч байна. Үүнийг хийхийн тулд бид HTML баримтын талбарт байгаа HTML баримтын onclick үйл явдлыг таслан зогсоож, гипер холбоосоос жагсаалтын дугаарыг авч, харгалзах объектын хэлбэрийг нээнэ. HTML баримт бичгийн талбарын onclick үйл явдлын зохицуулагчийн текстийг кодонд үзүүлэв

Code 1C v 8.x ProcedureSearchResultonclick(Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// Элементийн дугаарыг шалгана уу
Хэрэв (htmlElement.id = "FullTextSearchListItem") Дараа нь
// Файлын нэрийг авах (хайлтын жагсаалтын мөрийн дугаар),
// hyperlink-д агуулагдсан
NumberInList = Number(htmlElement.nameProp);
// Хайлтын жагсаалтын мөрийг тоогоор нь авна уу
SelectedRow = Хайлтын жагсаалт[Жагсаалтын дугаар];
// Олдсон объектын хэлбэрийг нээнэ үү
OpenValue(SelectedRow.Value);
pEvtObj.returnValue = Худал;
EndIf;
Төгсгөлийн процедур

ХОНХ

Энэ мэдээг чамаас өмнө уншсан хүмүүс бий.
Хамгийн сүүлийн үеийн нийтлэлүүдийг авахын тулд бүртгүүлнэ үү.
Имэйл
Нэр
Овог
Та "Хонх"-ыг хэрхэн уншихыг хүсч байна вэ?
Спам байхгүй