1c เปิดแบบฟอร์มที่ได้รับการจัดการสำหรับการประมวลผลภายนอก
ลองพิจารณาในบทความนี้ คำแนะนำทีละขั้นตอนเพื่อสร้างการประมวลผลภายนอกใน 1C 8.3 ในโหมดแอปพลิเคชันที่ได้รับการจัดการ ดังนั้นเราจะใช้แบบฟอร์มที่ได้รับการจัดการ และที่สำคัญที่สุดเราจะได้เรียนรู้วิธีเชื่อมต่อกับกลไกของ "การประมวลผลภายนอก" ของการกำหนดค่า 1C ที่สร้างขึ้นบนไลบรารีของระบบย่อยมาตรฐานเวอร์ชัน 2.0 และใหม่กว่า
งานจะเป็นดังนี้: เพื่อสร้างการประมวลผลภายนอกที่ง่ายที่สุดที่จะดำเนินการกลุ่มในไดเรกทอรี "รายการ" กล่าวคือตั้งค่าเปอร์เซ็นต์อัตรา VAT ที่เลือกสำหรับกลุ่มของรายการที่ระบุ
ในการทำเช่นนี้เราจะทำการตั้งค่าที่จำเป็นในโปรแกรมทันที (เรากำลังพิจารณาการกำหนดค่า 1C 8.3: "การบัญชีองค์กร 3.0" ในแบบฟอร์มที่ได้รับการจัดการ)
การทำเครื่องหมายที่ช่องนี้ทำให้เรามีโอกาสที่จะใช้การประมวลผลภายนอก
การสร้างการประมวลผลภายนอกใหม่ใน 1C 8.3 โดยใช้ตัวอย่าง
ตอนนี้ไปที่ตัวกำหนดค่ากัน ในเมนู "ไฟล์" เลือก "ใหม่..." หน้าต่างสำหรับเลือกประเภทไฟล์ที่จะสร้างจะเปิดขึ้น เลือก “การประมวลผลภายนอก”:
หน้าต่างการประมวลผลภายนอกใหม่จะเปิดขึ้น ตั้งชื่อให้เธอทันที จะมีการเสนอเมื่อบันทึกการประมวลผลลงดิสก์:
มาเพิ่มแบบฟอร์มการประมวลผลแบบควบคุมใหม่กัน เราระบุว่านี่คือรูปแบบหนึ่งของการประมวลผลและเป็นการประมวลผลหลัก:
เราจะมีสองรายละเอียดในแบบฟอร์ม:
- กลุ่มระบบการตั้งชื่อ - ลิงก์ไปยังไดเร็กทอรี "ระบบการตั้งชื่อ"
- เลือกVATRAte – ลิงก์ไปยังการโอนอัตราภาษีมูลค่าเพิ่ม
เราสร้างรายละเอียดในคอลัมน์ "คุณสมบัติ" ในหน้าต่างด้านขวาบน ลากด้วยเมาส์ไปที่หน้าต่างด้านซ้ายบน รายละเอียดใหม่ควรปรากฏในแบบฟอร์มด้านล่างทันที
ลำดับรายละเอียดสามารถเปลี่ยนแปลงได้โดยใช้ลูกศร "ขึ้น" - "ลง":
รับบทเรียนวิดีโอ 267 บทเรียนบน 1C ฟรี:
สิ่งที่เหลืออยู่คือการเพิ่มปุ่ม "ติดตั้ง" ในแบบฟอร์มที่มีการจัดการ คุณไม่สามารถเพิ่มปุ่มลงในแบบฟอร์มได้ แม้ว่าคุณจะเพิ่มลงในโครงสร้างขององค์ประกอบของแบบฟอร์ม ก็จะไม่สามารถมองเห็นได้บนแบบฟอร์มนั้นเอง ปุ่มจะต้องเชื่อมโยงกับคำสั่งที่จะดำเนินการ ไปที่แท็บ "คำสั่ง" และเพิ่มคำสั่ง "กำหนดอัตราภาษีมูลค่าเพิ่ม" ในคุณสมบัติคำสั่ง ให้สร้างการดำเนินการ เลือกตัวจัดการคำสั่ง “บนไคลเอนต์” คุณสามารถเพิ่มคำสั่งลงในแบบฟอร์มได้ด้วยการลากคำสั่งไปยังส่วนที่มีองค์ประกอบของแบบฟอร์ม
ขั้นตอนที่มีชื่อเดียวกันจะถูกสร้างขึ้นในโมดูลแบบฟอร์ม ในนั้นเราจะเรียกขั้นตอนบนเซิร์ฟเวอร์:
&บนไคลเอนต์
ขั้นตอนการกำหนดอัตราภาษีมูลค่าเพิ่ม (คำสั่ง)
SetVATRAteOnServer();
สิ้นสุดขั้นตอน
ในขั้นตอนบนเซิร์ฟเวอร์ เราจะเขียนคำขอเล็กๆ น้อยๆ และการดำเนินการที่เกี่ยวข้องกับการกำหนดอัตรา VAT:
&บนเซิร์ฟเวอร์
ขั้นตอนการตั้งค่า VATRAteOnServer()
คำขอ = คำขอใหม่;
คำขอข้อความ =
"เลือก
- ศัพท์.ลิงค์
|จาก
- Directory.Nomenclature AS Nomenclature
|ที่ไหน
- ระบบการตั้งชื่อลิงก์ในลำดับชั้น (&กลุ่มระบบการตั้งชื่อ)
- และไม่ใช่ระบบการตั้งชื่อ MarkDeletion
- และไม่ใช่ระบบการตั้งชื่อ นี่คือกลุ่ม”;
Request.SetParameter("กลุ่มรายการ", กลุ่มรายการ);
ResRequest = คำขอดำเนินการ ();
SelectRecordDet = ResRequest.Select();
ในขณะที่ SelectRecordDet.Next() วนซ้ำ
พยายาม
SprNomObject.เขียน();
ข้อยกเว้น
รายงาน ("เกิดข้อผิดพลาดในการเขียนวัตถุ """ + SprNomObject + """!
- + คำอธิบายข้อผิดพลาด());
สิ้นสุดความพยายาม;
สิ้นสุดรอบ;
สิ้นสุดขั้นตอน
เรากลับไปที่แท็บ "แบบฟอร์ม" เพิ่มปุ่มลงในแบบฟอร์มและเชื่อมโยงกับคำสั่ง:
ด้วยเหตุนี้การประมวลผลของเราจึงพร้อมใช้งาน หากต้องการเรียกในโหมด "1C Enterprise" คุณต้องไปที่เมนู "ไฟล์" - "เปิด" และเลือกไฟล์ที่สร้างขึ้น
อย่างไรก็ตาม การทำงานในโหมดนี้สะดวกสำหรับการประมวลผลการแก้ไขจุดบกพร่อง แต่ไม่เหมาะกับผู้ใช้โดยสิ้นเชิง ผู้ใช้คุ้นเคยกับการมีทุกสิ่ง "อยู่แค่ปลายนิ้ว" นั่นคืออยู่ในฐานข้อมูลนั่นเอง
นี่คือความหมายของส่วน "รายงานและการประมวลผลเพิ่มเติม"
แต่เพื่อที่จะเพิ่มการประมวลผลของเรา เราต้องให้คำอธิบายและบอกคุณสมบัติของโปรแกรมก่อน
คำอธิบายของฟังก์ชั่น “ข้อมูลเกี่ยวกับการประมวลผลภายนอก”
ฉันจะยกตัวอย่างเนื้อหาของฟังก์ชันนี้ จะต้องสามารถส่งออกได้และอยู่ในโมดูลการประมวลผลตามลำดับ:
ฟังก์ชั่น InformationOnExternalProcessing() ส่งออก
DataForReg = โครงสร้างใหม่();
DataForReg.Insert("ชื่อ", "การตั้งค่าอัตราภาษีมูลค่าเพิ่ม");
DataForReg.Insert("SafeMode", จริง);
DataForReg.Insert("เวอร์ชัน", "ver.: 1.001");
DataForReg.Insert("ข้อมูล", "กำลังประมวลผลการตั้งค่าอัตราภาษีมูลค่าเพิ่มในไดเรกทอรีระบบการตั้งชื่อ");
DataForReg.Insert("ดู", "การประมวลผลเพิ่มเติม");
CommandTable = ตารางค่าใหม่;
TabZnCommands.Columns.Add("ตัวระบุ");
TabZnCommands.Columns.Add("การใช้งาน");
TabZnCommands.Columns.Add("ดู");
NewRow = TabZnCommands.Add();
NewString.Identifier = "OpenProcessing";
NewRow.Use = "OpenForm";
NewRow.View = "เปิดการประมวลผล";
DataForReg.Insert("คำสั่ง", TabZnCommands);
ส่งกลับ DataForReg;
EndFunction
เพื่อให้เข้าใจได้ดีขึ้นว่าฟิลด์ใดของโครงสร้างข้อมูลการลงทะเบียนที่จำเป็นต้องใช้ เรามาดูรายละเอียดของไดเร็กทอรี "รายงานและการประมวลผลเพิ่มเติม":
อย่างที่คุณเห็นทุกอย่างค่อนข้างง่าย มีแอตทริบิวต์เดียวเท่านั้นที่ไม่ตรงกัน: “ตัวเลือกการเปิดตัว” – “การใช้งาน” หากเราดูโค้ดของหนึ่งในโมดูลทั่วไป เราจะเห็นว่าฟิลด์เหล่านี้เกิดขึ้นได้อย่างไร:
ในการพิจารณาว่าฟิลด์ใดของโครงสร้างที่จำเป็น คุณไม่สามารถอธิบายได้ก่อน เพียงสร้างโครงสร้างว่าง จากนั้นใช้ดีบักเกอร์ หากคุณติดตามโมดูลเมื่อลงทะเบียนการประมวลผล จะชัดเจนทันทีว่าฟิลด์ใดที่จำเป็นต้องกรอกและฟิลด์ใดที่ไม่จำเป็น
การเชื่อมต่อการประมวลผลภายนอกใน 1C 8.3
ในการทำงานกับการประมวลผลภายนอก (และแบบฟอร์มการพิมพ์ภายนอกก็เป็นการประมวลผลภายนอกด้วย) มีวัตถุอยู่ การประมวลผลภายนอก
ลองพิจารณาสองกรณีที่เป็นไปได้:
การประมวลผลภายนอกจะถูกจัดเก็บไว้ในดิสก์แยกจากฐานข้อมูล
หากต้องการเปิดการประมวลผลภายนอกใน 1C โดยทางโปรแกรมคุณต้องทราบที่อยู่ของไฟล์ เมื่อทราบแล้ว คุณสามารถเปิดแบบฟอร์มการประมวลผลหรือรับออบเจ็กต์การประมวลผลเพื่อดำเนินการเพิ่มเติมได้ (ตัวอย่างเช่น เพื่อเรียกใช้ฟังก์ชันการส่งออกจากโมดูลออบเจ็กต์)
การเปิดแบบฟอร์มการประมวลผลภายนอก
หากต้องการเปิดแบบฟอร์มการประมวลผลภายนอกโดยทางโปรแกรมใน 1C ให้ใช้ฟังก์ชัน รับแบบฟอร์ม()วัตถุ การประมวลผลภายนอกฟังก์ชันนี้มีพารามิเตอร์หลายตัว พิจารณาการเปิดแบบฟอร์มการประมวลผลหลักอย่างง่าย:
แบบฟอร์ม = กระบวนการภายนอก GetForm(ที่อยู่ไฟล์);
รูปร่าง. เปิด();
หากต้องการเปิดฟอร์มประมวลผลภายนอกรอง คุณต้องระบุชื่อ
//ตัวแปร FileAddress มีพาธแบบเต็มไปยังไฟล์ประมวลผลภายนอก
แบบฟอร์ม = กระบวนการภายนอก GetForm(ที่อยู่ไฟล์, “ไมเนอร์ฟอร์ม”)
;
รูปร่าง. เปิด();
การเปิดการประมวลผลภายนอกเป็นวัตถุ
เพื่อที่จะรับการประมวลผลภายนอกเป็นวัตถุ จะใช้ฟังก์ชัน สร้าง()วัตถุ การประมวลผลภายนอก
//ตัวแปร FileAddress มีพาธแบบเต็มไปยังไฟล์ประมวลผลภายนอก
ProcessingObject = การประมวลผลภายนอก สร้าง(ที่อยู่ไฟล์);
ตามค่าเริ่มต้น การประมวลผลทั้งหมดจะเปิดขึ้นในเซฟโหมด หากต้องการปิดใช้งาน ให้ใช้ตัวเลือกต่อไปนี้:
//ตัวแปร FileAddress มีพาธแบบเต็มไปยังไฟล์ประมวลผลภายนอก
แบบฟอร์มการประมวลผลหรือการพิมพ์ภายนอกที่บันทึกไว้ในฐานข้อมูล
ในการกำหนดค่าจำนวนมาก คุณสามารถบันทึกแบบฟอร์มที่พิมพ์ภายนอกและประมวลผลโดยตรงในฐานข้อมูลได้ หนังสืออ้างอิงใช้สำหรับสิ่งนี้ การประมวลผลภายนอกการประมวลผลภายนอกนั้นถูกจัดเก็บเป็นข้อมูลไบนารีหรือในแอตทริบิวต์ การจัดเก็บการประมวลผลภายนอกหรือในส่วนตาราง สังกัดในอุปกรณ์ประกอบฉาก การจัดเก็บการประมวลผลภายนอก.
หากต้องการเปิดการประมวลผลภายนอกคุณต้องมี:
- หาได้จากที่เก็บข้อมูล
- บันทึกไฟล์ที่ประมวลผลลงดิสก์
- เปิดแบบฟอร์มหรือรับวัตถุที่กำลังประมวลผล
- หากเรากำลังจัดการกับแบบฟอร์มที่พิมพ์ภายนอก เราก็สามารถกรอกรายละเอียดมาตรฐานได้ การอ้างอิงวัตถุและเรียกใช้ฟังก์ชันส่งออก ผนึก.
//ตัวแปร RefLink มีลิงก์ไปยังองค์ประกอบไดเร็กทอรี ExternalProcessings
DvData = การอ้างอิง ที่เก็บข้อมูลการประมวลผลภายนอก รับ() ;
ที่อยู่ไฟล์ = GetTemporaryFileName() ;
DvData. เขียน(ที่อยู่ไฟล์);
ProcessingObject = การประมวลผลภายนอก สร้าง(ที่อยู่ไฟล์, เท็จ);