การค้นหา 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 ค้นหาองค์ประกอบที่ซ้ำกัน

เรียกแบบฟอร์มการประมวลผล ค้นหาและลบรายการที่ซ้ำกัน. ลำดับของการกระทำจะแสดงด้วยตัวเลขในวงกลม:

เรากำหนดเงื่อนไขในการเลือกองค์ประกอบการค้นหา:

  1. การเลือกเอกสารหรือไดเร็กทอรีที่การประมวลผลจะค้นหารายการที่ซ้ำกัน
  2. การกำหนดเงื่อนไขการเลือกสำหรับการเลือกองค์ประกอบ ตัวอย่างเช่น หากต้องการลบรายละเอียด TIN ที่กรอกไว้และไม่ได้ทำเครื่องหมาย:

  1. ตามกฎแล้วใน 1C 8.3 ชื่อเริ่มต้นจะถูกตั้งค่าให้ตรงกัน แต่สามารถตั้งค่าอื่นได้ ตัวอย่างเช่นหาก TIN ตรงกับ 1C 8.3 จะมีคำเตือนเกี่ยวกับการมี TIN ที่มีอยู่ในฐานข้อมูล ความบังเอิญของรหัสเนื่องจากเอกลักษณ์ของตัวเลขใน 1C แทบจะเป็นไปไม่ได้เลย ดังนั้นตัวเลือกเริ่มต้นจึงเป็นที่นิยมมากที่สุด:

โดยการกดปุ่ม ค้นหารายการที่ซ้ำกันข้อมูลจะถูกเลือกและเปรียบเทียบตามเงื่อนไขที่กำหนด หากไม่พบองค์ประกอบที่ซ้ำกัน ข้อความจะปรากฏขึ้น:

เมื่อตรวจพบรายการซ้ำ รายการรายการที่ซ้ำกันจะปรากฏขึ้น รายการประกอบด้วย:

  • ด้านซ้ายเป็นองค์ประกอบที่พบ
  • ทางด้านขวาคือข้อมูลเกี่ยวกับองค์ประกอบ: จำนวนรายการซ้ำที่พบและรายการเอกสารที่ใช้

ขั้นตอนที่ 4: เลือกต้นฉบับ

องค์ประกอบทางด้านซ้ายจะถูกตั้งค่าเป็นองค์ประกอบดั้งเดิมโดยอัตโนมัติ ในกรณีนี้ คุณสามารถระบุองค์ประกอบอื่นได้โดยการเลือกองค์ประกอบนั้นแล้วคลิก ทำเครื่องหมายว่าเป็นต้นฉบับ. ในรายการ รายการซ้ำจะถูกทำเครื่องหมายด้วยธง

ขั้นตอนที่ 5 การลบรายการที่ซ้ำกันใน 1C 8.3

ผลิตตามหนังสือ. ลบรายการที่ซ้ำกัน. รายการซ้ำจะถูกทำเครื่องหมายเพื่อลบ และสิ่งที่แนบมาทั้งหมดในเอกสารจะถูกแทนที่ด้วยต้นฉบับที่เลือก องค์ประกอบที่ซ้ำกันสามารถลบออกได้อย่างสมบูรณ์โดยการประมวลผล การลบวัตถุที่ทำเครื่องหมายไว้. การบริหารส่วน – การสนับสนุนและการบำรุงรักษา

เมื่อได้รับข้อมูลทั้งหมดเกี่ยวกับการประมวลผลแล้ว เรามาฝึกซ้อมกันต่อ

ขั้นตอนที่ 6 ตัวอย่างการลบรายการที่ซ้ำกันในไดเรกทอรีบัญชีธนาคาร

มาสร้างแบบฟอร์มค้นหาและลบรายการที่ซ้ำกัน:

  1. ไดเรกทอรีของบัญชีธนาคาร
  2. ไม่ได้ถูกทำเครื่องหมายเพื่อลบ
  3. เปรียบเทียบตามชื่อ

ตัวอย่างเช่น ฐานข้อมูล 1C 8.3 มีบัญชีธนาคารซ้ำกัน มาดูกันว่าการประมวลผลจะลบลิงก์ที่ซ้ำกันอย่างไร:

คลิก ค้นหารายการที่ซ้ำกัน. เป็นผลให้ 1C 8.3 ระบุองค์ประกอบที่ซ้ำกันทั้งสามรายการและทำให้สามารถออกจากวัตถุพร้อมกับลิงก์เพิ่มเติมได้ สิ่งนี้สมเหตุสมผล ดังนั้นเราจึงทำสิ่งนี้:

กดปุ่ม ลบรายการที่ซ้ำกัน. หลังจากทำทั้งหมดเสร็จแล้ว การดำเนินการที่จำเป็นใน 1C 8.3 ข้อความที่เกี่ยวข้องจะปรากฏขึ้น:

ลองตรวจสอบไดเรกทอรีบัญชีธนาคาร ด้วยเหตุนี้ บัญชีสองบัญชีจึงถูกทำเครื่องหมายเพื่อลบ:

ทุกอย่างเป็นไปด้วยดี. ฐานข้อมูล 1C 8.3 ของเราอยู่ในลำดับ!

ระวัง! จำเป็นต้องทำ จองvnuyu ถึงฉันกำลังดื่มก่อนที่จะลบรายการที่ซ้ำกัน เนื่องจากขั้นตอนนี้ไม่สามารถย้อนกลับได้! เมื่อคุณลบองค์ประกอบที่ซ้ำกันเสร็จแล้ว ให้ทำการทดสอบและแก้ไขฐานข้อมูล ตรวจสอบรายงานหลัก ฯลฯ

วิธีรวมข้อมูลที่ซ้ำกันในโปรแกรม 1C ZUP 8.3 บุคคลด้วยความช่วยเหลือจากผู้ช่วยพิเศษ ดูวิดีโอของเรา