استبدال القيم في أدلة 1C. كيفية ضبط المؤسسة الرئيسية للاستبدال في المستندات

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

للقيام بذلك نحن بحاجة إلى القيام بأمرين.

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

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

في وضع التكوين

وظيفة إرجاع سعر السلعة

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

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

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

دعونا نحدد خانة الاختيار استدعاء الخادم حتى يمكن استدعاء إجراءات التصدير ووظائف هذه الوحدة من العميل (الشكل 9.9).

لنضع النص التالي فيه (القائمة 9.1).

دعونا شرح هذه الوظيفة.

للحصول على سعر التجزئة، سنمرر معلمتين إلى الدالة:

CurrentDate هي معلمة نوع التاريخ التي تحدد النقطة على المحور الزمني التي نهتم بها بقيمة سعر التجزئة.

في نص الدالة، نقوم أولاً بإنشاء كائن مساعد التحديد.

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

يجب أن يتطابق اسم مفتاح البنية ("Nomenclature") مع اسم بُعد التسجيل المحدد في أداة التهيئة، وتحدد قيمة عنصر البنية (عنصر Nomenclature) القيمة المحددة لهذا البعد.

في السطر الثاني، نتصل بمدير سجل معلومات الأسعار (Information Registers.Prices) وننفذ طريقة GetLast() التي ترجع لنا قيم الموارد لآخر سجل سجل يتوافق مع التاريخ الذي تم تمريره إلى الوظيفة ( CurrentDate) وقيم أبعاد التسجيل (Selection).

تقوم طريقة GetLast بإرجاع بنية تحتوي على قيم الموارد المخزنة في متغير ResourceValues. بشكل عام، يمكن أن يحتوي السجل على موارد متعددة. يوجد مورد واحد فقط في السجل الخاص بنا، ولكن سيتم إرجاع البنية التي تحتوي على عنصر واحد.

لذلك، في السطر التالي نحصل على سعر التجزئة الذي نبحث عنه بمجرد تحديد اسم مورد التسجيل الذي نحتاجه من خلال نقطة (ResourceValues.Price) وإعادته عند تنفيذ الوظيفة.

الآن يجب استدعاء هذه الوظيفة في مرحلة ما من تنفيذ المستند.

استدعاء وظيفة عند تحديد عنصر وملء السعر في المستند

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


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

انقر نقرًا مزدوجًا فوق عنصر النموذج List of ItemsNomenclature أو انقر بزر الماوس الأيمن لفتح لوحة الخصائص الخاصة به (عنصر قائمة سياق الخصائص). بالتمرير إلى نهاية القائمة، نجد حدث OnChange، والذي يحدث بعد تغيير قيمة الحقل.

انقر فوق الزر المفتوح B مع أيقونة العدسة المكبرة في حقل الإدخال.

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

دعنا نضيف النص التالي إليه (القائمة 9.2).

دعونا نعلق على محتويات المعالج.

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

ثم نستدعي وظيفة RetailPrice () من الوحدة العامة للعمل مع الدلائل.

كمعلمة أولى، نمرر إلى هذه الوظيفة تاريخ المستند الذي نحتاج إلى الحصول على السعر له. نحصل على تاريخ المستند من سمة النموذج الرئيسية - Object.Date.



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

لاحظ أن الإجراء Item List NomenclatureOnChange() نفسه يبدأ العمل في وحدة النموذج من جانب العميل، نظرًا لأنه معالج للحدث التفاعلي للنموذج. عند إنشاء قالب لهذا الإجراء، يقوم النظام الأساسي تلقائيًا بوضع توجيه التجميع &OnClient قبل وصف الإجراء.

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

لماذا تم استخدام هذه "الحيلة" في هذه الحالة؟ لماذا كان من الضروري نقل تنفيذ التعليمات البرمجية إلى الخادم؟

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

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

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

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

في 1C: وضع المؤسسة

دعونا نتحقق من كيفية عمل وثيقتنا الآن.

لنقم بتشغيل 1C:Enterprise في وضع التصحيح ونفتح سجل معلومات الأسعار.

بالنسبة لترانزستور فيليبس، دعونا نضيف سعرًا جديدًا برقم مختلف (الشكل 9.10).

الآن دعونا نفتح الوثيقة تقديم الخدمة رقم 1. كما تتذكرون، مع هذه الوثيقة قمنا للتو "باستخدام" أحد هذه الترانزستورات.

دعونا نترك تاريخ الوثيقة دون تغيير ونكرر اختيار الترانزستور في عمود التسميات بالجزء الجدولي من الوثيقة. سيتم ضبط سعر الترانزستور تلقائيًا على 01/07/2009. هذه هي أحدث قيمة للسعر في تاريخ الوثيقة (الشكل 9.11).

الآن دعنا نغير تاريخ الوثيقة إلى 13/07/2009 ونكرر اختيار الترانزستور مرة أخرى. سيتم تحديد قيمة سعرية جديدة، الأحدث لهذا التاريخ (الشكل 9.12).

وبالتالي، يظهر في المستند سعر الخدمة الحالي في وقت إنشاء المستند.


أسئلة التحكم

1. ما هو الغرض من كائن تكوين سجل المعلومات؟

2. ما هي الميزات التي يتمتع بها كائن تكوين سجل المعلومات؟

3. ما هي الاختلافات الرئيسية بين سجل المعلومات وسجل التراكم.

4. ما هي الحقول التي تحدد مفتاح التفرد لسجل التراكم.

5. ما هو السجل الدوري للمعلومات وما هو السجل المستقل للمعلومات.

6. كيفية إنشاء سجل دوري للمعلومات.

7. ما هو البعد الرائد للسجل.

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

المهمة 1. إنشاء قائمة منسدلة

1. افتح الملف Ex03_1.xlsx.

2. على ورقة سعر يوجد جدول للسلع مع الأسعار.

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

الصورة 1

4. في ورقة المبيعات في العمود اسم المنتجإنشاء قائمة منسدلة وملئها بالبيانات.

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

الشكل 2

في علامة التبويب الأولى خياراتمن القائمة المنسدلة نوع البياناتحدد اختيارا قائمةوادخل في السطر مصدر= واسم النطاق مع البيانات المطلوبة (أي =المنتج) (الشكل 3). انقر نعم.

تظهر نتيجة إنشاء القائمة المنسدلة في الشكل 4.

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

الشكل 3

الشكل 4

تقديم وظائف MATCH وINDEX

تُستخدم الدالتان MATCH وINDEX بشكل أساسي لاستبدال البيانات تلقائيًا في جدول من نطاق معين.

بناء جملة الوظيفة

MATCH (قيمة البحث، المصفوفة، نوع المطابقة)

مجموعة مصفوفةعبارة عن كتلة تتكون من عمود واحد أو صف واحد.

نوع مباراةهو الرقم -1 أو 0 أو 1.

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

لو نوع مباراةيساوي 0, الذي - التي وظيفة المباراةيجد القيمة الأولى التي تساوي الوسيطة تمامًا search_value.تم المشاهدة مجموعة مصفوفةقد يكون مضطربا.

لو نوع مباراةيساوي -1، ثم الدالة يبحثيجد أصغر قيمة أكبر من قيمة البحث,أو يساويها. View_arrayيجب أن يتم ترتيبها بترتيب تنازلي.

لو نوع مباراةتم حذفه، ويفترض أنه يساوي 1 .

وظيفة يبحثتُرجع موضع القيمة التي تم البحث عنها في المصفوفة، وليس القيمة نفسها.

وظيفة فِهرِسله شكلين. سننظر في واحد فقط.

INDEX (الجدول؛ رقم_الصف؛ رقم_العمود)

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

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

المهمة 2. مقدمة إلى وظيفة المباراة

باستخدام الدالة MATCH()، حدد موضع المنتج المسمى "Yogurt" في النطاق منتج. لهذا:

1. في كتاب إلكتروني Ex03_1.xlsxاذهب إلى الورقة سعرووضع مؤشر الورقة في أي خلية حرة؛

2. أدخل الصيغة =MATCH("Yoghurt";Product;0) في هذه الخلية، أي. نشير باستخدام هذه الوظيفة إلى أننا بحاجة إلى العثور على عنصر "الزبادي" (يتم الإشارة دائمًا إلى قيمة النص في الوظائف بين علامتي الاقتباس) في النطاق منتجنوع المطابقة 0 - المطابقة التامة؛

3. اضغط على Enter. ونتيجة لذلك، يجب أن تحصل على الرقم 7 (الشكل 5).

الشكل 5

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

الشكل 6

يرجى ملاحظة أنه يمكن تحديد قيمة الدالة MATCH() إما القيمة نفسها أو اسم الخلية التي توجد بها هذه القيمة. على سبيل المثال، سيوفر الإدخال =MATCH(A7;Product;0) نفس النتيجة عند استخدام الإدخال =MATCH("Yogurt";Product;0).

المهمة 3. مقدمة إلى وظيفة INDEX

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

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

1. في كتاب إلكتروني Ex03_1.xlsxعلى ورقة سعرضع مؤشر الورقة في أي خلية حرة؛

2. أدخل الوظيفة التالية في هذه الخلية =INDEX(Product;5). اضغط دخول. وتظهر النتيجة في الشكل 7.

الشكل 7

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

في الخلية الجديدة، أدخل الصيغة =INDEX(Table;8;2). ونتيجة لذلك، سوف تجد تكلفة لحم الخنزير (الشكل 8).

الشكل 8

استبدال البيانات تلقائيا

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

يعتمد الاستبدال التلقائي للبيانات من جدول البحث على الاستخدام المشترك لوظيفتي INDEX وMATCH.

المهمة 4. الجمع بين وظائف MATCH وINDEX

في الكتاب الإلكتروني Ex03_1.xlsxعلى ورقة مبيعاتفي عمود سعرباستخدام وظائف MS Excel، توفر الاستبدال التلقائي لتكلفة البضائع من الورقة سعر، اعتمادًا على القيمة المحددة من القائمة المنسدلة في الورقة مبيعات.

1. ضع مؤشر ورقة العمل في الخلية C2 وأدخل الصيغة التالية فيها:

2. اضغط على Enter. ونتيجة لذلك، ستتلقى في الخلية C2 تكلفة المنتج المشار إليه في العمود المجاور (الشكل 9). عند تحديد اسم منتج آخر من القائمة المنسدلة، ستتغير قيمة السعر وفقًا لذلك.

الشكل 9

3. باستخدام علامة الإكمال التلقائي، قم بتكرار هذه الصيغة إلى نهاية الجدول (الشكل 10).

الشكل 10

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

=INDEX(جدول، MATCH(B2، المنتج، 0)، 2)

سوف تأخذ النموذج

=INDEX(جدول،3،2)

المعلمة "3" هي نتيجة وظيفة البحث.

بعد ذلك، يتم تشغيل وظيفة INDEX، والتي ستبحث في النطاق طاولةعلى ورقة سعرالقيمة الموجودة عند تقاطع الصف الثالث والعمود الثاني. (يرجى تذكر أن النطاق طاولةيتكون من عمودين). هذه القيمة ستكون تكلفة المنتج، في هذه الحالة الخبز = 27.

المهمة 5. تصميم الجدول النهائي

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

المهمة 6. مهمة مستقلة

افتح الملف إطارات.xls . مطلوب لأتمتة التغييرات في الرواتب على الورقة شؤون الموظفين .

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

قم بإنشاء ورقة جديدة وقم بتسميتها ولاية .

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

إزالة الموظفين المكررة. لهذا:

1. حدد عمود المنصب والرواتب.

2. في علامة التبويب بيانات انقر فوق الزر إزالة التكرارات .

3. قم بإزالة علامة الاختيار من العمود مرتب.

4. انقر فوق الزر نعم.

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

القواعد الارشادية

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

2. حدد على الورقة ولايةنطاق الراتب. قم بتسمية النطاق المحدد مرتب.

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

4. بعد إدخال الصيغة تأكد من أن الراتب الناتج يتوافق فعليا مع راتب وظيفة الموظف من الورقة ولاية.

5. تغيير راتب الفصل. محاسب على الورقة ولاية. تحقق مما إذا كان الراتب المقابل قد تغير في الورقة موظفين.

/
المحاسبة لأوكرانيا /
العمل مع الوثائق والكتب المرجعية والتقارير

كيفية ضبط المؤسسة الرئيسية للاستبدال في المستندات

يصف هذا القسم كيفية إعداد مؤسسة أساسية للاستبدال التلقائي في المستندات الجديدة.

التثبيت من الدليل

في دليل المنظمات (قائمة "المؤسسة" - "المؤسسات") يتم تمييز المؤسسة الرئيسية بالخط العريض. وهذا يعني أنه عند إنشاء مستندات جديدة سيتم إدراجها تلقائيًا.

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

رمز الاتصال Preoix الاسم l w 00000001 إلى Dobro 000000001 DB Do5ro5ut 00000006 DU Do st eka والتثبيت 00000005 NF National S0000001 nsho منظمتنا " width = "757" height = "216" border = "0">

ملحوظة
يتم حفظ المؤسسة الأساسية في إعدادات المستخدم. لكل مستخدم، تتم الإشارة إلى المؤسسة الرئيسية بشكل فردي.

اختيار الوثائق حسب المنظمة الرئيسية

في الاعدادات مستخدم(القائمة "الخدمة" - " إعدادات المستخدم") يمكنك ضبط وضع التحديد التلقائي للمستندات بواسطة المؤسسة الرئيسية. وهذا يعني أنه سيتم عرض مستندات المؤسسة الرئيسية فقط في جميع المجلات وقوائم المستندات.

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

إذا لزم الأمر، يمكن تغيير المؤسسة الرئيسية مباشرة في إعدادات المستخدم في مجموعة "القيم الأساسية للاستبدال في المستندات والأدلة".

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

للقيام بذلك تحتاج:

    كتابة دالة RetailPrice التي ستعيد السعر الحالي؛

    استدعاء الوظيفة عند إضافة عنصر جديد إلى المستند.

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

1. قم بإنشاء وظيفة سعر التجزئةفي الفرع العام – الوحدات العامة بالاسم العمل مع الدلائل. تعيين العلم مكالمة الخادم(بحيث يمكن استدعاء إجراءات التصدير ووظائف هذه الوحدة من العميل) (الشكل 71 أ).

أرز. 71 أ. خصائص الوحدة المشتركة

2. ضع النص التالي في الوحدة.

دالة سعر البيع بالتجزئة (التاريخ الحالي، عنصر تسمية الخدمة) تصدير

// إنشاء اختيار كائن مساعد

Selection = New Structure("Service Nomenclature",Service Nomenclature Element);

// احصل على قيم موارد التسجيل الحالية

ResourceValues=InformationRegisters.Prices.GetLast(CurrentDate, Selection);

ReturnResourceValue.Price;

وظيفة النهاية

دعونا شرح الوظيفة.

للحصول على سعر التجزئة، تحتاج إلى تمرير معلمتين إلى الدالة:

    التاريخ الحالي– تحدد المعلمة من نوع التاريخ النقطة على المحور الزمني التي نهتم بها بقيمة سعر التجزئة.

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

اسم مفتاح الهيكل ("H تسميات الخدمات") يجب أن يتطابق مع اسم بُعد التسجيل المحدد في أداة التهيئة وقيمة عنصر البنية ( عنصر تسمية الخدمات) يحدد القيمة المحددة لهذا البعد.

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

طريقة الحصول على اخر الاشياءتقوم بإرجاع بنية تحتوي على قيم الموارد، والتي يتم تخزينها في متغير قيم الموارد.

في السطر التالي نحصل على سعر التجزئة المطلوب من خلال الإشارة إلى اسم مورد التسجيل المطلوب مفصولاً بنقطة ( موارد القيمة.السعر) وإعادته عند تنفيذ الوظيفة.

الذي - التي. يمكن استدعاء هذه الوظيفة في وقت ما.

بحاجة لفتح نموذج الوثيقة تنفيذ الخدمات(تم إنشاؤه في وقت سابق). في وحدة النموذجضروري إضافة الإجراء عند التغيير.

للقيام بذلك، انقر نقرًا مزدوجًا فوق عنصر النموذج قائمة العناصر والخدمات (الشكل 71ب).

أرز. 71 ب. عناصر وثيقة أداء الخدمة

في نافذة الخصائص في الحدث عندما يتغيرقم بإنشاء معالج حدث بالنص التالي:

&OnClient

قائمة إجراءات خدمة التسميات عند التغيير (عنصر)

// احصل على الصف التالي من قسم الجدول

TabularPart Row = Elements.List of Nomenclature.CurrentData؛

//ضع سعر

TabularPart Row.Price = العمل مع Directory.RetailPrice(Object.Date, TabularPartLine.Service);

نهاية الإجراء

دعونا شرح الوظيفة.

السطر الأول معروف بالفعل: أولاً نحصل على السطر الحالي من الجزء الجدولي من المستند، لأنه سنحتاج إليها في المستقبل، وحفظها في متغير RowTabularPart.

ثم نسمي الدالة سعر التجزئة()من وحدة مشتركة العمل مع الدلائل.

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

ترجع الدالة قيمة السعر الأخيرة، ويتم تعيين هذه القيمة لحقل السعر في الصف الحالي من الجزء الجدولي من المستند ( RowTabularPart.Price).

يرجى ملاحظة أن هذا الإجراء قائمة NomenclaturesServiceWhenChanged()يبدأ العمل في وحدة النموذج من جانب العميل، لأن هذا هو معالج الأحداث التفاعلية للنموذج. عند إنشاء قالب لهذا الإجراء، سيقوم النظام الأساسي تلقائيًا بوضع توجيه التجميع قبل وصف الإجراء &OnClient.

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

دعونا نتحقق من الخطوات المذكورة أعلاه ونقوم بتشغيل التطبيق في 1C: وضع المؤسسة. دعونا نعمل مع التكوين المطور.

إدخال البيانات في قاعدة البيانات

1. أدخل ما لا يقل عن 8 وثائق تقديم الخدمات في التطبيق.