งานประจำ 1s 8.2 ไม่ทำงาน งานประจำและเบื้องหลัง (1Cv8) การสร้างข้อมูลเมตาสำหรับงานประจำ

กลไกงานเป็นหนึ่งในเครื่องมือการดูแลระบบ 1C ประกอบด้วย:

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

คำถาม 09.59 ของการสอบ 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม สำเนาของงานประจำ:

  1. สามารถสร้างโดยทางโปรแกรมได้
  2. สามารถสร้างได้ในรูปแบบของรายการสามารถเข้าถึงได้ผ่านคำสั่งเมนูหลักของโปรแกรม ("การทำงาน/งานประจำ")
  3. มีเพียงอินสแตนซ์เดียวเท่านั้นที่ถูกสร้างขึ้นเสมอ (เมื่อมีการสร้างออบเจ็กต์การกำหนดค่าที่เกี่ยวข้อง)
  4. กำหนดเฉพาะในโหมดการกำหนดค่าบนแท็บอื่น ๆ โดยใช้ปุ่ม "องค์ประกอบ"
  5. คำตอบที่ 1 และ 2 ถูกต้อง
คำตอบที่ถูกต้องคือคำตอบแรก หากงานที่กำหนดเวลาไว้ล่วงหน้า (รูปที่) งานจะถูกสร้างขึ้นเป็นสำเนาเดียวพร้อมกำหนดเวลาที่ระบุในตัวกำหนดค่า อินสแตนซ์ของงานที่ไม่ได้กำหนดไว้ล่วงหน้าจะปรากฏขึ้นตามกำหนดเวลาที่ระบุในโหมดองค์กรโดยทางโปรแกรม
คำถาม 09.60 ของการสอบ 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม จำนวนงานรูทีนที่ทำงานพร้อมกันสามารถเป็นได้:
  1. ใครก็ได้โดยไม่มีข้อจำกัด
  2. หมายเลขใดๆ ก็ตาม แต่สองงานที่มีคีย์และชื่อเมธอดเดียวกันจะไม่ถูกดำเนินการ
  3. ปริมาณใดๆ ก็ตาม แต่งานสองงานที่มีคีย์และชื่อเดียวกันจะไม่ถูกดำเนินการ
  4. ตัวเลขใดๆ ก็ได้ แต่จะไม่ดำเนินการสองงานด้วยคีย์เดียวกันและเชื่อมโยงกับออบเจ็กต์ข้อมูลเมตาเดียวกัน
คำตอบที่ถูกต้องคือหก คีย์เป็นคุณสมบัติของงานประจำที่ช่วยให้คุณสามารถจัดกลุ่มงานประเภทเดียวกันได้หลายงาน สามารถเริ่มงานได้เพียงงานเดียวที่มีค่าคีย์เดียวในแต่ละครั้ง (ไม่นับค่าว่าง) นอกจากนี้ จะมีการดำเนินการงานรีจิสทรีเพียงงานเดียวบนออบเจ็กต์ที่ระบุในแต่ละครั้ง เพื่อหลีกเลี่ยงการชนกัน
คำถาม 09.62 ของการสอบ 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม ในฐานะที่เป็นวิธีการมอบหมายงานประจำ สามารถใช้ขั้นตอนต่อไปนี้ได้:
  1. ไม่ควรมีพารามิเตอร์
  2. สามารถมีได้เพียงพารามิเตอร์เดียวเท่านั้น (รายการค่า)
  3. สามารถมีได้เพียงพารามิเตอร์เดียวเท่านั้น (โครงสร้าง)
  4. สามารถมีได้เพียงพารามิเตอร์เดียวเท่านั้น (อาร์เรย์)
  5. สามารถมีพารามิเตอร์จำนวนเท่าใดก็ได้
คำตอบที่ถูกต้องคือข้อที่ห้า จำนวนพารามิเตอร์ของวิธีการงานประจำสอดคล้องกับจำนวนพารามิเตอร์ของงานประจำเอง
คำถาม 09.63 ของการสอบ 1C: Platform Professional ในการสร้างงานประจำ ผู้ใช้จะต้องมี:
  1. สิทธิ์ของผู้ดูแลระบบ
  2. สิทธิในการใช้ ของวัตถุชิ้นนี้การกำหนดค่า (กำหนดได้ในบทบาท)
  3. สิทธิ์ในการสร้างอินสแตนซ์ใหม่ของออบเจ็กต์การกำหนดค่านี้ (กำหนดค่าได้ในบทบาท)
  4. สิทธิ์ใด ๆ วิธีการงานประจำจะถูกดำเนินการในโหมดสิทธิพิเศษ
คำตอบที่ถูกต้องคือข้อแรก เฉพาะผู้ดูแลระบบเท่านั้นที่มีสิทธิ์
คำถาม 09.64 ของการสอบ 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม หากมีการกำหนดงานประจำในตัวกำหนดค่า (ในออบเจ็กต์การกำหนดค่าที่เกี่ยวข้อง) ตามที่กำหนดไว้ล่วงหน้า ก็เป็นเรื่องปกติสำหรับงานนั้น (เลือกคำตอบที่สมบูรณ์ที่สุด):
  1. เป็นไปไม่ได้ที่จะสร้างอินสแตนซ์ที่ไม่ได้กำหนดไว้ล่วงหน้าของงานรูทีนโดยเชื่อมโยงกับออบเจ็กต์ข้อมูลเมตาของงานรูทีนที่กำหนดไว้ล่วงหน้า
  2. อินสแตนซ์ที่กำหนดไว้ล่วงหน้าของงานที่กำหนดเวลาไว้ไม่สามารถทำเครื่องหมายเพื่อลบและลบได้
  3. เฉพาะอินสแตนซ์ของงานประจำที่กำหนดไว้ล่วงหน้าเท่านั้นที่จะถูกเก็บไว้ในฐานข้อมูล อินสแตนซ์ที่ไม่ได้กำหนดไว้ล่วงหน้าเป็นอ็อบเจ็กต์เซสชันและไม่ได้จัดเก็บไว้ในฐานข้อมูล
  4. คำตอบที่ 1 และ 2 ถูกต้อง
  5. คำตอบที่ 2 และ 3 ถูกต้อง
  6. คำตอบที่ถูกต้อง 1, 2, 3
คำตอบที่ถูกต้องคือคำตอบที่สอง อินสแตนซ์ที่กำหนดไว้ล่วงหน้าของงานที่กำหนดเวลาไว้สามารถเปลี่ยนแปลงได้ แต่ไม่สามารถลบได้ พวกเขาจะพร้อมใช้งานในรายการเทมเพลตเสมอ:
คำถาม 09.67 ของการสอบ 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม หากใช้ฟังก์ชันเป็นวิธีงานประจำ ดังนั้น:
  1. ค่าที่ส่งคืนของฟังก์ชันจะถูกละเว้น
  2. มีข้อผิดพลาดเกิดขึ้นเมื่อพยายามดำเนินงาน
  3. ระบบจะรอการดำเนินการของงานนี้ (การดำเนินการจะไม่เกิดขึ้นแบบอะซิงโครนัส)
  4. ค่าจะถูกส่งกลับไปยังพารามิเตอร์ที่เกี่ยวข้องของงานที่กำหนดเวลาไว้
คำตอบที่ถูกต้องคือคำตอบแรก
คำถาม 09.61 ของการสอบ 1C: Platform Professional งานประจำและงานเบื้องหลังจะเกี่ยวข้องกันได้อย่างไร?
  1. งานที่กำหนดเวลาไว้สามารถสร้างงานเบื้องหลังได้
  2. งานประจำจำเป็นต้องสร้างงานเบื้องหลัง
  3. งานเบื้องหลังจำเป็นต้องสร้างงานที่กำหนดเวลาไว้
  4. ไม่มีการเชื่อมต่อ
คำตอบที่ถูกต้องคือคำตอบที่สอง - งานเบื้องหลังคือออบเจ็กต์ที่สร้างโดยงานประจำ และจะต้องสร้างขึ้นมา ไม่เช่นนั้น งานประจำจะสูญเสียความหมายไป
คำถาม 09.65 ของการสอบ 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม เพื่อให้มั่นใจถึงการดำเนินงานของงานประจำและงานเบื้องหลัง คุณต้อง:
  1. ความพร้อมใช้งานของ 1C:Enterprise เปิดตัวด้วยการตั้งค่าสถานะ "Scheduler" เมื่อเริ่มต้น
  2. ความพร้อมใช้งานของ 1C: การเปิดตัว Enterprise ด้วยวิธีระบบที่เกี่ยวข้องซึ่งดำเนินการเป็นระยะ
  3. การมีอยู่ของการเปิดตัว 1C: Enterprise ด้วยวิธีการของระบบที่เกี่ยวข้องซึ่งดำเนินการเป็นระยะ ๆ (แต่เฉพาะในเวอร์ชันไฟล์ของการดำเนินการระบบ)
  4. ในทั้งเวอร์ชันไฟล์และไคลเอ็นต์-เซิร์ฟเวอร์ ไม่จำเป็นต้องเปิดใช้อินสแตนซ์ 1C:Enterprise
ในทางปฏิบัติ คำตอบที่ถูกต้องคือข้อที่สาม ในงานเวอร์ชันไคลเอ็นต์-เซิร์ฟเวอร์ งานที่กำหนดเวลาไว้จะถูกเปิดใช้งานโดยตัวจัดการคลัสเตอร์ ดังนั้นถึงแม้ว่าด้วย ฐานข้อมูลไม่มีการสร้างการเชื่อมต่อไคลเอนต์ งานประจำจะถูกดำเนินการ (โดยที่ไม่ต้องห้ามสำหรับฐานข้อมูลเฉพาะ) ในเวอร์ชันไฟล์ของงาน หากต้องการเรียกใช้งานรูทีนโดยอัตโนมัติ คุณต้องมีการเชื่อมต่อไคลเอ็นต์เฉพาะที่ใช้เป็นตัวกำหนดเวลางาน การเชื่อมต่อนี้จะต้องเรียกใช้กระบวนการรอที่เรียกเมธอดภาษาที่มีอยู่แล้วภายในเป็นระยะๆ ExecuteJobProcessing()
ตามคำตอบ คำตอบที่ถูกต้องคือที่สี่
คำถาม 09.57 ของการสอบ 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม งานพื้นหลังช่วยให้คุณ:
  1. ดำเนินการตามขั้นตอนตามกำหนดเวลา
  2. ดำเนินการตามขั้นตอนแบบอะซิงโครนัส
  3. รีสตาร์ทในกรณีที่มีการยุติที่ผิดปกติ
  4. คำตอบที่ 1 และ 2 ถูกต้อง
  5. คำตอบที่ 2 และ 3 ถูกต้อง
  6. คำตอบที่ถูกต้อง 1, 2, 3
คำตอบที่ถูกต้องคือคำตอบที่สอง แบบอะซิงโครนัสหมายถึงโดยไม่ต้องรอให้ขั้นตอนเสร็จสิ้น
คำถาม 09.58 ของการสอบ 1C: ผู้เชี่ยวชาญด้านแพลตฟอร์ม จำนวนงานพื้นหลังที่ทำงานพร้อมกันอาจเป็น:
  1. ใครก็ได้โดยไม่มีข้อจำกัด
  2. เพียงหนึ่งงานต่อฐานข้อมูล
  3. เพียงหนึ่งงานต่อเซสชันผู้ใช้
  4. ตัวเลขใดๆ ก็ได้ แต่คุณไม่สามารถรันสองงานด้วยชื่อคีย์และเมธอดเดียวกันได้
  5. ปริมาณเท่าใดก็ได้ แต่คุณไม่สามารถรันสองงานด้วยคีย์และชื่อเดียวกันได้
  6. ตัวเลขใดๆ ก็ได้ แต่คุณไม่สามารถรันสองงานด้วยคีย์เดียวกันและเชื่อมโยงกับออบเจ็กต์ข้อมูลเมตาเดียวกันได้
คำตอบที่ถูกต้องคือที่สี่
คำถาม 09.66 ของการสอบ 1C: Platform Professional งานพื้นหลังที่เสร็จสมบูรณ์:
  1. บันทึกไว้ในฐานข้อมูล
  2. เป็นวัตถุเซสชันที่เก็บไว้เป็นระยะเวลาหนึ่ง (ไม่ได้บันทึกไว้ในฐานข้อมูล)
  3. จะไม่ถูกจัดเก็บในรูปแบบใดๆ
คำตอบที่ถูกต้องคือหมายเลขหก - งานพื้นหลังคือออบเจ็กต์ภาษาในตัวที่มีอยู่เฉพาะในช่วงระยะเวลาของเซสชันเท่านั้น

การจัดการงานประจำของฐานข้อมูล 1C จากตัวอัพเดต

2018-11-20T15:18:30+00:00

ในบันทึกนี้ เราจะพูดถึงความสามารถของตัวอัปเดตในการจัดการงานประจำในฐานข้อมูล

ก่อนอื่น ในรายการ "เพิ่มเติม" -> "จัดการงานประจำ...":

ในเมนูบริบทของฐานข้อมูลที่เลือก (หรือกลุ่มฐานข้อมูล):

และสุดท้ายในเทมเพลตสำหรับสคริปต์แบบแบตช์ (ซึ่งช่วยให้คุณสามารถดำเนินการกับงานประจำจากสคริปต์ตามกำหนดเวลา):

นี่คือลักษณะกล่องโต้ตอบสำหรับจัดการงานประจำในฐานข้อมูล:

มันช่วยแก้ปัญหาอะไรได้บ้าง กลุ่มที่ถูกต้องฐาน (หรือฐานเดียว)?

การเลือกงานประจำ

โปรดทราบว่าคุณสามารถเลือกรายการงานประจำในการดำเนินการหลายอย่างด้านล่าง:

แต่ในกล่องโต้ตอบการเลือกอาจไม่มีงานประจำสำหรับฐานข้อมูลของคุณโดยเฉพาะ:

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

ชื่อสำหรับงานประจำดังกล่าวสามารถนำมาจากรายงานงานประจำทั้งหมดได้โดยตรง (จะมีการกล่าวถึงในส่วนนี้)

แสดงสถานะปัจจุบันของงาน

ในการดำเนินการนี้ ไปที่แท็บ "ถอนเงิน" และคลิกปุ่ม "ถอนเงิน...":

ในผลลัพธ์เราจะเห็น:

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

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

ปิดงานทั้งหมดหรือบางส่วน

โดยไปที่แท็บ "ปิด":

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

นี่คือผลลัพธ์สำหรับหนึ่งฐาน (คลิกเพื่อขยาย)

รวมงานทั้งหมดหรือบางส่วน

โดยไปที่แท็บ "เปิดใช้งาน":

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

โปรดทราบว่าธง "Make" มีอยู่ในแท็บนี้ สำเนาสำรองฐาน" ที่มุมซ้ายล่าง

นี่คือผลลัพธ์สำหรับหนึ่งฐาน (คลิกเพื่อขยาย)

เราจัดการการเปิดตัวงานที่กำหนดเวลาไว้บนเซิร์ฟเวอร์ 1C

โดยไปที่แท็บ "เซิร์ฟเวอร์ 1C":

เลือก "บล็อก" หรือ "เลิกบล็อก" แล้วคลิกปุ่ม "เรียกใช้"

การตั้งค่าตารางงาน

แต่จะเป็นอย่างไรหากเราต้องจัดตารางเวลาในการเริ่มงาน (หรือกลุ่มงาน) ในฐานข้อมูลจำนวนมากพร้อมกัน

โดยไปที่แท็บ "ตั้งค่ากำหนดการ":

เราตั้งค่ากำหนดการ (บทสนทนาและความสามารถของมันตรงกับกำหนดการมาตรฐานใน 1C อย่างสมบูรณ์) และคลิก "ปรับแต่ง..."

เราเปิดตัวงานเพื่อดำเนินการ

โดยไปที่แท็บ "เรียกใช้":

เลือกงานที่ต้องการแล้วคลิกปุ่ม "เรียกใช้":

บันทึกการตั้งค่างานลงในไฟล์ภายนอก

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

ในการดำเนินการนี้ ขั้นแรกเราจะอัปโหลดการตั้งค่างานทั้งหมดในฐานข้อมูลที่เหมาะสมที่สุดไปยังไฟล์ภายนอก:

การคืนค่าการตั้งค่างานจากไฟล์ภายนอก

จากนั้นเราจะโหลดไฟล์นี้พร้อมการตั้งค่างานลงในฐานข้อมูลอื่นทั้งหมด:

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

คำพรากจากกัน

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

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

สร้างงาน

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

งานประจำไม่สามารถถูกแทนที่ได้:

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

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

มาดูหน้าต่างคุณสมบัติของมันกันดีกว่า (รูปที่ 2):
รูปที่ 2

  1. ชื่อ คำพ้องความหมาย และความคิดเห็น - กฎและหลักการในการกรอกข้อมูลในฟิลด์เหล่านี้จะคล้ายกันสำหรับออบเจ็กต์การกำหนดค่าทั้งหมด และไม่จำเป็นต้องอธิบายอีกครั้ง
  2. ชื่อวิธีการ – ขั้นตอนของโมดูลทั่วไปที่อธิบายอัลกอริทึมที่ต้องการอย่างถูกต้องที่สุด (การคลิกที่ปุ่มเลือกจะเปิดขั้นตอนที่มีอยู่ ซึ่งการแสดงประกอบด้วยชื่อของโมดูลทั่วไปและชื่อของขั้นตอนในคอลัมน์ต่างๆ ของโต๊ะ);
  3. คีย์ - กำหนดความเป็นเอกลักษณ์ของงานที่กำหนดเวลาไว้ไม่มากนัก แต่กำหนดความเป็นเอกลักษณ์ของกระบวนการพื้นหลังที่เปิดใช้ตามงาน มีการจำกัดความยาว
  4. กำหนดการ – เราจะอุทิศย่อหน้าแยกต่างหากของบทความของเราเพื่ออธิบายองค์ประกอบนี้
  5. การใช้งาน – การทำเครื่องหมายที่ช่องนี้จะกำหนดกิจกรรมของงาน TRUE หมายความว่างานจะเริ่มและดำเนินการตามกำหนดเวลา
  6. กำหนดไว้ล่วงหน้า - หากองค์ประกอบมีช่องทำเครื่องหมายนี้ งานเหล่านี้จะไม่สามารถลบได้ งานเหล่านี้จะถูกสร้างขึ้นโดยอัตโนมัติเมื่อมีการบันทึกการกำหนดค่าลงในฐานข้อมูล
  7. จำนวนการทำซ้ำ - หากมีข้อยกเว้นเกิดขึ้นระหว่างการดำเนินการ จะมีการรีสตาร์ท เพื่อไม่ให้เกิดการวนซ้ำไม่รู้จบ โปรแกรมจะจำกัดจำนวนการรีสตาร์ท
  8. ช่วงเวลาลองใหม่ - เวลาเป็นวินาทีระหว่างการรีสตาร์ทงานที่เสร็จสมบูรณ์อย่างผิดปกติ

มาดูกำหนดการกันดีกว่า

กำหนดการงานประจำ

รูปที่ 3

ก่อนอื่นคุณควรใส่ใจกับ ส่วนล่าง windows นั่นคือที่ที่มันแสดง รายละเอียดข้อมูลโดยแจกแจงความถี่และเวลาที่จะดำเนินการ

แท็บ "ทั่วไป":

  • วันที่เริ่มงาน;
  • วันที่สิ้นสุดการประมวลผล
  • ความถี่ของการทำซ้ำงาน

หากไม่มีการระบุวันที่บนแท็บนี้ จะไม่มีการกำหนดกำหนดเวลาสำหรับงาน

แท็บ “รายวัน” (รูปที่ 4)
รูปที่ 4

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

แท็บ "รายวัน" และ "รายสัปดาห์" มีข้อมูลสำหรับช่วงเวลาที่เกี่ยวข้อง

คุณสมบัติของการดำเนินงาน

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

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

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

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

นอกจากนี้ ในการส่งมอบ 1C มาตรฐาน ยังเป็นไปได้ที่จะจัดการงานที่กำหนดเวลาไว้ได้โดยตรงจากโปรแกรม โดยไม่ต้องไปที่ "Configurator" ในการกำหนดค่า “ZUP” เวอร์ชัน 3.1.3.223 คุณสามารถเปิดแบบฟอร์มการจัดการได้จากเมนู การดูแลระบบ -> การบำรุงรักษา -> การดำเนินงานประจำ -> งานประจำและพื้นหลัง (รูปที่ 5)
รูปที่ 5

แบบฟอร์มที่เปิดขึ้นมีอินเทอร์เฟซที่ใช้งานง่ายและช่วยให้คุณ:


คุณยังสามารถเริ่มงานได้โดยตรงจากแบบฟอร์ม

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

มาสร้างงานประจำ “ดำเนินการประมวลผล” กันดีกว่า

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

มากำหนดขั้นตอนที่จะถูกทริกเกอร์เมื่อมีการเปิดตัวงานประจำ:โมดูลของ RoutineTasks.RoutineTaskExecutionProcessing.

ขั้นตอนนั้นดูเหมือนว่า:

ขั้นตอนการส่งออก RoutineTaskExecutionProcessing (คีย์)

พารามิเตอร์ของ RoutineTasks.PerformProcessingWithParameters (คีย์);

สิ้นสุดขั้นตอน

เราสร้างหนังสืออ้างอิงสำหรับงานประจำ

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

หนังสืออ้างอิง “พารามิเตอร์ของงานที่กำหนดเวลาไว้” :

ข้อกำหนด :

· รหัสก่อนเปิดตัว- สตริงไม่จำกัด - โค้ดในภาษา 1C ที่ต้องดำเนินการก่อนเปิดตัว

· กำลังประมวลผลจากการกำหนดค่า - บรรทัด (100) - ตัวระบุการประมวลผลจากการกำหนดค่า

· กำลังประมวลผลจากไดเร็กทอรี - บรรทัด (100) - ลิงก์ไปยังองค์ประกอบไดเร็กทอรี "การประมวลผลภายนอก" หากมีอยู่ในการกำหนดค่า

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

· เปิดตัวรหัส- - รหัสไม่จำกัดบรรทัดในภาษา 1C ที่จะดำเนินการเมื่อมีการเปิดตัวงานที่กำหนดเวลาไว้

มาสร้างรูปร่างขององค์ประกอบกัน :

โดยคลิกที่ “สร้าง Reg. งาน" งานประจำที่มีรหัสคีย์ถูกสร้างขึ้นโดยทางโปรแกรม:

ขั้นตอน BasicActionsFormCreateReglTask ​​(ปุ่ม)

งานตัวแปร

คีย์ = AbbrLP (รหัส);

งาน = RoutineTasks.CreateRoutineTask ("PerformProcessing");

Task.Name = คีย์;

Task.Key = คีย์;

พารามิเตอร์ = อาร์เรย์ใหม่ ();

พารามิเตอร์เพิ่ม (คีย์);

Task.Parameters = พารามิเตอร์;

งาน.เขียน();

สิ้นสุดขั้นตอน

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

งานประจำแต่ละงานที่เราสร้างมีคีย์:

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

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

ขึ้นอยู่กับค่าที่เลือกของรายละเอียด รหัสในภาษา 1C จะทำงานหรือการประมวลผลจากการกำหนดค่าจะเริ่มขึ้น หรือการประมวลผลจากหนังสืออ้างอิง "การประมวลผลภายนอก" มาตรฐานจะเริ่มขึ้น

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

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

กำหนดการงานประจำถูกสร้างขึ้นโดยใช้ไฮเปอร์ลิงก์ "กำหนดการ" จากแบบฟอร์มงานประจำ คุณสามารถใช้การประมวลผล "คอนโซลงานประจำ"

งานบางอย่างในการจัดการเอกสารและการบัญชีอาจจำเป็นต้องดำเนินการเป็นระยะ ตัวอย่างเช่นในวันที่ยี่สิบ หรือรายวัน

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

งานดังกล่าวเรียกว่าการควบคุมซึ่งก็คือดำเนินการตามข้อบังคับ

ในด้านไอที การตรวจสอบมักดำเนินการในลักษณะที่ได้รับการควบคุม

มันคุ้นเคย ผู้ดูแลระบบ- มี โปรแกรมพิเศษซึ่งจะตรวจสอบประสิทธิภาพของเซิร์ฟเวอร์และโครงสร้างพื้นฐานเครือข่ายเป็นระยะๆ และรายงาน SMS หรือ โดยอีเมลผู้ดูแลระบบ

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

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

วันนี้เราจะมาพูดถึงพวกเขากัน

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

งานที่กำหนดเวลาไว้ 1C คืองานที่อนุญาตให้คุณดำเนินการตามที่ทำ แต่เป็นไปตามกำหนดเวลา

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

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

การดำเนินการตามภารกิจ 1C ตามปกติสามารถปิดใช้งานได้ชั่วคราว - เข้า

การเพิ่มงานประจำ 1C

งานประจำ 1C จะอยู่ในการกำหนดค่าในสาขางานทั่วไป/งานประจำ 1C มาเพิ่มงานด้านกฎระเบียบ 1C ใหม่และระบุชื่อ

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

คุณสมบัติงานที่กำหนดเวลาไว้ 1C - ชื่องาน - กำหนดชื่อที่งานจะปรากฏในเครื่องมือการจัดการงาน

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

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

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

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

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

การจัดการและการตรวจสอบงานประจำ 1C

ในการจัดการงาน 1C ตามปกติ จะมีคอนโซลงานการประมวลผลมาตรฐานพิเศษ นอกจากนี้ยังสามารถพบได้ที่

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

การใช้การประมวลผลคอนโซลงานคุณสามารถ:

  • เปิด/ปิดการทำงานของงาน 1C ตามปกติ
  • กำหนด/เปลี่ยนแปลงกำหนดการของงาน 1C ที่กำหนดเวลาไว้ (และพารามิเตอร์อื่นๆ)
  • ระบุผู้ใช้ 1C ที่จะดำเนินงานประจำ 1C แทน
  • ดูว่างานใดเสร็จสมบูรณ์เมื่อใดและด้วยผลลัพธ์ใด ข้อผิดพลาดในการทำงาน 1C ให้เสร็จสิ้น
  • ปฏิบัติงาน

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

หากคุณใช้เซิร์ฟเวอร์ 1C สถานการณ์ต่อไปนี้จะเกิดขึ้น:

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

ในขณะที่งานประจำของ 1C ดำเนินงานที่เกี่ยวข้องกับฐานข้อมูลเท่านั้น แต่ก็ไม่มีอะไรอยู่ในนั้น

อย่างไรก็ตาม งานประจำของ 1C มักจะสามารถบันทึกไฟล์ ข้อมูลใดๆ ไปยังฐานข้อมูลอื่น ทำการแลกเปลี่ยน และส่งอีเมลได้

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

งานประจำ 1C สำหรับสำเนาของฐานข้อมูลการทำงานจะต้องปิดการใช้งานใน.

การปฏิบัติตามและการไม่ปฏิบัติตามงานด้านกฎระเบียบ 1C

เมื่อสร้างงาน 1C ประจำคุณต้องจำไว้ว่า:

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

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

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

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

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