การค้นหา 1c การบัญชี 8.3 ไม่ทำงาน อนุญาตให้ใช้ตัวดำเนินการพิเศษเมื่อระบุนิพจน์การค้นหา
กลไกการค้นหาข้อความแบบเต็มใน 1Cช่วยให้คุณค้นหาข้อมูลที่ผู้ใช้ต้องการได้อย่างรวดเร็ว ประเภทนี้การค้นหาจะมีประสิทธิภาพโดยเฉพาะอย่างยิ่งหากฐานข้อมูลมีข้อมูลจำนวนมาก และยังไม่ทราบแน่ชัดว่าข้อมูลที่น่าสนใจของผู้ใช้อยู่ที่ใด หรือไม่ทราบชื่อที่แน่นอน ซึ่งมักจะเกิดขึ้น หากต้องการเปิดหน้าต่างควบคุมการค้นหาข้อความแบบเต็ม คุณต้องดำเนินการดังต่อไปนี้: รายการเมนู การดำเนินงาน การควบคุมการค้นหาข้อความแบบเต็ม .
ในหน้าต่างนี้ คุณจะเห็นปุ่มสามปุ่ม: การตั้งค่า - เปิด/ปิดการค้นหาข้อความแบบเต็ม;
อัพเดตดัชนี – การสร้างดัชนี/การอัปเดตดัชนี ล้างดัชนี – รีเซ็ตดัชนี (แนะนำหลังจากอัปเดตข้อมูลทั้งหมด) ย่อหน้า อนุญาตให้รวมดัชนี – มีหน้าที่ในการรวมดัชนีหลักและดัชนีรอง
การค้นหาข้อความแบบเต็มดำเนินการโดยใช้ดัชนีข้อความแบบเต็ม หากไม่มีดัชนี การค้นหาข้อความแบบเต็มจะไม่สามารถทำได้ เพื่อให้การค้นหามีประสิทธิภาพ ข้อมูลที่เกี่ยวข้องทั้งหมดจะต้องรวมอยู่ในดัชนีข้อความแบบเต็ม หากผู้ใช้ป้อนข้อมูลใหม่ลงในฐานข้อมูล จะต้องรวมไว้ในดัชนีที่เป็นปัญหา มิฉะนั้นจะไม่มีส่วนร่วมในการค้นหา เพื่อหลีกเลี่ยงปัญหานี้ คุณจำเป็นต้องอัปเดตดัชนีข้อความแบบเต็ม เมื่อทำการอัพเดต ระบบจะวิเคราะห์เฉพาะข้อมูลบางประเภทเท่านั้น: สตริง ข้อมูลประเภทการอ้างอิง (ลิงค์เอกสาร หนังสืออ้างอิง) ตัวเลข วันที่ ค่าการจัดเก็บ. หากผู้ใช้ไม่มีสิทธิ์ในการเข้าถึงข้อมูลบางอย่าง เขาจะไม่สามารถดูข้อมูลนั้นในผลการค้นหาได้ คุณควรจำไว้ว่าในคุณสมบัติของออบเจ็กต์ที่จะทำการค้นหาจะต้องตั้งค่าไว้ ค้นหาข้อความแบบเต็ม – การใช้งานซึ่งถูกกำหนดไว้เป็นค่าเริ่มต้น
สังเกตทรัพย์สินได้อย่างไร. ใช้ กำหนดไว้สำหรับไดเร็กทอรีทั้งหมด หมายเลขทะเบียน แต่สามารถทำได้สำหรับแอตทริบิวต์แต่ละประเภทในประเภทที่เกี่ยวข้อง
มาดูดัชนีข้อความแบบเต็มซึ่งประกอบด้วยสองส่วน (ดัชนี): ดัชนีหลักและเพิ่มเติม . ความเร็วสูงการดึงข้อมูลมาจากดัชนีหลัก แต่การอัปเดตจะค่อนข้างช้า ขึ้นอยู่กับปริมาณข้อมูล ดัชนีเพิ่มเติมอยู่ตรงกันข้าม ข้อมูลจะถูกเพิ่มเร็วขึ้นมาก แต่การค้นหาช้าลง ระบบค้นหาดัชนีทั้งสองพร้อมกัน ข้อมูลส่วนใหญ่อยู่ในดัชนีหลัก และข้อมูลที่เพิ่มเข้าสู่ระบบจะเข้าสู่ดัชนีเพิ่มเติม แม้ว่าปริมาณข้อมูลในดัชนีเพิ่มเติมจะมีน้อย แต่การค้นหาผ่านดัชนีนั้นค่อนข้างรวดเร็ว ในช่วงเวลาที่โหลดของระบบไม่มาก การดำเนินการผสานดัชนีจะเกิดขึ้น ซึ่งส่งผลให้ดัชนีเพิ่มเติมถูกล้าง และข้อมูลทั้งหมดจะถูกวางไว้ในดัชนีหลัก ขอแนะนำให้ดำเนินการรวมดัชนีในเวลาที่โหลดของระบบมีน้อยที่สุด เพื่อจุดประสงค์นี้ คุณสามารถสร้างงานที่ได้รับการควบคุมและงานที่จัดกำหนดการไว้ได้
พิจารณาเป็นกรณีไป อัปเดตอัตโนมัติจัดทำดัชนีเมื่อแอปพลิเคชันเริ่มทำงาน กรณีนี้เหมาะสำหรับฐานข้อมูลแบบผู้ใช้คนเดียว (เช่น ผลิตภัณฑ์เช่น พื้นฐานการบัญชี 1C, 1C แบบง่าย) เนื่องจากหากมีผู้ใช้จำนวนมาก การอัปเดตจะเกิดขึ้นหลังจากที่ผู้ใช้แต่ละรายเปิดแอปพลิเคชันแล้ว ซึ่งจะส่งผลให้เกิดผลกระทบอย่างมากต่อประสิทธิภาพของระบบ
ขั้นแรก เรามาสร้างโมดูลทั่วไปและเรียกมันเป็นตัวอย่าง พีพี เราจะเขียนขั้นตอนต่อไปนี้:
ขั้นตอน UpdateIndices() ส่งออก
FulltextSearch.UpdateIndex();
สิ้นสุดขั้นตอน
มาตั้งค่าคุณสมบัติตามรูปกันด้วย
จากนั้นคลิกขวาที่ชื่อการกำหนดค่าในแผนผังการกำหนดค่าและดำเนินการคำสั่ง เปิดโมดูลแอปพลิเคชันที่ได้รับการจัดการ เลือกฟังก์ชันที่กำหนดไว้ล่วงหน้าในหน้าต่างเล็กๆ ด้านบน ก่อนเริ่มระบบ และใส่บรรทัดต่อไปนี้ลงในขั้นตอนนี้:
UpdateFullTextSearch.UpdateIndexes();
บันทึกการเปลี่ยนแปลงที่ทำ ด้วยวิธีนี้ หลังจากเปิดตัวแอปพลิเคชันแต่ละครั้ง ดัชนีจะได้รับการอัปเดตโดยอัตโนมัติ
ตอนนี้ลองพิจารณากรณีเมื่อมีผู้ใช้หลายคน ที่นี่เราจะใช้ งานประจำ (ในโหมดตัวกำหนดค่า: ในแผนผังการกำหนดค่า – ทั่วไป – งานปกติ)ในกรณีนี้ เราสนใจเพียงสองงานเท่านั้น: การอัปเดตดัชนีการค้นหาข้อความแบบเต็มและการรวมดัชนีการค้นหาข้อความแบบเต็มในคุณสมบัติของงานเหล่านี้ ให้เลือก กำหนดการและคลิกที่ลิงค์ เปิด.
เรากำหนดตารางเวลาสำหรับทั้งสองงาน ไม่มีคำแนะนำสำหรับการตั้งค่าในกรณีนี้ การตั้งค่าจะพิจารณาจากคุณลักษณะของระบบ (โหลด ปริมาณข้อมูล ความถี่ของการอัปเดต ฯลฯ) งานเองจะไม่ทำงานเราจะต้องมีเซสชันของโปรแกรมที่ทำงานอยู่ในโหมด รัฐวิสาหกิจใครจะเป็นผู้รับผิดชอบในการทำงานเหล่านี้ให้เสร็จสิ้น ควรสังเกตทันทีว่ามีการใช้ตัวเลือกการทำงานนี้ ระบบไฟล์. เซสชันนี้จะต้องเรียกใช้ตัวจัดการการรอที่ทำการเรียกเมธอดภาษาที่มีอยู่แล้วภายใน การประมวลผลนี้จะมีลักษณะเช่นนี้:
มาเปลี่ยนเป็นโหมด Enterprise แล้วทำสิ่งต่อไปนี้: มาเริ่มการประมวลผลของเรากันดีกว่า ซึ่งในกรณีนี้จะถูกเรียกทุกๆ 5 วินาที และในทางกลับกัน จะเรียกเมธอด “RunTaskProcessing()” วิธีการนี้ตรวจสอบว่าถึงเวลาที่ต้องทำงานให้เสร็จตามกำหนดเวลาหรือไม่ จากนั้นไปที่รายการเมนู การดำเนินการ – ค่าคงที่ – การตั้งค่าโปรแกรม – แท็บการแลกเปลี่ยนข้อมูล
มากำหนดเซสชันผู้ใช้ที่จะรับผิดชอบในการดำเนินการและกำหนดช่วงเวลาการโพลสำหรับงานประจำ ไม่แนะนำให้ทำงานในเซสชันนี้ เนื่องจากอาจส่งผลต่อประสิทธิภาพของระบบ นอกจากนี้บนดิสก์ ITS ยังมีการประมวลผล “ เรียกใช้งานประจำ” ซึ่งบังคับให้ทำงานประจำตามที่ผู้ใช้เลือก รูปแบบของการประมวลผลมีดังนี้:
ดังนั้นงานเตรียมการทั้งหมดจึงเสร็จสมบูรณ์และคุณสามารถดำเนินการค้นหาข้อมูลได้โดยตรง
ในการเริ่มทำงานกับการค้นหาข้อความแบบเต็ม คุณต้องรันคำสั่งต่อไปนี้: เมนู บริการและการค้นหาข้อมูล.
จากนั้นหน้าต่างต่อไปนี้จะปรากฏขึ้น:
คลิกที่ปุ่ม การตั้งค่าจะมีช่องปรากฏขึ้นพร้อมกับ การตั้งค่าเพิ่มเติม, เช่น: การจำกัดพื้นที่การค้นหา, คลุมเครือ, ขนาดหน่วยบริโภค(ในกรณีนี้ ค่า = 5 ซึ่งหมายถึงการแสดงผลการค้นหาห้ารายการต่อหน้า) พารามิเตอร์ คลุมเครือบ่งบอกถึงความแตกต่างระหว่างอักขระบางตัวในคำค้นหาและข้อมูลที่ได้รับระหว่างการค้นหา คลุมเครือระบุเป็นเปอร์เซ็นต์
การค้นหาข้อความแบบเต็มสามารถใช้โอเปอเรเตอร์ต่อไปนี้:
นอกจากนี้ กลไกการค้นหาข้อความแบบเต็มช่วยให้สามารถเขียนส่วนหนึ่งของอักขระของคำภาษารัสเซียเป็นอักขระละตินแบบคีย์เดียวได้ ผลการค้นหาจะไม่เปลี่ยนแปลง
ในเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์ ตัวกำหนดเวลางานมีหน้าที่รับผิดชอบในการกำหนดเวลางาน
ตัวกำหนดเวลางานเป็นส่วนประกอบที่ใช้งานอยู่ของเซิร์ฟเวอร์เช่น ไม่ว่าจะมีการเชื่อมต่อไคลเอ็นต์กับเซิร์ฟเวอร์อยู่ก็ตาม ก็สามารถทำงานตามปกติได้ กิจกรรมของตัวกำหนดเวลาจะสังเกตเห็นได้ชัดเจนเป็นพิเศษ เมื่อมีการสอบถามฐานข้อมูลทั้งหมดตามลำดับว่ามีงานที่กำหนดเวลาไว้ในนั้นหรือไม่ ตัวกำหนดเวลาสามารถชะลอการลงคะแนนเสียงเฉพาะรายการได้ ฐานข้อมูลหากฐานข้อมูลถูกบล็อกไม่ให้เชื่อมต่อหรือบล็อกงานที่กำหนดเวลาไว้
รายการงานที่กำหนดเวลาไว้ในปัจจุบันในตัวกำหนดตารางเวลาสามารถเปลี่ยนแปลงได้โดยอัตโนมัติ (เช่น เมื่อมีการสร้างงานที่กำหนดเวลาไว้ใหม่หรืองานที่กำหนดเวลาไว้ที่มีอยู่ถูกลบ) ไม่ว่าในกรณีใด กลไกงานจะทำให้แน่ใจว่ารายการงานที่กำหนดเวลาไว้ของผู้กำหนดเวลานั้นเป็นข้อมูลล่าสุดและสอดคล้องกับรายการงานประจำของฐานข้อมูลคลัสเตอร์
หลังจากได้รับรายการงานที่กำหนดเวลาไว้เริ่มแรกเรียบร้อยแล้ว ผู้จัดกำหนดการจะตรวจสอบเป็นระยะๆ เพื่อดูว่าได้รับคำของานเบื้องหลังหรือไม่ และจำเป็นต้องดำเนินการงานที่กำหนดเวลาไว้ตามกำหนดเวลาหรือไม่ หลังจากที่กระบวนการของผู้ปฏิบัติงานได้รับงาน กระบวนการของผู้ปฏิบัติงานจะสร้างการเชื่อมต่อกับฐานข้อมูลและดำเนินงานภายในการเชื่อมต่อนั้น เนื่องจากเวิร์กโฟลว์ได้รับการปรับให้เหมาะสมสำหรับงานที่มีผู้ใช้หลายคน การสร้างการเชื่อมต่อกับฐานข้อมูลครั้งแรกเท่านั้นจึงมีค่าใช้จ่ายสูง การสร้างการเชื่อมต่อในภายหลังไปยังฐานข้อมูลเดียวกันจะใช้เวลาและทรัพยากรน้อยลงอย่างมาก เนื่องจาก โครงสร้างข้อมูลภายในส่วนใหญ่จะแชร์ระหว่างการเชื่อมต่อภายในฐานข้อมูลเดียวกัน หลังจากงานเสร็จสิ้น กระบวนการของผู้ปฏิบัติงานจะแจ้งผู้จัดกำหนดการว่างานเสร็จสมบูรณ์หรือไม่สำเร็จ ในกรณีที่ซอฟต์แวร์ขัดข้อง ตัวกำหนดเวลาสามารถรีสตาร์ทงานที่กำหนดเวลาไว้ได้ (หากเกิดความล้มเหลวขณะดำเนินการ งานเบื้องหลังแล้วจะรีสตาร์ทไม่ได้)
ขอบคุณ!
ค้นหาข้อความแบบเต็ม- จะช่วยให้คุณค้นหา ข้อมูลข้อความวางเกือบทุกที่ในการกำหนดค่าที่ใช้ ในกรณีนี้ คุณสามารถค้นหาข้อมูลที่จำเป็นได้ตลอดการกำหนดค่าทั้งหมดโดยรวม หรือโดยการจำกัดพื้นที่การค้นหาให้แคบลงเหลือหลายออบเจ็กต์ (เช่น เอกสารหรือไดเร็กทอรีบางประเภท) เกณฑ์การค้นหาอาจแตกต่างกันไปในช่วงที่ค่อนข้างกว้าง นั่นคือคุณสามารถค้นหาข้อมูลที่จำเป็นได้โดยไม่ต้องจำตำแหน่งที่จัดเก็บไว้ในการกำหนดค่าอย่างชัดเจนและบันทึกข้อมูลอย่างไร
การค้นหาข้อความแบบเต็มมีตัวเลือกดังต่อไปนี้:
- มีการรองรับการทับศัพท์ (การเขียนคำภาษารัสเซียโดยใช้อักขระละตินตาม GOST 7.79-2000) ตัวอย่าง: "วลีภาษารัสเซีย" = "russkaya fraza"
- มีการรองรับการทดแทน (การเขียนส่วนหนึ่งของอักขระในคำภาษารัสเซียด้วยอักขระละตินแบบคีย์เดียว) ตัวอย่าง: “russrfz frapf” (ส่วนท้ายของแต่ละคำจะพิมพ์ด้วยตัวอักษรละติน เป็นต้น เนื่องจากข้อผิดพลาดของโอเปอเรเตอร์)
- มีความเป็นไปได้ที่จะค้นหาแบบคลุมเครือ (ตัวอักษรในคำที่พบอาจแตกต่างกัน) โดยมีข้อบ่งชี้ถึงเกณฑ์คลุมเครือ ตัวอย่าง: โดยการระบุคำว่า "สวัสดี" ในแถบค้นหาและความคลุมเครือ 17% เราจะพบคำที่คล้ายกันทั้งหมดที่มีและไม่มีข้อผิดพลาด: "สวัสดี", "prevet", "prived"
- สามารถระบุขอบเขตการค้นหาออบเจ็กต์ข้อมูลเมตาที่เลือกได้
- การจัดทำดัชนีข้อความแบบเต็มของชื่อฟิลด์มาตรฐาน ("รหัส", "ชื่อ" ฯลฯ ) ดำเนินการในภาษาการกำหนดค่าทั้งหมด
- การค้นหาจะดำเนินการโดยคำนึงถึงคำพ้องความหมายของภาษารัสเซียอังกฤษและยูเครน
- พจนานุกรมสัณฐานวิทยาของภาษารัสเซียประกอบด้วยคำเฉพาะจำนวนหนึ่งที่เกี่ยวข้องกับพื้นที่ของกิจกรรมที่ทำงานอัตโนมัติโดยใช้ระบบโปรแกรม 1C:Enterprise
- ตามมาตรฐาน พจนานุกรมที่ให้มาประกอบด้วยฐานข้อมูลพจนานุกรมและพจนานุกรมอรรถาภิธานและคำพ้องความหมายของรัสเซีย ยูเครน และ ภาษาอังกฤษซึ่งจัดทำโดยบริษัทสารสนเทศ
- การค้นหาสามารถทำได้โดยใช้อักขระตัวแทน ("*") เช่นเดียวกับการระบุโอเปอเรเตอร์การค้นหา ("AND", "OR", "NOT", "NEXT") และอักขระพิเศษ
การค้นหาข้อความแบบเต็มสามารถทำได้ในการกำหนดค่าใด ๆ บนแพลตฟอร์ม 1C:Enterprise 8
หากต้องการเปิดหน้าต่างควบคุมการค้นหาข้อความแบบเต็ม ให้ทำดังต่อไปนี้:
การสมัครปกติ- รายการเมนู การดำเนินการ - การจัดการการค้นหาข้อความแบบเต็ม.
แอปพลิเคชันที่ได้รับการจัดการ- รายการเมนู เมนูหลัก - ฟังก์ชั่นทั้งหมด - มาตรฐาน -การจัดการค้นหาข้อความแบบเต็ม
- อัพเดตดัชนี– การสร้างดัชนี/การอัปเดตดัชนี
- ล้างดัชนี– รีเซ็ตดัชนี (แนะนำหลังจากอัปเดตข้อมูลทั้งหมด)
- รายการ อนุญาตให้รวมดัชนี– มีหน้าที่ในการรวมดัชนีหลักและดัชนีเพิ่มเติม
การค้นหาข้อความแบบเต็มดำเนินการโดยใช้ดัชนีข้อความแบบเต็ม หากไม่มีดัชนี การค้นหาข้อความแบบเต็มจะไม่สามารถทำได้ เพื่อให้การค้นหามีประสิทธิภาพ ข้อมูลที่เกี่ยวข้องทั้งหมดจะต้องรวมอยู่ในดัชนีข้อความแบบเต็ม หากผู้ใช้ป้อนข้อมูลใหม่ลงในฐานข้อมูล จะต้องรวมไว้ในดัชนีที่เป็นปัญหา มิฉะนั้นจะไม่มีส่วนร่วมในการค้นหา เพื่อหลีกเลี่ยงปัญหานี้ คุณจำเป็นต้องอัปเดตดัชนีข้อความแบบเต็ม เมื่ออัปเดต ระบบจะวิเคราะห์เฉพาะข้อมูลบางประเภทเท่านั้น: สตริง ข้อมูลประเภทอ้างอิง (ลิงก์ไปยังเอกสาร ไดเร็กทอรี) ตัวเลข วันที่ การจัดเก็บค่า หากผู้ใช้ไม่มีสิทธิ์ในการเข้าถึงข้อมูลบางอย่าง เขาจะไม่สามารถดูข้อมูลนั้นในผลการค้นหาได้ คุณควรจำไว้ว่าในคุณสมบัติของออบเจ็กต์ที่จะทำการค้นหาจะต้องตั้งค่าไว้ ค้นหาข้อความแบบเต็ม – การใช้งานซึ่งถูกกำหนดไว้เป็นค่าเริ่มต้น
สังเกตทรัพย์สินได้อย่างไร. ใช้กำหนดไว้สำหรับไดเร็กทอรีทั้งหมด คู่สัญญาแต่สามารถทำได้สำหรับแอตทริบิวต์แต่ละประเภทในประเภทที่เกี่ยวข้อง
มาดูดัชนีข้อความแบบเต็มโดยละเอียดยิ่งขึ้นซึ่งประกอบด้วยสองส่วน (ดัชนี): ดัชนีหลักและส่วนเพิ่มเติม ดัชนีหลักรับประกันความเร็วในการดึงข้อมูลสูง แต่การอัปเดตค่อนข้างช้าขึ้นอยู่กับปริมาณข้อมูล ดัชนีเพิ่มเติมอยู่ตรงกันข้าม ข้อมูลจะถูกเพิ่มเร็วขึ้นมาก แต่การค้นหาช้าลง ระบบค้นหาดัชนีทั้งสองพร้อมกัน ข้อมูลส่วนใหญ่อยู่ในดัชนีหลัก และข้อมูลที่เพิ่มเข้าสู่ระบบจะเข้าสู่ดัชนีเพิ่มเติม แม้ว่าปริมาณข้อมูลในดัชนีเพิ่มเติมจะมีน้อย แต่การค้นหาผ่านดัชนีนั้นค่อนข้างรวดเร็ว ในช่วงเวลาที่โหลดของระบบไม่มาก การดำเนินการผสานดัชนีจะเกิดขึ้น ซึ่งส่งผลให้ดัชนีเพิ่มเติมถูกล้าง และข้อมูลทั้งหมดจะถูกวางไว้ในดัชนีหลัก ขอแนะนำให้ดำเนินการรวมดัชนีในเวลาที่โหลดของระบบมีน้อยที่สุด เพื่อจุดประสงค์นี้ คุณสามารถสร้างงานที่ได้รับการควบคุมและงานที่จัดกำหนดการไว้ได้
อนุญาตให้ใช้ตัวดำเนินการพิเศษเมื่อระบุนิพจน์การค้นหา
กลไกการค้นหาข้อความแบบเต็มช่วยให้สามารถเขียนส่วนหนึ่งของอักขระของคำภาษารัสเซียโดยใช้อักขระละตินแบบคีย์เดียว ผลการค้นหาจะไม่เปลี่ยนแปลง
ตัวดำเนินการสองตัวถัดไป
- ประยุกต์ ห่างกัน 8 คำ
- NEAR/[+/-]n – ค้นหาข้อมูลในแอตทริบิวต์เดียวที่ระยะห่างระหว่างคำเหล่านั้น n-1 คำ
เครื่องหมายบ่งชี้ว่าคำที่สองจะถูกค้นหาจากคำแรกไปในทิศทางใด (+ - หลัง - ก่อน)
ไวด์การ์ด "*" สามารถใช้แทนส่วนท้ายของคำเท่านั้น
ตัวดำเนินการความคลุมเครือ "#" ถ้าสะกดชื่อถูกต้องไม่ทราบชื่อ
ซอฟต์แวร์และเครื่องมือ 1C: การเขียนโปรแกรม
ตัวดำเนินการคำพ้อง "!" ช่วยให้คุณค้นหาคำและคำพ้องความหมาย
จะอัพเดตดัชนีการค้นหาข้อความแบบเต็มโดยทางโปรแกรมได้อย่างไร
รหัส 1C v 8.x ขั้นตอน UpdateIndices () ส่งออกFulltextSearch.UpdateIndex();
สิ้นสุดขั้นตอน
ตัวอย่างการค้นหาข้อมูลข้อความแบบเต็ม
การกำหนดตัวแปร SearchList
รหัส 1C v 8.x รายการค้นหาตัวแปร;
นอกจากนี้ ในขั้นตอนการประมวลผลเหตุการณ์เมื่อฟอร์มเปิด เราจะกำหนดว่าตัวแปรนี้จะมีรายการค้นหาข้อความแบบเต็ม โดยเราจะค้นหาข้อมูล
รหัส 1C v 8.x ขั้นตอน OnOpen ()
SearchList = FullTextSearch.CreateList();
สิ้นสุดขั้นตอน
ตอนนี้สำหรับเหตุการณ์ที่คลิกปุ่ม Find เราจะเขียนโค้ดที่จะให้เราทำการค้นหาตามนิพจน์ที่ระบุในช่อง SearchExpression
รหัส 1C v 8.x ขั้นตอน FindClick (องค์ประกอบ)
SearchList.SearchString = SearchExpression;
พยายาม
SearchList.FirstPart();
ข้อยกเว้น
คำเตือน (คำอธิบายข้อผิดพลาด ());
สิ้นสุดความพยายาม;
ถ้า SearchList.FullQuantity() = 0 แล้ว
Form Elements.ResultMessage.Value = "ไม่พบ";
องค์ประกอบของฟอร์มผลลัพธ์การค้นหาSetText("");
มิฉะนั้น
ผลลัพธ์การค้นหาผลลัพธ์();
สิ้นสุดถ้า;
สิ้นสุดขั้นตอน
ขั้นแรกในขั้นตอนนี้ เราตั้งค่าคำค้นหาที่ผู้ใช้ป้อนเป็นสตริงการค้นหาสำหรับการค้นหาข้อความแบบเต็ม จากนั้นเราดำเนินการเมธอด FirstPart() ซึ่งเรียกใช้การค้นหาข้อความแบบเต็มและส่งกลับผลลัพธ์ส่วนแรก ตามค่าเริ่มต้น ชิ้นส่วนจะมี 20 องค์ประกอบ หลังจากนั้นเราจะวิเคราะห์จำนวนองค์ประกอบในรายการค้นหา หากไม่มีองค์ประกอบใด ๆ เราจะแสดงข้อความที่เกี่ยวข้องในแบบฟอร์ม มิฉะนั้น จะเรียกโพรซีเดอร์ DisplaySearchResult() ซึ่งแสดงผลลัพธ์แก่ผู้ใช้
เรามาสร้างขั้นตอนที่มีชื่อเดียวกันในโมดูลแบบฟอร์มและเขียนโค้ดลงไป:
รหัส 1C v 8.x ขั้นตอน OutputSearchResult ()
Form Elements.ResultMessage.Value = "กำลังแสดง" + Row(SearchList.InitialPosition() + 1) + " - " + Row(SearchList.InitialPosition() +SearchList.Quantity()) + " จาก " + SearchList.FullQuantity() ;
ผลลัพธ์ = SearchList.GetDisplay(FullTextSearchDisplayType.HTMLText);
FormElements.SearchResult.SetText (ผลลัพธ์);
ความพร้อมใช้งานของปุ่ม ();
สิ้นสุดขั้นตอน
ขั้นตอนในขั้นตอนนี้ง่ายมาก ขั้นแรก เราสร้างข้อความเกี่ยวกับองค์ประกอบที่แสดงและจำนวนองค์ประกอบทั้งหมดที่พบ จากนั้นเราจะได้ผลลัพธ์ของการค้นหาข้อความแบบเต็มในรูปแบบข้อความ HTML และแสดงข้อความนี้ในช่องเอกสาร HTML ที่อยู่ในแบบฟอร์ม
สุดท้ายนี้ เราถ่ายโอนการควบคุมไปยังขั้นตอนความพร้อมใช้งานของปุ่ม () เพื่อให้พร้อมใช้งานหรือในทางกลับกัน ปฏิเสธการเข้าถึงปุ่มส่วนก่อนหน้าและส่วนถัดไป (ขึ้นอยู่กับว่าส่วนใดของผลลัพธ์ที่ได้จะแสดง) ข้อความของขั้นตอนนี้แสดงอยู่ในหลักจรรยาบรรณ
รหัส 1C v 8.x ความพร้อมใช้งานของปุ่มขั้นตอน ()
Form Elements.NextPosition.Availability = (SearchList.FullQuantity() - SearchList.StartPosition()) > SearchList.Quantity();
องค์ประกอบแบบฟอร์ม PreviousPosition.Availability = (SearchList.StartPosition() > 0);
สิ้นสุดขั้นตอน
ตอนนี้คุณต้องสร้างตัวจัดการเหตุการณ์เพื่อคลิกที่ปุ่ม PreviousPart() และ NextPart()
รหัส 1C v 8.x ขั้นตอนก่อนหน้าการกดส่วน (องค์ประกอบ)
SearchList.ส่วนก่อนหน้า();
ผลลัพธ์การค้นหาผลลัพธ์();
สิ้นสุดขั้นตอน
ขั้นตอน การกดส่วนถัดไป (องค์ประกอบ)
SearchList.NextPart();
ผลลัพธ์การค้นหาผลลัพธ์();
สิ้นสุดขั้นตอน
“การสัมผัส” สุดท้ายคือการสร้างตัวจัดการสำหรับเหตุการณ์ onclick ของฟิลด์เอกสาร HTML ที่อยู่ในแบบฟอร์ม ความจริงก็คือผลลัพธ์ของการค้นหาข้อความแบบเต็มซึ่งนำเสนอในรูปแบบของข้อความ HTML มีไฮเปอร์ลิงก์ไปยังจำนวนองค์ประกอบของรายการค้นหา และเราต้องการให้เมื่อผู้ใช้คลิกที่ลิงค์นี้ ระบบจะเปิดรูปแบบของออบเจ็กต์ที่มีอยู่ในองค์ประกอบรายการนี้ ในการดำเนินการนี้ เราจะสกัดกั้นเหตุการณ์ onclick ของเอกสาร HTML ที่มีอยู่ในฟิลด์เอกสาร HTML รับหมายเลขรายการจากไฮเปอร์ลิงก์ และเปิดรูปแบบของวัตถุที่เกี่ยวข้อง ข้อความของตัวจัดการเหตุการณ์ onclick ของฟิลด์เอกสาร HTML จะแสดงเป็นโค้ด
รหัส 1C v 8.x ขั้นตอนการค้นหา Resultonclick (Element, pEvtObj)
htmlElement = pEvtObj.srcElement;
// ตรวจสอบรหัสองค์ประกอบ
ถ้า (htmlElement.id = "FullTextSearchListItem") แล้ว
// รับชื่อไฟล์ (หมายเลขบรรทัดรายการค้นหา)
// มีอยู่ในไฮเปอร์ลิงก์
NumberInList = จำนวน (htmlElement.nameProp);
// รับสตริงรายการค้นหาตามหมายเลข
SelectedRow = รายการค้นหา[NumberInList];
// เปิดรูปแบบของวัตถุที่พบ
OpenValue(SelectedRow.Value);
pEvtObj.returnValue = เท็จ;
สิ้นสุดถ้า;
สิ้นสุดขั้นตอน
เคล็ดลับที่ 1: ปิดใช้งานการค้นหาข้อความแบบเต็ม*
นักบัญชีส่วนใหญ่ไม่ทราบถึงการมีอยู่ของฟังก์ชันนี้และไม่เคยใช้งาน (บริการ - ค้นหาข้อมูล)
กลไกการค้นหาข้อความแบบเต็มใน 1C ช่วยให้คุณค้นหาข้อมูลใน 1C ได้ คำหลัก(คล้ายกับการค้นหาบนอินเทอร์เน็ต เมื่อคุณป้อนคำแล้วได้รับผลลัพธ์การค้นหา) ในกรณีนี้ เวลาในการค้นหาขึ้นอยู่กับปริมาณของฐานข้อมูลอย่างมากและอาจใช้เวลาหลายชั่วโมง การปิดใช้งานกลไกการค้นหาข้อความแบบเต็มจะไม่ส่งผลต่อฟังก์ชันอื่น ๆ และความเสถียรของงานใน 1C
กลไกการค้นหาข้อความแบบเต็มใน 1C เปิดใช้งานตามค่าเริ่มต้น หากต้องการปิดใช้งานการค้นหาข้อความแบบเต็มคุณต้องไปที่ การดำเนินงาน - การควบคุมการค้นหาข้อความแบบเต็ม-การตั้งและการถอดป้าย" อนุญาตให้ค้นหาข้อความแบบเต็ม»
การปิดใช้งานกลไกการค้นหาข้อความแบบเต็มจะดำเนินการในโหมดพิเศษ (ไม่มีใครควรทำงานในโปรแกรมยกเว้นคุณ)**
การปิดใช้งานเครื่องมือค้นหาข้อความแบบเต็มจะช่วยเพิ่มประสิทธิภาพได้มากถึง 10%
เคล็ดลับที่ 2: การคำนวณผลลัพธ์ใหม่*
นักบัญชีส่วนใหญ่ไม่ทราบเกี่ยวกับการมีอยู่ของการดำเนินการนี้ และจะต้องดำเนินการทุกเดือน
ผลลัพธ์คือกลไก 1C สำหรับ เข้าถึงได้อย่างรวดเร็วไปยังข้อมูลเมื่อสร้างรายงานและดำเนินการคำนวณต่างๆ
ในการคำนวณผลรวมใหม่ คุณต้องไปที่การดำเนินการ - การจัดการผลรวม กำหนดวันที่ที่จะคำนวณผลรวม (ต้นเดือนปัจจุบัน) ในส่วน "การลงทะเบียนทั้งหมด" และคลิกปุ่ม "เรียกใช้"
การคำนวณผลลัพธ์ใหม่จะดำเนินการในโหมดพิเศษ (ไม่มีใครควรทำงานในโปรแกรมยกเว้นคุณ)**
การคำนวณผลลัพธ์ใหม่ช่วยเพิ่มผลผลิตได้สูงสุดถึง 10%
เคล็ดลับ 3: ปิดใช้งานการกำหนดเวอร์ชันออบเจ็กต์***
นักบัญชีส่วนใหญ่ไม่ทราบเกี่ยวกับการมีอยู่ของฟังก์ชันนี้และไม่ได้ใช้
ต่างจากบันทึกมาตรฐาน การกำหนดเวอร์ชันออบเจ็กต์จะช่วยให้คุณสามารถจัดเก็บข้อมูลไม่เพียงแต่เกี่ยวกับผู้ใช้ที่ทำงานกับเอกสารเท่านั้น แต่ยังรวมไปถึงสิ่งที่เขาเปลี่ยนแปลงอย่างแน่นอน (บริการ - ประวัติการเปลี่ยนแปลงออบเจ็กต์) โหมดนี้อาจมีประโยชน์ แต่ขอแนะนำให้เปิดใช้งานเฉพาะรายการเอกสารที่ระบุเท่านั้นเนื่องจาก มันทำให้ประสิทธิภาพ 1C ลดลงและฐานข้อมูลเพิ่มขึ้น
การกำหนดเวอร์ชันได้รับการกำหนดค่าผ่านการดำเนินการ - การตั้งค่าโปรแกรม - การกำหนดเวอร์ชัน หากไม่จำเป็นต้องตั้งค่า คุณจะต้องลบกล่องกาเครื่องหมาย “ใช้การกำหนดเวอร์ชันออบเจ็กต์” ออก
หากจำเป็นต้องมีการตั้งค่าสำหรับรายการเอกสารเฉพาะ ให้ไปที่ “การตั้งค่าการกำหนดเวอร์ชันของวัตถุ” และคลิกขวาเพื่อตั้งค่าการตั้งค่า “เวอร์ชัน” สำหรับวัตถุที่ต้องการ**
การปิดใช้งานการกำหนดเวอร์ชันจะทำให้ประสิทธิภาพเพิ่มขึ้นถึง 5%
_________________________________________________________________
*สำหรับการกำหนดค่าตาม “1C: การจัดการองค์กรอุตสาหกรรม”, “1C: ระบบอัตโนมัติแบบรวม”, “1C: การบัญชีองค์กร 2.0”, “1C: การจัดการการค้า 10.3”
**ก่อนที่จะดำเนินการตามปกติกับฐานข้อมูล จำเป็นต้องสร้างสำเนาของฐานข้อมูลก่อน
***สำหรับการกำหนดค่าตาม “1C: Manufacturing Enterprise Management”, “1C: Integrated Automation”
ในการกำหนดค่ารุ่นล่าสุดที่ใช้ 1C 8.3 มีโอกาสที่ดีเยี่ยมในการค้นหาและแทนที่ไดเรกทอรีที่ซ้ำกันโดยอัตโนมัติ ทำได้โดยใช้การประมวลผลพิเศษ 1C - ค้นหาและแทนที่รายการที่ซ้ำกัน มันถูกสร้างขึ้นในโซลูชันแอปพลิเคชันดังกล่าวบนแบบฟอร์มที่ได้รับการจัดการเช่น: , .
มาดูคำแนะนำสั้น ๆ: วิธีค้นหาการประมวลผลในอินเทอร์เฟซ วิธีใช้เพื่อยุบรายการที่ซ้ำกันของรายการ ผู้รับเหมา และไดเร็กทอรีอื่น ๆ
ความสนใจ!ก่อนที่จะทำงานกับการประมวลผลต้องแน่ใจว่าได้ทำ สำเนาสำรองฐานข้อมูล
กำลังประมวลผลเพื่อค้นหารายการที่ซ้ำกัน
การประมวลผลการค้นหาและการลบรายการที่ซ้ำกันจะอยู่ที่แท็บ "การดูแลระบบ" ในส่วน "การสนับสนุนและการบำรุงรักษา":
ที่ส่วนลึกสุด:
รับบทเรียนวิดีโอ 267 บทเรียนบน 1C ฟรี:
ในระหว่างการประมวลผลจำเป็นต้องระบุว่าไดเรกทอรีใดที่เราต้องการ "สแกน" (ในกรณีของเราคือการตั้งชื่อ) ตามการเลือกใด (ที่ไม่ได้ทำเครื่องหมายเพื่อลบ) และสิ่งที่จะเป็นข้อเท็จจริงของรายการที่ซ้ำกันสำหรับเรา (ลอง ชื่อตรงกับคำที่คล้ายกัน) หลังจากตั้งค่าแล้ว คลิก "ค้นหารายการที่ซ้ำกัน"
1C จะเสนอตัวเลือกสำหรับการทำซ้ำ:
จากตัวอย่างตู้เย็น STINOL: ระบบทำเครื่องหมายองค์ประกอบโดยลงท้ายด้วย "101" เป็นของเดิม และองค์ประกอบ "103" เป็นของซ้ำ ในหน้าต่างทางด้านขวาเราจะเห็นว่ารายการนี้เกี่ยวข้องกับเอกสารใดบ้าง
คุณสามารถนำ "ต้นฉบับ" ไปใช้ใหม่ได้โดยใช้ปุ่ม "ทำเครื่องหมายเป็นต้นฉบับ" ตามความเชื่อของคุณ ฉันแนะนำให้เลือกเป็นมาตรฐานสำหรับวัตถุที่มี "จุดใช้งาน" มากกว่าเพื่อเร่งกระบวนการติดกาวให้เร็วขึ้น:
ใน 1C 8.2 การค้นหาและการลบองค์ประกอบที่ซ้ำกันดำเนินการโดยใช้การประมวลผลสากลจากดิสก์ ITS: ค้นหาและแทนที่ข้อมูล (8.2) ซึ่งทำให้สามารถแทนที่ค่าได้ ถัดไป ออบเจ็กต์ที่ไม่มีลิงก์จะถูกทำเครื่องหมายเพื่อลบและกำจัดออกโดยใช้การลบการประมวลผลออบเจ็กต์ที่ทำเครื่องหมายไว้
กระบวนการค้นหาและลบรายการที่ซ้ำกันใน 1C 8.2 ดำเนินการแยกกัน:
- มีการบันทึกการมีอยู่ของรายการที่ซ้ำกันในฐานข้อมูล
- กำหนดจำนวนลิงก์ที่มากที่สุดไปยังคู่ที่พบ
- กำลังประมวลผล ค้นหาและแทนที่ข้อมูลวัตถุที่มีลิงก์น้อยกว่าจะถูกแทนที่ด้วยรายการที่ซ้ำกันซึ่งมีลิงก์จำนวนมากขึ้น
- วัตถุที่ถูกแทนที่การอ้างอิงถูกทำเครื่องหมายเพื่อลบ การประมวลผลเพิ่มเติมถูกลบออกจากฐานข้อมูล 1C 8.2
การค้นหาและการลบรายการที่ซ้ำกันใน 1C 8.3
ฐานข้อมูล 1C 8.3 ใช้กลไกเฉพาะสำหรับการค้นหาและลบรายการที่ซ้ำกันในรูปแบบของการประมวลผลมาตรฐานที่มีชื่อเดียวกัน โดยจะค้นหาองค์ประกอบที่ซ้ำกันทั้งในผู้รับเหมาและรายการ ตลอดจนในเอกสารและไดเร็กทอรีอื่นๆ
การประมวลผลทั่วไปใน 1C 8.3 ค้นหาและลบรายการที่ซ้ำกันอำนวยความสะดวกในกระบวนการลบข้อมูลที่ไม่จำเป็นออกจาก 1C 8.3 ยิ่งกว่านั้นการลบโดยไม่มีข้อผิดพลาดนั่นคือไม่มีการละเมิดการบัญชีในฐานข้อมูล! เราจะดูวิธีใช้การประมวลผลทีละขั้นตอนด้านล่างนี้
ขั้นตอนที่ 1 การค้นหาและลบการประมวลผลรายการที่ซ้ำกันอยู่ที่ไหน?
การประมวลผลใน 1C 8.3 สามารถเรียกได้อย่างง่ายดาย:
- ช. เมนู – ฟังก์ชั่นทั้งหมด – กำลังประมวลผล – ค้นหาและลบรายการที่ซ้ำกัน:
- การบริหารส่วน – การสนับสนุนและการบำรุงรักษา:
- การตั้งค่าแผงนำทางของส่วนการดูแลระบบ - เลือกคำสั่งค้นหาและลบรายการที่ซ้ำกัน:
ขั้นตอนที่ 2 ความสามารถในการประมวลผล “ค้นหาและลบรายการที่ซ้ำกัน”
คุณต้องรู้อะไรบ้างและการรักษานี้มีไว้เพื่ออะไร?
- กำลังประมวลผลการค้นหาและกำจัดองค์ประกอบที่ซ้ำกันในรายการทั้งหมดของฐานข้อมูล 1C 8.3 ในเวลาเดียวกันต้องติดตั้ง 1C 8.3 สำหรับผู้ดูแลระบบ สิทธิเต็มรูปแบบ;
- การประมวลผลช่วยในการค้นหาการเกิดขึ้นขององค์ประกอบที่ซ้ำกันทั้งหมดในฐานข้อมูล 1C 8.3 และแทนที่รายการที่ซ้ำกันด้วยลิงก์ไปยังองค์ประกอบ "ถูกต้อง" ที่เลือก
ขั้นตอนที่ 3 ค้นหาองค์ประกอบที่ซ้ำกัน
เรียกแบบฟอร์มการประมวลผล ค้นหาและลบรายการที่ซ้ำกัน. ลำดับของการกระทำจะแสดงด้วยตัวเลขในวงกลม:
เรากำหนดเงื่อนไขในการเลือกองค์ประกอบการค้นหา:
- การเลือกเอกสารหรือไดเร็กทอรีที่การประมวลผลจะค้นหารายการที่ซ้ำกัน
- การกำหนดเงื่อนไขการเลือกสำหรับการเลือกองค์ประกอบ ตัวอย่างเช่น หากต้องการลบรายละเอียด TIN ที่กรอกไว้และไม่ได้ทำเครื่องหมาย:
- ตามกฎแล้วใน 1C 8.3 ชื่อเริ่มต้นจะถูกตั้งค่าให้ตรงกัน แต่สามารถตั้งค่าอื่นได้ ตัวอย่างเช่นหาก TIN ตรงกับ 1C 8.3 จะมีคำเตือนเกี่ยวกับการมี TIN ที่มีอยู่ในฐานข้อมูล ความบังเอิญของรหัสเนื่องจากเอกลักษณ์ของตัวเลขใน 1C แทบจะเป็นไปไม่ได้เลย ดังนั้นตัวเลือกเริ่มต้นจึงเป็นที่นิยมมากที่สุด:
โดยการกดปุ่ม ค้นหารายการที่ซ้ำกันข้อมูลจะถูกเลือกและเปรียบเทียบตามเงื่อนไขที่กำหนด หากไม่พบองค์ประกอบที่ซ้ำกัน ข้อความจะปรากฏขึ้น:
เมื่อตรวจพบรายการซ้ำ รายการรายการที่ซ้ำกันจะปรากฏขึ้น รายการประกอบด้วย:
- ด้านซ้ายเป็นองค์ประกอบที่พบ
- ทางด้านขวาคือข้อมูลเกี่ยวกับองค์ประกอบ: จำนวนรายการซ้ำที่พบและรายการเอกสารที่ใช้
ขั้นตอนที่ 4: เลือกต้นฉบับ
องค์ประกอบทางด้านซ้ายจะถูกตั้งค่าเป็นองค์ประกอบดั้งเดิมโดยอัตโนมัติ ในกรณีนี้ คุณสามารถระบุองค์ประกอบอื่นได้โดยการเลือกองค์ประกอบนั้นแล้วคลิก ทำเครื่องหมายว่าเป็นต้นฉบับ. ในรายการ รายการซ้ำจะถูกทำเครื่องหมายด้วยธง
ขั้นตอนที่ 5 การลบรายการที่ซ้ำกันใน 1C 8.3
ผลิตตามหนังสือ. ลบรายการที่ซ้ำกัน. รายการซ้ำจะถูกทำเครื่องหมายเพื่อลบ และสิ่งที่แนบมาทั้งหมดในเอกสารจะถูกแทนที่ด้วยต้นฉบับที่เลือก องค์ประกอบที่ซ้ำกันสามารถลบออกได้อย่างสมบูรณ์โดยการประมวลผล การลบวัตถุที่ทำเครื่องหมายไว้. การบริหารส่วน – การสนับสนุนและการบำรุงรักษา
เมื่อได้รับข้อมูลทั้งหมดเกี่ยวกับการประมวลผลแล้ว เรามาฝึกซ้อมกันต่อ
ขั้นตอนที่ 6 ตัวอย่างการลบรายการที่ซ้ำกันในไดเรกทอรีบัญชีธนาคาร
มาสร้างแบบฟอร์มค้นหาและลบรายการที่ซ้ำกัน:
- ไดเรกทอรีของบัญชีธนาคาร
- ไม่ได้ถูกทำเครื่องหมายเพื่อลบ
- เปรียบเทียบตามชื่อ
ตัวอย่างเช่น ฐานข้อมูล 1C 8.3 มีบัญชีธนาคารซ้ำกัน มาดูกันว่าการประมวลผลจะลบลิงก์ที่ซ้ำกันอย่างไร:
คลิก ค้นหารายการที่ซ้ำกัน. เป็นผลให้ 1C 8.3 ระบุองค์ประกอบที่ซ้ำกันทั้งสามรายการและทำให้สามารถออกจากวัตถุพร้อมกับลิงก์เพิ่มเติมได้ สิ่งนี้สมเหตุสมผล ดังนั้นเราจึงทำสิ่งนี้:
กดปุ่ม ลบรายการที่ซ้ำกัน. หลังจากทำทั้งหมดเสร็จแล้ว การดำเนินการที่จำเป็นใน 1C 8.3 ข้อความที่เกี่ยวข้องจะปรากฏขึ้น:
ลองตรวจสอบไดเรกทอรีบัญชีธนาคาร ด้วยเหตุนี้ บัญชีสองบัญชีจึงถูกทำเครื่องหมายเพื่อลบ:
ทุกอย่างเป็นไปด้วยดี. ฐานข้อมูล 1C 8.3 ของเราอยู่ในลำดับ!
ระวัง! จำเป็นต้องทำ จองvnuyu ถึงฉันกำลังดื่มก่อนที่จะลบรายการที่ซ้ำกัน เนื่องจากขั้นตอนนี้ไม่สามารถย้อนกลับได้! เมื่อคุณลบองค์ประกอบที่ซ้ำกันเสร็จแล้ว ให้ทำการทดสอบและแก้ไขฐานข้อมูล ตรวจสอบรายงานหลัก ฯลฯ
วิธีรวมข้อมูลที่ซ้ำกันในโปรแกรม 1C ZUP 8.3 บุคคลด้วยความช่วยเหลือจากผู้ช่วยพิเศษ ดูวิดีโอของเรา