1c เปิดการประมวลผลภายนอกโดยทางโปรแกรม แบบฟอร์มการประมวลผลหรือการพิมพ์ภายนอกจะถูกบันทึกไว้ในฐานข้อมูล

เพื่อทำงานกับการประมวลผลภายนอก (และภายนอก แบบพิมพ์เป็นการประมวลผลภายนอกด้วย) มีวัตถุ การประมวลผลภายนอก

ลองพิจารณาสองกรณีที่เป็นไปได้:

การประมวลผลภายนอกถูกจัดเก็บไว้ในดิสก์แยกต่างหากจากฐานข้อมูล

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

การเปิดแบบฟอร์มการประมวลผลภายนอก

หากต้องการเปิดแบบฟอร์มการประมวลผลภายนอกโดยทางโปรแกรมใน 1C ให้ใช้ฟังก์ชัน เก็ทฟอร์ม()วัตถุ การประมวลผลภายนอกฟังก์ชันมีพารามิเตอร์หลายตัว พิจารณาการเปิดแบบฟอร์มการประมวลผลหลักอย่างง่าย:


รูปร่าง = กระบวนการภายนอก GetForm (ที่อยู่ไฟล์);
รูปร่าง. เปิด() ;

เมื่อต้องการเปิดแบบฟอร์มการประมวลผลภายนอกที่ไม่ใช่หลัก คุณต้องระบุชื่อ

// ตัวแปร AddressFile ประกอบด้วย เส้นทางเต็มไปยังไฟล์ประมวลผลภายนอก
รูปร่าง = กระบวนการภายนอก GetForm(ที่อยู่ไฟล์, "ไมเนอร์ฟอร์ม") ;
รูปร่าง. เปิด() ;

การเปิดการประมวลผลภายนอกเป็นวัตถุ

เพื่อให้ได้การประมวลผลภายนอกเป็นวัตถุ จะใช้ฟังก์ชัน สร้าง()วัตถุ การประมวลผลภายนอก

// ตัวแปร FileAddress มีเส้นทางแบบเต็มไปยังไฟล์ประมวลผลภายนอก
ProcessingObject = การประมวลผลภายนอก สร้าง (ที่อยู่ไฟล์);

ตามค่าเริ่มต้น การประมวลผลทั้งหมดจะเปิดขึ้น โหมดปลอดภัย. หากต้องการปิดใช้งาน ให้ใช้ตัวเลือกต่อไปนี้:

// ตัวแปร FileAddress มีเส้นทางแบบเต็มไปยังไฟล์ประมวลผลภายนอก

แบบฟอร์มการประมวลผลหรือการพิมพ์ภายนอกจะถูกบันทึกไว้ในฐานข้อมูล

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

ในการเปิดการประมวลผลภายนอก คุณต้อง:

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

// ตัวแปร 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

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

อย่างที่คุณเห็นทุกอย่างค่อนข้างง่าย แอตทริบิวต์เดียวเท่านั้นที่ไม่ตรงกัน: “ตัวเลือกการเปิดใช้งาน” - “การใช้งาน” หากเราดูโค้ดของโมดูลทั่วไป เราจะเห็นว่าฟิลด์เหล่านี้เกิดขึ้นได้อย่างไร:

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

การเชื่อมต่อการประมวลผลภายนอกใน 1C 8.3



กำลังโหลด...
สูงสุด