1C التحقق من نوع القيمة. مجموعات نوع البيانات

09.02.2022

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

غالبًا ما يتم استخدام العمل مع أنواع 1C:

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

يمكن الحصول على النوع 1C:

  • تحديد نوع القيمة الفعلية 1C
  • تحتوي كائنات القيمة على خصائص تشير إلى نوع 1C المسموح به (على سبيل المثال، أنواع 1C المسموح بها في عمود جدول، أو في حقل في نموذج، أو في بيانات التعريف) أو الأساليب التي تُرجع أنواع 1C هذه
  • من البيانات الوصفية - يمكنك الحصول على نوع 1C كما هو محدد في البيانات التعريفية في أداة التهيئة.

يمكن تقسيم الأنواع 1C إلى ثلاثة أنواع:

  • الأنواع الأساسية 1C
  • أنواع قواعد بيانات 1C (المرجع، الكائنات)
  • أنواع 1C.

تعريف نوع 1C ومقارنة أنواع 1C

يمكنك معرفة نوع القيمة 1C باستخدام الدالة TypeValue(Variable)

لفهم نوع 1C الذي أعادته هذه الوظيفة، نحتاج إلى تحديد النوع الذي نحتاجه ("اسم النوع")

على سبيل المثال، تعريف (مقارنة) لمتغير من النوع 1C:
إذا كان TypeValue(Variable) = Type("TypeName") إذن

ما هي الأنواع التي يجب أن أكتبها كـ TypeName؟

الأنواع الأساسية

الأنواع الأساسية لـ 1C - الرقم، السلسلة، التاريخ، المنطقية.

على سبيل المثال:

زنش = 12؛ إذا كانت ValueType(Value) = Type("Number" "String" ) ثم ElseIf Value = Type("Date") ثم وإلا إذا كانت القيمة = Type("Boolean" ) ثم

endIf;

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

يقوم 1C بتخزين البيانات في قاعدة بيانات، ولكن ليس في شكل سجلات فردية، ولكن في شكل كائنات.

على سبيل المثال:

معظم الكائنات المحفوظة (بما في ذلك: الدلائل والمستندات والتعدادات والعمليات التجارية والمهام) متاحة ككائن (للتحرير والكتابة) وكرابط (للقراءة). راجع "الارتباطات والكائنات" لمزيد من التفاصيل. القيمة = الدلائل. المنظمات. رابط فارغ () ؛إذا كانت قيمة TypeValue(Value) = النوع( "DirectoryLink.المنظمات") ثم قيمة ElseIf = النوع ( "كائن الدليل.المنظمات"إذا كانت قيمة TypeValue(Value) = النوع( ) ثم ElseIf TypeValue(Value) = النوع("DocumentLink.استلام البضائع" إذا كانت ValueType(Value) = Type("Number" "String" ) ثم ElseIf Value = Type("Date") ثم وإلا إذا كانت القيمة = Type("Boolean" ) ثم

"DocumentObject.استلام البضائع" ) ثميمكن تقديم السجلات
أنواع مختلفة

. اسم نوع السجل المركب:

  • RegisterRegisterTypeAccessType.RegisterName
  • الادخار
  • محاسبة
  • حساب.

هناك عدة أنواع من الوصول إلى التسجيل. الأكثر استخدامًا:

  • مجموعة من السجلات
  • قائمة
  • عينة
  • سِجِلّ
  • مفتاح السجل.

مثال:
إذا كانت TypeValue(Value) = Type("InformationRegisterList.RegisterName") إذن
وإلا إذا كانت القيمة = النوع ("AccumulationRegisterRecordSet.RegisterName") ثم
endIf;

أنواع 1C

تتيح لك لغة 1C العمل مع العديد من الكائنات التي تم إنشاؤها ديناميكيًا في البرنامج، على سبيل المثال، مصفوفة، وقائمة قيم، وجدول قيم، وبنية...

تتم الإشارة إلى أنواع 1C هذه باسمها (بكلمة واحدة، بدون مسافات). على سبيل المثال:
إذا كانت TypeValue(Value) = اكتب("Array") إذن
ElseIf Value = Type("قائمة القيم") ثم
endIf;

تحديد قيمة النوع المرجعي 1C

يتم العمل مع كافة كائنات قاعدة البيانات (الدلائل والمستندات...) من خلال الروابط. على سبيل المثال، إذا أردنا إنشاء مرجع في مستند، فسيكون نوعه 1C هو "DirectoryLink.DirectoryName".

على سبيل المثال:

القيمة = الدلائل. المنظمات. رابط فارغ () ؛ إذا كانت ValueType(Value) = Type("Number" "String" ) ثم ElseIf Value = Type("Date") ثم وإلا إذا كانت القيمة = Type("Boolean" ) ثم

إذا الدلائل. اكتب AllLinks () . يحتوي على (TypeValue(Value)) ثم // هذا هو الدليل وإلا إذا المستندات. اكتب AllLinks () . يحتوي على (ValueType(Value)) ثم // هذا مستند

العمل مع أنواع 1C في الطلب

في الطلب، يمكن التحقق من نوع 1C بطريقتين.<Поле>).

للتحقق من نوع الحقل في طلب 1C 8.3، يمكنك استخدام وظيفة لغة الاستعلام VALUE TYPE(

حيث نوع القيم (مجموع الجدول) = النوع (رقم)<Имя типа>نوع الوظيفة(

) يحصل على نوع حسب اسمه. أسماء الأنواع البدائية: الرقم، السلسلة، المنطقية، التاريخ. يتم إنشاء أسماء الأنواع المرجعية وفقًا للمبدأ التالي: وثيقة مبيعات السلع والخدمات أو الدليل. حدد دوران الدعم الذاتي. Subconto1، دوران الدعم الذاتي. Subconto2، دوران الدعم الذاتي. Subconto3، دوران الدعم الذاتي. AmountTurnover، التحديد عند نوع القيم (Self-accountingTurnover. Subconto3 ) = TYPE (المستند. مبيعات السلع والخدمات) ثم "المبيعات" عندما تكون القيم TYPE (Self-accountingTurnover. Subconto3 ) = TYPE (المستند. استلام أمر نقدي) ثم "PKO " عندما تكون القيم من النوع (المحاسبة الذاتية، دوران لك. Subconto3 ) = النوع (المستند، أمر الإنفاق النقدي) ثم "RKO" بخلاف ذلك"وثيقة أخرى" نهاية كحسابات نوع المستند من RegisterAccounting. الدعم الذاتي. التحولات(& بداية الفترة، & نهاية الفترة، المسجل، الحساب = & Account6201، , , , ) AS المحاسبة الذاتيةالتحولات بالنسبة لحقول النوع المرجعي هناك واحد آخرطريقة التحقق

الاختيار عند دوران الدعم الذاتي. وثيقة رابط Subconto3. مبيعات السلع والخدمات ثم "البيع" عند دوران الدعم الذاتي. وثيقة رابط Subconto3. استلام النقود، الطلب ثم "PKO" عند دوران المحاسبة الذاتية. وثيقة رابط Subconto3. أمر نقدي مستهلك ثم "RKO" بخلاف ذلك حدد دوران الدعم الذاتي. Subconto1، دوران الدعم الذاتي. Subconto2، دوران الدعم الذاتي. Subconto3، دوران الدعم الذاتي. AmountTurnover، التحديد عند نوع القيم (Self-accountingTurnover. Subconto3 ) = TYPE (المستند. مبيعات السلع والخدمات) ثم "المبيعات" عندما تكون القيم TYPE (Self-accountingTurnover. Subconto3 ) = TYPE (المستند. استلام أمر نقدي) ثم "PKO " عندما تكون القيم من النوع (المحاسبة الذاتية، دوران لك. Subconto3 ) = النوع (المستند، أمر الإنفاق النقدي) ثم "RKO" بخلاف ذلكنهاية

الحصول على أنواع 1C المتاحة

العديد من الكائنات لها خاصية.ValueType، والتي تحتوي على قائمة بأنواع 1C:

الحقل على نموذج العميل السمين
عناصر النموذج.اسم الحقل.نوع القيمة
الحقل على النموذج عميل رفيع(الاستثناء: يسمى الأنواع المتاحة)
Elements.FieldName.AvailableTypes
عمود جدول القيم، شجرة القيم
تفاصيل النموذج
عنصر الاختيار

كيفية العمل مع هذه القائمة من أنواع 1C في هذا المجال. نوع القيمة - راجع "وصف الأنواع" في قسم "لغة 1C".

العمل مع أنواع تفاصيل 1C في بيانات تعريف التكوين

عند إضافة التفاصيل وتحريرها في أداة التهيئة، يحدد المبرمج نوع (أنواع) تفاصيل 1C. في رمز البرنامج بلغة 1C، يمكنك الحصول على (معرفة) نوع (أنواع) تفاصيل 1C.

الطرق الأساسية:

بالنسبة لكائن 1C، اتصل بطريقة Metadata()، التي تُرجع البيانات التعريفية لكائن معين ثم تعمل مع قائمة التفاصيل (وتفاصيل الجزء الجدولي)

استخدم المتغير العام "بيانات التعريف"، الذي يُرجع جميع بيانات تعريف التكوين، ثم قم بالوصول إلى تفاصيل كائن معين

البيانات الوصفية. المستندات. استلام البضائع. التفاصيل

تحتوي السمة على property.Type، والذي يحتوي على قائمة بأنواع 1C المعينة في أداة التهيئة لهذه السمة.

كيفية العمل مع قائمة أنواع 1C هذه - راجع "وصف الأنواع" في قسم "لغة 1C".

حدد مرشح نوع 1C

بالنسبة للعديد من الكائنات، من الممكن تحديد مرشح لأنواع قيم 1C التي يمكن استخدامها، على سبيل المثال:

قائمة القيم (.AvailableValues)
حقل نموذج العميل المُدار (.AvailableTypes)
عندما لا يكون المرشح متاحًا للتعديل، فمن الممكن تحديد المرشح في طريقة الكائن. على سبيل المثال، يحتوي عمود جدول (شجرة) القيم على.ValueType ولا يمكننا تغييره، ولكن عند إضافة عمود باستخدام طريقة.Add()، يمكن استخدام المعلمة الثانية لتحديد قائمة 1C المتاحة أنواع.

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

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

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

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

لغة الاستعلام 1C 8.3 للمبرمجين المبتدئين: الوظائف والعوامل للعمل مع الأنواع (VALUE TYPE، TYPE، REFERENCE، ISNULL، EXPRESS)

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

تحتوي لغة الاستعلام على فئة كاملة من الوظائف وعوامل التشغيل للتعامل مع أنواع التفاصيل. دعونا ننظر إليهم.

وظيفة نوع القيمة

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

الآن دعونا نلقي نظرة على الدعائم ميزة مميزةفي الدليل المدن:

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

إذا حاولنا ملء قيمة هذه التفاصيل في وضع 1C:Enterprise، فسيسألنا النظام عن نوع القيمة التي سيتم إدخالها:

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

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

يمكنك رؤية ذلك بنفسك من خلال النقر على عناصر الدليل المدنفي 1C: وضع المؤسسة. أنت تقرأ نسخة تجريبية من الدرس، الدروس الكاملة متوفرة.

هنا قيمة الميزة المميزة هي عنصر الدليل النكهات:

وهنا الخط:

وهنا بشكل عام عنصر من الكتاب المرجعي الألوان:

هذه هي الاحتمالات التي يفتحها لنا نوع البيانات المركبة!

وأتساءل كيف سوف تتصرف الوظيفة قيم النوععلى الدعائم العنصر المميز، وجود نوع بيانات مركب:

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

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

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

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

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

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

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

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

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

نوع الوظيفة

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

ستكون نتيجة هذا البناء قيمة من النوع Type للنوع المحدد.

يبدو غامضا، أليس كذلك؟

دعونا نلقي نظرة على تطبيق هذا التصميم وكل شيء سوف يقع في مكانه على الفور.

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

الآن دعونا نحدد كافة السجلات التي تحتوي على قيم السمات ميزة مميزةهي روابط لعناصر الدليل الألوان(طاولة الدليل.الألوان):

تراجع

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

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

وفيما يلي مثال على استخدامه:

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

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

لتحديد كافة السجلات التي تحتوي على المتطلبات ميزة مميزةموجود، ولكن غير مملوء، يجب استخدام بناء مختلف:

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

بالمناسبة، العامل المنطقي IS NULL لديه نموذج نفي يبدو كالتالي:

رابط المشغل المنطقي

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

كما تتذكر، يمكننا حل نفس المشكلة باستخدام قيم النوعو يكتب:

الوظيفة غير كاملة

تم تصميم الدالة لتحل محل قيمة باطلإلى معنى مختلف.

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

على سبيل المثال، الدعائم ميزة مميزةلمجموعات الدليل المدن:

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

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

وظيفة صريحة

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

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

للميدان ميزة مميزةهذه الأنواع الصالحة هي خط, الدليل.الألوانو الدليل.الأذواق.

في بعض الأحيان يصبح من الضروري تحويل قيم الحقل المركب إلى نوع معين.

دعونا ندرج جميع قيم الحقول ميزة مميزةللكتابة المرجع. الألوان:

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

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

خذ الاختبار

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

1. اختر العبارة الصحيحة

2. يتم استدعاء التفاصيل التي يمكن أن تأخذ قيم أحد الأنواع المتعددة

3. لتحديد نوع قيمة السمة، استخدم الدالة

4. التفاصيل الفارغة من النوع المركب مهمة

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

القفز السريع

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

  • أنواع بسيطة (بدائية).
  • أنواع الكائنات ومرؤوسيها
  • أنواع الكائنات من البيانات التعريفية (أنواع التطبيقات)
  • أنواع الواجهة
  • أنواع أخرى للأغراض العامة

أنواع بسيطة

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

أنواع الكائنات

  • مجموعات القيم (المصفوفات والهياكل وجداول القيم وغيرها)
  • التكامل (Com، الملفات، الكائنات الخارجية، ZIP، WS)
  • الغرض العام

كائنات من بيانات التعريف (التطبيق)

  • الثوابت
  • الدلائل
  • وثائق
  • التحويلات
  • التقارير
  • العلاجات
  • مخططات الحسابات
  • المهام
  • سجلات المعلومات
  • سجلات الادخار
  • سجلات المحاسبة
  • وآخرون...

واجهة

المتعلقة بالنوافذ والنماذج وعناصر النموذج (الحقول والتسميات والبيانات الجدولية وغيرها)

خيارات أخرى لتقسيم القيم

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

تحديد أنواع القيمة

يمكن تعيين القيمة:

مباشرة

This_Variable = "هذه قيمة سلسلة";

من خلال إنشاء الكائن

This_Variable = NewColor;

من خلال نتيجة استدعاء وظيفة النظام

This_Variable = Date(2016,1,1);

عن طريق الوصول إلى خاصية الكائن

This_Variable_Object_Color = لون جديد؛ This_Variable = This_Variable_Object_Color.Green;

الأنواع المركبة والبسيطة

ما لم يُنص على وجه التحديد، فإن نوع القيمة غير محدود.

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

بالنسبة للكائنات الأخرى، قد يظل نوع التفاصيل غير مقيد (من نوع اعتباطي)، أو محدود من خلال نوع خاص " أنواع الوصف«

على سبيل المثال، للحالة البسيطة

وصف النوع = وصف النوع الجديد ("الرقم، السلسلة")؛

يُستخدم هذا الكائن أيضًا للحد من تحديد أو إدخال البيانات في نماذج الحوار

صب القيم

يتم إنتاجه تلقائيًا عند تعيينه إلى سمة كائن (خاصية)، إذا هذه الدعامةلا يمكن تخزين هذه القيمة

وأيضًا أثناء عمليات التسلسل يتم إجراؤها أولاً على الحد الأول، عند الطرح، إن أمكن، إلى الثاني، ثم إلى النتيجة.

اللون = لون جديد (255,0,0); Color2 = لون جديد("2"+59-Color.Red,0,0); // في هذه الحالة، سيحدث ذلك على مراحل //"2"+59 ="259" //259-255 = 4 //Color2 = New Color(4,0,0);

يجب تنفيذ مثل هذه التحويلات "المعقدة" بحذر.

صب القيم باستخدام وظائف التحويل المضمنة

ThisWillBeNumber = Number("15"); ThisWillASTring = String(ThisWillANumber); ThisWillString = Format(ThisWillANumber,"");// من الممكن تحديد سلسلة تنسيق للقيمة ThisWillDate = Date("201601+ThisWillANumber);// سيكون الوقت 00:00:00 // الإرسال عبر كائن CanOnlyBeNumber = New descriptionTypes("Number") ; ThisWillBeNumber = CanOnlyBeNumber.GiveValue("12");

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

ThisAssignmentWillNotHappen = Date("12:45:45");

فحص النوع

تتم المقارنة من خلال الدالات الخاصة TypeValue() وType().

يقوم الأول بإرجاع قيمة النوع الذي تم تمريره، بينما يقوم الثاني بتعيين النوع الذي سيتم التحقق منه

هذا الرقم = 15؛ // إجابة السؤال: هل نوع قيمة المتغير "هذا الرقم" هو نوع "رقم" ThisBoolean = TypeValue(ThisNumber) = Type("Number"); // العلامة الأولى "= مهمة // الثانية "= هي مقارنة للمساواة

كائن "النوع" بحد ذاته مساعد ولا يمكن كتابته بالتفاصيل

مقارنة القيم

أنتجت:

  • عند المقارنة من أجل المساواة بناءً على تطابق واضح بين النوع والقيمة، لا يتم إجراء أي عملية اختيار
  • المقارنة عن طريق > أو< (на больше-меньше) допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)

لن أخوض في مزيد من التفاصيل حول هذه الأنواع، فمن الأفضل أن أتعرف عليها في المشكلات الحقيقية أو الأمثلة الضيقة

- بدأنا في مناقشة أنواع قيمة 1C وتحويل أنواع 1C.

سنتحدث اليوم بمزيد من التفاصيل حول أنواع كائنات تكوين 1C (نوع مستند 1C، ​​ونوع دليل 1C، وما إلى ذلك)

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

غالبًا ما يتم استخدام العمل مع أنواع 1C:

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

يمكن الحصول على النوع 1C:

  • تحديد نوع القيمة الفعلية 1C
  • تحتوي كائنات القيمة على خصائص تشير إلى نوع 1C المسموح به (على سبيل المثال، أنواع 1C المسموح بها في عمود جدول، أو في حقل في نموذج، أو في بيانات التعريف) أو الأساليب التي تُرجع أنواع 1C هذه
  • من البيانات الوصفية - يمكنك الحصول على نوع 1C كما هو محدد في البيانات التعريفية في أداة التهيئة.

يمكن تقسيم الأنواع 1C إلى ثلاثة أنواع:

  • الأنواع الأساسية 1C
  • أنواع قواعد بيانات 1C (المرجع، الكائنات)
  • أنواع 1C.

تعريف نوع 1C ومقارنة أنواع 1C

يمكنك معرفة نوع القيمة 1C باستخدام الدالة TypeValue(Variable)

لفهم نوع 1C الذي أعادته هذه الوظيفة، نحتاج إلى تحديد النوع الذي نحتاجه ("اسم النوع")

على سبيل المثال، تعريف (مقارنة) لمتغير من النوع 1C:
إذا كان TypeValue(Variable) = Type("TypeName") إذن

ما هي الأنواع التي يجب أن أكتبها كـ TypeName؟

الأنواع الأساسية

الأنواع الأساسية لـ 1C - الرقم، السلسلة، التاريخ، المنطقية.

على سبيل المثال:
زنش = 12؛
إذا كانت TypeValue(Value) = اكتب("Number") إذن
ElseIf Value = Type("String") ثم
قيمة ElseIf = النوع ("التاريخ") ثم
ElseIf Value = Type("Boolean") ثم
endIf;

endIf;

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

يقوم 1C بتخزين البيانات في قاعدة بيانات، ولكن ليس في شكل سجلات فردية، ولكن في شكل كائنات.

على سبيل المثال:
القيمة = Directory.Organizations.EmptyLink();
إذا كان TypeValue(Value) = اكتب("DirectoryLink.Organizations") إذن
وإلا إذا كانت القيمة = اكتب ("DirectoryObject.Organization") ثم
وإلا إذا TypeValue(Value) = Type("DocumentLink.Receipt of Goods") ثم
وإلا إذا كانت القيمة = النوع ("DocumentObject.Receipt of Goods") ثم
endIf;

يمكن أن تكون السجلات من أنواع مختلفة. اسم نوع السجل المركب:
أنواع مختلفة

. اسم نوع السجل المركب:

  • RegisterRegisterTypeAccessType.RegisterName
  • الادخار
  • محاسبة
  • حساب.

هناك عدة أنواع من الوصول إلى التسجيل. الأكثر استخدامًا:

  • مجموعة من السجلات
  • قائمة
  • عينة
  • سِجِلّ
  • مفتاح السجل.

المجموع، مثال:
إذا كانت TypeValue(Value) = Type("InformationRegisterList.RegisterName") إذن
وإلا إذا كانت القيمة = النوع ("AccumulationRegisterRecordSet.RegisterName") ثم
endIf;

تتيح لك لغة 1C العمل مع العديد من الكائنات التي تم إنشاؤها ديناميكيًا في البرنامج، على سبيل المثال، مصفوفة، وقائمة قيم، وجدول قيم، وبنية...

تتم الإشارة إلى أنواع 1C هذه باسمها (بكلمة واحدة، بدون مسافات). على سبيل المثال:
إذا كانت TypeValue(Value) = اكتب("Array") إذن
ElseIf Value = Type("قائمة القيم") ثم
endIf;

تحديد قيمة النوع المرجعي 1C

يتم العمل مع كافة كائنات قاعدة البيانات (الدلائل والمستندات...) من خلال الروابط. على سبيل المثال، إذا أردنا إنشاء مرجع في مستند، فسيكون نوعه 1C هو "DirectoryLink.DirectoryName".

على سبيل المثال:
القيمة = Directory.Organizations.EmptyLink();
إذا Directory.TypeAllLinks().Contains(TypeValue(Value)) ثم
// هذا كتاب مرجعي
ElseIf Documents.TypeAllLinks().Contains(TypeValue(Value)) ثم
// هذه وثيقة
endIf;

العمل مع أنواع 1C في الطلب

الأول مشابه لما تم وصفه، لكن اسم النوع 1C لا يشير إلى "رابط" أو "كائن"، أي بدلاً من "DirectoryLink.Organizations" نكتب "Directory.Organizations"

على سبيل المثال:

الحصول على أنواع 1C المتاحة

العديد من الكائنات لها خاصية.ValueType، والتي تحتوي على قائمة بأنواع 1C:

  • الحقل على نموذج العميل السمين
    عناصر النموذج.اسم الحقل.نوع القيمة
  • الحقل الموجود في نموذج العميل الرقيق (الاستثناء: يسمى "الأنواع المتوفرة")
    Elements.FieldName.AvailableTypes
  • عمود جدول القيم، شجرة القيم
  • تفاصيل النموذج
  • عنصر الاختيار

كيفية العمل مع قائمة أنواع 1C في هذا المجال. نوع القيمة - راجع "وصف الأنواع" في قسم "لغة 1C".

العمل مع أنواع تفاصيل 1C في بيانات تعريف التكوين

عند إضافة التفاصيل وتحريرها في أداة التهيئة، يحدد المبرمج نوع (أنواع) تفاصيل 1C. في رمز البرنامج بلغة 1C، يمكنك الحصول على (معرفة) نوع (أنواع) تفاصيل 1C.

الطرق الأساسية:

  • بالنسبة لكائن 1C، اتصل بطريقة Metadata()، التي تُرجع البيانات التعريفية لكائن معين ثم تعمل مع قائمة التفاصيل (وتفاصيل الجزء الجدولي)
    المستندات.استلام البضائع.EmptyLink().Metadata().التفاصيل
  • استخدم المتغير العام "بيانات التعريف"، الذي يُرجع جميع بيانات تعريف التكوين، ثم قم بالوصول إلى تفاصيل كائن معين
    البيانات الوصفية.المستندات.استلام البضائع.التفاصيل

تحتوي السمة على property.Type، والذي يحتوي على قائمة بأنواع 1C المعينة في أداة التهيئة لهذه السمة.

كيفية العمل مع قائمة أنواع 1C هذه - راجع "وصف الأنواع" في قسم "لغة 1C".

حدد مرشح نوع 1C

بالنسبة للعديد من الكائنات، من الممكن تحديد مرشح لأنواع قيم 1C التي يمكن استخدامها، على سبيل المثال:

  • قائمة القيم (.AvailableValues)
  • حقل نموذج العميل المُدار (.AvailableTypes)

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

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