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

วิธีการถ่ายโอนผลลัพธ์จากงานพื้นหลัง 1c งานเบื้องหลัง: คุณสมบัติ ความสามารถ การตั้งค่า การบล็อกงานที่กำหนดเวลาไว้

1 กลไกการทำงาน
2 งานพื้นหลัง
3 งานที่กำหนดเวลาไว้
4 คุณลักษณะของการทำงานเบื้องหลังในเวอร์ชันไฟล์และไคลเอ็นต์-เซิร์ฟเวอร์
5 การสร้างข้อมูลเมตาสำหรับงานประจำ
6 คอนโซลงาน
7 การทำงานกับงานประจำ
7.1 วัตถุประสงค์ของงาน
7.2 การรับรายการงาน
7.3 การสร้าง
7.4 การถอนการติดตั้ง
7.5 การรับวัตถุงาน

กลไกการทำงาน

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

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

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

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

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

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

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

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

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

งานเบื้องหลัง

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

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

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

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

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

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

งานเบื้องหลังที่เสร็จสมบูรณ์หรือล้มเหลวจะถูกเก็บไว้เป็นเวลา 24 ชั่วโมงแล้วจึงลบออก หากจำนวนงานพื้นหลังที่เสร็จสมบูรณ์เกิน 1,000 งานพื้นหลังที่เก่าที่สุดจะถูกลบออกด้วย

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

งานที่กำหนดเวลาไว้จะใช้เมื่อจำเป็นต้องดำเนินการตามกำหนดเวลาหรือครั้งเดียวตามกำหนดเวลา

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

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

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

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

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

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

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

ตัวอย่างตารางงานประจำ:

ทุกชั่วโมงเพียงวันเดียว

ระยะเวลา RepeatDays = 0, ระยะเวลา RepeatDays = 3600

ทุกวันวันละครั้ง

ระยะเวลา RepeatDays = 1, ระยะเวลา RepeatDays = 0

วันหนึ่งครั้งหนึ่ง

ระยะเวลาทำซ้ำวัน = 0

วันเว้นวัน วันละครั้ง

ระยะเวลาทำซ้ำวัน = 2

ทุกชั่วโมง ตั้งแต่ 01.00 – 07.00 น. ทุกวัน

ระยะเวลาทำซ้ำวัน = 1
ทำซ้ำระยะเวลาระหว่างวัน = 3600
เริ่มเวลา = 01.00 น
เวลาสิ้นสุด = 07.00 น

ทุกวันเสาร์และอาทิตย์ เวลา 09.00 น

ระยะเวลาทำซ้ำวัน = 1
วันในสัปดาห์ = 6, 7
เริ่มเวลา = 09.00 น

ทุกวันเป็นเวลาหนึ่งสัปดาห์ ข้ามหนึ่งสัปดาห์

ระยะเวลาทำซ้ำวัน = 1
ระยะเวลาสัปดาห์ = 2

เวลา 01.00 น. ครั้งหนึ่ง

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

วันสุดท้ายของทุกเดือน เวลา 09.00 น.

ระยะเวลาทำซ้ำวัน = 1
วันในเดือน = -1
เริ่มเวลา = 09.00 น

วันที่ห้าของทุกเดือน เวลา 9.00 น

ระยะเวลาทำซ้ำวัน = 1
วันในเดือน = 5
เริ่มเวลา = 09.00 น

ทุกวันพุธที่สองของทุกเดือน เวลา 09:00 น

ระยะเวลาทำซ้ำวัน = 1
วันสัปดาห์ในเดือน = 2
วันในสัปดาห์ = 3
เริ่มเวลา = 09.00 น

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

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

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

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

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

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

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

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

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

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

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

การสร้างข้อมูลเมตาสำหรับงานประจำ

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

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

ชื่อวิธีการ - ระบุชื่อของวิธีการงานประจำ

คีย์ - ระบุค่าสตริงที่ต้องการที่จะใช้เป็นคีย์ของงานที่กำหนดเวลาไว้

กำหนดการ - ระบุกำหนดการของงานประจำ หากต้องการสร้างกำหนดการ ให้คลิกลิงก์ "เปิด" และตั้งค่าที่ต้องการในแบบฟอร์มกำหนดการที่เปิดขึ้นมา

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

บนแท็บ "รายวัน" กำหนดการรายวันของงานจะถูกระบุ

ระบุกำหนดการ:

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

อนุญาตให้ระบุการรวมเงื่อนไขโดยพลการ

บนแท็บ "รายสัปดาห์" กำหนดการรายสัปดาห์ของงานจะถูกระบุ

เลือกช่องทำเครื่องหมายสำหรับวันในสัปดาห์ที่งานจะดำเนินการ หากคุณต้องการทำซ้ำงาน ให้ระบุช่วงเวลาทำซ้ำในหน่วยสัปดาห์ ตัวอย่างเช่น งานจะดำเนินการใน 2 สัปดาห์ ค่าทำซ้ำคือ 2

บนแท็บ "รายเดือน" กำหนดการรายเดือนของงานจะถูกระบุ

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

การใช้งาน - หากตั้งค่าไว้ งานจะถูกดำเนินการตามกำหนดเวลา

กำหนดไว้ล่วงหน้า - หากตั้งค่าไว้ งานจะเป็นงานที่กำหนดไว้ล่วงหน้า

จำนวนการลองใหม่ในกรณีการสิ้นสุดที่ผิดปกติ - ระบุจำนวนการลองใหม่ในกรณีการสิ้นสุดที่ผิดปกติ

ช่วงเวลาการลองอีกครั้งเมื่อการสิ้นสุดที่ผิดปกติ - ระบุช่วงเวลาการลองอีกครั้งเมื่อการสิ้นสุดที่ผิดปกติ ตัวอย่าง

การสร้างงานพื้นหลัง “การอัปเดตดัชนีการค้นหาข้อความแบบเต็ม”:

BackgroundTasks.Run("การอัปเดต FullTextSearchIndex");

การสร้างงานประจำ "การกู้คืนลำดับ":

กำหนดการ = ScheduleTask ใหม่;
กำหนดการPeriodRepeatDays = 1;
Schedule.RepeatPeriodDuringDay = 0;

งาน = RoutineTasks.CreateRoutineTask ("การเรียกคืนลำดับ");
Job.Schedule = กำหนดการ;
งาน.เขียน();

คอนโซลงาน

กำลังประมวลผลด้วย ITS จัดการงานประจำ: ConsoleTasks.epf

การทำงานกับงานประจำ

วัตถุงาน

ออบเจ็กต์งานไม่ได้ถูกอ้างอิง แต่ถูกจัดเก็บไว้ในฐานข้อมูลในพื้นที่เก็บข้อมูลพิเศษบางแห่ง

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

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

รับรายการงาน

สามารถรับรายการงานได้โดยใช้วิธีการ รับงานประจำผู้จัดการงานระดับโลก งานประจำ

ScheduledJobsManager

รับงานตามกำหนดเวลา (GetScheduledJobs)

ไวยากรณ์:

รับงานประจำ (<Отбор>)

ตัวเลือก:

<Отбор>(ไม่จำเป็น)

ประเภท: โครงสร้าง. โครงสร้างการกำหนดการเลือก ค่าโครงสร้างอาจเป็น: UniqueIdentifier, คีย์, ข้อมูลเมตา, กำหนดไว้ล่วงหน้า, การใช้งาน, ชื่อ หากไม่ได้ระบุการเลือก งานประจำทั้งหมดจะได้รับ

หากคุณกำลังกรองตามข้อมูลเมตา คุณสามารถระบุออบเจ็กต์ข้อมูลเมตาของงานประจำหรือชื่อเป็นค่าข้อมูลเมตาได้

ค่าส่งคืน:

ประเภท: อาร์เรย์

คำอธิบาย:

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

มีจำหน่าย:

สำหรับแต่ละรอบปกติของรอบข้อบังคับ
NewLine = รายการ ScheduledTasks.Add();
NewRow.Metadata = Regular.Metadata.View();
NewLine.Name = Regular.Name;
NewString.Key = ปกติ.คีย์;
NewLine.Schedule = Schedule.Schedule;
NewLine.User = ปกติ.ชื่อผู้ใช้;
NewString.Predefed = Regular.Predefed;
NewString.Use = ปกติ.ใช้;
NewString.Identifier = Regular.UniqueIdentifier;

LastTask = ปกติ LastTask;
หาก LastTask ไม่ได้กำหนดไว้
NewLine.Running = LastTask.Start;
NewRow.State = LastTask.State;
สิ้นสุดถ้า;
สิ้นสุดรอบ;

การสร้าง

สร้างโดยเมธอด Create RoutineTask สำหรับผู้จัดการงานรูทีน:

RoutineTask = RoutineTasks.CreateRoutineTask (การเลือกข้อมูลเมตา);

RegularTask.Name = ชื่อ;
RegularTask.Key = คีย์;
RegularTask.Use = การใช้งาน;
RoutineTask.UserName = UsersChoice;
RoutineTask.Number of RepetitionsAtEmergencyCompletion = จำนวน RepetitionsAtEmergencyCompletion;
ScheduledTask.RepeatIntervalAtEmergencyCompletion = ลองใหม่อีกครั้ง IntervalAtEmergencyCompletion;
ScheduleTask.Schedule = กำหนดการ;
RegularTask.บันทึก();

TaskObject = RoutineTasks.CreateRoutineTask ("ExchangeExchange");

TaskObject.Name = ชื่อ;
JobObject.Use = จริง;

วัตถุงานมีฟิลด์ "พารามิเตอร์" ที่ระบุพารามิเตอร์วิธีการ:

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

พารามิเตอร์

การใช้งาน:

อ่านและเขียน.

คำอธิบาย:

ประเภท: อาร์เรย์ อาร์เรย์ของพารามิเตอร์สำหรับงานตามกำหนดการ จำนวนและองค์ประกอบของพารามิเตอร์จะต้องสอดคล้องกับพารามิเตอร์ของวิธีการงานประจำ

มีจำหน่าย:

เซิร์ฟเวอร์ ไคลเอ็นต์แบบหนา การเชื่อมต่อภายนอก

บันทึก:

ความสามารถในการอ่านและเขียนมีให้เฉพาะผู้ดูแลระบบเท่านั้น

การกำจัด

ลบโดยใช้เมธอด Delete() ของวัตถุงาน:

ScheduledTask.Delete();

รับวัตถุงาน

  • รายการผ่านวิธี GetRoutineTasks:
    กิจวัตร = RoutineTasks.GetRoutineTasks (การเลือก);
  • ผ่าน FindByUniqueIdentifier ของวิธีจัดการงาน:
    งาน = ScheduledTasks.FindByUniqueIdentifier (UID);

[คุณต้องลงทะเบียนเพื่อดูลิงค์]

โดยปกติ งานพื้นหลังใน 1C: องค์กรเปิดตัวภายใต้ข้อบังคับ

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

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

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

เรามาสร้างขั้นตอนในโมดูลทั่วไปที่จะบันทึกลงในบันทึกกันดีกว่า
การลงทะเบียน

ขั้นตอน RecordInRegistrationLog(par_EventName, par_Comment) ExportRecordLog(par_EventName, , , , par_Comment) ; สิ้นสุดขั้นตอน

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

ตอนนี้เราจะสร้างการประมวลผลที่เราจะเปิดตัวงานเบื้องหลัง

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


ในโมดูลแบบฟอร์มเราเขียนโค้ดต่อไปนี้:

&ขั้นตอน OnServer เขียน JROnServer() อาร์เรย์ของพารามิเตอร์ = อาร์เรย์ใหม่; อาร์เรย์ของพารามิเตอร์ เพิ่ม( "กิจกรรม งานเบื้องหลังสำเร็จลุล่วงไปด้วยดี") ; อาร์เรย์ของพารามิเตอร์ เพิ่ม( “คอมเม้นท์ ตรวจสอบงานเบื้องหลัง”) ; งานพื้นหลัง วิ่ง ( "site_RoutineTasks.RecordInRegistrationJournal", อาร์เรย์ของพารามิเตอร์) ; สิ้นสุดขั้นตอน &บนขั้นตอนไคลเอ็นต์ เขียน JR (คำสั่ง) เขียน JR บนเซิร์ฟเวอร์ () ; สิ้นสุดขั้นตอน

เริ่มงานพื้นหลังโดยใช้วิธีการ วิ่ง()
ผู้จัดการงานพื้นหลัง

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

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

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

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

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

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

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

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

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

รูปที่ 2

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

รูปที่ 3

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

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

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

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

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

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

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

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

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

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

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

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

รูปที่ 4

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

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

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

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

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

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

หากต้องการแก้ไขงานประจำและงานเบื้องหลัง ในแท็บการดูแลระบบ ให้เลือก “งานประจำและงานเบื้องหลัง” ทางด้านซ้าย รายการงานที่มีอยู่ สถานะ กำหนดการ และข้อมูลอื่น ๆ จะปรากฏขึ้น

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

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

กำลังโหลดตัวแยกประเภทธนาคาร - วันอาทิตย์ 4:30 น
กำลังโหลดอัตราสกุลเงิน - ทุกวัน 07:00 น
การแยกข้อความ - ทุกวัน 6:00 น.
แลกเปลี่ยนข้อความระหว่างบัญชีการจัดการเอกสาร - ทุกวัน ทุกๆ 10800 วินาที
มีการอัพเดทหน่วยทุกวัน ตั้งแต่เวลา 05:00:00 น. วันละครั้ง
อัปเดตงานนักบัญชี - ทุกวัน ตั้งแต่เวลา 06:30:00 น. วันละครั้ง
อัปเดตดัชนี PPD (ค้นหาข้อความแบบเต็ม) - ทุกวัน ทุกๆ 10800 วินาที
สร้างหน่วยใหม่ - ทุกวันตามวันในสัปดาห์ [วันเสาร์]; ตั้งแต่เวลา 03:00:00 น. วันละครั้ง
การคำนวณค่าปัจจุบันของวันที่สัมพันธ์ของการห้ามการเปลี่ยนแปลง - ทุกวัน ตั้งแต่เวลา 07:00:00 น. วันละครั้ง
ผสานดัชนี PPD (ค้นหาข้อความแบบเต็ม) - ทุกวัน ตั้งแต่เวลา 04:00:00 น. วันละครั้ง
การลบข้อมูลการซิงโครไนซ์ที่ไม่เกี่ยวข้อง - ทุกวัน ตั้งแต่เวลา 03:30:00 น. วันละครั้ง
การกำหนดระยะเวลาสำหรับผลรวมที่คำนวณได้ - ทุกวันที่ 5 ของเดือน ตั้งแต่เวลา 01:00:00 น. วันละครั้ง

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

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

ก่อนอื่น เรามาทำความเข้าใจกันก่อนว่าพวกเขาหมายถึงอะไรและความแตกต่างคืออะไร:

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

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

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

การตั้งค่าคุณสมบัติ

มาดูพารามิเตอร์ที่สำคัญที่สุดที่ต้องกรอกคุณสมบัติกัน

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

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

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

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

การบล็อกงานที่กำหนดเวลาไว้

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

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

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

งานเบื้องหลังและกำหนดเวลาในโหมดไฟล์

ในโหมดนี้ การตั้งค่าและการเริ่มงานเหล่านี้จะยากกว่ามากในการจัดระเบียบ บ่อยครั้งที่มีการสร้างบัญชีเพิ่มเติม ซึ่งเซสชันจะเปิดอยู่เสมอ

ในกรณีนี้ งานประจำจะถูกเปิดใช้งานโดยใช้วิธี “RunTaskProcessing()”

คุณยังสามารถใช้โครงสร้างต่อไปนี้:

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

การติดตามข้อผิดพลาดในงานเบื้องหลัง

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

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