ใน 1 วินาที ค่าของฟิลด์โค้ดจะไม่ซ้ำกัน ค่าของฟิลด์ "รหัส" ("ตัวเลข") ไม่ซ้ำกัน

ฉันควรทำอย่างไรหากเมื่อสร้างออบเจ็กต์ฐานข้อมูล ฉันพบข้อผิดพลาด “ค่าของฟิลด์ “รหัส” ไม่ซ้ำกัน” (สำหรับเอกสาร – ค่าของฟิลด์ “ตัวเลข”)



ซึ่งมักเกิดจากการที่รหัสของไดเร็กทอรีที่แก้ไข (หมายเลขเอกสาร) ได้รับการแก้ไขด้วยตนเองอย่างไม่ถูกต้อง

ลองดูตัวอย่างเพื่อความชัดเจน สำหรับไดเร็กทอรีบางไดเร็กทอรี ความยาวโค้ดที่อนุญาตคือ 9 อักขระ ในไดเร็กทอรี องค์ประกอบ "000000001", "000000002", ..., "000000086" ถูกสร้างขึ้นและกำหนดหมายเลขด้วยวิธีมาตรฐาน ตัวอย่างเช่น หากคุณระบุหมายเลข "90" ในองค์ประกอบถัดไป ประการแรกโปรแกรมจะเสริมหมายเลขที่ระบุทางด้านขวาโดยอัตโนมัติด้วยช่องว่างสูงสุด 9 ตัวอักษร (คุณจะได้รับ "90_______" - 7 ช่องว่างทางด้านขวา ) และประการที่สอง มันจะ "เข้าใจ" วิธีการกำหนดหมายเลขใหม่และจะกำหนดรหัส "91_______", "92_______" ฯลฯ ให้กับองค์ประกอบต่อไปนี้ (ช่องขวาเหมือนกัน 7 ช่อง) หลังจากบันทึกองค์ประกอบด้วยรหัส "99________" แล้ว การกำหนดหมายเลขอัตโนมัติในภายหลังจะไม่สามารถทำได้ เนื่องจากหมายเลขถัดไปที่สร้างขึ้นตามกฎนี้ ("100_______") จะไม่พอดีกับอักขระ 9 ตัวที่อนุญาต

เพื่อกำจัดข้อผิดพลาดคุณต้องใช้การประมวลผล "การรวบรวมสากลและการประมวลผลออบเจ็กต์" (สามารถพบได้บนดิสก์ ITS)


ในช่อง "ค้นหาวัตถุ" คุณต้องระบุวัตถุที่ต้องการ (ไดเร็กทอรี/เอกสาร) บนแท็บ "การเลือกตามค่ารายละเอียด" คุณสามารถเลือกได้ (ในกรณีของเรา เราจะตั้งค่าการเลือกตามรหัส):


เมื่อคุณคลิกปุ่ม "ค้นหาวัตถุ" แท็บ "วัตถุที่พบ" จะเต็มไปด้วยวัตถุที่ตรงตามเงื่อนไขการเลือก:


บนแท็บ "การประมวลผล" คุณต้องเลือกการประมวลผล "การกำหนดหมายเลขใหม่ของวัตถุ" ส่วนหัวของการประมวลผลระบุชื่อของการตั้งค่าและหมายเลขเริ่มต้นที่จะใช้ในการกำหนดหมายเลข การประมวลผลเริ่มต้นโดยคลิกปุ่ม "เรียกใช้"


หลังจากการประมวลผลเสร็จสิ้น คุณสามารถตรวจสอบรหัสที่เปลี่ยนแปลงได้ในไดเร็กทอรี "ผู้อยู่อาศัย" รวมถึงเพิ่มรายการใหม่สำหรับการตรวจสอบ

บ่อยครั้งที่ข้อผิดพลาดนี้เกิดขึ้นเมื่อทำงานโดยตรงกับไดเร็กทอรีของสัญญาคู่สัญญารายการ ฯลฯ ผู้ใช้เพิ่มรายการใหม่ให้กับไดเร็กทอรีใด ๆ และระบบจะกำหนดรหัสให้โดยอัตโนมัติ แต่เมื่อบันทึกรายการจะให้ ข้อผิดพลาด “รหัสไม่ซ้ำกัน!” ดังนั้นจึงไม่สามารถบันทึกออบเจ็กต์ได้

สาเหตุของข้อผิดพลาดนี้คืออะไร?

และสาเหตุอาจเป็นเพราะการกำหนดหมายเลขวัตถุไดเรกทอรีไม่ถูกต้อง สิ่งนี้เกิดขึ้นได้อย่างไร? โดยปกติเมื่อสร้างรายการใหม่ในไดเรกทอรีใดไดเรกทอรีหนึ่ง โปรแกรมจะสร้างรหัสรายการขึ้นมาเอง หากในบันทึกก่อนหน้านี้ผู้ใช้แก้ไขโค้ดด้วยตนเอง มีความเป็นไปได้ที่เมื่อสร้างบันทึกต่อมา ความกว้างของโค้ดจะเพิ่มขึ้นหนึ่งอักขระและจะไม่พอดีกับฟิลด์อีกต่อไป ซึ่งหมายความว่าการสร้างโค้ดจะเริ่มต้นใหม่ทั้งหมดอีกครั้ง แต่เป็นไปไม่ได้ที่จะจัดเก็บวัตถุด้วยรหัสเดียวกันในไดเรกทอรี 1C ซึ่งหมายความว่าผู้ใช้ในสถานการณ์เช่นนี้จะได้รับข้อความแสดงข้อผิดพลาดบนหน้าจอ

วิธีแก้ไขข้อผิดพลาด “รหัสไม่ซ้ำกัน”

แน่นอนว่านักพัฒนา 1C เป็นผู้ให้วิธีแก้ปัญหานี้ ประกอบด้วยการกำหนดหมายเลขใหม่ขององค์ประกอบไดเร็กทอรี เพื่อจุดประสงค์นี้ มีการประมวลผลพิเศษบนดิสก์สนับสนุนเทคโนโลยีสารสนเทศ 1C () ที่เรียกว่า "การเลือกสากลและการประมวลผลของ Objects.epf" ตั้งอยู่ในไดเร็กทอรี \1CITS\EXE\ExtReps\UNIREPS81\UniversalSelection

สิ่งที่ผู้ใช้ต้องทำคือไปที่ไดเร็กทอรีด้านบน เริ่มการประมวลผล และรอจนกว่ากระบวนการกำหนดหมายเลขออบเจ็กต์ใหม่ของไดเร็กทอรีที่เลือกจะเสร็จสมบูรณ์

จะป้องกันไม่ให้เกิดข้อผิดพลาด “รหัสไม่ซ้ำกัน” ได้อย่างไร

เพื่อป้องกันไม่ให้ข้อผิดพลาดนี้เกิดขึ้นเมื่อทำงานกับไดเร็กทอรี 1C ประการแรกไม่แนะนำให้แก้ไขรหัสบันทึกด้วยตนเอง เป็นการรบกวนการกำหนดหมายเลขโปรแกรมซึ่งส่วนใหญ่มักนำไปสู่การเกิดขึ้น หากคุณไม่สามารถทำได้โดยไม่แก้ไขโค้ด ให้คิดทบทวนสถานการณ์ล่วงหน้า

ฉันควรทำอย่างไรหากเมื่อสร้างออบเจ็กต์ฐานข้อมูล ฉันพบข้อผิดพลาด “ค่าของฟิลด์ “รหัส” ไม่ซ้ำกัน” (สำหรับเอกสาร – ค่าของฟิลด์ “ตัวเลข”)



ซึ่งมักเกิดจากการที่รหัสของไดเร็กทอรีที่แก้ไข (หมายเลขเอกสาร) ได้รับการแก้ไขด้วยตนเองอย่างไม่ถูกต้อง

ลองดูตัวอย่างเพื่อความชัดเจน สำหรับไดเร็กทอรีบางไดเร็กทอรี ความยาวโค้ดที่อนุญาตคือ 9 อักขระ ในไดเร็กทอรี องค์ประกอบ "000000001", "000000002", ..., "000000086" ถูกสร้างขึ้นและกำหนดหมายเลขด้วยวิธีมาตรฐาน ตัวอย่างเช่น หากคุณระบุหมายเลข "90" ในองค์ประกอบถัดไป ประการแรกโปรแกรมจะเสริมหมายเลขที่ระบุทางด้านขวาโดยอัตโนมัติด้วยช่องว่างสูงสุด 9 ตัวอักษร (คุณจะได้รับ "90_______" - 7 ช่องว่างทางด้านขวา ) และประการที่สอง มันจะ "เข้าใจ" วิธีการกำหนดหมายเลขใหม่และจะกำหนดรหัส "91_______", "92_______" ฯลฯ ให้กับองค์ประกอบต่อไปนี้ (ช่องขวาเหมือนกัน 7 ช่อง) หลังจากบันทึกองค์ประกอบด้วยรหัส "99________" แล้ว การกำหนดหมายเลขอัตโนมัติในภายหลังจะไม่สามารถทำได้ เนื่องจากหมายเลขถัดไปที่สร้างขึ้นตามกฎนี้ ("100_______") จะไม่พอดีกับอักขระ 9 ตัวที่อนุญาต

เพื่อกำจัดข้อผิดพลาดคุณต้องใช้การประมวลผล "การรวบรวมสากลและการประมวลผลออบเจ็กต์" (สามารถพบได้บนดิสก์ ITS)


ในช่อง "ค้นหาวัตถุ" คุณต้องระบุวัตถุที่ต้องการ (ไดเร็กทอรี/เอกสาร) บนแท็บ "การเลือกตามค่ารายละเอียด" คุณสามารถเลือกได้ (ในกรณีของเรา เราจะตั้งค่าการเลือกตามรหัส):


เมื่อคุณคลิกปุ่ม "ค้นหาวัตถุ" แท็บ "วัตถุที่พบ" จะเต็มไปด้วยวัตถุที่ตรงตามเงื่อนไขการเลือก:


บนแท็บ "การประมวลผล" คุณต้องเลือกการประมวลผล "การกำหนดหมายเลขใหม่ของวัตถุ" ส่วนหัวของการประมวลผลระบุชื่อของการตั้งค่าและหมายเลขเริ่มต้นที่จะใช้ในการกำหนดหมายเลข การประมวลผลเริ่มต้นโดยคลิกปุ่ม "เรียกใช้"


หลังจากการประมวลผลเสร็จสิ้น คุณสามารถตรวจสอบรหัสที่เปลี่ยนแปลงได้ในไดเร็กทอรี "ผู้อยู่อาศัย" รวมถึงเพิ่มรายการใหม่สำหรับการตรวจสอบ