اكتب اسم النوع 1s. استخدام الأنواع المحددة

نوع النظامهو نظام خاص يتم من خلاله تنظيم البيانات المستخدمة بواسطة الحلول التطبيقية. يتيح لك نظام الكتابة تقديم معلومات واقعية بعبارات "مفهومة" لـ 1C:Enterprise 8.

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

يوجد وصف لنظام الكتابة في مساعد بناء الجملة وفي المساعدة المضمنة وفي الوثائق.

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

أنواع البيانات المحددة على مستوى النظام الأساسي

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

أنواع بدائية

أنواع البيانات البدائية هي أنواع مثل خط, رقم, تاريخ, منطقيةو اخرين. هذه الأنواع ليست شيئًا خاصًا بـ 1C:Enterprise 8. وكقاعدة عامة، توجد أنواع البيانات هذه في أنظمة برمجية أخرى.

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

مجموعات القيمة العامة

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

الأنواع الشائعة

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

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

يتم إنشاء مثيلات الكائن باستخدام مشغل لغة خاص مضمن - جديد.

أنواع الواجهة

تتيح لك أنواع الواجهات تنظيم التفاعل المرئي لحل التطبيق مع المستخدم. هذه هي في الأساس أنواع تتعلق بتشغيل النماذج وعناصرها.

أنواع البيانات التي تم إنشاؤها في حل التطبيق

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

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

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

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

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

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

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

على سبيل المثال، بعد إنشاء دليل جديد التسميات، تصبح أنواع البيانات التالية متاحة:

  • DirectoryManager.Nomenclature،
  • DirectoryLink.Nomenclature،
  • DirectoryObject.Nomenclature،
  • أخذ عينات الدليل،
  • DirectoryList.Nomenclature.

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

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

  • سجل التراكممدير مبيعات الشركة،
  • تسجيلالتراكمSelection.SalesCompany،
  • سجل التراكمList.SalesCompany،
  • تسجيل التراكمSetRecords.SalesCompany،
  • سجل التراكمسجل.مبيعات الشركة،
  • تراكم السجلسجل المفتاح.مبيعات الشركة.

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

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

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

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

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

لغة البرمجة الداخلية 1C 8.3 للمبرمجين المبتدئين: أنواع البيانات في 1C

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

أنواع البيانات

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

  • خط. مثال ممتاز على هذه البيانات هو اقتباس من قصيدة "العاصفة تغطي السماء بالظلام". يرجى ملاحظة أن البيانات من النوع String يتم تضمينها دائمًا التنصيص.
  • رقم. نحن جميعا على دراية بنوع البيانات. غالبًا ما نتعامل معها في الحياة الواقعية: في العمل في يوم الدفع، ثم في المتجر. الأرقام، كما تعلمون بالطبع، يمكن أن تكون كذلك جميعو كسور. مثال على عدد صحيح: 1000000، وكسر: 3.14. يتم فصل الجزء الكسري عن الجزء كله نقطة. الأرقام لديها أيضا علامة: زائدأو ناقص.
  • تاريخ. تاريخ ميلادك هو مثال على هذا النوع من البيانات. ويشمل السنة والشهر واليوم. على سبيل المثال، تمت أول رحلة فضائية مأهولة في 12 أبريل 1961. في لغة الكمبيوتر، ستبدو هذه البيانات كما يلي: " 19610412 ". حاول أن تكتشف بنفسك سبب ذلك. التاريخ دائمًا ونقلت واحدة ().

المهمة رقم 6.اكتب بتنسيق الكمبيوتر (باستخدام نوع البيانات المناسب) الإجابات على الأسئلة التالية:

  1. متى تم إطلاق أول قمر صناعي؟
  2. ما هو اسم أول رائد فضاء؟
  3. كم عدد الكواكب الموجودة في النظام الشمسي؟

تحقق من نفسك

بناء على نتائج المهمة رقم 7، يمكن استخلاص نتيجة مثيرة للاهتمام: ليس فقط السلاسل، ولكن أيضا يمكن تمرير البيانات من أي نوع آخر كمعلمة لأمر التقرير.

معالجة البيانات

الآن، أخيرًا، دعونا نعالج هذه البيانات! ما هي العمليات التي يمكننا القيام بها على البيانات؟ ذلك يعتمد على نوعها.

على سبيل المثال، يمكننا ربط السلاسل ببعضها البعض باستخدام علامة الإضافة:

للتعبيرات الحسابية الأكثر تعقيدًا، استخدم الأقواس:

المهمة رقم 8.قم بتشغيل الأمثلة التالية على جهاز الكمبيوتر الخاص بك.

تستمر هذه المقالة في سلسلة المقالات "الخطوات الأولى في تطوير 1C." سنتحدث عن أنواع البيانات البدائية والوظائف الأكثر شيوعًا عند العمل معها. بعد قراءة المادة ستتعلم:

  • ما هي أنواع البيانات البدائية؟
  • كيف يمكنك العمل مع السلاسل وما هي الميزات التي يجب أخذها بعين الاعتبار؟
  • ما هي التفاصيل الدقيقة للعمل مع التعبيرات العددية؟
  • كيف تصف تاريخًا بقيمة معينة؟ كيفية تحديد تاريخ فارغ؟
  • كيف يعمل تحويل النوع؟
  • لاغية وغير محددة - ما هي وما هي الاختلافات؟
  • كيفية تحديد نوع الكائن/المتغير؟

القابلية للتطبيق

تمت كتابة المقالة لإصدار النظام الأساسي 1C 8.3.4.496، وبالتالي فإن المعلومات ذات صلة أيضًا بالإصدار الحالي من النظام الأساسي. ومع ذلك، تجدر الإشارة إلى أنه في الإصدار 8.3.6.1977 تمت إضافة وظائف جديدة للعمل مع السلاسل. لذلك، عند تكرار الخطوات الواردة في المقالة، لا تتفاجأ إذا رأيت في القسم المقابل من Syntax Assistant بعض الوظائف التي لم تظهر في لقطة الشاشة الخاصة بنا. نوصي أيضًا بالتعرف على طريقة StringWithNumber() الجديدة المضافة في النظام الأساسي 8.3.10.

أنواع البيانات البدائية وبعض وظائفها

يتم تمييز أنواع البيانات البدائية التالية:

ثوابت السلسلة

نوع البيانات البدائية خط(ثابت السلسلة) يتكون من أحرف مختلفة. خطمحاط دائمًا بعلامات الاقتباس. مثال على ثابت السلسلة:

message.Text = "هناك بيانات فارغة"؛

أولئك. يتم تعيين السطر "هناك بيانات فارغة" للسمة نصهدف رسالة. أي شيء محاط بعلامات الاقتباس يعتبر سلسلة.

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

النص = "تم ملء التفاصيل غير الصالحة"
"من المستحيل نشر الوثيقة"؛

يتم وضع الفاصلة المنقوطة فقط في نهاية السطر الأخير.

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

يتم استخدام بناء الجملة هذا غالبًا في التكوينات النموذجية. وعلى وجه الخصوص، في لغة الاستعلام. على سبيل المثال:

طلب.نص =
"يختار
| الموظفين.الاسم كموظف،
| الموظفون.تاريخ الميلاد هو تاريخ الميلاد
|من
| Directory.Employees كيف الموظفين
|أين
| "ليس الموظفون. هذه مجموعة"؛

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

أولئك. تحتاج إلى دمج سطرين، على سبيل المثال، مع إضافة علامة "+" بين السطور:

Text = "تم ملء التفاصيل بشكل غير صحيح" + "من المستحيل نشر المستند"؛

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

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

نص = "خطأ في الوحدة النمطية "الوحدة العامة 1""؛

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

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

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

كل هذه الوظائف متاحة في أي مكان في التكوين.

في مساعد بناء الجملة هم في القسم وصف عام للغة المضمنةوظائف مدمجةوظائف للعمل مع قيم نوع السلسلة.

هناك عدد كبير جدًا من الوظائف وعادةً ما تكون كافية للعمل مع ثوابت السلسلة.

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

المهمة:

وظيفة تحتاج إلى تطوير. يتم تمرير سلسلة عشوائية كمعلمة للوظيفة. يمكن أن تكون الأحرف الموجودة في السطر أرقامًا أيضًا.

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

على سبيل المثال، تحتوي السلسلة "72 ABC 6AP 31 54f -22" على عددين صحيحين موجبين: 72 و31. وبصرف النظر عن المسافات، لا يتم استخدام الأحرف الأخرى غير المهمة (مثل علامات الجدولة وأحرف الإرجاع). يجب أن تقوم الدالة بإرجاع عدد الأعداد الصحيحة الموجبة.

ويجب أن يكون موجودًا في وحدة تطبيق مُدارة. من الضروري التأكد من أنه يتم استدعاؤه عند بدء تشغيل النظام. تحديد سلسلة باستخدام متغير.

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

داخل المعالج نحدد متغيرًا خط، على سبيل المثال:

الصف = "72 ABC 6AP 31 54f -22"؛

الكمية = عدد الأعداد الصحيحة (سلسلة)؛

دعنا نرسل رسالة حول عدد الأعداد الصحيحة:

تقرير("يحتوي السطر على أعداد صحيحة" + Number + "");

في هذه الحالة المتغير كميةسيتم تحويلها ضمنيا إلى الكتابة ثابت السلسلة. ثم سيتم تنفيذ عملية التسلسل على السلاسل الثلاثة وسيتم إرسال الرسالة.

دعونا نحدد بداية ونهاية (أي القالب) للوظيفة عدد الأعداد الصحيحة (سلسلة).

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

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

بناء الجملة:

رمز الحرف (،)

خيارات:

(مطلوب)

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

قيمة الإرجاع:
رمز الحرف المرسل. يتم إرجاع الرمز وفقًا لترميز Unicode.

يرجى ملاحظة أن المعلمة هناك قيمة افتراضية قدرها 1.

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

دعونا نحدد المتغيرات المقابلة وقيمها:

Code0 = CharacterCode("0");
Code9 = CharacterCode("9");

لحل المشكلة نختار المخطط التالي:

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

الآن دعونا نلقي نظرة على الوظائف التي نحتاجها لحل المشكلة.

AbbrLP
بناء الجملة: AbbrLP()
خيارات: (مطلوب).
قطع المسافات (الأحرف غير المهمة) إلى يسار أول حرف مهم في السلسلة وإلى يمين آخر حرف مهم في السلسلة.

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

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

الطول
بناء الجملة: StrLength()
خيارات: (مطلوب).
يحصل على عدد الأحرف في السلسلة. سوف نستخدمها لتحديد طول السلسلة.
وظيفة رمز الرمز، والتي سنستخدمها لتحديد مجموعات الأحرف التي تمثل أعدادًا صحيحة، تم وصفها مسبقًا.

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

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

يوجد أدناه خوارزمية محتملة للوظيفة مع التعليقات.

التعبيرات الرقمية

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

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

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

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

العمليات المطبقة على الأرقام:

  • العمليات الحسابية العادية (-، +، *، /). الضرب والقسمة لهما الأسبقية على الجمع والطرح. الأقواس لها الأولوية القصوى. هناك أيضًا عوامل تشغيل أحادية + و-، والتي تأتي أسبقيتها مباشرة بعد الأقواس؛
  • عملية "باقي القسمة" (٪). على سبيل المثال، 12%5=2;
  • الدوال الرياضية التي يمكن استخدامها للأرقام (الدوال المثلثية، الأسية، الجذر التربيعي، التقريب إلى قيمة مكانية محددة، تحديد الجزء الصحيح من الرقم)

إذا تحدثنا عن دقة القيم الرقمية، فيما يتعلق بتفاصيل قاعدة البيانات، فهناك قيود طبيعية.

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

القيم المنطقية

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

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

حروف النوع التاريخ

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

يتم كتابة السنة أولا ثم الشهر ثم اليوم.

إذا لزم الأمر، يمكنك أيضا تحديد الوقت، لأنه في نظام 1C:Enterprise 8، يحتوي أي تاريخ على التاريخ والوقت. على سبيل المثال:

DocumentDate = '20140315121020';

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

تاريخ الوثيقة = '2014.03.15';

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

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

في نظام 1C:Enterprise 8، التاريخ الفارغ هو بداية التقويم. خيارات التسجيل:

التاريخ الفارغ = '00010101';
التاريخ الفارغ = التاريخ(1,1,1);

سيعود كلا الإدخالين بنفس النتيجة، وسيعتبر هذا التاريخ فارغًا.

راحة الوظيفة تاريخ()النقطة المهمة هي أنه لا يمكننا أن نمرر فيها قيمًا محددة، بل بعض المتغيرات. أي أننا في بعض الأحيان نقوم ببناء تاريخ من خلال جمع متغيرات مختلفة.

عملية الإضافة قابلة للتطبيق على التواريخ. تقوم عملية الإضافة بإضافة عدد الثواني المحدد إلى التاريخ.

تحويلات نوع البيانات البدائية

في بيان المهمة حيث يتم جمع متغيرات متعددة (على سبيل المثال، المتغير = أ + ب + ج)، من الممكن تحويل أنواع البيانات البدائية. يتم إجراء تحويل نوع البيانات على قيمة نوع البيانات الأول.

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

وهكذا، السلسلة + الرقم = السلسلة. في بعض الأحيان يمكن إضافة رقم إلى سلسلة، إذا كان من الممكن استخراج بعض القيمة الرقمية من السلسلة (على سبيل المثال، 123 + "456").

بالنسبة لنوع البيانات المنطقية، تنطبق التعبيرات التالية:

صحيح و1 = صحيح؛
صحيح و0 = خطأ.

أي رقم أكبر من الصفر يتم تحويله إلى صحيح، ويتم تحويل 0 إلى خطأ.

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

في هذه الحالة، يتم تحويل True إلى 1 وخطأ إلى 0.

بالإضافة إلى تحويل النوع في عوامل التشغيل، يمكن تحويل النوع الصريح باستخدام الوظائف المناسبة: سلسلة ()، رقم ()، تاريخ ()، منطقية ().

ل خطيتم تحويل أي نوع بيانات.

يمكن الحصول على الرقم من سلسلة أو من منطقية. التحويلات المنطقية: صحيح إلى 1، خطأ إلى 0.

يمكنك إرسال سلسلة إلى Date إذا كانت تحتوي على قيمة تاريخ. على سبيل المثال، التاريخ("20140315"). كما ذكرنا سابقًا، من الممكن التحويل حسب الموضع:

تاريخ(،).

يمكنك تحويل الرقم والقيمة المنطقية نفسها إلى منطقية.

يمكن استخدام هذه الوظائف في كود البرنامج لإجراء تحويل صريح للنوع.

يمكن أن تعمل أنواع البيانات الأولية Number وString وDate وBoolean كحقول قاعدة بيانات.

القيم الخالية وغير المحددة

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

إنها السجلات المفقودة في الجدول الثاني المملوءة بقيمة NULL. أولئك. إنه نوع من القيمة المفقودة.

في المستقبل، عند معالجة النتيجة الناتجة، يجب أن يؤخذ ذلك في الاعتبار، لأن NULL ليس صفرًا، ولكنه نوع البيانات المقابل.

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

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

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

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

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

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

يظهر هذا النوع (غير محدد)، أولاً، إذا كان لدينا متغير معين ولم تتم تهيئته (لم يتم تعريف نوع البيانات).

المثال الثاني: يتم إرجاع نوع البيانات غير المحدد بواسطة العديد من وظائف اللغة المضمنة إذا تعذر تنفيذ الإجراء.

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

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

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

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

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

NULL وUndef هما نوعان من البيانات والقيم في هذه الأنواع، وهما نوع واحد فقط. بالنسبة إلى NULL فهي القيمة NULL، وبالنسبة إلى Undef فهي غير محددة.

نوع البيانات نوع

الاستخدام الرئيسي لهذا النوع من البيانات هو مقارنة قيمة متغير معين أو سمة قاعدة بيانات بنوع معين.

أولئك. في الخوارزمية، عليك أن تفهم نوع الكائن المحدد.

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

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

يتم تمرير الكائن الذي تريد الحصول على نوع البيانات له إلى هذه الوظيفة.

تقوم هذه الدالة بإرجاع نوع النوع بالضبط كقيمة الإرجاع الخاصة به.

في المستقبل، ينبغي مقارنتها بأي نوع من الاهتمام. على سبيل المثال:

إذا كان TypeValue(Element) = اكتب ("DirectoryLink.Nomenclature") ثم
تقرير("هذا منتج");
إنهاء إذا؛

في الختام، دعونا نلخص جميع المواد التي تمت تغطيتها.

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

سنستكشف هذه الكائنات بمزيد من التفصيل في المقالة التالية، لذا تابعونا! ;)

نواصل التعرف على الوظيفة الجديدة لـ 1C:Enterprise، والتي بدأت في المقالة السابقة من السلسلة. بعد دراسة المواد الموجودة في هذه المقالة سوف تتعلم:

  • ما هي الأنواع المحددة وكيفية استخدامها؟
  • ما هي خاصية التكوين "الأدوار الأساسية" المستخدمة؟
  • كيفية استخدام المساعد لإنشاء معالجات أحداث العميل لنموذج؟
  • كيف ولماذا يتم استخدام تحميل التكوين إلى ملفات XML؟

القابلية للتطبيق

تتناول المقالة إصدار النظام الأساسي 1C:Enterprise 8.3.4.437، لكن مواده قد تكون مفيدة أيضًا لأولئك الذين يعملون على الإصدارات الأقدم.

كيفية جعل التطوير أسهل في 1C:Enterprise 8.3

نواصل النظر في الابتكارات في النظام الأساسي 1C:Enterprise 8 الذي يهدف إلى تسهيل التكوين.

أنواع محددة

في النظام الأساسي 8.3، تمت إضافة كائن جديد إلى فرع التكوين "عام" - الأنواع المحددة.

هذا هو كائن تكوين خاص تم تصميمه لتحديد نوع بيانات يصف كيانًا يتم استخدامه بشكل متكرر أو من المحتمل أن يتغير عند تنفيذ حل التطبيق.

على سبيل المثال، فكر في نوع مركب يتضمن رابطًا إلى أدلة "الأطراف المقابلة" و"الأفراد".

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

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

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

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

سيتم تغيير جميع التفاصيل التي تم تحديد النوع المحدد لها كنوع تلقائيًا.

إليك مثال آخر لاستخدام نوع محدد.

بالنسبة لبعض التفاصيل، يوجد معيار للكتابة ضمن التكوين. على سبيل المثال، نحدد الكمية كرقم بطول 15 بدقة 3، والمجموع كرقم بطول 15 بدقة 2.

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

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

هذه ليست مهمة صعبة، ولكنها تتطلب عمالة كثيفة للغاية وتتطلب عناية كبيرة ومثابرة من المطور.

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

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

بعد ذلك، إذا كنت بحاجة إلى تغيير نوع البيانات لجميع التفاصيل، فلن تحتاج إلى تصحيح كل سمة يدويًا على حدة؛ يكفي إجراء تغييرات على النوع المحدد المقابل.

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

لاحظ أنه في إصدار النظام الأساسي 8.3.5، تمت زيادة إمكانيات استخدام الأنواع المحددة من خلال توسيع مجموعة الأنواع التي يمكن أن تكون جزءًا من نوع محدد.

لم تكن هناك تغييرات أخرى في العمل مع النوع المحدد حتى الإصدارات الحالية من النظام الأساسي 8.3.10/8.3.11.

خاصية التكوين "الأدوار الأساسية"

في النظام الأساسي 8.2، كان لعنصر التكوين الجذر خاصية "الدور الأساسي"، حيث حدد المطور الدور الذي سيتم استخدامه في حالة عدم وجود مستخدمين في قاعدة المعلومات.

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

للتكبير، انقر على الصورة.

إنشاء معالجات أحداث عميل النموذج

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

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

في النظام الأساسي 8.3، ظهر مساعد لإنشاء معالجات لأحداث نموذج العميل.

للتكبير، انقر على الصورة.

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

تحميل التكوين إلى الملفات

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

يتم دائمًا تحميل التكوين بالكامل، دون إمكانية تصفية الكائنات التي تم تحميلها.

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

يتم تحميل كائنات التكوين كمجموعة من ملفات XML. يتم حفظ الوحدات وتخطيطات النص كملفات TXT. يتم حفظ الصور من التكوين كملفات صور (BMP، PNG، وما إلى ذلك). يتم تحميل معلومات المساعدة إلى ملفات HTML.

للتكبير، انقر على الصورة.

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

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

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

يتوفر أيضًا العمل مع وظيفة التحميل/التفريغ الجديدة باستخدام معلمات سطر الأوامر LoadConfigFromFiles وDumpConfigToFiles. على سبيل المثال، مثل هذا:

"c:\Program Files (x86)\1cv8\8.3.4.437\bin\1cv8.exe" المصمم /F "X:\Platform8Demo" /N "المسؤول" /DumpConfigToFiles "X:\1\"

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

تمت الإشارة إلى أنه افتراضيًا يتم استبعاد أوامر "تحميل ملفات التكوين" و"تحميل ملفات التكوين" من أداة التهيئة في النظام الأساسي 8.3.

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

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

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

يتم تحميل الكائنات المتبقية إلى ملفات ذات تنسيقات عالمية. في الأساس، تركز الآلية على التطبيق المُدار.

توفر الآلية الجديدة للمطور القدرة على معالجة التكوين تلقائيًا عن طريق تشغيل المكوّن في الوضع الدفعي.

كما يمكن الآن تحرير التكوين بواسطة برنامج خارجي باستخدام تنسيق XML، على سبيل المثال.

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

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

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

بدءًا من الإصدار 8.3.11، أصبح التنسيق "الهرمي" هو التنسيق الوحيد المتاح للاختيار أثناء التحميل التفاعلي:

إذا كنت تستخدم هذه الوظيفة، نوصي بما يلي:

  • أولاً، استخدم تنسيق تحميل "هرميًا"؛
  • ثانيًا، استخدم منصة لا تقل عن الإصدار 8.3.8+، لأن بدءًا من ذلك، تمت زيادة سرعة تحميل/تحميل ملفات XML بشكل ملحوظ.

في الإصدار 8.3.10، بدأ دعم التحميل الجزئي للتكوين إلى ملفات XML. ونتيجة لذلك، أصبح من الممكن استخدام تحميل التكوين في XML بالتزامن مع Git.

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

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

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

إعدادات

لا يوجد الكثير من الإعدادات لهذا الكائن:

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

مثال على استخدام الأنواع المحددة في 1C 8.3

يمكن العثور على مجموعة كبيرة ومتنوعة من التطبيقات لهذا الكائن.

أمثلة على الاستخدام:

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

وأكثر بكثير.

إذا كنت بدأت في تعلم برمجة 1C، فإننا نوصي بدورتنا المجانية (لا تنس