العمليات ذات السلاسل 1 ج. وظائف جديدة للعمل مع السلاسل. وظائف للبحث عن الأحرف واستبدالها في سلسلة

السلسلة هي أحد أنواع البيانات الأولية في 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

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

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

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

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

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

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

قالب الصفحة ( "المعلمة 1 =٪ 1 ، المعلمة 2 =٪ 2", "1" , "2" ) ; // المعلمة 1 = 1 ، المعامل 2 = 2

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

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

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

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

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

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

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

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

وظائف أخرى:

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

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

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

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

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

تم العثور على نوع "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 ()" هي نفسها ، ولكن يتم القص على اليمين. تسمح لك وظيفة "Med ()" بتحديد رقم الحرف الذي سيتم اختيار السلسلة من خلاله وطولها.

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

طول السلسلة

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

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

تجد

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

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

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

خط فارغ

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

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

VReg ، NReg ، تريج

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

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

PageReplace

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

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

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

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

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

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

StrGetString

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

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

عدد المرات

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

StrNumber of Attachments ("a؛ b؛ c؛ d؛"، "؛") // ستعيد الوظيفة الرقم 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 ("LLC" Horns and Hooves "" - هذا نحن! ") // إرجاع" LLC "Horns and Hooves" - هذا نحن! "

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

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

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

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

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

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

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

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

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

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

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

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

"Hello" = "hello" // سترجع False
"Hello" = "Hello" // ستعيد True
"Hello" = "Goodbye" // سيعود False

ملاحظات من النظرة الزجاجية

08/18/2014 وظائف جديدة للعمل مع السلاسل

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

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

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

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

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

قالب الصفحة (<Шаблон>, <Значение1-Значение10>)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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) ،
    نهاية الإجراء