آلية مشاركة البيانات 1S. فصل البيانات في bsp. تحرير تفاصيل النموذج

14.02.2024

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

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

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

الفاصل 8.2، 8.3 (النماذج المُدارة)

لا يمكنك إضافة فاصل في النموذج المُدار 1ج؛ تتم إضافته تلقائيًا بواسطة البرنامج قبل/بعد حقل الجدول

التفاصيل العامة في 1C 8.3 هو كائن بيانات تعريف النظام الأساسي الذي يسمح لك باستخدام سمة واحدة للعديد من كائنات التكوين (الأدلة والمستندات ومخططات الحسابات وما إلى ذلك). تم إنشاء الكائن بشكل أساسي لتسهيل عمل المطور وفصل البيانات.

تم تنفيذ التفاصيل العامة في البداية في الإصدار 1C 7.7، لكن المطورين لم يدرجوها على الفور في إصدار النظام الأساسي 8. تم تقديم آلية التفاصيل العامة بواسطة مطوري 1C فقط في الإصدار 8.2.14.

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

بعد إضافة سمة عامة، يمكن استخدامها في الاستعلامات وعرضها في نموذج الكائن - ظاهريا، لا يختلف عن الدعائم العادية.

القيد الوحيد للتفاصيل العامة هو عدم القدرة على استخدامها في .

دعونا نلقي نظرة على الإعدادات الأساسية وخصائص التفاصيل العامة التي تختلف عن كائنات التكوين الأخرى:

مُجَمَّع— قائمة الكائنات التي سيتم استخدام التفاصيل العامة لها؛ الإعداد يذكرنا بإعداد خطة التبادل.

احصل على 267 درس فيديو على 1C مجانًا:

الاستخدام التلقائي- يحدد الإعداد ما إذا كان سيتم استخدام الدعائم العامة لتلك الكائنات التي تم تحديد وضع الاستخدام "التلقائي" لها.

فصل البيانات- سننظر في هذا الإعداد بشكل منفصل.

فصل البيانات في 1C باستخدام التفاصيل المشتركة

فصل البيانات- آلية مشابهة للآلية. ومع ذلك، فإن أداء هذه الآلية أكثر كفاءة وأسهل في التكوين.

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

إعداد فصل البيانات باستخدام تفاصيل 1C العامة

لتكوين التفاصيل العامة، تحتاج إلى تحديد فصل البيانات - قسمة. مباشرة بعد النقر، سيعرض النظام إنشاء معلمات المحاسبة الافتراضية:

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

يكتمل هذا الإعداد - لن يتمكن المستخدم إلا من الوصول إلى المعلومات المحددة في معلمات الجلسة المحددة.

مثال على استخدام الدعائم المشتركة

دعونا نلقي نظرة على إعداد الدعائم العامة في 1C 8.3 باستخدام مثال تكوين الإطار والدعائم منظمة:

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

الإعداد بسيط:

  1. نقوم بإنشاء سمة عامة جديدة، ونحدد النوع - DirectoryLink.Organization.
  2. في التكوين نرتب وثائقنا - يستخدم.

هذا كل شيء، اكتمل الإعداد!

دعونا نرى النتيجة:

يعرض النظام التفاصيل العامة “كما لو كانت خاصة بك”: في الطلبات، وفي تفاصيل النموذج، وفي أماكن أخرى. هذا هو مثل هذا السحر! 🙂

لم تتم إضافة المتطلبات العامة 1C 8.3

انتباه! هذه نسخة تمهيدية من الدرس، وقد تكون موادها غير مكتملة.

قم بالدخول إلى الموقع كطالب

قم بتسجيل الدخول كطالب للوصول إلى المواد المدرسية

لغة البرمجة الداخلية 1C 8.3 للمبرمجين المبتدئين: التنسيق في 1C

عند البرمجة في 1C، غالبًا ما يتعين عليك عرض (في نفس التقارير) قيمًا من أنواع مختلفة (سلاسل، تواريخ، أرقام...). كل من القيم لها تمثيلات مختلفة.

على سبيل المثال، يمكن تمثيل نفس التاريخ "01/01/2005" كسلسلة على النحو التالي:

  1. "01.01.2005"
  2. "1 يناير 2005"
  3. "01.01.05"

هذه كلها تمثيلات سلسلة من نفس القيمة، دلتشكيلها يتم استخدام وظيفة خاصة في 1C شكل.

استخدام وظيفة التنسيق في 1C

تعطيل تجميع الأرقام

لنفترض أننا بحاجة إلى إخراج الرقم 10000.

إذا كتبنا:

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

في المثال أعلاه، تحتوي سلسلة التنسيق "HH=0" على المعلمة HH والقيمة 0. تؤدي هذه المجموعة إلى إلغاء تجميع أرقام الرقم. وكما ترون، تم الآن إخراج 10000.

إخراج الأصفار البادئة

هناك مهمة أخرى شائعة وهي طباعة الأصفار البادئة قبل الرقم. على سبيل المثال، لنفترض أنك تريد عرض الرقم 5 بصفر بادئ، أي في النموذج "05":

تقرير(Format(5, "CHZ=2; CHVN=" ) ) ;

// المخرجات 05

دعونا نلقي نظرة على سلسلة التنسيق "CC = 2؛ CHVN =". يتكون من سلسلتين تنسيق مفصولة بفاصلة منقوطة. دعونا ننظر إلى كل واحد منهم على حدة.

يحدد السطر "CC = 2" إجمالي عدد المنازل العشرية المعروضة للأجزاء الصحيحة والكسرية. وبالتالي، فإن إجمالي عدد المواضع التي سيشغلها الرقم أثناء الإخراج سيكون مساويًا لـ 2.

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

إن الجمع بين سلسلتين من التنسيق يعطي النتيجة التي نحتاجها، "05"، بدلاً من "5".

تغيير الفاصل بين الأجزاء الصحيحة والكسرية

لنفترض أننا بحاجة إلى عرض أرقام كسرية مفصولة بعلامة النجمة بدلاً من النقطة. أي أنه يتم إخراج 25.46 كـ "25*46": شكلسلسلة التنسيق هي معلمة DF والقيمة dddd، التي تشير إلى الوظائف

قم بطباعة تمثيل طويل ليوم الأسبوع (لاحظ عدد "d" الذي يحتوي عليه).

تمثيل شهر التاريخ

يتم عرض وصف الشهر حسب التاريخ على النحو التالي: تقرير(Format("20050101" , "DF=MMMM" ) ) ;

// سيتم طباعة يناير

تحتوي سلسلة التنسيق على نفس معلمة DF كما في الحالة السابقة. لكن المعنى مختلف. الآن يساوي MMMM.

خذ الاختبار

ابدأ الاختبار

1. سيعود التنسيق ("19050505"، "DF=MMMM")

2. قم بتنسيق السلسلة بتغيير الفاصل الكسري والأعداد الصحيحة إلى ^

3. لكي تقوم وظيفة التنسيق بإرجاع "00005" بدلاً من 5، تكون سلسلة التنسيق مناسبة

4. لكي تقوم وظيفة التنسيق بإرجاع "10000" بدلاً من 10000، تكون سلسلة التنسيق مناسبة

5. تقوم الدالة Format بإرجاع قيمة النوع

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

لذلك، إلى قاعدة البيانات حيث تم الاحتفاظ بالسجلات لشركة ذات مسؤولية محدودة رقم 1، من الضروري نقل المعلومات من قاعدة البيانات المنفصلة لشركة ذات مسؤولية محدودة رقم 2 وتنظيم العمل المشترك. تماما كما في الصورة:

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

2. التنفيذ

النظام الأساسي 8.2.19.90، بدون وضع التوافق. نظام إدارة قواعد البيانات (DBMS) - معيار MSSQL Server 2008 R2.

أنشأنا السمة العامة OrganizationSeparator من النوع "الرقم"، ووافقنا على اقتراح إنشاء معلمات الجلسة، وملأنا التفاصيل (بما في ذلك العديد من الدلائل، وجميع المستندات، وسجلات التراكم والمحاسبة والحساب). فصل البيانات - "مستقل ومشترك". يتم تعيين قيمة معلمة الجلسة من إعدادات المستخدم القياسية في إجراءSettingSessionParameters في وحدة الجلسة:

المنظمة = UserManagement.GetDefaultValue(chCurrentUser,"PrimaryOrganization");
SessionParameters.OrganizationSeparatorValue = Organization.SeparatorValue;

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

عند تعطيل الفصل، عندما SessionParameters.OrganizationSeparatorUsage = False، يرفض النظام الأساسي كتابة المستندات، ويتعطل مع أخطاء مثل "خطأ SDBL: التعبير متوقع (pos=12)"، لذلك لا يمكنك السماح للمستخدم بكتابة المستندات في هذا الخيار. من أجل الموثوقية، أنشأنا اشتراكات في حدث "قبل التسجيل" للكائنات التي تشكل جزءًا من السمة العامة:

IfSessionParameters.OrganizationSeparatorUsage = خطأ إذن
#إذا كان العميل ثم
تحذير("لا يمكن الكتابة بسبب تعطيل مشاركة البيانات!");
#EndIf
رفض = صحيح؛
endIf;

كانت خطة عملنا على النحو التالي: إعداد تكوين جهاز الاستقبال لـ IS رقم 1، وتعيين قيم السمة العامة = 1، وتحميل البيانات من IS رقم 2، بعد التحميل، لجميع الكائنات ذات القيمة الفارغة (تساوي 0) ) قيمة الفاصل، قم بتعيين OrganizationSeparator = 2.

تم إعداد التكوين، وظهر السؤال: كيف يتم تحديد قيمة التفاصيل العامة للمستندات وحركاتها في فترات مغلقة، بسرعة ودون المخاطرة بتطاير الأرقام في الميزانية العمومية؟ باستخدام نموذج الكائن 1C، من المستحيل كتابة فاصل منفصل عن الكائن، لذلك اضطررت إلى انتهاك اتفاقية الترخيص للخروج وكتابة استعلام لـ MS SQL. نظرًا لوجود العديد من الكائنات في السمة العامة، وهناك المزيد من الجداول في الجدول لهذه الكائنات، فقد كتبنا معالجة تولد استعلامًا لـ SQL (لكل كائن بيانات تعريف مضمن في الفاصل، كتبنا "تحديث" + DB_Name + ".dbo._" + TableName + "set _" + FieldgeneralAttributes + "= 1"؛)

أدخلنا القيمة، ونقلنا بعض البيانات من IS رقم 2، وبدأنا الاختبار.

وكانت النتيجة مخيبة للآمال. أولا، مشاكل في السجل المحاسبي. عند تمكين الفصل، لا يكون المحلل مرئيًا:

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


حسنًا، دعنا ندخل قيمة الفاصل باستخدام MS SQL، وسنرى التحليلات. التقارير لم تعد تعمل. اتضح أن هناك مشاكل في الاستعلامات عن الجداول الافتراضية لسجل المحاسبة "الدوران" و"الدوران":

(Fld27033 هي مجرد سمة عامة في جدول السجل المحاسبي)

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

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

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


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

عند هذه النقطة، نقرر إيقاف تشغيل فصل البيانات واستخدام RLS. عند تعيين القسم على "عدم الاستخدام"، نواجه الأخطاء "تم إنهاء Microsoft OLE DB Provider forSQL Server: CREATE UNIQUE INDEX لأنه تم العثور على مفتاح مكرر للفهرس...". أي أنه ليس من السهل العودة إلى الدولة قبل التقسيم. مشكلة في فهارس جداول التحويل وإعدادات تخزين الإجماليات وغيرها. والحقيقة هي أن الجداول تخزن صفوفًا متطابقة، تختلف فقط في قيمة السمة العامة. عندما تقوم بحذف سمة مشتركة، تظهر السجلات غير الفريدة. سيكون عليك حذف السجلات غير الضرورية مباشرة في MS SQL، شيء من هذا القبيل (بالنسبة لجدول التحويل):

استخدم القاعدة؛
تغيير TABLE_CRgRecalc1399
إضافة معرف INT IDENTITY(1,1);
يذهب
احذف من_CRgRecalc1399
أين هوية< (SELECT MAX(id)
من _CRgRecalc1399 AS T1
حيث _CRgRecalc1399._RecorderTRef = T1._RecorderTRef و
_CRgRecalc1399.[_RecorderRRef] = T1.[_RecorderRRef] و
_CRgRecalc1399.[_CalcKindRRef] = T1.[_CalcKindRRef] و
_CRgRecalc1399.[_Fld1400RRef] = T1.[_Fld1400RRef] و
_CRgRecalc1399.[_Fld1401RRef] = T1.[_Fld1401RRef] و
_CRgRecalc1399.[_Fld1402RRef] = T1.[_Fld1402RRef]
);
يذهب
تغيير TABLE_CRgRecalc1399
معرف العمود المسقط؛

وفقط بعد تنظيف عشرات الجداول يمكن إيقاف فصل البيانات. بعد إيقاف الفصل لا توجد مشاكل.

3. الاستنتاجات.

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

نتيجة:

    يتم إعادة إنتاج مشكلة الاستعلامات إلى الجداول الافتراضية "دوران" و "TurnoverDtKt".

    مشكلة القمع تتكرر.

    تتكرر مشكلة الكتابة إلى سجلات المعلومات المستقلة.

    مشكلة إيقاف الفصل أنك لا تستطيع التخلص منه بضغطة زر واحدة!

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

ماذا ستتعلم من هذه المقالة؟

  • تتناول المقالة الغرض من وضع فصل الإجماليات
  • يتم تحليل سلوك نظام 1C:Enterprise 8 أثناء التشغيل المتوازي لعدد كبير من المستخدمين.
  • يوضح عيوب وضع الإجماليات المقسمة
  • يتم تقديم التوصيات حول الاستخدام الصحيح لتقسيم مجاميع السجل

تحتوي منصة 1C:Enterprise 8 على إمكانيات وآليات لا يعرف الجميع كيفية تشغيلها بشكل كامل، بالإضافة إلى كيفية استخدامها بفعالية. هذا هو وضع فصل الإجماليات.

تؤدي آلية فصل الإجماليات وظيفة مهمة ومفيدة للغاية: استخدامها يجعل من الممكن إجراء إدخالات متوازية في السجلات المحاسبية وسجلات التراكم.

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

قبل تمكين وضع الإجماليات المقسمة

لدينا وثيقتان متطابقتان برقم 001 و002:

تنتقل كلا الوثيقتين عبر سجل التراكم. ليس هناك سيطرة على المخلفات. هيكل سجل التراكم:

يبدأ مستخدمان يعملان في مستنديهما في إجراء عمل متزامن. ينشأ موقف تحاول فيه وثيقتان من نفس النوع إجراء حركات في نفس الوقت.

في هذه الحالة، تظهر الصورة التالية على مستوى نظام إدارة قواعد البيانات (DBMS):

إليك ما يحدث في النظام:

  1. تحاول المستندات إجراء إدخال في سجل التراكم
  2. على مستوى نظام إدارة قواعد البيانات (DBMS)، يتم تمثيل سجل التراكم بجدولين: جدول الحركات وجدول الأرصدة (جدول الإجماليات).
  3. في جدول الحركة، يمكن للمستندات تسجيل بياناتها بالتوازي. يتم ضمان ذلك من خلال قيم مختلفة لحقل "المسجل"، وبالتالي يتم العمل مع صفوف مختلفة من الجدول.
  4. لكن في جدول الأرصدة لا يوجد حقل "المسجل"، حيث يتم تخزين البيانات الموجودة في هذا الجدول في سياق أبعاد السجل نفسه.
  5. نلاحظ هنا موقفًا يحتاج فيه مستندان إلى تغيير سجل واحد، ولكن لا يمكن تغيير سجل واحد في نفس الوقت.
  6. وحتى لا تفقد البيانات المسجلة، يجب أن تنتظر إحدى المستندات دورها في التسجيل حتى تسجل الوثيقة الأخرى تحركاتها. وبعد أن يقوم المستند الأول بحركاته، سيكون الثاني قادرًا على القيام بحركاته الخاصة.

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

ولحل المشكلة التي نشأت تم إنشاء آلية لتقسيم النتائج.

استخدامه مخصص فقط لسجلات التراكم والسجلات المحاسبية.

تمكين وضع الإجماليات المقسمة

تمكين هذا الوضع بسيط للغاية:

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

ماذا يحدث بعد تشغيل وضع الإجماليات المقسمة؟

يظهر عمود جديد "فاصل" في جدول إجماليات سجل التراكم/المحاسبة. في نظام إدارة قواعد البيانات (DBMS) نفسه يطلق عليه "الفاصل".

في هذه الحالة، يبقى جدول الحركات دون تغيير؛ والفاصل فيه هو "المسجل". نرى التغيير في جدول الملخص.

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

إن تطبيق وضع فصل الإجماليات يجعل من الممكن إجراء تسجيل متوازي لجميع المعاملات.

في مثالنا الخاص بالمستندين، عند تشغيل الوضع، يتم ملاحظة ما يلي:

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

عيوب وضع المجاميع المقسمة

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

عند استلام أرصدة السجل، تكون هناك حاجة إلى تجميع البيانات، مما يؤدي إلى إضاعة الوقت، وإن كان غير مهم.

في حالتنا، مع وجود وثيقتين للحصول على رصيد المنتج "الجدول" للمستودع "الرئيسي"، يصبح من الضروري إضافة سطرين للحصول على القيمة النهائية "7". عند إيقاف تشغيل الفاصل، لا يلزم تجميع الصفوف (الإضافة).

متى يجب عليك استخدام الوضع الإجمالي المقسم؟

للقيام بذلك، يجب عليك استيفاء الشروط التالية:

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

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

بورميستروف أندريه