เปลี่ยนหรือปิดใช้งานโหมดความเข้ากันได้ ส่วนขยายการกำหนดค่า - วิธีเพิ่มฟังก์ชันการทำงานให้กับการกำหนดค่ามาตรฐานโดยไม่ต้องถอดการสนับสนุนออก (วิดีโอความยาว 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
จะตรวจสอบคุณสมบัติของเครื่องยนต์ใหม่และให้คำแนะนำเฉพาะเกี่ยวกับวิธีการตรวจสอบให้แน่ใจว่าทุกอย่างเรียบร้อยดีในแพลตฟอร์มใหม่

ฉันคิดขั้นตอนต่อไปนี้:

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