การคำนวณและการพึ่งพาผลลัพธ์ การคำนวณเป็นระยะที่ซับซ้อน

ออบเจ็กต์ใหม่ "แผนประเภทการคำนวณ" เป็นอะนาล็อกที่ห่างไกลจากประเภทการคำนวณใน 7.7 ประเภทการคำนวณคือออบเจ็กต์ข้อมูล ไม่ใช่ออบเจ็กต์ข้อมูลเมตา อาจมีประเภทการคำนวณที่กำหนดไว้ล่วงหน้า

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

วัตถุใหม่ "การลงทะเบียนการคำนวณ" - อะนาล็อกระยะไกลของบันทึกการคำนวณใน 7.7

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

ภาษาในตัว

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

มีการแนะนำชนิดข้อมูลและตัวอักษรใหม่ เช่น ตัวอักษร Undefinition, Null, True และ False (ชนิดข้อมูลบูลีน) ประเภทวันที่รวมถึงเวลา

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

มีการแนะนำโมดูลทั่วไปซึ่งมีเพียงส่วนของขั้นตอนและฟังก์ชันเท่านั้น ขั้นตอนและฟังก์ชันของโมดูลทั่วไปที่ประกาศด้วยคีย์เวิร์ด "ส่งออก" มีอยู่ในการกำหนดค่า

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

ฟังก์ชันการทำงานของส่วนประกอบภายนอก v7plus.dll รวมอยู่ในแพลตฟอร์มในรูปแบบของออบเจ็กต์ "Mail", "ข้อมูลระบบ", "การเชื่อมต่ออินเทอร์เน็ต", "การเชื่อมต่อ FTP เป็นต้น มีเครื่องมือสำหรับการทำงานกับเอกสาร XML เช่นกัน สำหรับการอ่านและเขียนไฟล์ข้อความขนาดใหญ่ตามลำดับ

ฉันสงสัยว่าเมื่อไหร่ฉันจะยังอ่านหนังสือเล่มนี้? 8.3 จะถูกปล่อยออกมาแล้ว)))

การคำนวณเป็นระยะที่ซับซ้อนคืออะไร?

มาดูคำศัพท์กัน คำว่า "การคำนวณ" - ฉันหวังว่าจะชัดเจนว่าจำเป็นต้องคำนวณตัวเลขบางตัว “เป็นระยะ” หมายความว่าจะต้องดำเนินการเป็นระยะๆ ในช่วงเวลาหนึ่ง (ซึ่งเรียกว่า “ช่วง” ตามที่ผู้อ่านอาจคาดเดาได้) ความยากลำบากคืออะไร? หนังสือเล่มนี้ให้ตัวอย่างเงินเดือนของผู้หญิงคนหนึ่ง มีการคำนวณเดือนละครั้ง (ตามกฎ) และความยากลำบากอยู่ที่ว่าเงินเดือนประกอบด้วยบางส่วน เช่น เงินเดือน โบนัส โบนัสครั้งเดียว ลาป่วย เป็นต้น และแต่ละส่วนเหล่านี้จะถูกคำนวณตามอัลกอริทึมของตัวเอง เช่น เงินเดือนคือต้นทุนของชั่วโมงมาตรฐานคูณด้วยจำนวนชั่วโมงทำงานลบภาษี โบนัสคือเปอร์เซ็นต์หนึ่งของเงินเดือน เป็นต้น

ประเภทของการคำนวณฐานคืออะไร?

ประเภทของการคำนวณ - ส่วนใดส่วนหนึ่งของการคำนวณที่ซับซ้อนเป็นระยะ เช่น โบนัส

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

อะไรคือความแตกต่างระหว่างระยะเวลาพื้นฐาน ระยะเวลาจริง และระยะเวลาที่มีผลบังคับใช้?

ระยะเวลาที่ถูกต้อง – ที่คุณระบุ นั่นคือ ข้อมูลที่ถูกต้องสำหรับระยะเวลาที่ระบุ

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

ช่วงฐาน – ช่วงที่มีการวิเคราะห์ผลลัพธ์ของการคำนวณอื่นๆ ที่ส่งผลต่อการคำนวณช่วงฐาน

อันที่จริงฉันไม่เข้าใจคำถามนี้โดยเฉพาะ การกระทำที่สมดุลทางวาจาบางอย่างโดยสุจริต

การพึ่งพาช่วงฐานคืออะไร?

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

การจองช่วงระยะเวลาคืออะไร?

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

จุดประสงค์ของออบเจ็กต์การกำหนดค่าแผนประเภทการคำนวณคืออะไร

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

ในระหว่างการดำเนินการ ผู้ใช้เองสามารถเพิ่มการคำนวณประเภทใหม่ได้

คุณสมบัติหลักของแผนประเภทการคำนวณคืออะไร?

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

การขึ้นอยู่กับฐาน – จะมีชนิดการคำนวณหรือไม่ขึ้นอยู่กับรอบระยะเวลาฐาน

ขึ้นอยู่กับระยะเวลาของการดำเนินการ - บันทึกเหล่านั้นจะถูกเลือกซึ่งพบจุดตัดของระยะเวลาจริงของการดำเนินการและระยะเวลาฐานที่ระบุ

ขึ้นอยู่กับระยะเวลาการลงทะเบียน - งานจะดำเนินการกับข้อมูลที่มีการป้อนข้อมูลในช่องระยะเวลาการลงทะเบียนภายในระยะเวลาฐาน

อะไรคือความแตกต่างระหว่างประเภทการคำนวณพื้นฐาน แบบยึดถือ และแบบนำหน้า?

พื้นฐาน – ควรใช้ผลลัพธ์ของการคำนวณประเภทพื้นฐานสำหรับการคำนวณใหม่

การแทนที่ – แทนที่การคำนวณตามระยะเวลาที่มีผลบังคับใช้

นำหน้า – หากผลลัพธ์ของการคำนวณนำมีการเปลี่ยนแปลง การคำนวณทั้งหมดจะต้องถูกคำนวณใหม่

จะสร้างแผนสำหรับประเภทการคำนวณได้อย่างไร?

เช่นเดียวกับทุกอย่างใน 1C! ในแผนผังการกำหนดค่า คลิกขวา

ออบเจ็กต์การกำหนดค่าการลงทะเบียนการคำนวณคืออะไร

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

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

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

ตัวอย่างเช่น เราจะใช้การกำหนดค่าเฟรมที่ติดตั้งระหว่างการสอบ

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

การคำนวณคืออะไร

โดยพื้นฐานแล้ว ผลิตภัณฑ์บัญชีเงินเดือนขั้นสุดท้ายคือชุดของรายการลงทะเบียนบัญชีเงินเดือนของแบบฟอร์ม:

พนักงาน

ระยะเวลา

ประเภทของการคำนวณ

ผลลัพธ์

ข้อมูล

ความคิดเห็น

การวัด

เป็นทางการ

เป็นทางการ

อุปกรณ์ประกอบฉาก

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

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

แต่ละรายการในทะเบียนการชำระเงินเกี่ยวข้องกับประเภทการชำระเงินและช่วงเวลาที่เฉพาะเจาะจง

ประเภทของการคำนวณ

แต่ละเรกคอร์ดของประเภทการคำนวณมีคุณลักษณะการบริการ - ประเภทการคำนวณ

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

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

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

ประเภทของการคำนวณ

คำอธิบาย

ตัวอย่าง

ตามงวดฐาน

ผลลัพธ์ของการคำนวณงวดที่ขึ้นต่อกันขึ้นอยู่กับผลลัพธ์ของงวดฐาน ถ้าผลลัพธ์ของรอบระยะเวลาฐานเปลี่ยนแปลง ต้องคำนวณผลลัพธ์ของระยะเวลาที่ขึ้นต่อกันใหม่

โบนัสขึ้นอยู่กับฐานเงินเดือนประจำงวด

เช็ดตามระยะเวลา

ระยะเวลาที่มีผลใช้ได้ของระยะเวลาที่ขึ้นต่อกันจะเข้ามาแทนที่ระยะเวลาที่มีผลใช้ได้ของรอบระยะเวลาฐาน ดังนั้นรอบระยะเวลาฐานจึงมีค่าจริง

การขาดงานส่งผลต่อระยะเวลาการได้รับเงินเดือนจริง

การคำนวณชั้นนำ

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

โบนัสขึ้นอยู่กับฐานเงินเดือน แต่ก็ขึ้นอยู่กับการขาดงานทางอ้อมด้วย

เนื่องจากอิทธิพลนี้ ระยะเวลาที่มีผลบังคับใช้ของรายการทะเบียนการชำระเงินจึงแบ่งออกเป็นสี่ช่วง:

ระยะเวลา

คำอธิบาย

ระยะเวลาการลงทะเบียน

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

ความถูกต้อง

งานจัดขึ้นในช่วงใด ได้แก่ กิจกรรมนี้อยู่ในช่วงใด

ช่วงฐาน

มีความหมายสำหรับงวดที่มีงวดฐานเท่านั้น - อธิบายช่วงของงวดฐาน

ระยะเวลาที่ถูกต้องตามจริง

หากระยะเวลาที่ใช้ได้ถูกแทนที่ด้วยการคำนวณประเภทอื่น ระยะเวลาที่ใช้ได้จริงจะประกอบด้วยหลายช่วงเวลาที่การคำนวณประเภทนี้มีผลจริง

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

แผนภูมิเวลา

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

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

มิตินั้น ที่เกี่ยวข้องกับการลงทะเบียนการคำนวณมักจะดำเนินการหมายถึง "ประเภทของกราฟ"

วันที่

ประเภทแผนภูมิ

ความหมาย

11.01.05 ศุกร์

ห้าวัน

11.01.05 ศุกร์

หกวัน

12.01.05 นั่ง

ห้าวัน

12.01.05 นั่ง

หกวัน

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

ดังนั้นเมื่อมีช่วงเวลาหนึ่ง (การดำเนินการจริง การลงทะเบียน ช่วงเวลาพื้นฐาน ฯลฯ) เราจึงสามารถรับจำนวนชั่วโมงสำหรับช่วงเวลานี้โดยอัตโนมัติตามกำหนดการ

การคำนวณใหม่

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

นี่คือสิ่งที่มีไว้เพื่อการคำนวณใหม่

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

โดยพื้นฐานแล้ว การคำนวณใหม่คือรายการของรายการทะเบียนการคำนวณที่จำเป็นต้องคำนวณใหม่

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

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

งานภาคปฏิบัติ

ทฤษฎีพอแล้ว ลองศึกษารายละเอียดในทางปฏิบัติดูครับ ลองใช้การกำหนดค่าเฟรมเป็นพื้นฐาน

การกำหนดปัญหา:

ให้โบนัสถูกกำหนดเป็นเปอร์เซ็นต์คงที่ของเงินเดือน (ลบการขาดงานและค่าเดินทาง)

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

ให้ลูกจ้างถูกเรียกเก็บเงินค่าปรับครึ่งหนึ่งของเงินเดือนตลอดระยะเวลาที่ขาดงาน

ความคืบหน้า:

การฝึกอบรมเบื้องต้น

มาสร้างแผนใหม่สำหรับประเภทการคำนวณ "หลัก"

มากำหนดประเภทของการคำนวณและการขึ้นต่อกันระหว่างกัน:

ขั้นพื้นฐาน

การแทนที่

พิธีกร

เงินเดือน

การขาดงาน, การเดินทางเพื่อธุรกิจ

รางวัล

การขาดงาน, การเดินทางเพื่อธุรกิจ

เงินเดือน การขาดงาน การเดินทางเพื่อธุรกิจ

การเดินทางเพื่อธุรกิจ

การขาดงาน

มาเพิ่มการคำนวณประเภทนี้ลงในแผนประเภทการคำนวณ "หลัก" และตั้งค่าการขึ้นต่อกันในคุณสมบัติของประเภทการคำนวณตามตาราง

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

การกำหนดค่ามีเอกสาร "บัญชีเงินเดือน" อยู่แล้ว

มีวันที่สองวันในส่วนหัว - "วันที่" และ "ระยะเวลาการลงทะเบียน" รวมถึงวันที่สอง "วันที่เริ่มต้น" และ "วันที่สิ้นสุด" ในแต่ละบรรทัด

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

เพิ่มการตั้งค่าเริ่มต้นของแอตทริบิวต์ "ข้อมูล" ให้กับโมดูลเอกสาร - เราจะป้อนเงินเดือนเริ่มต้น, ตั้งค่าระยะเวลาการลงทะเบียน, ระยะเวลาที่มีผล และระยะเวลาพื้นฐานลงไป

โมดูลเอกสารจะมีลักษณะดังนี้:

สำหรับ ให้กับแต่ละคน TechStringListจากรายการวงจร

// ลงทะเบียนการคำนวณ

การเคลื่อนไหว = การเคลื่อนไหว .การคำนวณเพิ่ม();

ความเคลื่อนไหว .สตอร์โน= เท็จ;

ความเคลื่อนไหว .ใน idCalculation = TechStringList.CalculationType;

ความเคลื่อนไหว .ระยะเวลาการดำเนินการเริ่มต้น= เริ่มต้นวัน ( TechStringList.StartDate);

ความเคลื่อนไหว .ระยะเวลาการดำเนินการสิ้นสุด= วันสิ้นสุด();

ความเคลื่อนไหว .ระยะเวลาการลงทะเบียน = ระยะเวลาการลงทะเบียน;

ความเคลื่อนไหว .BasicPeriodStart= เริ่มต้นวัน ( TechStringList.StartDate);

ความเคลื่อนไหว .BasePeriodEnd= วันสิ้นสุด ( TechStringList.วันที่สิ้นสุด);

ความเคลื่อนไหว .พนักงาน = TechStringList.พนักงาน;

ความเคลื่อนไหว .กำหนดการ = TechStringList.กราฟ;

ความเคลื่อนไหว .ผลลัพธ์ = 0;

ความเคลื่อนไหว .ข้อมูล = TechStringList.Size;

เอ็นด์ไซเคิล ;

จำเป็นต้องมีแอตทริบิวต์ Reversal เพื่อกลับรายการ (คล้ายกับเครื่องหมายลบ)

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

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

มาสร้างการคำนวณใหม่ "การคำนวณใหม่" และเพิ่มมิติ "พนักงาน" ที่เกี่ยวข้องกับมิติ "พนักงาน"

เล่นกับการคำนวณใหม่

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

เลือก

การคำนวณการคำนวณใหม่เกี่ยวกับออบเจ็กต์การคำนวณใหม่,

การคำนวณการคำนวณใหม่ ในรหัสการคำนวณ,

การคำนวณ การคำนวณใหม่ จากพนักงาน

จาก

การลงทะเบียนการคำนวณ การคำนวณ การคำนวณใหม่ยังไง การคำนวณการคำนวณใหม่

เราจะสร้างเอกสารสามฉบับ - ก่อนอื่นเราจะสะสมเงินเดือนให้กับพนักงาน A และ B พนักงาน A ทำงานตั้งแต่วันที่ 1 ถึง 31 มกราคม ส่วน B ทำงานตั้งแต่วันที่ 1 ถึง 20 มกราคม คนที่สองจะกำหนดโบนัสให้กับพนักงาน B ในช่วงระหว่างวันที่ 1 ถึง 31 มกราคม ส่วนคนที่สามจะกำหนดการขาดงานให้กับพนักงาน A ตั้งแต่วันที่ 20 ถึง 25 มกราคม

เราเล่นกับระยะเวลาที่มีผลจริง

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

เรามาสร้างคำขอและดูว่าระยะเวลาเงินเดือนของพนักงาน A แบ่งออกเป็นสองช่วงคือตั้งแต่วันที่ 1 ถึง 19 มกราคม และตั้งแต่วันที่ 26 ถึง 31 มกราคม ฉันหวังว่าคุณจะเข้าใจว่าช่วงเวลานั้นแบ่งออกเป็นสองเพราะ... การขาดงานเข้ามาแทนที่เงินเดือน

ฉันคิดว่ากลไกการทำงานของการลงทะเบียนการคำนวณเริ่มชัดเจนขึ้นต่อหน้าต่อตาเรา

มาศึกษากราฟกัน

ทีนี้ลองคำนวณเงินเดือนตามเงินเดือนของพนักงานกัน

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

เรามาตั้งค่าพนักงานที่เฉพาะเจาะจง ประเภทการคำนวณ และกำหนดเวลาในพารามิเตอร์คำขอ แล้วดูว่าผลลัพธ์จะออกมากี่ชั่วโมง

คอลัมน์ผลลัพธ์

ความหมาย

มูลค่าระยะเวลาการดำเนินการ

รายการในทะเบียนมีอายุการใช้งานกี่ชั่วโมง

มูลค่าตามจริงระยะเวลาการดำเนินการ

พนักงานทำงานจริงกี่ชั่วโมง?

ValueBasePeriod

สำหรับเงินเดือนนั้นไม่สมเหตุสมผลสำหรับโบนัส - จำนวนชั่วโมงทำงานในช่วงเวลาฐาน

ระยะเวลาการลงทะเบียนความคุ้มค่า

ระยะเวลาจดทะเบียนมีกี่ชั่วโมง (เดือน มกราคม)


คำสำคัญ: การลงทะเบียนการคำนวณ, เงินเดือน, ZUP

การแนะนำ

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

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

การคำนวณคืออะไร

โดยหลักการแล้ว ผลิตภัณฑ์สุดท้ายของการคำนวณเงินเดือนคือชุดของรายการลงทะเบียนบัญชีเงินเดือนในรูปแบบ:

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

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

แต่ละรายการในทะเบียนการชำระเงินเกี่ยวข้องกับประเภทการชำระเงินและช่วงเวลาที่เฉพาะเจาะจง

ประเภทของการคำนวณ

แต่ละเรกคอร์ดของประเภทการคำนวณมีคุณลักษณะการบริการ - ประเภทการคำนวณ

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

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

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

การคำนวณชั้นนำ

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

โบนัสขึ้นอยู่กับฐานเงินเดือน แต่ก็ขึ้นอยู่กับการขาดงานทางอ้อมด้วย

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

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

แผนภูมิเวลา

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

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




วันที่ ประเภทแผนภูมิ ความหมาย
11.01.05 ศุกร์ห้าวัน8
11.01.05 ศุกร์หกวัน8
12.01.05 สห้าวัน0
12.01.05 สหกวัน8

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

ดังนั้นเมื่อมีช่วงเวลาหนึ่ง (การดำเนินการจริง การลงทะเบียน ช่วงเวลาพื้นฐาน ฯลฯ) เราจึงสามารถรับจำนวนชั่วโมงสำหรับช่วงเวลานี้โดยอัตโนมัติตามกำหนดการ

การคำนวณใหม่

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

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

งานภาคปฏิบัติ

ทฤษฎีพอแล้ว ลองศึกษารายละเอียดในทางปฏิบัติดูครับ ลองใช้การกำหนดค่าเฟรมเป็นพื้นฐาน

การกำหนดปัญหา:

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

ให้ลูกจ้างถูกเรียกเก็บเงินค่าปรับครึ่งหนึ่งของเงินเดือนตลอดระยะเวลาที่ขาดงาน

ความคืบหน้า:

การฝึกอบรมเบื้องต้น

มาสร้างแผนใหม่สำหรับประเภทการคำนวณ "หลัก"

มากำหนดประเภทของการคำนวณและการขึ้นต่อกันระหว่างกัน:

มาเพิ่มการคำนวณประเภทนี้ลงในแผนประเภทการคำนวณ "หลัก" และตั้งค่าการขึ้นต่อกันในคุณสมบัติของประเภทการคำนวณตามตาราง

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

การกำหนดค่ามีเอกสาร "บัญชีเงินเดือน" อยู่แล้ว

มีวันที่สองวันในส่วนหัว - "วันที่" และ "ระยะเวลาการลงทะเบียน" รวมถึงวันที่สอง "วันที่เริ่มต้น" และ "วันที่สิ้นสุด" ในแต่ละบรรทัด

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

เพิ่มการตั้งค่าเริ่มต้นของแอตทริบิวต์ "ข้อมูล" ให้กับโมดูลเอกสาร - เราจะป้อนเงินเดือนเริ่มต้น, ตั้งค่าระยะเวลาการลงทะเบียน, ระยะเวลาที่มีผล และระยะเวลาพื้นฐานลงไป

โมดูลเอกสารจะมีลักษณะดังนี้:

สำหรับแต่ละ TechStringList จากรายการรอบ // ลงทะเบียนการคำนวณการเคลื่อนไหว = Movements.Calculations.Add(); Move.Reversal = เท็จ; Movement.CalculationType = TechStringList.CalculationType; Movement.ActionPeriodStart = วันเริ่มต้น (TexListList.StartDate); Movement.ActionPeriodEnd = วันสิ้นสุด (TexLineList.EndDate); การเคลื่อนไหว ระยะเวลาการลงทะเบียน = ระยะเวลาการลงทะเบียน; Movement.BasePeriodStart = วันเริ่มต้น (TexListList.StartDate); Movement.BasePeriodEnd = วันสิ้นสุด (TexListList.EndDate); Movement.Employee = TechStringList.Employee; Movement.Work Schedule = TechStringList.Graph; การเคลื่อนไหวผลลัพธ์ = 0 ; Motion.Data = TechStringList.Size; สิ้นสุดรอบ;

จำเป็นต้องใช้แอตทริบิวต์ "การกลับรายการ" เพื่อกลับรายการ (คล้ายกับเครื่องหมายลบ)

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

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

มาสร้างการคำนวณใหม่ "การคำนวณใหม่" และเพิ่มมิติ "พนักงาน" ที่เกี่ยวข้องกับมิติ "พนักงาน"

เล่นกับการคำนวณใหม่

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

เลือกการคำนวณการคำนวณใหม่วัตถุการคำนวณซ้ำการคำนวณการคำนวณใหม่ประเภทการคำนวณการคำนวณการคำนวณใหม่พนักงานจากการลงทะเบียนการคำนวณการคำนวณการคำนวณซ้ำ AS การคำนวณการคำนวณใหม่

มาสร้างเอกสารสามฉบับ - เราจะเป็นคนแรกที่จ่ายเงินเดือนให้กับพนักงาน A และ B พนักงาน A ทำงานตั้งแต่วันที่ 1 มกราคมถึง 31 มกราคม ส่วน B ทำงานตั้งแต่วันที่ 1 มกราคมถึง 20 มกราคม คนที่สองจะกำหนดโบนัสให้กับพนักงาน B ในช่วงระหว่างวันที่ 1 ถึง 31 มกราคม ส่วนคนที่สามจะกำหนดการขาดงานให้กับพนักงาน A ตั้งแต่วันที่ 20 ถึง 25 มกราคม

เล่นกับระยะเวลาที่มีผลจริง

มาสร้างแบบสอบถามใหม่ - คราวนี้เราจะเพิ่มข้อมูลจากตาราง Calculation Registers.Calculations.ActualActionPeriod

เรามาสร้างคำขอและดูว่าสำหรับพนักงาน A ระยะเวลาเงินเดือนแบ่งออกเป็นสองช่วง - ตั้งแต่วันที่ 1 ถึง 19 มกราคมและตั้งแต่วันที่ 26 ถึง 31 มกราคม ฉันหวังว่าคุณจะเข้าใจว่าช่วงเวลานั้นแบ่งออกเป็นสองเพราะ... การขาดงานเข้ามาแทนที่เงินเดือน

ฉันคิดว่ากลไกการทำงานของการลงทะเบียนการคำนวณเริ่มชัดเจนขึ้นต่อหน้าต่อตาเรา

กำลังศึกษากราฟ

ทีนี้ลองคำนวณเงินเดือนตามเงินเดือนของพนักงานกัน

มาสร้างแบบสอบถามใหม่สำหรับการลงทะเบียนการคำนวณโดยใช้ตารางเสมือนการลงทะเบียนการคำนวณ การคำนวณ ข้อมูลกราฟิก สำหรับตารางเสมือนนี้ คุณสามารถตั้งค่าพารามิเตอร์ - เงื่อนไขสำหรับการเลือกเรคคอร์ด เช่น Employee=&SelectEmployee และ Calculation Type=&Calculation Type และ Chart=&Graphic Type
เรามาตั้งค่าพนักงานที่เฉพาะเจาะจง ประเภทการคำนวณ และกำหนดเวลาในพารามิเตอร์คำขอ แล้วดูว่าผลลัพธ์จะออกมากี่ชั่วโมง

บทความยังเขียนไม่เสร็จ ปรับปรุงได้อีกเยอะ แต่เส้นทางของนักสู้รุ่นเยาว์จะเป็นอย่างไร

กลไกของการคำนวณตามงวดที่ซับซ้อนทำให้คุณสามารถใช้แบบจำลองบัญชีเงินเดือนต่างๆ ได้

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

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

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

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

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

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

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

รายงานและการประมวลผล

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

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

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

ข้าว. หน้า 2.20ตัวอย่างการกำหนดบทบาทในการกำหนดค่า

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

ข้าว. หน้า 2.21การตั้งค่าสิทธิ์สำหรับแต่ละบทบาทในคุณสมบัติของออบเจ็กต์ข้อมูลเมตาใน Configurator

ผู้ใช้แต่ละคนที่ทำงานในระบบ 1C:Enterprise จะได้รับมอบหมายหนึ่งบทบาทขึ้นไป (ดูเวิร์กชอป 1-2)

หากผู้ใช้พยายามดำเนินการโดยไม่ได้รับอนุญาต การดำเนินการดังกล่าวจะไม่เกิดขึ้น และระบบจะแสดงหน้าต่างคำเตือน “การละเมิดการเข้าถึง!”

1 FIFO - จากภาษาอังกฤษ “อินพุตแรก เอาท์พุตแรก” - “มาก่อน ไปก่อน”

2 KUDiR - ตัวย่อ "บัญชีรายได้และค่าใช้จ่าย"

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