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

السلسلة هي أحد أنواع البيانات الأولية في 1C: Enterprise 8. المتغيرات مع النوع خطتحتوي على نص.

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

Per1 = "Word 1" ؛
Per2 = "Word 2" ؛
Per3 = Per1 + "" + Per2 ؛

في النهاية بير 3سيعني " كلمة 1 كلمة 2 ″.

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

أدخل سلسلة (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — الغرض من الوظيفة هو عرض مربع حوار يمكن للمستخدم من خلاله تحديد قيمة متغير من النوع خط... معامل <Строка> مطلوب ويحتوي على اسم المتغير الذي سيتم كتابة السلسلة المدخلة عليه. معامل <Подсказка> اختياري هو عنوان مربع الحوار. معامل <Длина> اختياري ، يشير إلى أقصى طول لسلسلة الإدخال. القيمة الافتراضية هي الصفر ، مما يعني الطول غير المحدود. معامل <Многострочность> اختياري. يحدد وضع الإدخال للنص متعدد الأسطر: صحيح - إدخال نص متعدد الأسطر بفواصل الأسطر ؛ خطأ - إدخال سلسلة بسيطة.

يمكن إدخال السلسلة وإعطاء رمز حرف Unicode:

رمز(<КодСимвола>) — يتم إدخال الرمز كرقم.

الحرف = الرمز (1103) ؛ // انا

هناك أيضًا وظيفة عكسية تتيح لك معرفة رمز الحرف.

رمز الرمز (<Строка>, <НомерСимвола>) — إرجاع رقم حرف Unicode المحدد كرقم.

وظائف تحويل القضية:

BReg (<Строка>) - يحول جميع الأحرف في السلسلة إلى أحرف كبيرة.

HPreg (<Строка>) - يحول جميع الأحرف في سلسلة إلى أحرف صغيرة.

تريج (<Строка>) - يحول جميع الأحرف في سلسلة إلى أحرف كبيرة. بمعنى ، يتم تحويل الأحرف الأولى في جميع الكلمات إلى أحرف كبيرة ، ويتم تحويل الأحرف المتبقية إلى أحرف صغيرة.

وظائف البحث عن الأحرف واستبدالها في سلسلة:

تجد(<Строка>, <ПодстрокаПоиска>) - يجد رقم الحرف الخاص بحدوث سلسلة البحث الفرعية. على سبيل المثال:

Find ("String"، "Oka")؛ // 4

تجد (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - يعثر على رقم الحرف الخاص بحدوث سلسلة البحث الفرعية ، ويشار إلى رقم التكرار في المعلمة المقابلة. في هذه الحالة ، يبدأ البحث بالحرف الذي يتم تحديد رقمه في المعلمة الوضعية الأولية.البحث ممكن من بداية السلسلة أو من نهايتها. على سبيل المثال:

عدد المرات 4 = StrFind ( "القدرة الدفاعية"، "o" ، اتجاه البحث. من البداية ، 1 ، 4) ؛ // 7

PReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - البحث عن جميع تكرارات سلسلة البحث الفرعية في السلسلة الأصلية واستبدالها بسلسلة فرعية بديلة.

StrReplace ("سلسلة" ، "أوكا" ، "") ؛ // صفحة

خط فارغ (<Строка>) - يتحقق من سلسلة للأحرف المهمة. إذا لم تكن هناك أحرف مهمة ، أو لم تكن هناك أحرف على الإطلاق ، فسيتم إرجاع القيمة حقيقي... خلاف ذلك - راحه.

عدد المرات (<Строка>, <ПодстрокаПоиска>) - تحسب عدد تكرارات سلسلة البحث الفرعية في السلسلة الأصلية.

عدد المرات ( "الدراسة والدراسة والدراسة مرة أخرى"، "دراسة" ، "" ) ؛ // 3

StrPattern (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — يستبدل المعلمات في السلسلة برقم. يجب أن تحتوي السلسلة على علامات الاستبدال من النموذج: "٪ 1 ..٪ N". يتم ترقيم العلامات بدءًا من 1. إذا كانت قيمة المعلمة غير معرف، يتم استبدال سلسلة فارغة.

StrPattern ( "المعلمة 1 =٪ 1 ، المعلمة 2 =٪ 2", "1" , "2" ) ; // المعامل 1 = 1 ، المعامل 2 = 2

وظائف تحويل السلسلة:

أسد(<Строка>, <ЧислоСимволов>) - يسترجع الأحرف الأولى من السلسلة أولاً.

حق (<Строка>, <ЧислоСимволов>) - تسترجع الأحرف الأخيرة من السلسلة.

الأربعاء (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - يسترجع سلسلة من الطول<ЧислоСимволов>بدءا من الشخصية<НачальныйНомер>.

AbbrL (<Строка>) يقطع الأحرف غير المهمة إلى يسار أول حرف مهم في السلسلة.

اختصار (<Строка>) - يقطع الأحرف غير المهمة إلى يمين آخر حرف مهم في السلسلة.

SocrLP (<Строка>) - يقطع الأحرف غير المهمة إلى يسار أول حرف مهم في السطر وإلى يمين آخر حرف مهم في السطر.

StrGetString (<Строка>, <НомерСтроки>) - يحصل على سلسلة متعددة الأسطر برقم.

وظائف أخرى:

سترلينجث (<Строка>) - يسترجع عدد الأحرف في سلسلة.

عدد الخطوط (<Строка>) - تسترجع عدد الأسطر في سلسلة متعددة الأسطر. يعتبر السطر جديدًا إذا تم فصله عن السطر السابق بحرف سطر جديد.

قارن (<Строка1>, <Строка2> ) - يقارن بين سلسلتين ، غير حساستين لحالة الأحرف. تعمل الوظيفة بنفس طريقة عمل الكائن مقارنة القيم... عائدات:

  • 1 - إذا كان السطر الأول أكبر من الثاني
  • -1- إذا كان السطر الثاني أكبر من الأول
  • 0 - إذا كانت السلاسل متساوية

StrCompare ("السطر الأول" ، "السطر الثاني") ؛ // 1

تم تنفيذه في الإصدار 8.3.6.1977.

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

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

دالة التنسيق StrPattern ()

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

StrPattern (<Шаблон>, <Значение1-Значение10>)

<Шаблон>هي سلسلة لتحل محل تمثيلات المعلمات.

<Значение1> , ... <Значение10>- هذه معلمات (الحد الأقصى - عشرة) ، يجب استبدال تمثيلاتها في السلسلة.

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

على سبيل المثال ، نتيجة تنفيذ مثل هذا البيان:

سيكون هناك خط:

خطأ في البيانات في السطر 2 (نوع التاريخ مطلوب)

وظيفة للعمل مع سلاسل StrCompare ()

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

كان من الممكن أن تقوم بنفس الإجراء في وقت سابق باستخدام كائن مقارنة القيمة:

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

وظائف للعمل مع السلاسل RowStart With () ، RREnd With ()

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

على سبيل المثال ، من الملائم استخدامها في المشغل إذا:

وظائف للعمل مع السلاسل StrSplit () ، StrConnect ()

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

دالة للعمل مع السلاسل StrFind ()

بدلاً من وظيفة Find () القديمة ، قمنا بتنفيذها وظيفة جديدة، والتي لها ميزات إضافية:

  • البحث في اتجاهات مختلفة (من البداية ، من النهاية) ؛
  • البحث من موقع محدد ؛
  • ابحث عن تواجد بالرقم المحدد (ثانيًا ، ثالثًا ، إلخ).

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

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

تم العثور على نوع "String" في جميع لغات البرمجة. إنها بدائية ، وفي 1C هناك العديد من الوظائف للعمل معها. في هذه المقالة ، سوف نلقي نظرة فاحصة على طرق مختلفةالعمل مع أنواع السلاسل في 1C 8.3 و 8.2 من خلال الأمثلة.

خط

من أجل تحويل متغير من أي نوع إلى سلسلة ، هناك وظيفة بنفس الاسم "String ()". ستكون معلمة الإدخال هي المتغير نفسه ، وسيتم الحصول على تمثيل السلسلة.

String (False) // تعرض "لا"
String (12345) // تعرض "12 345"
السلسلة (CurrentDate ()) // 07/21/2017 11:55:36 ″

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

SocrLP ، SocrL ، SocrP

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

AbbrLP ("ستتم إزالة المسافات من كلا الجانبين") // "ستتم إزالة المسافات على كلا الجانبين"
مختصر ("ستتم إزالة المسافات على الجانبين") // "ستتم إزالة المسافات الموجودة على اليسار"
الاختصار ("ستتم إزالة المسافات على الجانبين") // "ستتم إزالة المسافات الموجودة على اليمين"

ليو ، صحيح ، الأربعاء

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

Lion ("String variable"، 4) // إرجاع "Stro"
Right ("String variable"، 7) // إرجاع "متغير"
Wed ("String variable"، 2، 5) // تعرض "troco"

طول Str

تحدد الوظيفة عدد الأحرف الموجودة في متغير السلسلة.

StrLength ("Word") // ستكون نتيجة التنفيذ رقم 5

تجد

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

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

أوجد ("واحد ، اثنان ، واحد ، اثنان ، ثلاثة" ، "اثنان") // ستعيد الدالة الرقم 6

خط فارغ

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

EmptyString ("Pupkin Vasily Ivanovich") // ستعيد الوظيفة القيمة False
ستعيد الدالة EmptyString ("") // True

VReg ، NReg ، تريج

هذه الوظائف مفيدة للغاية لمقارنة وتحويل متغيرات السلسلة. سيعيد Breg () السلسلة الأصلية بأحرف كبيرة ، و HPreg () بأحرف صغيرة ، وسيقوم TRreg () بتنسيقها بحيث يكون الحرف الأول من كل كلمة بمفردها مع الحرف الكبير، وجميع اللاحقة الصغيرة.

Vreg ("المدير العام") // القيمة المرجعة - "المدير العام"
НReg ("المدير العام") // القيمة المرجعة - "المدير العام"
TREG ("المدير العام") // القيمة المرجعة - "المدير العام"

PageReplace

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

StrReplace ("أحمر ، أبيض ، أصفر" ، "،" ، "؛") // سيعود "أحمر ؛ أبيض؛ أصفر"

سترنمبر سترينغز

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

ستمر الحلقة الموجودة في المثال أدناه عبر ثلاث دوائر لأن دالة RowNumber of Rows ستعيد القيمة 3:

بالنسبة إلى ind = 1 بواسطة StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") حلقة
<тело цикла>
نهاية الدورة

StrGetString

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

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3"، 2) // سيعيد "String2"

عدد المرات

تحسب الدالة عدد تكرارات الحرف أو السلسلة الفرعية في سلسلة البحث.

صف المرفقات ("أ ، ب ، ج ، د ،" ، "،") // ستعيد الوظيفة الرقم 4

رمز الرمز والرمز

تتيح لك هذه الوظائف الحصول على حرف من خلال كود Unicode الخاص به ، وكذلك تحديد هذا الرمز من خلال الحرف نفسه.

SymbolCode ("A") // ستعيد الوظيفة الرقم 1040
SymbolCode (1040) // ستعيد الوظيفة "A"

كثرة المهام عند العمل بالسلاسل

سلاسل متسلسلة

لربط سلاسل متعددة (لأداء التسلسل) ، يكفي استخدام عامل الإضافة.

"الخط 1 ″ +" السطر 2 ″ // نتيجة إضافة سطرين ستكون "السطر 1 الخط 2"

اكتب التحويل

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

ستعرض السلسلة (1000) // "1000"

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

ستعرض StrReplace (String (1000)، Characters.NPP، "") // "1000"

ستعرض السلسلة (التنسيق (1000، "CHG =")) // "1000"

اقتباسات في سلسلة

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

Title = String ("Horns and Hooves LLC" "نحن!") // إرجاع "Horns and Hoofs LLC" نحن! "

خطوط متعددة ، فاصل أسطر

لإنشاء نص متعدد الأسطر ، يكفي إضافة أحرف فاصلة أسطر (Symbols.PS) إليه.

MultilineText = "السطر الأول" + Symbols.PS + "السطر الثاني"

كيفية إزالة المسافات

لإزالة المسافات إلى اليمين أو اليسار ، يمكنك استخدام الوظيفة "الاختصار ()" (بالإضافة إلى "الاختصار ()" و "الاختصار ()"):

StringNoSpaces = AbbreviatedLP ("العديد من الأحرف") // ستعيد الوظيفة القيمة "العديد من الأحرف"

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

StringNoSpaces = StrReplace (String (99999)، Characters.NPP، "") // سترجع "99999"

أيضًا ، غالبًا ما يستخدم المبرمجون البناء التالي ، والذي يسمح لك بإزالة أو استبدال كل مسافات متغير نص بحرف آخر:

StringNoSpaces = StrReplace ("مرحبًا" ، "" ، "") // إرجاع "مرحبًا"

مقارنة الأوتار مع بعضها البعض

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

"Hello" = "hello" // سترجع False
"Hello" = "Hello" // ستعيد True
"مرحبًا" = "Goodbye" // سترجع False

إلى القدرات الأساسيةعادة ما يشار إلى لغة البرمجة على أنها تعمل مع الأرقام والسلاسل. عادةً ما يتم ترميز هذه الميزات بشكل ثابت في كود المترجم (أو يتم تنفيذ الفئات "الأساسية" من لغة البرمجة).

في 1C ، تتم برمجة القدرة على العمل مع السلاسل في النظام الأساسي نفسه. سننظر اليوم في ميزات العمل مع سلاسل 1C في البرامج بلغة 1C المدمجة.

قيمة السطر 1C

1. لنبدأ بالأبسط. يبدو إنشاء متغير وتعيين قيمة سلسلة ثابتة له كما يلي في 1C:

متغير = "أهلاً بالعالم!" ؛

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

متغير = "مرحبًا" ، "عالم" "!" ؛

2. يمكن تحديد فاصل الأسطر 1C بطريقتين في وقت واحد. الأول يستخدم الرمز |

متغير = "مرحبًا ،
| سلام! "؛

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

المتغير = "مرحبًا" + Symbols.PS + "العالم!" ؛

3. يمكن تطوير التكوينات في 1C ليس فقط للغة واحدة (الروسية أو الإنجليزية أو الأخرى) - ولكن في نفس الوقت لعدة لغات. في هذه الحالة ، يتم تحديد اللغة المستخدمة حاليًا في الجزء السفلي من نافذة 1C.

توجد قائمة اللغات في نافذة التكوين في فرع العام / اللغات. كل لغة لها معرّف قصير مثل ruأو م.

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

المتغير = "ru =" "مرحبًا ، العالم!" "؛ En =" "مرحبًا ، أيها العالم!" ""؛

إذا كنت تستخدم الخط 1C الذي تم تشكيله بهذه الطريقة كالمعتاد ، فسيكون ما هو مكتوب فيه. لكي يقوم النظام بتقسيمها إلى خيارين واستخدام الخيار المطلوب ، يجب عليك استخدام وظيفة HStr ():

// تصحيح التكوينات ثنائية اللغة
تقرير (НStr (متغير)) ؛

الدعائم بخط نوع 1C

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

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

سلاسل 1C ذات أطوال غير محدودة (محددة بالطول = 0) وطولها محدود ، مما يشير إلى العدد الدقيق للأحرف. يتم تخزين خطوط 1C ذات الطول غير المحدود في ملف منفصل جدول SQLلذلك فإن استخدامها أقل إنتاجية من الاستخدام المحدود.

هذا هو السبب في أن استخدام سلاسل 1C ذات الطول غير المحدود له حدوده الخاصة - لا يمكن استخدامها في كل مكان. على سبيل المثال ، لا يمكن استخدامه كرقم مستند أو رمز دليل أو بُعد.

العمل مع سلاسل 1C

هناك العديد من الوظائف المضمنة لمنصة 1C للعمل مع الأوتار.

  • SocrLP ("لا يصدق ، لكنه حقيقي!")
    يزيل من الخط 1C مساحات اضافية... يمكن استخدامه أيضًا لتحويل أي أنواع إلى سلاسل 1C (على سبيل المثال ، الأرقام).
  • المتغير = "Vasya" + SokrLP ("plus") + "عليا" ؛ // ستكون "Vasya plus Olya"
    مثال على جمع عدة قيم سلسلة 1C. ستكون النتيجة سطرًا واحدًا من 1C.
  • متغير = ليو ("موسيقى" ، 2) ؛ // سيكون "Mu"
    متغير = الأربعاء ("موسيقى" ، 2 ، 2) ؛ // سيكون "shl"
    متغير = يمين ("موسيقى" ، 2) ؛ // سيكون "ka"
    خيارات مختلفة للحصول على سلسلة فرعية من سلسلة 1C.
  • متغير = بحث ("موسيقى" ، "Shl") ؛ سيكون // 3
    ابحث عن سلسلة فرعية في السلسلة 1C ، بدءًا من الحرف 1.
  • متغير = StrLength ("موسيقى") ؛ سيكون // 6
    تُرجع عدد الأحرف في السطر 1C.
  • تقرير ("مرحبًا") // في نافذة الرسالة أسفل نافذة 1C
    تحذير ("مرحبًا") // مربع حوار منبثق
    State ("Hello") // في سطر عرض الحالة أسفل اليسار
    .

صب الأشياء على الخط 1C

كما تعلم ، فإن التنسيق الأكثر شيوعًا لتبادل المعلومات المنظمة في الوقت الحالي هو XML. حتى في احدث اصدارالسيدة كلمة مكتبويقوم Excel بحفظ الملفات بهذا التنسيق (docx و xlsx ، على التوالي ، قم بتغيير الامتداد إلى zip ، وفتح في أرشيفي).

توفر منصة 1C لتبادل البيانات عدة خيارات ، أهمها XML أيضًا.

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

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

2. يمكن تحويل أي كائن 1C (مع قيود) إلى XML والعكس صحيح. تسمى عملية التحويل التسلسل.

ViewStringXml = XMLString (القيمة) ، // احصل على XML من قيمة 1C
Value1C = XMLValue (النوع ("ReferenceLink.Nomenclature") ، ViewStringXml) ؛ // احصل على قيمة 1C من سلسلة XML ، يجب عليك تحديد نوع 1C الذي يجب استلامه

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

السلسلة = ValueVSStringInter (Value1C) ، // احصل على السطر 1C من القيمة 1C
ValueVFile ("C: \ MyFile.txt"، Value1C) ؛ // خيار آخر ، نحصل على ملف بسلسلة محفوظة من قيمة 1C
Value1C = ValueFromStringInternal (سلسلة) ، // رجوع من السطر 1C
Value1C = ValueOfFile ("C: \ MyFile.txt") ؛ // رجوع من الملف

تحرير خطوط 1C في النموذج

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

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

متغير = "" ؛
String = EnterValue (متغير ، "أدخل اسمك الكامل") ؛

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

3. يمكن توسيع إمكانيات حقل الإدخال (انظر خصائص حقل الإدخال ، انقر بزر الماوس الأيمن فوقه ، لمزيد من التفاصيل):

  • حدد وضع التحرير متعدد الخطوط
  • خانة اختيار التحرير المتقدم (متاح إذا تم تحديد خانة الاختيار السابقة)
  • وضع كلمة المرور في خانة الاختيار (انظر).

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

لا يمكن ربط حقل مستند نصي بالبيانات مباشرةً. من الضروري كتابة دالة في معالج الأحداث OnOpening () للنموذج (راجع):

FormElements.ElementNameTextDocumentField.SetText (ValueString) ، // هنا ValueString هو النص الذي تم الحصول عليه ، على سبيل المثال ، من الدعائم

وفي معالج الحفظ - على سبيل المثال ، في زر حفظ - أضف حفظًا:

ValueString = FormElements.ElementNameTextDocumentField.GetText () ، // القيمة السلسلة هنا هي الدعائم حيث نخزن القيمة

5.In 1C الإصدار 8.2.11 ، في النماذج المدارةظهر فرصة جديدةتمثيل سطر 1C - حقل مستند منسق.


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

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

    // هنا Props هي الخاصية المضافة للكائن 1C
    // هنا FormattedDocument هو اسم الحقل في النموذج المراد تحريره
    & على الخادم

    FormattedDocument = CurrentObject.Props.Get () ،
    نهاية الإجراء

  • في الوظيفة BeforeWriteOnServer () أو بواسطة الزر ، اكتب النص من الحقل

    & على الخادم
    الإجراء الخاص بـ ReadingOnServer (CurrentObject)
    CurrentObject.Props = NewValueStore (FormattedDocument) ،
    نهاية الإجراء