เปลี่ยนหรือปิดใช้งานโหมดความเข้ากันได้ ส่วนขยายการกำหนดค่า - วิธีเพิ่มฟังก์ชันการทำงานให้กับการกำหนดค่ามาตรฐานโดยไม่ต้องถอดการสนับสนุนออก (วิดีโอความยาว 20 นาที) ส่วนขยายใดบ้างที่จำเป็นสำหรับ
ในบทความนี้ ฉันเสนอให้พิจารณาว่า "ส่วนขยายการกำหนดค่า" คืออะไร จะเพิ่มหรือปิดใช้งานส่วนขยายได้อย่างไร เริ่มต้นจากเวอร์ชัน 1C 8.3.6.1977 มีการนำกลไกใหม่เข้าสู่แพลตฟอร์ม - ส่วนขยายการกำหนดค่า ก่อนอื่นมีทฤษฎีเล็กน้อย
ใน 1C ส่วนขยายเป็นสิ่งที่เหมือนกับการกำหนดค่าแบบขนานที่รวมเข้ากับการกำหนดค่าของผู้จำหน่ายหลักโดยอัตโนมัติ ยิ่งไปกว่านั้น ในส่วนขยาย คุณสามารถเพิ่มทั้งอ็อบเจ็กต์ของคุณเองและยืมอ็อบเจ็กต์ของการกำหนดค่าหลักได้
ส่วนขยายมีไว้เพื่ออะไร?
ก่อนอื่น ส่วนขยายจะถูกสร้างขึ้นเพื่อให้ทำการเปลี่ยนแปลงโปรแกรมได้ง่ายขึ้น นั่นคือหากผู้ใช้ขอให้เพิ่มฟังก์ชันการทำงานใด ๆ โปรแกรมเมอร์จะต้องลบการกำหนดค่าออกจากการสนับสนุนเต็มรูปแบบก่อนที่จะปรากฏส่วนขยายและเปลี่ยนแปลง การกำหนดค่าทั่วไป.
การถอดออกจากการสนับสนุนเต็มรูปแบบทำให้เกิดความไม่สะดวกหลายประการ:
- โอกาสจะหายไป อัปเดตอัตโนมัติซึ่งอย่างน้อยก็นำไปสู่การเพิ่มเวลาสำหรับ;
- จำเป็นต้องมีผู้เชี่ยวชาญที่มีคุณสมบัติสูงคอยให้บริการโปรแกรม
- หากมีการเปลี่ยนแปลงกับวัตถุมาตรฐานของการกำหนดค่ามาตรฐาน ในระหว่างการอัพเดตอาจหายไปนั่นคืออาจถูกแทนที่ด้วยวัตถุมาตรฐานจากซัพพลายเออร์อีกครั้ง
เมื่อใช้ส่วนขยายเมื่อทำการเปลี่ยนแปลงโปรแกรมเมอร์จะไม่แตะการกำหนดค่ามาตรฐาน การเปลี่ยนแปลงทั้งหมดจะทำโดยใช้ส่วนขยายซึ่ง (ดังที่ฉันเขียนไว้ด้านบน) ก็เป็นการกำหนดค่าเช่นกัน วิธีนี้จะทำให้การกำหนดค่าหลักยังคงได้รับการสนับสนุนอย่างเต็มที่
หลังจากอัปเดตการกำหนดค่าหลักแล้ว หากในเวอร์ชันใหม่มีการเปลี่ยนแปลงใดๆ กับออบเจ็กต์ที่ส่วนขยายเปลี่ยนแปลงไปก่อนหน้านี้ การเปลี่ยนแปลงดังกล่าวจะยังคงถูกนำออกจากส่วนขยาย นั่นคือส่วนขยายจะมีลำดับความสำคัญสูงกว่าการกำหนดค่าหลัก
วิดีโอ - ส่วนขยายใน 1C ใน 45 นาที
รับบทเรียนวิดีโอ 267 บทเรียนบน 1C ฟรี:
ตัวอย่างการเพิ่มส่วนขยายให้กับ 1C
เพื่อแสดงให้เห็นว่าส่วนขยายคืออะไร เป็นการดีกว่าถ้ายกตัวอย่างการสร้างส่วนขยายในตัวกำหนดค่า 1C
ในตัวกำหนดค่า ไปที่เมนู "การกำหนดค่า" และเลือก "ส่วนขยายการกำหนดค่า" หน้าต่างจะเปิดขึ้นพร้อมรายการส่วนขยาย (ถ้ามี) คลิกปุ่ม "เพิ่ม" และเพิ่มส่วนขยายใหม่ ตอนนี้คุณสามารถเปิดการกำหนดค่าส่วนขยายได้:
อย่างที่คุณเห็นการกำหนดค่าส่วนขยายมีโครงสร้างเดียวกันกับโครงสร้างหลักทุกประการ ในตอนแรกเท่านั้นที่จะสะอาดหมดจดโดยไม่มีวัตถุใดๆ
ฉันเพิ่งเขียนบทความเกี่ยวกับวิธีการทำด้วยตัวเอง จากตัวอย่างของเธอ ฉันต้องการสร้างมันในตัวโดยใช้ส่วนขยาย
ในการประมวลผล ฉันมีฟิลด์ที่มีลิงก์ไปยังไดเร็กทอรี "องค์กร" นั่นเป็นเหตุผลที่ฉันต้องการคำแนะนำนี้ แต่เราจะไม่สร้างไดเร็กทอรี "องค์กร" ใหม่ โดยเฉพาะอย่างยิ่งเมื่อแพลตฟอร์มไม่อนุญาตสิ่งนี้ เป็นไปไม่ได้ที่การกำหนดค่าส่วนขยายจะมีวัตถุที่มีชื่อเดียวกันกับวัตถุในการกำหนดค่าหลัก
ดังนั้นเราจะยืมหนังสืออ้างอิงจากการกำหนดค่าหลัก:
ตอนนี้คลิกขวาที่ "กำลังประมวลผล" และเลือก "แทรก การประมวลผลภายนอกรายงาน..." ดังนั้น เรามาเพิ่มการประมวลผลใหม่ให้กับการกำหนดค่าส่วนขยาย หากคุณใช้การประมวลผลของฉัน ให้เปลี่ยนชื่อทันที เนื่องจากการกำหนดค่าหลักมีการประมวลผลที่มีชื่อเดียวกันอยู่แล้ว
สัมผัสสุดท้ายแล้ว ฉันต้องการให้การประมวลผลของฉันปรากฏในเมนูการดูแลระบบ ในการดำเนินการนี้ เราจะยืมระบบย่อยที่มีชื่อเดียวกันจากการกำหนดค่าหลัก อย่าลืมระบุในการประมวลผลว่าเป็นของระบบย่อยนี้
นี่คือโครงสร้างที่ฉันคิดขึ้นมา:
มาดูกันว่าเราได้อะไรบ้าง เราอัปเดตการกำหนดค่าฐานข้อมูลและเปิดโปรแกรมใน 1C: โหมดองค์กรและไปที่เมนู "การดูแลระบบ" ใช่ ฉันเกือบลืมไปว่าต้องปิดการกำหนดค่าส่วนขยาย ไม่เช่นนั้นโปรแกรมจะไม่เริ่มทำงาน:
แพลตฟอร์ม 8.3.11 รุ่นใหม่เปิดตัวแล้ว ซึ่งช่วยให้คุณสามารถเพิ่มและเปลี่ยนแปลงออบเจ็กต์ข้อมูลเมตาผ่านส่วนขยายได้ ตอนนี้เราสามารถใช้การปรับปรุงใดๆ ได้โดยไม่ต้องลบการกำหนดค่าออกจากฝ่ายสนับสนุนหรือไม่ มันคุ้มไหมที่จะให้คำมั่นสัญญากับลูกค้าจำนวนมหาศาลโดยไม่มีผลกระทบใดๆ?
ก่อนอื่น คุณต้องทราบถึงข้อจำกัดของส่วนขยายด้วย
ข้อจำกัดเกี่ยวกับวัตถุที่สร้างขึ้น
บน ช่วงเวลานี้คุณสามารถสร้าง:
- ไดเรกทอรี
- เอกสารประกอบ
- การลงทะเบียนข้อมูล
- แผนการแลกเปลี่ยน
คุณสามารถเพิ่มรายละเอียดไปที่:
- ไดเรกทอรี
- เอกสารประกอบ
เราจะจบลงด้วยอะไร? ไม่สามารถเพิ่มออบเจ็กต์ข้อมูลเมตาได้ทุกประเภท ที่พบมากที่สุดและได้รับความนิยม แต่ก็ยังไม่ทั้งหมด นอกจากนี้ ไม่สามารถเพิ่มมิติและทรัพยากรใหม่ลงในการลงทะเบียนข้อมูลได้ คุณสามารถสร้างการลงทะเบียนใหม่ทั้งหมดเท่านั้น
ฟังก์ชันการทำงานของส่วนขยายขึ้นอยู่กับโหมดความเข้ากันได้ของการกำหนดค่าที่ใช้ส่วนขยาย
โหมดความเข้ากันได้ 8.3.8- คุณสามารถเปลี่ยนรูปแบบของออบเจ็กต์และโมดูล เพิ่มรายงานและการประมวลผลของคุณเองเท่านั้น
โหมดความเข้ากันได้ 8.3.10- คุณสามารถเปลี่ยนโมดูลทั่วไป วัตถุและโมดูลผู้จัดการ บทบาท ใช้คำสั่ง "Before", "After", "Instead" สำหรับโมดูลใดก็ได้
โหมดความเข้ากันได้ "อย่าใช้"- คุณสามารถใช้ฟังก์ชันทั้งหมดของส่วนขยายได้ รวมถึงการเพิ่มออบเจ็กต์ใหม่
ในขณะนี้ UT 11.3 มาตรฐานมีโหมดความเข้ากันได้ 8.3.8 ใน UT 11.4 โหมดความเข้ากันได้คือ 8.3.10 ตัวอย่างเช่น สำหรับ UT ฟังก์ชันส่วนขยายส่วนใหญ่จะไม่พร้อมใช้งาน รวมถึงการสร้างออบเจ็กต์ข้อมูลเมตาด้วย
สิ่งนี้ดูเหมือนจะทำให้เกิดคำถาม: ทำไมไม่เพียงแค่ไม่รองรับรูทตั้งค่าโหมดความเข้ากันได้เป็น "อย่าใช้" และใช้ส่วนขยายอย่างเงียบ ๆ ? เมื่อเปลี่ยนโหมดความเข้ากันได้ พฤติกรรมของแบบฟอร์มและผลลัพธ์แบบสอบถามอาจเปลี่ยนแปลงได้ เช่น พฤติกรรมของระบบโดยรวม ขอแนะนำอย่างยิ่งว่าอย่าเปลี่ยนโหมดความเข้ากันได้โดยไม่ทำการทดสอบครั้งแรก แต่เห็นได้ชัดว่าดูเหมือนว่าจะเป็นไปได้ที่จะทดสอบโซลูชันแอปพลิเคชันทั้งหมดอย่างสมบูรณ์ (หรืออย่างน้อยก็ทดสอบบางส่วนในเอกสารที่ใช้) ดังนั้นคุณไม่ควรใช้ตัวเลือกนี้
เมื่อเชื่อมต่อส่วนขยายกับการกำหนดค่ามาตรฐานและยืมออบเจ็กต์มาตรฐาน ส่วนขยายจะควบคุมโหมดความเข้ากันได้ของการกำหนดค่าหลักและประเภทของออบเจ็กต์ที่ยืมและรายละเอียด หากคุณสมบัติที่ได้รับการตรวจสอบไม่ตรงกัน ส่วนขยายจะถูกปิดใช้งานและจะไม่ทำงานจนกว่าสาเหตุจะถูกกำจัด นั่นคือ ด้วยการอัปเดตครั้งใหญ่ มีความเป็นไปได้สูงที่จะเปลี่ยนแปลงคุณสมบัติที่ควบคุมอย่างน้อยหนึ่งรายการ และทำให้ส่วนขยายสูญเสียฟังก์ชันการทำงาน
นอกจากนี้ หากการปรับเปลี่ยนมีความสำคัญ ขั้นตอนและฟังก์ชันต่างๆ ของการกำหนดค่ามาตรฐานจะถูกแทนที่ จำเป็นต้องตรวจสอบอย่างรอบคอบ และหากจำเป็น ให้ปรับให้สอดคล้องกับการกำหนดค่ามาตรฐาน โดยคงการเปลี่ยนแปลงที่ทำไว้ก่อนหน้านี้
ในกรณีข้างต้น คุณยังคงต้องการความช่วยเหลือจากโปรแกรมเมอร์และอาจต้องใช้เวลาในการแก้ไขอย่างมาก (แต่ยังน้อยกว่าเมื่ออัปเดตการกำหนดค่าที่ถูกลบออกจากการสนับสนุน)
ข้อสรุป
- แพลตฟอร์มรุ่นใหม่ให้โอกาสใหม่ในการใช้ส่วนขยาย มันเป็นไปได้ที่จะเพิ่มออบเจ็กต์ข้อมูลเมตา แต่ถึงกระนั้นฟังก์ชันการทำงานก็มีข้อจำกัดบางประการ
- โหมดความเข้ากันได้ของการกำหนดค่าที่ใช้ส่วนขยายจะจำกัดความสามารถของส่วนขยายอย่างมาก ไม่แนะนำให้เปลี่ยนโหมดความเข้ากันได้
- การอัปเดตขนาดใหญ่ยังคงต้องได้รับการดูแลจากนักพัฒนา เนื่องจากมีความเป็นไปได้สูงที่จะเปลี่ยนแปลงคุณสมบัติควบคุม
ธีม "เรียบร้อย" การปรับเปลี่ยนให้เป็นมาตรฐานการกำหนดค่าเป็นข้อมูลล่าสุดอยู่เสมอ
ด้วยความช่วยเหลือของส่วนขยายทำให้สามารถแก้ไขได้โดยไม่ต้องออกจากการกำหนดค่า โดยไม่มีการเปลี่ยนแปลง(นั่นคือ โดยไม่ต้องถอดล็อคออก).
เป็นตัวอย่างเรา มาขยายฟังก์ชันมาตรฐานกันดีกว่า“1C: การบัญชี 8” – เราจะเพิ่มการตรวจสอบความสมบูรณ์ของรายละเอียดเอกสาร เป็นผลให้ระบบจะออกการวินิจฉัยหากกรอกรายละเอียดด้วยค่า "ไม่ถูกต้อง"
อย่างแท้จริง ภายใน 15 นาทีคุณจะได้เรียนรู้เทคนิคที่คุณสามารถใช้เพื่อแก้ปัญหาต่างๆ
นอกจากนี้ เราจะแสดงในวิดีโอที่สอง กลไกสากลขึ้นอยู่กับส่วนขยาย และได้มีการพัฒนากลไกดังกล่าวขึ้นมา ครั้งหนึ่งก็สามารถเชื่อมต่อกับ การกำหนดค่ามาตรฐานใดๆ.
ความฝันเกี่ยวกับ ของตัวเองที่ไม่เน่าเปื่อยสามารถกลายเป็นความจริงได้ :)
มาเริ่มกันเลย:
วิดีโอ 1. เทคนิคการทำงานกับส่วนขยาย - โดยใช้ตัวอย่าง "1C: การบัญชี 8"
หลังจากศึกษาวิดีโอแล้ว คุณจะได้เรียนรู้:
- สร้างและเชื่อมต่อส่วนขยายเพื่อการกำหนดค่า
- เติมเต็ม การดีบักส่วนขยาย
- ปรับปรุงรูปแบบมาตรฐานการประมวลผล/เอกสารโดยใช้ส่วนขยาย
- สกัดกั้นเหตุการณ์แบบฟอร์มการกำหนดค่ามาตรฐาน
- จัดเก็บข้อมูลไม่อยู่ในตารางความปลอดภัยของข้อมูล (ที่เก็บข้อมูลการตั้งค่า)
- ใช้วิธีรักษาเป็น พื้นที่เก็บข้อมูลอัลกอริทึม
เราก็จะดูเช่นกัน การเพิ่มประสิทธิภาพองค์ประกอบของวัตถุส่วนขยายและ ข้อ จำกัด การขยายในการเปิดตัวแพลตฟอร์มปัจจุบัน
วิดีโอ 2. การสร้างกลไกสากลโดยใช้ส่วนขยาย
ในวิดีโอนี้เราจะแสดง:
- การเชื่อมต่อส่วนขยายในโหมดผู้ใช้ ( โดยไม่ต้องกำหนดค่า)
- ตัวอย่าง การตรวจสอบสากล การกรอก
- คุณสมบัติของการใช้งานส่วนขยาย - การสร้างแบบฟอร์มพร้อมการเลือกโดยพลการและ จัดเก็บข้อมูลในส่วนขยาย
เพื่อนร่วมงานสวัสดีทุกคน
วันก่อนมีการเปิดตัวการทดสอบ Enterprise Accounting โดยปิดใช้งานโหมดความเข้ากันได้สำหรับแพลตฟอร์ม 8.3.6
ซึ่งหมายความว่าเวอร์ชันนี้ใช้เครื่องมือใหม่ที่เรนเดอร์แบบฟอร์มในรูปแบบใหม่
คุณสามารถอ่านเกี่ยวกับเรื่องนี้ได้ใน Through the Looking Glass
นอกจากส่วนขยายมาตรฐานแล้ว คุณควรแปลงส่วนขยายของคุณเองเป็นแพลตฟอร์มใหม่ด้วย
ในระหว่างกระบวนการแปล ฉันได้สร้างรายการตรวจสอบเล็กๆ น้อยๆ หรือเตือนตัวเองเกี่ยวกับสิ่งที่ต้องทำ
บันทึก:
1. โอนส่วนขยายไปยังแพลตฟอร์มใหม่
เมื่อต้องการทำเช่นนี้ เปลี่ยนโหมดความเข้ากันได้ของส่วนขยายเป็นโหมดความเข้ากันได้ของการกำหนดค่า
เวอร์ชันการบัญชีองค์กรมีคุณสมบัติดังต่อไปนี้:
ในส่วนขยาย คุณสามารถตั้งค่าคุณสมบัติเดียวกันทุกประการหรือล้างช่องทำเครื่องหมายทั้งหมดได้
ไม่มีช่องทำเครื่องหมายหมายความว่าส่วนขยายจะไม่ตรวจสอบคุณสมบัติเหล่านี้เมื่อเชื่อมต่อ
จากนั้นหากคุณสมบัติเหล่านี้เปลี่ยนแปลงในการกำหนดค่าหลัก ส่วนขยายจะยังคงทำงาน:
2. แก้ไขปัญหาการเชื่อมต่อ
ในการดำเนินการนี้ เราจะเปิดใช้การกำหนดค่าในโหมดองค์กรและดูว่าจะมีการดำเนินการหรือไม่
ข้อผิดพลาดเนื่องจากไม่สามารถเชื่อมต่อส่วนขยายได้สามารถดูได้ในบันทึก
(การบริหาร - การสนับสนุนและการบำรุงรักษา - สมุดจดรายการต่าง)
เราสนใจกิจกรรม - “เซสชัน. เกิดข้อผิดพลาดในการใช้ส่วนขยายการกำหนดค่า":
บ่อยครั้งที่ปัญหาการเชื่อมต่อได้รับการแก้ไขโดยการลบรายละเอียดหรือวัตถุที่ไม่จำเป็นออก
ปัญหาหลักคือส่วนขยายไม่แสดงข้อผิดพลาดทั้งหมดในคราวเดียว (โดยวิธีนี้ ปัญหานี้ได้รับการแก้ไขแล้วใน 8.3.9)
ดังนั้นจึงจำเป็นต้องรันการกำหนดค่าตามลำดับหลังจากแก้ไขข้อผิดพลาดแต่ละข้อแล้ว
เพื่อให้สะดวกในการเปิดสมุดบันทึก ให้เพิ่มลงในรายการโปรดของคุณ:
3. อัพเดตแบบฟอร์มในส่วนขยาย
โดยคลิกที่ "อัปเดตส่วนขยายแบบฟอร์ม" ในแต่ละแบบฟอร์มที่เปลี่ยนแปลง
เมื่อใช้คำสั่งนี้ เราจะโหลดแบบฟอร์มการกำหนดค่าหลักลงในส่วนขยายอีกครั้ง
โดยหลักการแล้ว มันจะทำงานได้หากไม่มีสิ่งนี้ แต่จำเป็นเพื่อให้แบบฟอร์มในส่วนขยายมีลักษณะเหมือนกับในการกำหนดค่าหลัก
ในเวอร์ชัน 3.0.44 แบบฟอร์มเกือบทั้งหมดมีการเปลี่ยนแปลง ดังนั้นจึงเป็นการดีที่จะรวมการเปลี่ยนแปลงเหล่านี้ไว้ในส่วนขยาย
4. เราปรับรูปแบบตามกฎของเครื่องยนต์ใหม่
ฉันขอแนะนำให้คุณอ่านบทความ - คำแนะนำสำหรับการปรับแบบฟอร์มเป็น 8.3.7
จะตรวจสอบคุณสมบัติของเครื่องยนต์ใหม่และให้คำแนะนำเฉพาะเกี่ยวกับวิธีการตรวจสอบให้แน่ใจว่าทุกอย่างเรียบร้อยดีในแพลตฟอร์มใหม่
ฉันคิดขั้นตอนต่อไปนี้:
- เราลบการตกแต่งทั้งหมดซึ่งใช้สำหรับการเยื้อง
ตอนนี้ใช้กลุ่มแทน - มาดูกันว่าทุกอย่างจะดูดี.
หากมีสิ่งผิดปกติเกิดขึ้นให้ดูที่บทความ
หากทุกอย่างดีเราก็เดินหน้าต่อไป - ตรวจสอบคุณสมบัติของแพลตฟอร์มใหม่“รวม”, “ความกว้างสูงสุดอัตโนมัติ” และ “ความสูงสูงสุดอัตโนมัติ”
เพียงดูว่าคุณสมบัติเหล่านี้ถูกตั้งค่าเป็นค่าเริ่มต้นของแพลตฟอร์ม และแบบฟอร์มไม่แยกออกจากกันด้วยเหตุนี้