เพื่อทำงานกับการประมวลผลภายนอก (และภายนอก แบบพิมพ์เป็นการประมวลผลภายนอกด้วย) มีวัตถุ การประมวลผลภายนอก
ลองพิจารณาสองกรณีที่เป็นไปได้:
การประมวลผลภายนอกถูกจัดเก็บไว้ในดิสก์แยกต่างหากจากฐานข้อมูล
ในการเปิดการประมวลผลภายนอกโดยทางโปรแกรมใน 1C คุณต้องทราบที่อยู่ของไฟล์ เมื่อทราบแล้ว คุณสามารถเปิดฟอร์มการประมวลผลหรือรับออบเจกต์การประมวลผลสำหรับการดำเนินการเพิ่มเติมกับฟอร์มนั้น (ตัวอย่างเช่น เพื่อเรียกใช้ฟังก์ชันการส่งออกจากโมดูลออบเจกต์)
การเปิดแบบฟอร์มการประมวลผลภายนอก
หากต้องการเปิดแบบฟอร์มการประมวลผลภายนอกโดยทางโปรแกรมใน 1C ให้ใช้ฟังก์ชัน เก็ทฟอร์ม()วัตถุ การประมวลผลภายนอกฟังก์ชันมีพารามิเตอร์หลายตัว พิจารณาการเปิดแบบฟอร์มการประมวลผลหลักอย่างง่าย:
รูปร่าง = กระบวนการภายนอก GetForm (ที่อยู่ไฟล์);
รูปร่าง. เปิด() ;
เมื่อต้องการเปิดแบบฟอร์มการประมวลผลภายนอกที่ไม่ใช่หลัก คุณต้องระบุชื่อ
// ตัวแปร AddressFile ประกอบด้วย เส้นทางเต็มไปยังไฟล์ประมวลผลภายนอก
รูปร่าง = กระบวนการภายนอก GetForm(ที่อยู่ไฟล์, "ไมเนอร์ฟอร์ม")
;
รูปร่าง. เปิด() ;
การเปิดการประมวลผลภายนอกเป็นวัตถุ
เพื่อให้ได้การประมวลผลภายนอกเป็นวัตถุ จะใช้ฟังก์ชัน สร้าง()วัตถุ การประมวลผลภายนอก
// ตัวแปร FileAddress มีเส้นทางแบบเต็มไปยังไฟล์ประมวลผลภายนอก
ProcessingObject = การประมวลผลภายนอก สร้าง (ที่อยู่ไฟล์);
ตามค่าเริ่มต้น การประมวลผลทั้งหมดจะเปิดขึ้น โหมดปลอดภัย. หากต้องการปิดใช้งาน ให้ใช้ตัวเลือกต่อไปนี้:
// ตัวแปร FileAddress มีเส้นทางแบบเต็มไปยังไฟล์ประมวลผลภายนอก
แบบฟอร์มการประมวลผลหรือการพิมพ์ภายนอกจะถูกบันทึกไว้ในฐานข้อมูล
ในการกำหนดค่าจำนวนมาก คุณสามารถบันทึกแบบฟอร์มการพิมพ์และการรักษาภายนอกได้โดยตรง ฐานข้อมูล. สำหรับสิ่งนี้จะใช้คำแนะนำ การประมวลผลภายนอกการประมวลผลภายนอกนั้นถูกจัดเก็บเป็นข้อมูลไบนารีหรือในแอตทริบิวต์ การจัดเก็บการประมวลผลภายนอกหรือในส่วนตาราง สังกัดในอุปกรณ์ประกอบฉาก การจัดเก็บการประมวลผลภายนอก.
ในการเปิดการประมวลผลภายนอก คุณต้อง:
- รับได้จากที่เก็บข้อมูล
- บันทึกไฟล์ที่ประมวลผลแล้วลงในดิสก์
- เปิดฟอร์มหรือรับวัตถุที่กำลังประมวลผล
- หากเรากำลังจัดการกับแบบฟอร์มการพิมพ์ภายนอก คุณสามารถกรอกข้อกำหนดมาตรฐานได้ อ้างอิงถึงวัตถุและเรียกใช้ฟังก์ชันการส่งออก ผนึก.
// ตัวแปร ReferenceReference มีการอ้างอิงไปยังองค์ประกอบไดเร็กทอรี ExternalProcessing
dvData = การอ้างอิง การจัดเก็บการประมวลผลภายนอก รับ() ;
ที่อยู่ไฟล์= GetTemporaryFileName() ;
ดีวีดีดาต้า. เขียน (ที่อยู่ไฟล์);
ProcessingObject = การประมวลผลภายนอก สร้าง (ที่อยู่ไฟล์, เท็จ );
พิจารณาในบทความนี้ คำแนะนำทีละขั้นตอนเพื่อสร้างการประมวลผลภายนอกใน 1C 8.3 ในโหมดแอปพลิเคชันที่มีการจัดการ ตามลำดับ เราจะใช้แบบฟอร์มที่มีการจัดการ และที่สำคัญที่สุด เราจะเรียนรู้วิธีเชื่อมต่อกับกลไกของ "การประมวลผลภายนอก" ของการกำหนดค่า 1C ที่สร้างขึ้นบนไลบรารีของระบบย่อยมาตรฐานเวอร์ชัน 2.0 และใหม่กว่า
งานจะเป็นดังต่อไปนี้: เพื่อสร้างการประมวลผลภายนอกที่ง่ายที่สุดที่จะดำเนินการกลุ่มในหนังสืออ้างอิง "ระบบการตั้งชื่อ" กล่าวคือเพื่อตั้งค่าเปอร์เซ็นต์ที่เลือกของอัตราภาษีมูลค่าเพิ่มสำหรับกลุ่มรายการที่ระบุ
ในการทำเช่นนี้เราจะทำการตั้งค่าที่จำเป็นในโปรแกรมทันที (ถือว่าการกำหนดค่า 1C 8.3: "Enterprise Accounting 3.0" บน แบบฟอร์มที่มีการจัดการ).
การเลือกช่องนี้ทำให้เราสามารถใช้การประมวลผลภายนอกได้
สร้างการประมวลผลภายนอกใหม่ใน 1C 8.3 ตามตัวอย่าง
ตอนนี้ไปที่ตัวกำหนดค่า เลือก "ใหม่..." จากเมนู "ไฟล์" หน้าต่างสำหรับเลือกประเภทของไฟล์ที่จะสร้างจะเปิดขึ้น เลือก " การประมวลผลภายนอก»:
หน้าต่างการประมวลผลภายนอกใหม่จะเปิดขึ้น ตั้งชื่อให้เธอตอนนี้ จะมีให้เมื่อบันทึกการประมวลผลลงในดิสก์:
มาเพิ่มรูปแบบการประมวลผลที่มีการจัดการใหม่กันเถอะ เราระบุว่านี่คือแบบฟอร์มการประมวลผลและเป็นแบบฟอร์มหลัก:
ในแบบฟอร์มเราจะมีสองอุปกรณ์ประกอบฉาก:
- กลุ่มระบบการตั้งชื่อ - ลิงก์ไปยังหนังสืออ้างอิง "ระบบการตั้งชื่อ"
- เลือกอัตราภาษีมูลค่าเพิ่ม – ลิงก์ไปยังรายการอัตราภาษีมูลค่าเพิ่ม
เราสร้างรายละเอียดในคอลัมน์ "อุปกรณ์ประกอบฉาก" ในหน้าต่างด้านขวาบน ลากด้วยเมาส์ไปที่หน้าต่างด้านซ้ายบน รายละเอียดใหม่ควรปรากฏในแบบฟอร์มด้านล่างทันที
ลำดับของรายละเอียดสามารถเปลี่ยนแปลงได้ด้วยลูกศร "ขึ้น" - "ลง":
รับบทเรียนวิดีโอ 267 1C ฟรี:
ยังคงเพิ่มปุ่ม "ติดตั้ง" ในฟอร์มที่มีการจัดการ คุณไม่สามารถเพิ่มปุ่มลงในฟอร์มได้ แม้ว่าคุณจะเพิ่มลงในโครงสร้างขององค์ประกอบแบบฟอร์มแล้วก็ตาม ก็จะไม่สามารถมองเห็นได้บนฟอร์มเอง ปุ่มจะต้องเชื่อมโยงกับคำสั่งที่จะดำเนินการ ไปที่แท็บ "คำสั่ง" และเพิ่มคำสั่ง "กำหนดอัตราภาษีมูลค่าเพิ่ม" สร้างการดำเนินการในคุณสมบัติของคำสั่ง เลือกตัวจัดการคำสั่ง "บนไคลเอนต์" นอกจากนี้ยังสามารถเพิ่มคำสั่งลงในแบบฟอร์มได้ด้วยการลากและวางลงในส่วนที่มีองค์ประกอบของแบบฟอร์ม
กระบวนงานที่มีชื่อเดียวกันจะถูกสร้างขึ้นในฟอร์มโมดูล ในนั้นเราเรียกขั้นตอนบนเซิร์ฟเวอร์:
&AtClient
ขั้นตอนการกำหนดอัตราภาษีมูลค่าเพิ่ม (คำสั่ง)
SetVATRateOnServer();
จบขั้นตอน
ในขั้นตอนบนเซิร์ฟเวอร์ เราจะเขียนแบบสอบถามขนาดเล็กและการดำเนินการที่เกี่ยวข้องกับการตั้งค่าอัตราภาษีมูลค่าเพิ่ม:
&บนเซิร์ฟเวอร์
ขั้นตอน SetVATRateOnServer()
คำขอ = คำขอใหม่;
คำขอข้อความ =
"เลือก
| ระบบการตั้งชื่อ.Link
| จาก
| สารบบ. ระบบการตั้งชื่อ AS ระบบการตั้งชื่อ
|ที่ไหน
| ระบบการตั้งชื่อการอ้างอิงตามลำดับชั้น (&กลุ่มการตั้งชื่อ)
| และไม่ใช่ระบบการตั้งชื่อ เครื่องหมายการลบ
| และไม่ใช่ระบบการตั้งชื่อ นี่คือกลุ่ม”;
Query.SetParameter("กลุ่มศัพท์", กลุ่มศัพท์);
RequestRes = คำขอดำเนินการ ();
SelectDetRecords = ResRequest.Select();
ในขณะที่ SelectDetRecord.Next() วนซ้ำ
พยายาม
SprNo.Object.Write();
ข้อยกเว้น
รายงาน ("ข้อผิดพลาดในการเขียนวัตถุ """ + SprNoobObject + """!
|» + DescriptionError());
สิ้นสุดความพยายาม
EndCycle;
จบขั้นตอน
เรากลับไปที่แท็บ "แบบฟอร์ม" เพิ่มปุ่มลงในแบบฟอร์มและเชื่อมโยงกับคำสั่ง:
ดังนั้นการประมวลผลของเราจึงพร้อมใช้งาน ในการเรียกใช้ในโหมด "1C Enterprise" คุณต้องไปที่เมนู "ไฟล์" - "เปิด" และเลือกไฟล์ที่สร้างขึ้น
อย่างไรก็ตาม การทำงานในโหมดนี้สะดวกสำหรับการดีบักการประมวลผล และไม่เหมาะสำหรับผู้ใช้ที่จะทำงานด้วย ผู้ใช้คุ้นเคยกับการมีทุกอย่าง "อยู่ในมือ" นั่นคือในฐานข้อมูลเอง
นี่คือสิ่งที่ส่วน " รายงานเพิ่มเติมและแปรรูป"
แต่ในการจะเพิ่มการประมวลผลของเราเข้าไปนั้น ก่อนอื่นเราต้องให้คำอธิบายและบอกคุณสมบัติให้โปรแกรมทราบ
คำอธิบายรายละเอียดการประมวลผลภายนอก
ฉันจะยกตัวอย่างเนื้อหาของฟังก์ชันนี้ ต้องส่งออกได้และอยู่ในโมดูลการประมวลผล:
ฟังก์ชัน DetailOnExternalProcessing() ส่งออก
DataForReg = โครงสร้างใหม่ ();
DataForReg.Insert("ชื่อ", "การกำหนดอัตราภาษีมูลค่าเพิ่ม");
DataForReg.Insert("เซฟโหมด", จริง);
DataForReg.Insert("เวอร์ชั่น", "เวอร์ชั่น: 1.001");
DataForReg.Insert("ข้อมูล", "กำลังดำเนินการกำหนดอัตราภาษีมูลค่าเพิ่มในไดเรกทอรีระบบตั้งชื่อ");
DataForReg.Insert("มุมมอง", "การประมวลผลเพิ่มเติม");
TabZnCommands = ค่าตารางใหม่;
TabZnCommands.Columns.Add("ตัวระบุ");
TabZnCommands.Columns.Add("การใช้งาน");
TabZnCommands.Columns.Add("ดู");
NewLine = TabZnCommands.Add();
NewString.Identifier = "การประมวลผลแบบเปิด";
NewLine.Usage = "ฟอร์มเปิด";
NewLine.View = "เปิดการประมวลผล";
DataForReg.Insert("คำสั่ง", TabZnCommands);
ส่งคืน DataForReg;
EndFunctions
เพื่อให้เข้าใจได้ดีขึ้นว่าฟิลด์ใดของโครงสร้างข้อมูลการลงทะเบียนที่คุณต้องใช้ เรามาดูรายละเอียดของไดเร็กทอรี "รายงานเพิ่มเติมและการประมวลผล":
อย่างที่คุณเห็นทุกอย่างค่อนข้างง่าย แอตทริบิวต์เดียวเท่านั้นที่ไม่ตรงกัน: “ตัวเลือกการเปิดใช้งาน” - “การใช้งาน” หากเราดูโค้ดของโมดูลทั่วไป เราจะเห็นว่าฟิลด์เหล่านี้เกิดขึ้นได้อย่างไร:
เมื่อต้องการกำหนดฟิลด์ของโครงสร้างที่จำเป็น อันดับแรก คุณไม่สามารถอธิบายได้ เพียงสร้างฟิลด์ว่าง แล้วใช้ดีบักเกอร์ หากคุณติดตามโมดูลเมื่อลงทะเบียนการประมวลผล จะชัดเจนทันทีว่าฟิลด์ใดจำเป็นและไม่ต้องการ