คอมพิวเตอร์ หน้าต่าง อินเทอร์เน็ต

การใช้งานประจำ 1c งานประจำและงานเบื้องหลัง งานด้านกฎระเบียบที่เสร็จสมบูรณ์และยังไม่เสร็จสิ้น

แนวคิดการเขียนโปรแกรมแบบอะซิงโครนัส

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

เหล่านั้น. แนวคิดหลักของการเขียนโปรแกรมแบบอะซิงโครนัสคือการเรียกใช้เมธอดแต่ละรายการและทำงานอื่นแบบขนานต่อไปโดยไม่ต้องรอให้การโทรเสร็จสิ้น

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

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

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

งานพื้นหลังใน 1C:Enterprise 8

ใน 1C:Enterprise 8 งานพื้นหลังได้รับการออกแบบมาเพื่อทำงานของแอปพลิเคชันแบบอะซิงโครนัส พวกเขาสามารถสร้างงานพื้นหลังย่อยได้ เช่น เพื่อทำการคำนวณที่ซับซ้อนแบบขนานระหว่างเซิร์ฟเวอร์การทำงานที่แตกต่างกันของคลัสเตอร์ในโหมดการดำเนินการแบบไคลเอ็นต์-เซิร์ฟเวอร์

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

กลไกงานทำงานทั้งในโหมดไคลเอ็นต์ - เซิร์ฟเวอร์และโหมดไฟล์ แต่ความสามารถในการจัดการและดำเนินงานในทั้งสองเวอร์ชันนั้นแตกต่างกันบ้าง

ตัวเลือกไคลเอนต์เซิร์ฟเวอร์

ในเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์ การกำหนดเวลางานจะดำเนินการโดยตัวกำหนดเวลางาน ซึ่งอยู่ในตัวจัดการคลัสเตอร์

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

ตัวเลือกไฟล์

ตั้งแต่เวอร์ชัน 8.3.3.641 ของแพลตฟอร์ม นักพัฒนาได้ทำให้การทำงานเบื้องหลังในเวอร์ชันไฟล์ง่ายขึ้นอย่างมาก

ก่อนหน้านี้ หากต้องการดำเนินงานโดยอัตโนมัติ จำเป็นต้องเปิดเซสชัน 1C:Enterprise เพิ่มเติมแยกต่างหาก ซึ่งใช้เป็นตัวกำหนดเวลางาน และในเซสชั่นนี้ จำเป็นต้องดำเนินการวิธีการภาษาในตัวเป็นระยะ ExecuteTaskProcessing()วิธีการนี้ค่อนข้างยุ่งยาก ไม่สะดวก และจำกัดการใช้งานเบื้องหลังและงานประจำในเวอร์ชันไฟล์ของงานเป็นอย่างมาก

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

แต่ละแอปพลิเคชันที่อยู่ในรายการจะดำเนินงานพื้นหลังของตนเอง หากแอปพลิเคชันได้เริ่มต้นงานเบื้องหลังหลายงาน งานเหล่านั้นจะถูกดำเนินการตามลำดับตามลำดับที่ได้รับ

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

ควรสังเกตว่างานพื้นหลังเป็นออบเจ็กต์ซอฟต์แวร์ล้วนๆ และไม่สามารถจัดเก็บไว้ในฐานข้อมูลได้ นั่นคือเราสามารถสร้างได้เฉพาะอินสแตนซ์ของคลาส เริ่มต้นคุณสมบัติของคลาส และเปิดใช้งานเพื่อดำเนินการ

ตัวอย่างของการเรียกใช้โค้ดแบบอะซิงโครนัสใน 1C:Enterprise 8

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

มาสาธิตความเรียบง่ายและความสง่างามของการรันโค้ดแบบอะซิงโครนัสใน 1C:Enterprise 8 กัน!

ขั้นตอนที่ 1.มาสร้างระบบรักษาความปลอดภัยข้อมูลใหม่สำหรับการพัฒนาการกำหนดค่ากันดีกว่า

ขั้นตอนที่ 2.ในการกำหนดค่าเราจะเพิ่มโมดูลทั่วไป “Asynchronous Handlers”

เหตุใดเราจึงเพิ่มโมดูลที่ใช้ร่วมกัน? ทุกอย่างเป็นเรื่องง่ายที่นี่: เพื่อดำเนินการแบบอะซิงโครนัสใน 1C:Enterprise 8 จะมีการใช้งานพื้นหลังซึ่งมีผู้จัดการของตัวเอง - "BackgroundTask Manager" ออบเจ็กต์นี้มีเมธอด "เรียกใช้" ซึ่งเปิดใช้งานงานเบื้องหลัง

หันไปหาผู้ช่วยไวยากรณ์กันดีกว่า

ดังนั้นเราจึงต้องมีโมดูลทั่วไป

ขั้นตอนที่ 3ในโมดูลทั่วไป “Asyncronous Handlers” เราจะเพิ่มขั้นตอนการส่งออก OurLongOperation()

ขั้นตอน OurLongOperation(Duration) Export // การจำลองการกระทำระยะยาว (Duration วินาที) OperationStartDate = CurrentDate(); While CurrentDate() - วันที่เริ่มต้นการดำเนินการ< Длительность Цикл КонецЦикла; КонецПроцедуры

ขั้นตอนที่ 4เพิ่มการประมวลผล “แนวคิดการเขียนโปรแกรมแบบอะซิงโครนัส” ให้กับการกำหนดค่า (คุณสามารถสร้างการประมวลผลภายนอกได้)

เพิ่มหนึ่งแอตทริบิวต์ลงในแบบฟอร์ม:

ระยะเวลา (จำนวน)

และสองทีม

ดำเนินการ LongOperation;

ดำเนินการแบบยาว-ยาวแบบอะซิงโครนัส

ขั้นตอนที่ 5ตามผู้ช่วยไวยากรณ์ ให้กรอกโมดูลแบบฟอร์ม

&ในขั้นตอนไคลเอนต์ ดำเนินการ Long-RunningOperation(Command) ExecuteLong-RunningOperationOnServer(); EndProcedure & ขั้นตอน OnServer ExecuteLongOperationOnServer () AsynchronousHandlers. OurLongOperation (ระยะเวลา); สิ้นสุดขั้นตอน &บนขั้นตอนไคลเอ็นต์ ดำเนินการดำเนินการแบบอะซิงโครนัสแบบยาวนาน (คำสั่ง) ดำเนินการแบบอะซิงโครนัสแบบรันยาวนานบนเซิร์ฟเวอร์ (); สิ้นสุดขั้นตอน &บนขั้นตอนเซิร์ฟเวอร์ ดำเนินการระยะยาวแบบอะซิงโครนัสบนเซิร์ฟเวอร์ () พารามิเตอร์ = อาร์เรย์ใหม่; พารามิเตอร์เพิ่ม (ระยะเวลา); BackgroundTasks.Execute("AsynchronousHandlers.OurLongOperation", พารามิเตอร์, UniqueIdentifier ใหม่, "ตัวอย่างแนวคิดการเขียนโปรแกรมแบบอะซิงโครนัส"); สิ้นสุดขั้นตอน

ขั้นตอนที่ 6มาเปิดตัวและตรวจสอบกันเถอะ!

ผลลัพธ์:

หากเราคลิกที่ปุ่ม "ดำเนินการเป็นเวลานาน" อินเทอร์เฟซผู้ใช้จะถูกบล็อกเป็นเวลา "ระยะเวลา" วินาที

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

เราสามารถตรวจสอบได้ว่าโค้ดโปรแกรมถูกดำเนินการแบบอะซิงโครนัสโดยดูที่บันทึก

เราสามารถดีบักโค้ดโปรแกรมที่ทำงานใน "พื้นหลัง" ได้หากเราตั้งค่าคุณสมบัติที่เหมาะสมในพารามิเตอร์การดีบัก

ตัวอย่างของการเรียกใช้โค้ดแบบอะซิงโครนัสใน 1C:Enterprise 8 โดยใช้ BSP

ลองพิจารณาตัวอย่างการนำแนวคิดการเขียนโปรแกรมแบบอะซิงโครนัสไปใช้ใน 1C:Enterprise 8 ใน BSP โดยใช้ตัวอย่างการประมวลผล "เหตุการณ์ปัจจุบัน"

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

มาวิเคราะห์โค้ดโปรแกรมของแบบฟอร์มกัน

เหตุการณ์แบบฟอร์ม "เมื่อ CreateOnServer" เรียกขั้นตอน "RunBackgroundTask" - นี่คือสิ่งที่เราต้องการ

มาวิเคราะห์ขั้นตอนนี้กันดีกว่าโดยไม่ถูกรบกวนจากความแตกต่างเล็กน้อย

และที่นี่เราจะเห็นว่ามีการใช้ตัวจัดการงานเบื้องหลังและวิธีการ "เรียกใช้" โปรดทราบว่านักพัฒนาจะจัดเก็บ ID เฉพาะสำหรับงานพื้นหลัง

เมื่อต้องการทำเช่นนี้ นักพัฒนาใช้วิธีนี้ เชื่อมต่อรอแฮนด์เลอร์(<ИмяПроцедуры>, <Интервал>, <Однократно>).



ในขั้นตอนติดยาเสพติด Connectable_CheckTaskเสร็จสมบูรณ์()นักพัฒนาเรียกใช้ฟังก์ชัน งานเสร็จสมบูรณ์ (TaskID)


ฟังก์ชันนี้จะตรวจสอบการทำงานของงานพื้นหลังตามตัวระบุ

ควรสังเกตว่า BSP ได้พัฒนาโมดูลทั่วไปเพื่อรองรับการทำงานของเซิร์ฟเวอร์ในระยะยาว

ดังนั้นแนวคิดการเขียนโปรแกรมแบบอะซิงโครนัสใน 1C:Enterprise 8 เพิ่มความซับซ้อนในการแก้ปัญหาสำหรับนักพัฒนาเล็กน้อยเล็กน้อย แต่ปรับปรุงการทำงานของโปรแกรมอย่างมากจากมุมมองของผู้ใช้

เมื่อทำงานใน 1C มีการดำเนินการประจำหลายอย่างที่ต้องเปิดตัวหรือกำหนดเวลาเพื่อดำเนินการอย่างใดอย่างหนึ่ง เช่น การโพสต์เอกสารหรือการโหลดข้อมูลลงใน 1C จากเว็บไซต์

ฉันเพิ่งโพสต์บทความ: ถึงเวลาที่จะทำให้สิ่งนี้เป็นอัตโนมัติ:

งานประจำและงานเบื้องหลัง

กลไกงานได้รับการออกแบบมาเพื่อดำเนินการแอปพลิเคชันหรือฟังก์ชันการทำงานตามกำหนดเวลาหรือแบบอะซิงโครนัส

กลไกงานแก้ไขปัญหาต่อไปนี้:

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

กลไกงานประกอบด้วยองค์ประกอบดังต่อไปนี้:

  • ข้อมูลเมตาของงานประจำ
  • งานประจำ;
  • งานพื้นหลัง;
  • ตัวกำหนดเวลางาน

งานเบื้องหลัง & ได้รับการออกแบบมาเพื่อทำงานแอปพลิเคชันแบบอะซิงโครนัส งานเบื้องหลังจะดำเนินการโดยใช้ภาษาในตัว

งานที่กำหนดเวลาไว้ & ได้รับการออกแบบมาเพื่อดำเนินงานแอปพลิเคชันตามกำหนดเวลา งานประจำจะถูกจัดเก็บไว้ในฐานข้อมูลและสร้างขึ้นตามข้อมูลเมตาที่กำหนดไว้ในการกำหนดค่า ข้อมูลเมตาของงานด้านกฎระเบียบประกอบด้วยข้อมูล เช่น ชื่อ วิธีการ การใช้งาน ฯลฯ

งานประจำมีตารางเวลาที่กำหนดว่าจะต้องดำเนินการวิธีการที่เกี่ยวข้องกับงานประจำเมื่อใด ตามกฎแล้วกำหนดการระบุไว้ในฐานข้อมูล แต่สามารถระบุได้ในขั้นตอนการกำหนดค่า (เช่น สำหรับงานประจำที่กำหนดไว้ล่วงหน้า)

ตัวกำหนดเวลางานใช้เพื่อกำหนดเวลาการปฏิบัติงานตามปกติ สำหรับงานที่กำหนดเวลาไว้แต่ละงาน ผู้จัดกำหนดการจะตรวจสอบเป็นระยะว่าวันที่และเวลาปัจจุบันตรงกับกำหนดการของงานที่กำหนดเวลาไว้หรือไม่ หากตรงกัน ผู้จัดกำหนดการจะมอบหมายงานนั้นให้ดำเนินการ เมื่อต้องการทำเช่นนี้ สำหรับงานตามกำหนดการนี้ ตัวจัดกำหนดการจะสร้างงานพื้นหลังซึ่งดำเนินการประมวลผลตามจริง

ฉันคิดว่าคำอธิบายนั้นเพียงพอแล้ว - มาเริ่มใช้งานกันดีกว่า:

การสร้างงานประจำ

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

การใช้งาน– สัญลักษณ์ของการใช้งานประจำ

กำหนดไว้ล่วงหน้า– ระบุว่างานประจำถูกกำหนดไว้ล่วงหน้าแล้วหรือไม่

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

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

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

การกำหนดตารางเวลา

กำหนดการทำงานให้เสร็จสิ้น:

ทุกชั่วโมงเพียงวันเดียวระยะเวลา RepeatDays = 0, ระยะเวลา RepeatDays = 3600
ทุกวันวันละครั้งระยะเวลา RepeatDays = 1, ระยะเวลา RepeatDays = 0
วันหนึ่งครั้งหนึ่งระยะเวลาทำซ้ำวัน = 0
วันเว้นวัน วันละครั้งระยะเวลาทำซ้ำวัน = 2
ทุกชั่วโมง ตั้งแต่ 01.00 – 07.00 น. ทุกวันPeriodRepeatDays = 1RepeatPeriodDuringDay = 3600StartTime = 01.00

เวลาสิ้นสุด = 07.00 น

ทุกวันเสาร์และอาทิตย์ เวลา 09.00 นระยะเวลาทำซ้ำ = 1 วันในสัปดาห์ = 6, 7 เวลาเริ่มต้น = 09.00 น
ทุกวันเป็นเวลาหนึ่งสัปดาห์ ข้ามหนึ่งสัปดาห์PeriodRepeatDays = 1PeriodWeeks = 2
เวลา 01.00 น. ครั้งหนึ่งเริ่มเวลา = 01.00 น
วันสุดท้ายของทุกเดือน เวลา 09.00 น.PeriodRepeatDays = 1DayInMonth = -1StartTime = 09.00 น
วันที่ห้าของทุกเดือน เวลา 9.00 นPeriodRepeatDays = 1DayInMonth = 5StartTime = 09.00 น
ทุกวันพุธที่สองของทุกเดือน เวลา 09:00 นPeriodRepeatDays = 1DayWeekMonth = 2DaysWeek = 3

เริ่มเวลา = 09.00 น

คุณลักษณะของการดำเนินการงานเบื้องหลังในรูปแบบไฟล์และไคลเอ็นต์-เซิร์ฟเวอร์

กลไกในการดำเนินการงานเบื้องหลังในไฟล์และเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์จะแตกต่างกัน

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

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

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

ในเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์ คุณสามารถบล็อกการปฏิบัติงานประจำได้ การดำเนินงานตามปกติจะถูกบล็อกในกรณีต่อไปนี้:

  • มีการติดตั้งการบล็อกงานประจำอย่างชัดเจนบนฐานข้อมูล การล็อคสามารถตั้งค่าได้ผ่านคอนโซลคลัสเตอร์
  • มีบล็อกการเชื่อมต่ออยู่ในฐานข้อมูล การล็อคสามารถตั้งค่าได้ผ่านคอนโซลคลัสเตอร์
  • เมธอด SetExclusionMode() ที่มีพารามิเตอร์ True ถูกเรียกจากภาษาที่มีอยู่แล้ว
  • ในบางกรณี (เช่น เมื่ออัพเดตการกำหนดค่าฐานข้อมูล)

กำลังประมวลผลการเปิดตัวและการดูงานที่กำหนดเวลาไว้คุณสามารถดาวน์โหลดได้ที่นี่

บ่อยครั้ง เมื่อเก็บรักษาบันทึก จำเป็นต้องดำเนินการบางอย่างเป็นระยะๆ โดยที่ผู้ใช้ไม่ต้องดำเนินการใดๆ งานประจำและงานเบื้องหลังใน 1C เป็นกลไกที่มีให้เพื่อจุดประสงค์นี้ในโปรแกรมเวอร์ชันที่แปดและอนุญาต:

  • ตั้งค่าการจัดส่งเอกสารให้ตรงเวลา
  • คำนวณยอดคงเหลือและผลรวม
  • ตรวจสอบความถี่ของการส่งจดหมาย
  • ตรวจสอบและลบข้อมูลที่ไม่เกี่ยวข้อง

งานที่อยู่เบื้องหลังและงานที่กำหนดเวลาไว้ - คืออะไรและกำหนดค่าไว้ที่ใด

งานประจำเป็นกลไกที่สร้างขึ้นใน 1C ที่ช่วยให้คุณสามารถกำหนดค่าและดำเนินการตามลำดับการกระทำบางอย่างตามกำหนดเวลาและความถี่ที่กำหนด

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

งานประจำจะถูกสร้างขึ้นในโหมดตัวกำหนดค่า:

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

รูปที่ 2

  • ตรงข้ามกับจารึก "กำหนดการ" (รูปที่ 2) มีจารึก "เปิด" ซึ่งคลิกที่จะเปิดหน้าต่างเพื่อตั้งเวลาและความถี่ในการดำเนินการของตัวจัดการ (รูปที่ 3)

รูปที่ 3

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

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

คุณสมบัติของงานพื้นหลัง

คุณลักษณะหลักของกลไกนี้คือกระบวนการเบื้องหลังทำงานแบบอะซิงโครนัส

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

ดังนั้นงานเบื้องหลังใน 1C สามารถสร้างกระบวนการของตนเองได้ โดยกระจายการคำนวณไปยังเซิร์ฟเวอร์ต่างๆ ที่รวมอยู่ในคลัสเตอร์เดียวกัน

คุณสมบัติของการทำงานในโหมดไคลเอนต์ - เซิร์ฟเวอร์

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

งานพื้นหลังในโหมดไฟล์

ก่อนแพลตฟอร์มเวอร์ชัน 8.3.3.641 การทำงานกับงานพื้นหลังในเวอร์ชันไฟล์ทำให้เกิดปัญหาบางประการ:

  1. จำเป็นต้องเปิดเซสชันแยกต่างหากซึ่งทำงานตลอดเวลา โดยแทนที่ตัวกำหนดตารางเวลา
  2. เซสชันนี้ควรมีการดำเนินการเมธอด RunJobProcessing() เป็นระยะ

หลังจากการอัพเดต การเริ่มต้นไคลเอนต์แบบหนาและแบบบางแต่ละครั้ง หากมีการระบุคีย์ AllowExecuteScheduledJobs ในการตั้งค่าการเปิดตัว (รูปที่ 4) ในช่อง "เพิ่มเติม" จะเริ่มต้นเธรดเพิ่มเติมสำหรับการเชื่อมต่อกับฐานข้อมูล ซึ่งจะไม่ส่งผลกระทบต่อ งานของผู้ใช้ในทางใดทางหนึ่ง แต่ดำเนินการเฉพาะงานพื้นหลังเท่านั้น การดำเนินงาน

รูปที่ 4

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

วิธีปิดการใช้งานงานที่กำหนดเวลาไว้

งานที่ไม่ได้ใช้สามารถปิดใช้งานได้โดยยกเลิกการเลือกช่องทำเครื่องหมาย "ใช้" ในคุณสมบัติของวัตถุ

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

นอกจากนี้ดิสก์ ITS ยังมีการประมวลผลพิเศษ "คอนโซลงาน" ซึ่งช่วยให้คุณสามารถแก้ไขกำหนดการของกระบวนการพื้นหลังและเปลี่ยนแปลงกิจกรรมได้

เมื่อทำงานใน 1C มีการดำเนินการประจำหลายอย่างที่ต้องเปิดตัวหรือกำหนดเวลาเพื่อดำเนินการอย่างใดอย่างหนึ่ง เช่น การโพสต์เอกสารหรือการโหลดข้อมูลลงใน 1C จากเว็บไซต์

ฉันเพิ่งโพสต์บทความ: ถึงเวลาที่จะทำให้สิ่งนี้เป็นอัตโนมัติ:

งานประจำและงานเบื้องหลัง

กลไกงานได้รับการออกแบบมาเพื่อดำเนินการแอปพลิเคชันหรือฟังก์ชันการทำงานตามกำหนดเวลาหรือแบบอะซิงโครนัส

กลไกงานแก้ไขปัญหาต่อไปนี้:

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

กลไกงานประกอบด้วยองค์ประกอบดังต่อไปนี้:

  • ข้อมูลเมตาของงานประจำ
  • งานประจำ;
  • งานพื้นหลัง;
  • ตัวกำหนดเวลางาน

งานเบื้องหลัง & ได้รับการออกแบบมาเพื่อทำงานแอปพลิเคชันแบบอะซิงโครนัส งานเบื้องหลังจะดำเนินการโดยใช้ภาษาในตัว

งานที่กำหนดเวลาไว้ & ได้รับการออกแบบมาเพื่อดำเนินงานแอปพลิเคชันตามกำหนดเวลา งานประจำจะถูกจัดเก็บไว้ในฐานข้อมูลและสร้างขึ้นตามข้อมูลเมตาที่กำหนดไว้ในการกำหนดค่า ข้อมูลเมตาของงานด้านกฎระเบียบประกอบด้วยข้อมูล เช่น ชื่อ วิธีการ การใช้งาน ฯลฯ

งานประจำมีตารางเวลาที่กำหนดว่าจะต้องดำเนินการวิธีการที่เกี่ยวข้องกับงานประจำเมื่อใด ตามกฎแล้วกำหนดการระบุไว้ในฐานข้อมูล แต่สามารถระบุได้ในขั้นตอนการกำหนดค่า (เช่น สำหรับงานประจำที่กำหนดไว้ล่วงหน้า)

ตัวกำหนดเวลางานใช้เพื่อกำหนดเวลาการปฏิบัติงานตามปกติ สำหรับงานที่กำหนดเวลาไว้แต่ละงาน ผู้จัดกำหนดการจะตรวจสอบเป็นระยะว่าวันที่และเวลาปัจจุบันตรงกับกำหนดการของงานที่กำหนดเวลาไว้หรือไม่ หากตรงกัน ผู้จัดกำหนดการจะมอบหมายงานนั้นให้ดำเนินการ เมื่อต้องการทำเช่นนี้ สำหรับงานตามกำหนดการนี้ ตัวจัดกำหนดการจะสร้างงานพื้นหลังซึ่งดำเนินการประมวลผลตามจริง

ฉันคิดว่าคำอธิบายนั้นเพียงพอแล้ว - มาเริ่มใช้งานกันดีกว่า:

การสร้างงานประจำ

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

การใช้งาน– สัญลักษณ์ของการใช้งานประจำ

กำหนดไว้ล่วงหน้า– ระบุว่างานประจำถูกกำหนดไว้ล่วงหน้าแล้วหรือไม่

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

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

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

การกำหนดตารางเวลา

กำหนดการทำงานให้เสร็จสิ้น:

ทุกชั่วโมงเพียงวันเดียวระยะเวลา RepeatDays = 0, ระยะเวลา RepeatDays = 3600
ทุกวันวันละครั้งระยะเวลา RepeatDays = 1, ระยะเวลา RepeatDays = 0
วันหนึ่งครั้งหนึ่งระยะเวลาทำซ้ำวัน = 0
วันเว้นวัน วันละครั้งระยะเวลาทำซ้ำวัน = 2
ทุกชั่วโมง ตั้งแต่ 01.00 – 07.00 น. ทุกวันPeriodRepeatDays = 1RepeatPeriodDuringDay = 3600StartTime = 01.00

เวลาสิ้นสุด = 07.00 น

ทุกวันเสาร์และอาทิตย์ เวลา 09.00 นระยะเวลาทำซ้ำ = 1 วันในสัปดาห์ = 6, 7 เวลาเริ่มต้น = 09.00 น
ทุกวันเป็นเวลาหนึ่งสัปดาห์ ข้ามหนึ่งสัปดาห์PeriodRepeatDays = 1PeriodWeeks = 2
เวลา 01.00 น. ครั้งหนึ่งเริ่มเวลา = 01.00 น
วันสุดท้ายของทุกเดือน เวลา 09.00 น.PeriodRepeatDays = 1DayInMonth = -1StartTime = 09.00 น
วันที่ห้าของทุกเดือน เวลา 9.00 นPeriodRepeatDays = 1DayInMonth = 5StartTime = 09.00 น
ทุกวันพุธที่สองของทุกเดือน เวลา 09:00 นPeriodRepeatDays = 1DayWeekMonth = 2DaysWeek = 3

เริ่มเวลา = 09.00 น

คุณลักษณะของการดำเนินการงานเบื้องหลังในรูปแบบไฟล์และไคลเอ็นต์-เซิร์ฟเวอร์

กลไกในการดำเนินการงานเบื้องหลังในไฟล์และเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์จะแตกต่างกัน

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

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

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

ในเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์ คุณสามารถบล็อกการปฏิบัติงานประจำได้ การดำเนินงานตามปกติจะถูกบล็อกในกรณีต่อไปนี้:

  • มีการติดตั้งการบล็อกงานประจำอย่างชัดเจนบนฐานข้อมูล การล็อคสามารถตั้งค่าได้ผ่านคอนโซลคลัสเตอร์
  • มีบล็อกการเชื่อมต่ออยู่ในฐานข้อมูล การล็อคสามารถตั้งค่าได้ผ่านคอนโซลคลัสเตอร์
  • เมธอด SetExclusionMode() ที่มีพารามิเตอร์ True ถูกเรียกจากภาษาที่มีอยู่แล้ว
  • ในบางกรณี (เช่น เมื่ออัพเดตการกำหนดค่าฐานข้อมูล)

กำลังประมวลผลการเปิดตัวและการดูงานที่กำหนดเวลาไว้คุณสามารถดาวน์โหลดได้ที่นี่

แพลตฟอร์ม: 1C:องค์กร 8.3, 1C:องค์กร 8.2, 1C:องค์กร 8.1
การกำหนดค่า: การกำหนดค่าทั้งหมด

2012-11-13
53989

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

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

ระบบที่คล้ายกันนี้ทำงานสำหรับผู้ดูแลเว็บ และจะมีการตรวจสอบความพร้อมใช้งานของเว็บไซต์ภายใน 24 ชั่วโมง การใช้กลไก "งานประจำ" ใน 1C งานการตรวจสอบจะดำเนินการตลอดจนงานเป็นระยะที่ดำเนินการตามกำหนดเวลาในโหมดอัตโนมัติใน 1C ลองมาดูหัวข้อนี้ให้ละเอียดยิ่งขึ้น

งานที่กำหนดเวลาไว้ 1C

วัตถุ 1C เรียกว่า "งานประจำ" ทำให้สามารถประมวลผลข้อมูลได้ไม่ใช่หลังจากเกิดปัญหา แต่ตามกำหนดเวลา ในตัวกำหนดค่า งานประจำเป็นวิธีการตั้งค่าและกำหนดเวลา นอกจากนี้ยังสามารถเปลี่ยนกำหนดการในโหมด 1C Enterprise ในภายหลังได้

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

การกำหนดค่ามาตรฐานทั้งหมดมีการตั้งค่าผู้ใช้ที่อนุญาตให้คุณระบุว่าเมื่อ 1C กำลังทำงาน งานประจำจะดำเนินการโดยอัตโนมัติ

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

การเพิ่มงานที่กำหนดเวลาไว้

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

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

ในการบัญชีรุ่น 2.0 ซึ่งเป็นการกำหนดค่ามาตรฐาน งานประจำ เช่น "การคำนวณผลรวมใหม่" และ "การอัปเดตการกำหนดค่า" จะถูกกำหนดไว้ล่วงหน้า แต่เช่น "การเคลื่อนไหวที่เลื่อนออกไป" และ "การแลกเปลี่ยนข้อมูล" จะไม่ถูกกำหนดไว้ล่วงหน้า

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

เครื่องมือตรวจสอบและการจัดการสำหรับงานประจำ 1C

การประมวลผลมาตรฐาน "คอนโซลงาน" ซึ่งสามารถพบได้ในดิสก์ ITS มีหน้าที่ในการจัดการงานประจำ การประมวลผลนี้เป็นการประมวลผลมาตรฐานภายนอกสากล 1C ตามกฎแล้วจะไม่รวมอยู่ในการกำหนดค่า แต่จะซื้อแยกต่างหาก

ด้วยความช่วยเหลือคุณสามารถดำเนินการต่อไปนี้:

เปิดและปิดงานที่กำหนดเวลาไว้

กำหนดและเปลี่ยนแปลงกำหนดการ

กำหนดชื่อผู้ใช้ที่จะดำเนินการงานประจำ

ดูงานที่เสร็จสมบูรณ์ (เมื่อใดและด้วยผลลัพธ์ใด) รวมถึงข้อผิดพลาดของงาน

งานประจำและสำเนาฐานข้อมูล

เมื่อใช้เซิร์ฟเวอร์ 1C ช่วงเวลาต่อไปนี้อาจเกิดขึ้น:

ในการเขียนโปรแกรมคุณต้องทำสำเนาฐานข้อมูลที่ใช้งานได้

ความจำเป็นในการทำงานกับสำเนาของฐานข้อมูล (การทดสอบ)

ด้วยเหตุผลบางประการ งานที่กำหนดเวลาไว้จึงไม่รวมอยู่ในฐานข้อมูลทดสอบ

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

งานด้านกฎระเบียบที่เสร็จสมบูรณ์และยังไม่เสร็จสิ้น

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

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