1 ما هي الحسابات الدورية المعقدة. مفهوم الأنواع الأساسية والرائدة للحساب. التقارير والمعالجة


الكلمات المفتاحية: سجل الحساب، الراتب، 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

لماذا نستخدم بُعد التاريخ بدلاً من سجل التفاصيل الدورية؟ كل شيء بسيط للغاية - إذا كان لدينا 8 ساعات عمل في 11 يناير، الجمعة، وهو أسبوع من خمسة أيام، فهذا لا يعني أنه في اليوم التالي سيكون لدينا 8 ساعات عمل مرة أخرى. لكن إذا استخدمنا السجل الدوري فإن قيمة اليوم التالي ستؤخذ من اليوم السابق في حالة عدم وجود سجلات.

وبالتالي، مع وجود فترة معينة (الإجراء الفعلي، التسجيل، فترة الأساس، وما إلى ذلك) يمكننا الحصول تلقائيًا على عدد الساعات لهذه الفترة وفقًا للجدول الزمني.

إعادة الحساب

إعادة الحساب تذكرنا إلى حد ما بحدود التسلسل. نظرًا لأن لدينا حسابات تابعة، عند تغيير حساباتها الأساسية والرئيسية، يجب أن يلاحظ النظام بطريقة ما أنه يجب علينا إعادة حساب الحسابات التابعة. هذا هو الغرض من إعادة الحسابات.

إذا قمنا بحساب السجلات الأساسية، فسوف يلاحظ النظام في التخصيصات أننا نحتاج إلى حساب السجلات التابعة. بمجرد حساب السجلات التابعة، سيتم مسح التخصيصات. في الأساس، التخصيصات هي قائمة بإدخالات تسجيل الحساب التي يجب تخصيصها. إذا لم تقم بإدخال أي قياسات في عمليات إعادة الحساب، فعندما تتغير الحسابات الأساسية، ستتم إضافة كافة السجلات التابعة إلى قائمة إعادة الحساب. إذا قمنا بإنشاء بُعد "الموظف" في عملية إعادة الحساب، فعند تغيير الحساب الأساسي لموظف، ستتم إضافة السجلات التابعة لهذا الموظف فقط إلى عمليات إعادة الحساب.

مهمة عملية

ما يكفي من النظرية. دعونا نحاول دراسة التفاصيل عمليا. لنأخذ تكوين الإطار كأساس.

صياغة المشكلة:

لتحدد المكافأة كنسبة ثابتة من الراتب (مطروحا منها بدل الغياب والسفر).
لتدفع بدلات السفر على شكل راتب مضاعف + مبلغ ثابت من الدفعات عن كل يوم من أيام الرحلة.

فرض غرامة مالية على الموظف مقدارها نصف الراتب عن فترة الغياب بسبب الغياب.

تقدم:

تدريب اولي

لنقم بإنشاء خطة جديدة لأنواع العمليات الحسابية "الرئيسية".

دعونا نحدد أنواع الحسابات والتبعيات بينها:

دعونا نضيف هذه الأنواع من الحسابات إلى خطة أنواع الحسابات "الرئيسية" ونقوم بتعيين التبعيات في خصائص أنواع الحسابات وفقًا للجدول.

في سجل حساب الراتب، سنقوم بإنشاء بُعد "الموظف" من النوع "الأفراد" - بحيث يحتوي السجل على قسم تحليلات للموظفين.

يحتوي التكوين بالفعل على مستند "كشوف المرتبات".

يحتوي على تاريخين في الرأس - "التاريخ" و"فترة التسجيل"، بالإضافة إلى تاريخين "تاريخ البدء" و"تاريخ الانتهاء" في كل سطر.

من المفهوم أن التاريخ هو ببساطة تاريخ تنفيذ الوثيقة، وتشير فترة التسجيل إلى الشهر الذي نحسب فيه الراتب، والتواريخ في كل سطر تصف فترة صلاحية كل نوع من أنواع الحساب.

دعونا نضيف الإعداد الأولي لسمة "البيانات" إلى وحدة المستند - سنقوم بإدخال الراتب الأولي، وتحديد فترة التسجيل وفترة الصلاحية وفترة الأساس فيه.

ستبدو وحدة المستند كما يلي:

لكل TechStringList من دورة القائمة // تسجيل الحساباتحركة = Movements.Calculations.Add(); Move.Reversal = False; Movement.CalculationType = TechStringList.CalculationType; Movement.ActionPeriodStart = StartDay(TexListList.StartDate); Movement.ActionPeriodEnd = EndDay(TexLineList.EndDate); الحركة.فترة التسجيل = فترة التسجيل؛ Movement.BasePeriodStart = StartDay(TexListList.StartDate); Movement.BasePeriodEnd = EndDay(TexListList.EndDate); Movement.Employee = TechStringList.Employee; جدول الحركة. العمل = TechStringList.Graph؛ نتيجة الحركة = 0 ; Motion.Data = TechStringList.Size; EndCycle;

هناك حاجة إلى سمة "العكس" لعكس الإدخالات (مماثلة لعلامة الطرح).

نشير إلى نوع الحساب، ونضبط التواريخ على بداية اليوم ونهايته. بالطبع، لا يمكن إدخال فترة الأساس إلا لأنواع الحسابات التي تعتمد على الأساس، ولا يمكن إدخال البيانات إلا للراتب، ولكن كل شيء يعمل بهذه الطريقة.

سنؤرخ جميع المستندات في 20/01/2003، وسيتم تحديد فترة التسجيل في 02/01/2003 (أشير على وجه التحديد إلى عدم بيانات البداية والنهاية، وهذا لا يهم هنا، على أي حال، عند التسجيل في فترة التسجيل، فإنه سيتم تحويله إلى بداية الفترة 01/01/2003). نستخدم يناير 2003 لأنه تم الانتهاء من جداول العمل لهذه الفترة.

لنقم بإنشاء عملية إعادة حساب "إعادة حساب" ونضيف إليها بُعد "الموظف" المرتبط ببُعد "الموظف".

اللعب مع إعادة الحسابات

لتشغيل اللعبة، دعونا نفتح وحدة التحكم في الطلب - ونقوم بمعالجة "RandomRequest" في تكوين الإطار. لنقم بإنشاء استعلام جديد باستخدام مُنشئ الاستعلام، وأضف الجدول الافتراضي Recalculations.Calculations.Recalculation هناك، وسيكون نص الاستعلام كما يلي:

حدد كائن CalculationsRecalculation.Recalculation، CalculationsRecalculation.نوع الحساب، CalculationsRecalculation.Employee من RegisterCalculation.Calculations.Recalculation AS CalculationsRecalculation

لنقم بإنشاء ثلاث مستندات - سنكون أول من يدفع الرواتب للموظفين "أ" و"ب". يعمل الموظف "أ" من 1 يناير إلى 31 يناير، ويعمل الموظف "ب" من 1 يناير إلى 20 يناير. والثاني سيخصص مكافأة للموظف "ب" للفترة من 1 إلى 31 يناير، والثالث سيخصص التغيب للموظف "أ" في الفترة من 20 إلى 25 يناير.

اللعب بفترة الصلاحية الفعلية

لنقم بإنشاء استعلام جديد - هذه المرة سنضيف بيانات من الجدول Calculation Registers.Calculations.ActualActionPeriod.

لنقم بإنشاء طلب ونرى أن فترة الراتب للموظف "أ" تنقسم إلى فترتين - من 1 إلى 19 يناير ومن 26 إلى 31 يناير. أرجو أن تفهم أن الفترة تم تقسيمها إلى قسمين، لأن... الغياب حل محل الراتب.

أعتقد أن آليات تشغيل سجل الحساب أصبحت أكثر وضوحًا أمام أعيننا.

دراسة الرسوم البيانية

الآن دعونا نحاول حساب الراتب على أساس راتب الموظف.

لنقم بإنشاء استعلام جديد لسجل العمليات الحسابية باستخدام الجدول الافتراضي: سجلات الحساب، العمليات الحسابية، البيانات الرسومية. بالنسبة لهذا الجدول الظاهري، يمكنك تعيين معلمة - شرط لتحديد السجلات، على سبيل المثال، الموظف=&SelectEmployee ونوع الحساب=&نوع الحساب والمخطط=&نوع الرسم.
لنقم بتعيين موظفين محددين وأنواع الحسابات والجداول الزمنية في معلمات الطلب ومعرفة عدد الساعات الناتجة.

المقال لا يزال غير مكتمل، ويمكن تحسين الكثير، ولكن كيف سيسير مسار المقاتل الشاب.

لم يواجه العديد من مبرمجي 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 قعد

ستة أيام

لماذا نستخدم بُعد التاريخ بدلاً من سجل التفاصيل الدورية؟ الأمر كله بسيط للغاية - إذا كان لدينا 8 ساعات عمل يوم الجمعة 11 يناير خلال فترة خمسة أيام، فهذا لا يعني أنه سيكون لدينا 8 ساعات عمل مرة أخرى في اليوم التالي. لكن إذا استخدمنا السجل الدوري فإن قيمة اليوم التالي ستؤخذ من اليوم السابق في حالة عدم وجود سجلات.

وبالتالي، مع وجود فترة معينة (الإجراء الفعلي، التسجيل، فترة الأساس، وما إلى ذلك) يمكننا الحصول تلقائيًا على عدد الساعات لهذه الفترة وفقًا للجدول الزمني.

إعادة الحساب

إعادة الحساب تذكرنا إلى حد ما بحدود التسلسل. نظرًا لأن لدينا حسابات تابعة، عند تغيير حساباتها الأساسية والرئيسية، يجب أن يلاحظ النظام بطريقة ما أنه يجب علينا إعادة حساب الحسابات التابعة.

هذا هو الغرض من إعادة الحسابات.

إذا قمنا بحساب السجلات الأساسية، فسوف يلاحظ النظام في التخصيصات أننا نحتاج إلى حساب السجلات التابعة. بمجرد حساب السجلات التابعة، سيتم مسح التخصيصات.

بشكل أساسي، عمليات إعادة الحساب هي قائمة بإدخالات تسجيل العمليات الحسابية التي تحتاج إلى إعادة الحساب.

إذا لم تقم بإدخال أي قياسات في عمليات إعادة الحساب، فعندما تتغير الحسابات الأساسية، ستتم إضافة كافة السجلات التابعة إلى قائمة إعادة الحساب.

إذا قمنا بإنشاء بُعد "الموظف" في عملية إعادة الحساب، فعند تغيير الحساب الأساسي لموظف، ستتم إضافة السجلات التابعة لهذا الموظف فقط إلى عمليات إعادة الحساب.

مهمة عملية

ما يكفي من النظرية. دعونا نحاول دراسة التفاصيل عمليا. لنأخذ تكوين الإطار كأساس.

صياغة المشكلة:

لتحدد المكافأة كنسبة ثابتة من الراتب (مطروحا منها بدل الغياب والسفر).

لتدفع بدلات السفر على شكل راتب مضاعف + مبلغ ثابت من الدفعات عن كل يوم من أيام الرحلة.

فرض غرامة مالية على الموظف مقدارها نصف الراتب عن فترة الغياب بسبب الغياب.

تقدم:

تدريب اولي

لنقم بإنشاء خطة جديدة لأنواع العمليات الحسابية "الرئيسية".

دعونا نحدد أنواع الحسابات والتبعيات بينها:

أساسي

تهجير

المقدمون

مرتب

التغيب عن العمل، رحلة عمل

جائزة

التغيب عن العمل، رحلة عمل

الراتب، التغيب عن العمل، رحلة عمل

رحلة عمل

التغيب

دعونا نضيف هذه الأنواع من الحسابات إلى خطة أنواع الحسابات "الرئيسية" ونقوم بتعيين التبعيات في خصائص أنواع الحسابات وفقًا للجدول.

في سجل حساب الراتب، سنقوم بإنشاء بُعد "الموظف" من النوع "الأفراد" - بحيث يحتوي السجل على قسم تحليلات للموظفين.

يحتوي التكوين بالفعل على مستند "كشوف المرتبات".

يحتوي على تاريخين في الرأس - "التاريخ" و"فترة التسجيل"، بالإضافة إلى تاريخين "تاريخ البدء" و"تاريخ الانتهاء" في كل سطر.

من المفهوم أن التاريخ هو ببساطة تاريخ تنفيذ الوثيقة، وتشير فترة التسجيل إلى الشهر الذي نحسب فيه الراتب، والتواريخ في كل سطر تصف فترة صلاحية كل نوع من أنواع الحساب.

دعونا نضيف الإعداد الأولي لسمة "البيانات" إلى وحدة المستند - سنقوم بإدخال الراتب الأولي، وتحديد فترة التسجيل وفترة الصلاحية وفترة الأساس فيه.

ستبدو وحدة المستند كما يلي:

ل لكل قائمة السلاسل التقنيةمن دورة القائمة

// تسجيل الحسابات

الحركة = الحركات .الحسابات.إضافة();

حركة .س تورنو= خطأ؛

حركة .في معرف الحساب = TechStringList.CaculationType;

حركة .PeriodActionsStart= بداية اليوم ( TechStringList.StartDate);

حركة .PeriodActionEnd= نهاية اليوم ()؛

حركة .فترة التسجيل = فترة التسجيل;

حركة .BasicPeriodStart= بداية اليوم ( TechStringList.StartDate);

حركة .BasePeriodEnd= نهاية اليوم ( TechStringList.تاريخ الانتهاء);

حركة .موظف = TechStringList.Employee;

حركة .جدول = TechStringList.Graph;

حركة .نتيجة = 0;

حركة .بيانات = TechStringList.Size;

دورة النهاية؛

سمة الانعكاس مطلوبة لعكس الإدخالات (مماثلة لعلامة الطرح).

نشير إلى نوع الحساب، ونضبط التواريخ على بداية اليوم ونهايته. بالطبع، لا يمكن إدخال فترة الأساس إلا لأنواع الحسابات التي تعتمد على الأساس، ولا يمكن إدخال البيانات إلا للراتب، ولكن كل شيء يعمل بهذه الطريقة.

سنقوم بتأريخ جميع المستندات في 20/01/2003، وسيتم تحديد فترة التسجيل في 02/01/2003 (أشير على وجه التحديد إلى عدم بيانات البداية والنهاية، وهذا لا يهم هنا، على أي حال، عند التسجيل في فترة التسجيلتحويلها إلى بداية الفترة 01/01/2003). نستخدم يناير 2003 لأنه تم الانتهاء من جداول العمل لهذه الفترة.

لنقم بإنشاء عملية إعادة حساب "إعادة حساب" ونضيف إليها بُعد "الموظف" المرتبط ببُعد "الموظف".

اللعب مع إعادة الحسابات.

لتشغيل اللعبة، افتح وحدة تحكم الطلب - المعالجة " طلب مخصص» في تكوين الإطار. لنقم بإنشاء استعلام جديد باستخدام مُنشئ الاستعلام وإضافة جدول افتراضي هناك إعادة الحسابات. الحسابات. إعادة الحساب، سيكون نص الطلب هكذا:

يختار

CalculationsRecalculation.حول كائن إعادة الحساب,

CalculationsRecalculation.In معرف الحساب,

إعادة الحساب.من الموظف

من

سجل الحساب العمليات الحسابية إعادة الحسابكيف إعادة الحساب

سنقوم بإنشاء ثلاث مستندات - أولاً سنقوم بتجميع الرواتب للموظفين "أ" و"ب". يعمل الموظف "أ" من 1 إلى 31 يناير، ويعمل "ب" من 1 إلى 20 يناير. والثاني سيخصص مكافأة للموظف "ب" للفترة من 1 إلى 31 يناير، والثالث سيخصص التغيب للموظف "أ" في الفترة من 20 إلى 25 يناير.

نحن نلعب مع فترة الصلاحية الفعلية.

لنقم بإنشاء استعلام جديد - هذه المرة سنضيف إليه بيانات الجدول سجلات الحسابات الحسابات فترة الإجراء الفعلي.

لنقم بإنشاء طلب ونرى أن فترة راتب الموظف "أ" مقسمة إلى فترتين - من 1 إلى 19 يناير ومن 26 إلى 31 يناير. أرجو أن تفهم أن الفترة تم تقسيمها إلى قسمين، لأن... الغياب حل محل الراتب.

أعتقد أن آليات تشغيل سجل الحساب أصبحت أكثر وضوحًا أمام أعيننا.

دعونا ندرس الرسوم البيانية.

الآن دعونا نحاول حساب الراتب على أساس راتب الموظف.

لنقم بإنشاء استعلام جديد لسجل الحساب باستخدام جدول افتراضي سجلات الحساب.الحسابات.DataGraphics. يمكنك تعيين معلمة لهذا الجدول الظاهري - على سبيل المثال، شرط لتحديد السجلات الموظف=&SelectEmployeeو نوع الحساب=&نوع الحسابو الرسم البياني=&ViewGraphic.

لنقم بتعيين موظفين محددين وأنواع الحسابات والجداول الزمنية في معلمات الطلب ومعرفة عدد الساعات الناتجة.

عمود النتيجة

معنى

ValuePeriodAction

لأي فترة صلاحية بالساعات تم القيد في السجل.

ValueActualPeriodAction

كم ساعة عمل الموظف فعلا؟

ValueBasePeriod

بالنسبة للراتب، فإنه لا معنى له، بالنسبة للمكافآت - عدد ساعات العمل في فترة الأساس.

فترة التسجيل القيمة

كم عدد ساعات العمل في فترة التسجيل (شهر يناير)

خطط نوع الحساب- هذه هي كائنات تكوين التطبيق. يتم استخدامها في آلية الحسابات الدورية المعقدة وتعمل على وصف أنواع الحسابات وتأثيرها المتبادل على بعضها البعض.

بناء

خطة أنواع الحساب هي قائمة بأنواع الحساب. كل نوع من الحسابات له رمز واسم ومجموعة تفاصيل، يحتوي على معلومات إضافية حول هذا النوع من الحسابات:

على سبيل المثال، خطة لأنواع الحساب المستحقات الأساسية للمنظماتقد يبدو مثل هذا:

يمكن إنشاء أنواع الحسابات وتحريرها بواسطة المطور (أنواع الحسابات المحددة مسبقًا) والمستخدم أثناء العمل مع حل التطبيق. ومع ذلك، لا يمكن للمستخدم حذف أنواع الحسابات التي أنشأها المطور.

يمكن أن تؤثر أنواع الحساب التي تم إنشاؤها في خطة نوع الحساب على بعضها البعض. ويدعم النظام نوعين من هذا التأثير: الاعتماد حسب فترة الأساسو الشفعة بمدة الصلاحية.

لكل نوع من أنواع الحساب، يمكنك تحديد قائمة بأنواع الحساب التي ستعتمد عليها لفترة الأساس، والتي ستحل محلها لفترة الصلاحية.

على سبيل المثال، نوع الحساب النفقةقد تعتمد فترة الأساس على أنواع الحساب مثل مرتب, التعريفة اليومية, دفع إضافي شخصيإلخ. ونوع الحساب مرتبيمكن استبداله بنوع الحساب التغيب:

بالإضافة إلى هذه التبعيات، يمكن تحديد ما يسمى بالأنواع الرائدة من العمليات الحسابية لنوع من العمليات الحسابية - تلك التي لا تعتمد عليها بشكل مباشر، ولكن يمكنها التأثير عليها من خلال أنواع أخرى من الحسابات.

أنواع الحسابات نماذج الخطة

لكي يتمكن المستخدم من عرض وتغيير البيانات الموجودة في خطة أنواع الحسابات، يدعم النظام عدة أشكال لعرضها. يمكن للنظام أن يقوم تلقائيًا بإنشاء جميع النماذج اللازمة؛ بالإضافة إلى ذلك، يتمتع المطور بفرصة إنشاء النماذج الخاصة به، والتي سيستخدمها النظام بدلاً من النماذج الافتراضية:

نموذج القائمة

لعرض أنواع العمليات الحسابية، استخدم نموذج القائمة. فهو يسمح لك بالتنقل عبر القائمة والإضافة ووضع علامة للحذف وحذف أنواع العمليات الحسابية. يتيح لك نموذج القائمة فرز المعلومات المعروضة وتحديدها وفقًا لعدة معايير:

إحدى المهام التي تم حلها باستخدام سجلات الحساب هي الحصول على دورات التسجيل باستخدام الاستعلامات إلى جدول افتراضي للبيانات الأساسية أو طريقة GetBase(). يتم الحصول على معدل دوران السجل بناءً على عدد كبير من البيانات المصدرية المختلفة، بما في ذلك إعدادات ومحتويات خطة أنواع الحسابات، وإعدادات سجل الحساب، ومعلمات الجدول الافتراضي للبيانات الأساسية، وما إلى ذلك. ولكن أحد الأدوار المهمة في الحصول على البيانات الأساسية يتم لعبه بواسطة قياسات سجل الحساب.

دور الأبعاد في تحديد معلمات جدول افتراضي للبيانات الأساسية

إحدى المعلمات المهمة للجدول الافتراضي للبيانات الأساسية هي قائمة الأبعاد التي يتم من خلالها مقارنة إدخالات التسجيل عند جمع البيانات. لحل مشاكل مختلفة، قد يتعين عليك جمع موارد التسجيل عبر مجموعات مختلفة من الأبعاد. لننظر إلى مثال سجل مخصص لحساب الرواتب وله ثلاثة أبعاد:

  • منظمة،
  • فردي،
  • التقسيم.
لنتخيل أنه من الضروري حل المشكلات التالية:
  • الحصول على سجلات معينة من سجل دوران السجل لجميع السجلات بنفس قسم السجل الأصلي. يمكن أن يكون هذا، على سبيل المثال، حساب البدل، اعتمادًا على استحقاقات القسم بأكمله.
  • الحصول على معدل دوران من السجلات مع نفس الفرد والقسم. أولئك. استلام مبلغ مستحقات الموظفين التي استحقت له في نفس الدائرة (يستثنى من ذلك مستحقات نفس الموظف التي استلمها في الأقسام الأخرى).
  • استلام الدوران من السجلات لنفس الفرد ونفس المنظمة (جميع المستحقات للفرد داخل نفس المنظمة).

يتم حل جميع المهام المذكورة أعلاه باستخدام الاستعلامات إلى جدول افتراضي للبيانات الأساسية. في هذه الحالة، ستكون المعلمات "قياسات السجل الرئيسي" و"قياسات السجل الأساسي" مختلفة لجميع المهام الثلاث. في الحالة الأولى، هناك بعد واحد - "التقسيم"؛ في الثانية - "الفرد" و "الوحدة"؛ في الثالث - "المنظمة" و "الفرد".

تحسين الحصول على البيانات الأساسية

بالنسبة للحالات المذكورة أعلاه، عند إنشاء استعلام إلى جدول افتراضي للبيانات الأساسية، سيقوم النظام، من حيث لغة الاستعلام، بإجراء "ربط يسار" لجدول تسجيل الحساب مع نفس الجدول. في هذه الحالة، أحد شروط الاتصال هو تساوي القيم في الحقول المحددة كأبعاد السجل الرئيسي والأساسي. بالطبع، بالإضافة إلى هذا الشرط، هناك مقارنة بين فترة الصلاحية أو فترة التسجيل مع بداية ونهاية فترة الأساس، ومقارنة أنواع الحسابات، وما إلى ذلك، ولكن القيد الأكثر "صرامة"، كقاعدة عامة، هو هو القيد على قيم القياس.

وبالتالي، لكي يعمل الاستعلام الناتج بفعالية، من المهم أن يكون لديك فهرس في جدول تسجيل الحساب الذي يحتوي على حقول الأبعاد المقارنة كحقول أولى.

تتيح لنا القدرة على فهرسة أبعاد سجل الحساب حل مثل هذه المشكلة، ولكن فقط في حالة مقارنة بُعد واحد (في مثالنا، مهمة الحصول على بيانات لقسم ما). في حالة وجود بعدين قابلين للمقارنة أو أكثر، فمن الضروري إنشاء فهرس لعدة أبعاد في وقت واحد.

هذه هي بالضبط المشكلة التي تسمح لك خاصية البعد الأساسي لسجل العمليات الحسابية بحلها. من خلال تعيين هذه الخاصية إلى أبعاد متعددة، يقوم مصمم التكوين بإنشاء فهرس على جميع الأبعاد التي تم وضع علامة "أساسية" عليها (لمزيد من التفاصيل، راجع القسم "فهارس جدول قاعدة البيانات").

مما سبق، يتضح أنه يمكن إنشاء فهرس واحد فقط لسجل حسابي لتحسين الحصول على البيانات الأساسية عن طريق تحديد أبعاد معينة. وبالتالي، أثناء التطوير، من المهم إجراء تقييم صحيح للجداول الافتراضية التي سيتم استخدامها في أغلب الأحيان، والتي يعد تحسين أدائها هو الأكثر أهمية.

دعنا نعود إلى مثالنا. لنتخيل أن الاستحقاقات التي تتطلب الحصول على بيانات عن فرد وقسم ستكون أقل شيوعًا أثناء عملية التكوين من الاستحقاقات التي تتطلب الحصول على بيانات عن فرد ومؤسسة. ومن ثم ينبغي الإشارة إلى الأبعاد "التنظيمية" و"الفردية" باعتبارها الأبعاد الأساسية. وفي الوقت نفسه، سيتعين علينا أن نتقبل حقيقة أن الحصول على البيانات الأساسية عن الفرد والإدارة سيكون بطيئًا نسبيًا.

عند اختيار القياسات الأساسية، ينبغي للمرء أيضًا تقييم "انتقائيتها"، أي. تخيل عدد القيم التي ستكون في بعد معين عند تشغيل التكوين. دعونا نتخيل أنه في مثالنا، قد يكون لدى فرد واحد عدد قليل جدًا (واحد أو اثنين) من المنظمات وأقسام كثيرة نسبيًا. أولئك. يُدفع للفرد دائمًا راتبًا في منظمة واحدة، وفي الوقت نفسه، غالبًا ما يتم حساب الرواتب لأقسام مختلفة. في ظل هذه الظروف، يكون من المنطقي أكثر تحديد الأبعاد "الفردية" و"القسم" باعتبارها الأبعاد الأساسية.

لكن من المهم أن نتذكر ترتيب قياس سجل الحساب...

حول ترتيب القياسات في سجل الحساب

والحقيقة هي أنه عند إنشاء فهرس يسهل الحصول على البيانات الأساسية، يقوم النظام بتضمين الأبعاد فيه بالتسلسل الذي توجد به في شجرة التكوين. وهذا يعني أنه ببساطة عن طريق "تبديل" الأبعاد "الفردية" و"القسمة"، سنغير ترتيب الحقول في الفهرس.

في مثالنا، إذا تم اختيار البعدين "فرد" و"أقسام" ليكونا البعدين الأساسيين، فمن خلال إعادة ترتيبهما، لن نغير سرعة الحصول على البيانات الأساسية للفرد والقسم، ولكننا سنزيد الوضع سوءًا بشكل جذري مع الحصول على بيانات للفرد والمنظمة. عند مقارنة القيم في حقلي "المؤسسة" و"الفرد"، لن يتمكن النظام من استخدام مؤشر القسم + الفرد، حيث أن حقل "الفرد" ليس الأول فيه، ولا يتم فرض الشرط عليه تقسيم. وفي حالة مؤشر الفرد+القسم، فإن كلاً من استلام البيانات الأساسية للقسم والفرد، واستلام البيانات الأساسية للمؤسسة والفرد، حيث أن حقل “الفرد” سيكون الأول في الفهرس، سيتمكن النظام من استخدامه "جزئيًا" (حقل واحد في كل مرة). في الوقت نفسه، يتمتع المجال "الفردي" بقدر أكبر من "الانتقائية" من مجال "المنظمة" ولن يستغرق الأمر الكثير من الوقت لتحديد شروط المنظمة.

إذا كان البعد الأساسي واحدًا

دعونا لا ننسى المهمة في مثالنا، والتي تتضمن الحصول على البيانات الأساسية للقسم فقط. يبدو أن إنشاء فهرس فردي + قسم لحل المشكلتين الأخريين يستبعد التشغيل الفعال لجدول افتراضي للبيانات الأساسية لبعد واحد "القسم". ولكن هنا علينا أن نتذكر إمكانية فهرسة أبعاد السجل (خاصية الفهرسة). تتيح لك القدرة على فهرسة البعد حل مشكلة الحصول على قاعدة بيانات بناءً على بُعد أساسي واحد بشكل فعال.

وبالتالي، في المثال الذي تناولناه، من الضروري تعيين الخاصية الأساسية على البعد "الفردي" و"القسم"، وخاصية الفهرسة على البعد "القسم"، والتأكد أيضًا من أن البعد "الفردي" "أعلى" " من بُعد "القسم" (ترتيب بُعد "المؤسسة" " ليس مهمًا).

تعتمد نتائج بعض الاستحقاقات والخصومات على النتائج التي يتم الحصول عليها من أنواع أخرى من الحسابات. على سبيل المثال، تعتمد نسبة الزيادة في الأجور على مقدار الأرباح الأساسية المستحقة للموظف. ويسمى مقدار الراتب الأساسي في هذه الحالة بأساس حساب البدل، وتسمى أنواع الحساب التي يتكون منها الأساس بأنواع الحساب الأساسية.

يتم احتساب الأساس لفترة الأساس المحددة في إدخال سجل الحساب. فترة الأساس هي الفترة التي يتم تحديد الاستحقاقات لها من سجل الحساب لتحديد الأساس. يمكن أن تكون فترة الأساس أقل من شهر (على سبيل المثال، عند حساب بدل الجمع بين المهنتين، إذا استمر الجمع أقل من شهر) أو عدة فترات حسابية (على سبيل المثال، فترة الأساس للمكافأة ربع السنوية هي 3 أشهر).

تتضمن قاعدة حساب الاستحقاقات جميع الاستحقاقات الخاصة بفترة الأساس، بغض النظر عن فترة الفاتورة التي استحقت فيها. على سبيل المثال، عند حساب المكافأة لشهر يوليو، سيتضمن الأساس كلاً من دفع الراتب للنصف الأول من شهر يوليو، المستحق في يوليو، ودفع الراتب للنصف الثاني من يوليو، المسجل في أغسطس. ويسمى هذا الاعتماد على الاستحقاقات الأساسية بالاعتماد على فترة الصلاحية.

عند الاعتماد على فترة الصلاحية، يتم جمع الأساس من نتائج إدخالات سجل الحساب التي تقع فترة صلاحيتها ضمن فترة الأساس. إذا لم يكن لمدخل سجل الحساب فترة صلاحية، يتم تحليل فترة تسجيل القيد، وإذا كان يقع ضمن فترة الأساس، يتم تضمين النتيجة في الأساس. مع مثل هذا الاعتماد، قد ينشأ موقف عندما يقع جزء فقط من فترة الاستحقاق في فترة الأساس. على سبيل المثال، يتم احتساب دفع الراتب لمدة شهر كامل، ولكن يجب تحديد أساس مكافأة الجمع لمدة نصف شهر فقط. في هذه الحالة، سيتضمن أساس المكافأة جزءًا فقط من دفع الراتب لعدد الأيام أو الساعات المدرجة في جدول الموظف والتي تقع في فترة الأساس.

أساس حساب الخصومات، على سبيل المثال، بناء على أوامر التنفيذ، يتم تشكيله بشكل مختلف. تتضمن قاعدة البيانات جميع الاستحقاقات المسجلة في الشهر الحالي، بغض النظر عن الفترة التي استحقت لها. ويسمى هذا الاعتماد اعتماد فترة التسجيل.

أرز. التبعية الأساسية

أرز. التقاطع الجزئي بين فترة الأساس وفترة الصلاحية

عند الاعتماد على فترة التسجيل، تتضمن قاعدة البيانات نتائج سجلات تسجيل الحسابات التي تقع فترة تسجيلها ضمن فترة الأساس فقط.

يمكن أن تكون العلاقة بين نتائج الاستحقاقات والخصومات متعددة المستويات ومعقدة للغاية. يتم تحديد معظم المكافآت، مثل مكافآت مدة الخدمة، والفئة، وتوسيع مجالات الخدمة، كنسبة مئوية من الراتب الأساسي المستحق للموظف عن وقت العمل. يتم احتساب المكافآت التي ينص عليها نظام المكافآت على مبلغ الدفعة الأساسية مع مراعاة البدلات. والمكافآت بدورها تدخل في قاعدة احتساب العلاوة الشمالية، كما يشمل أساس الأخيرة الراتب الأساسي وعلاوات الموظفين الأخرى. إذا تغيرت نتيجة أحد الاستحقاقات، بعد الانتهاء من جميع الحسابات، لسبب ما، فيجب أيضًا إعادة حساب جميع الاستحقاقات المعتمدة عليها.

على سبيل المثال، إذا تم اكتشاف بعد الحساب أنه تم تعيين معدل تعرفة غير صحيح للموظف ويجب إعادة حساب نتيجة دفع الراتب، فيجب إعادة حساب جميع المكافآت المعتمدة على دفع الراتب، وكذلك المكافآت والمكافأة الشمالية، بشكل تسلسلي . المهمة ليست سهلة، خاصة إذا كنت تعتقد أنه في الحالة العامة، يمكن تسجيل كل هذه الاستحقاقات في قاعدة بيانات المعلومات باستخدام عدة مستندات. يتيح لك البرنامج مراقبة مثل هذه المواقف تلقائيًا وتحديد قائمة المستندات التي تحتاج إلى إعادة حسابها. لاستخدام الآلية، يجب عليك تحديد قائمة بأنواع الحسابات البادئة لكل نوع حساب تابع.

الرائدة هي تلك الأنواع من الحسابات، إذا تغيرت نتائجها، فمن الضروري إعادة حساب نتيجة هذا النوع من الحسابات.

إن مفاهيم أنواع الحساب الأساسية والرائدة متقاربة جدًا من حيث المعنى، وغالبًا ما تتطابق قوائم أنواع الحساب الأساسية والرائدة، لكن لا يجب أن تخاف منها.

الأساسية هي أنواع الحسابات التي تؤثر بشكل مباشر على نتيجة هذا النوع من الحسابات. قد لا يتم تضمين الأنواع الرائدة من العمليات الحسابية في قاعدة البيانات، ولكن لها تأثير غير مباشر على النتيجة، أي. قد تكون قائمة الأنواع الرائدة من العمليات الحسابية أوسع مقارنة بقائمة الأنواع الأساسية من العمليات الحسابية.

سنرى التناقض بين قوائم أنواع الحساب الأساسية والرائدة عندما نفكر في إعداد حساب متوسط ​​الأرباح. يتم جمع قاعدة المكافآت التي تؤخذ في الاعتبار عند حساب متوسط ​​الدخل بشكل منفصل عن الدخل الأساسي للموظف. للحصول تلقائيًا على قاعدة المكافآت من حيث أنواع الحساب متوسط ​​الأرباح، هناك أنواع خاصة لحساب المكافآت يتم أخذها في الاعتبار كجزء من متوسط ​​الأرباح، وأساسها أنواع حساب المكافآت. يمكن حساب مبلغ المكافأة كنسبة مئوية من المستحقات الأخرى (الدفع بمعدلات التعريفة، ومكافآت الرواتب، وما إلى ذلك)، والتي، على الرغم من عدم تضمينها في الأساس لنوع الحساب، يتم أخذ المكافآت في الاعتبار كجزء من متوسط ​​الدخل، ولكن لها تأثير على نتيجته، وبالتالي يتم تضمينه في قائمة الأنواع الرائدة من العمليات الحسابية.

يتم تكوين قوائم أنواع الحسابات الأساسية والرائدة في نموذج نوع الحساب التابع.

عند إعداد أنواع العمليات الحسابية البادئة، من الضروري، بنفس الطريقة التي يتم بها إعداد أنواع العمليات الحسابية الوقائية، اتباع القاعدة: إذا كان نوع الحساب A هو النوع البادئ لنوع الحساب B، والذي بدوره هو النوع البادئ لنوع الحساب C، ثم إلى قائمة الأنواع البادئة لنوع الحساب C يجب تضمين كل من نوع الحساب B ونوع الحساب A. وإلا، فسيعرض البرنامج رسالة خطأ: "قائمة غير كاملة لأنواع الحساب البادئة!" على سبيل المثال، إذا تم تضمين مكافأة ربع سنوية في قائمة الاستحقاقات الرائدة، فيجب تضمين جميع الاستحقاقات الأولية للمكافأة ربع السنوية، مثل الراتب باليوم، والراتب بالساعة، وما إلى ذلك.

أرز. إعداد أنواع الحسابات الأساسية والرائدة