1c ابحث عن التواجد الثاني في السلسلة

سأخبرك في هذه المقالة عن وظيفة البحث السريع في 1C Enterprise 8. ما هو البحث السريع؟بسيط جدا. يعد البحث السريع إحدى الطرق للتنقل في قوائم كبيرة من سجلات 1C. يمكن أن تكون هذه قوائم بالمستندات والأدلة والسجلات - كل ما يتم تقديمه في الجداول.

ما هو البحث السريع؟

تعد وظيفة البحث السريع في مستندات 1C Enterprise مريحة للغاية وتسمح لك بعدم التمرير خلال كميات هائلة من البيانات (على سبيل المثال، باستخدام شريط التمرير)، ولكن للانتقال على الفور إلى المكان المطلوب في القائمة. لسوء الحظ، لا يستخدم المستخدمون المبتدئون لـ 1C Enterprise 8 (بما في ذلك 1C Accounting 8) في البداية إمكانيات البحث السريع، ويفضلون التمرير عبر قوائم المستندات يدويًا (ويمكنهم ذلك جداًكبير). ستساعدك هذه المقالة على فهم استخدام البحث السريع في 1C.

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

بحث سريع في 1C المحاسبة 8.2

في إصدارات 1C Accounting من 8.0 إلى 8.2هذه الوظيفة مخصصة خصيصًا لـ انتقالإلى الجزء المطلوب من القائمة. على سبيل المثال، انظر إلى نافذة دليل الحسابات الموضحة في الشكل.


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

يمكن نقل العلامة من عمود إلى آخر من خلال النقر على العمود المطلوب ( على رأس العمود!) بالماوس. إذا كانت العلامة موجودة بالفعل في العمود الحالي، فسيؤدي النقر فوق إلى تغيير اتجاه الفرز إلى الاتجاه المعاكس (أي من الكبير إلى الصغير أو العكس). هذا هو السلوك القياسي لأي برنامج يعمل بنظام Windows. ما هي خصوصية هذه العلامة في 1C Enterprise وكيف ترتبط بالبحث السريع؟

يتم إجراء بحث سريع في قوائم 1C Enterprise 8 من خلال العمود الذي توجد فيه العلامة.في هذه الحالة، سيتم إجراء بحث سريع في دليل الحسابات باستخدام عمود الرمز.

كان هناك جزء مهم من المقالة، لكن بدون جافا سكريبت لا يمكن رؤيته!

كيفية استخدام البحث السريع في 1C؟بسهولة! ما عليك سوى البدء في كتابة ما تريد العثور عليه في هذا العمود، أي. حيث العلامة. في المثال في الشكل أعلاه، يجب عليك إدخال رقم الحساب. على سبيل المثال، تريد العثور على الحساب 50 نقدًا. في هذه الحالة أدخل ( لا حاجة للنقر في أي مكان!) رقم 50 من لوحة المفاتيح وإذا كان هناك حساب بهذا الرقم في هذا العمود (وبالطبع يوجد حساب واحد)، فسيتم تمرير القائمة إلى هذا السطر، وسيتم تمييز السطر نفسه. تظهر النتيجة في لقطة شاشة شجرة الحسابات أدناه.

موقع إلكتروني_

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

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

في 1C Enterprise 8، يتم إجراء بحث سريع في بداية السطر، أي. في عمود يتم البحث عن تطابق بين النص المدخل وبداية أحد السطور في هذا العمود.
يؤدي هذا إلى توصية مهمة: عند إدخال البيانات في الأدلة، قم بتسمية العناصر بحيث يمكن العثور عليها بسهولة باستخدام البحث السريع. على سبيل المثال، من الأفضل كتابة اسم الطرف المقابل باسم "Firm Name LLC" بدلاً من "Firm Name LLC". وحتى أكثر من ذلك، يجب ألا تستخدم علامات الاقتباس وغيرها من الرموز غير الضرورية في الاسم (نحن نتحدث عن ملء حقل الاسم في النماذج).

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

بحث سريع في 1C المحاسبة 8.3

الآن دعونا نرى كيف يختلف البحث السريع في الإصدار 1C Enterprise 8.3. الاستخدام مشابه إلى حد كبير للإصدار 8.2، ولكن هناك اختلاف رئيسي واحد يجب تذكره.

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

سنكتشف الآن كيفية استخدام هذا. أولاً، انظر إلى لقطة الشاشة لنافذة مخطط الحسابات 1C Accounting 8.3 أدناه.

موقع إلكتروني_

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

موقع إلكتروني_

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

موقع إلكتروني_

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

ميزة أخرى مهمة للبحث السريع في 1C Accounting 8.3— لا يتم البحث عن تطابق في بداية السطر، كما في الإصدار 8.2، ولكن يتم البحث عن تطابق مع أي جزء من السطور في العمود. وبالتالي، إذا قمت بتسمية الطرف المقابل "Firm Name LLC"، وعند البحث، ابدأ في إدخال "Firm Name LLC"، فسيظل السطر موجودًا!

استخلاص النتائج

وبالتالي، فإن البحث السريع في 1C Accounting 8.2 والإصدارات السابقة يهدف إلى تمرير القائمة إلى السطر المطلوب، وفي 1C Accounting 8.3 يعمل البحث السريع كمرشح عادي، حيث يخفي جزء القائمة الذي لا تحتاجه.

تمثل الصفوف في 1C 8.3 باللغة المضمنة 1C قيمًا من النوع البدائي خط. تحتوي القيم من هذا النوع على سلسلة Unicode ذات طول عشوائي. متغيرات نوع السلسلة هي مجموعة من الأحرف المحاطة بعلامات اقتباس.

المثال 1. لنقم بإنشاء متغير سلسلة يحتوي على نص.

StringVariable = "مرحبًا بالعالم!";

وظائف للعمل مع السلاسل في 1S 8.3

سيوفر هذا القسم الوظائف الرئيسية التي تسمح لك بتغيير الخطوط في 1C، أو تحليل المعلومات الواردة فيها.

الطول

الطول(<Строка>) . إرجاع عدد الأحرف الموجودة في السلسلة التي تم تمريرها كمعلمة.

مثال 2. لنحسب عدد الأحرف في السطر "Hello World!"

سلسلة = "مرحبا بالعالم!"; NumberofCharacters = StrLength(String); تقرير (عدد الأحرف)؛

ستكون نتيجة تنفيذ هذا الكود هي عرض عدد الأحرف في السطر: 11.

أبرل

أبرل(<Строка>) . يقوم بقص الأحرف غير الهامة الموجودة على يسار الحرف الأول المهم في السلسلة.
شخصيات ثانوية:

  • فضاء؛
  • مسافة غير منقسمة؛
  • جدولة؛
  • إرجاع؛
  • ترجمة الخط؛
  • ترجمة النموذج (الصفحة).

مثال 3. قم بإزالة كافة المسافات من الجانب الأيسر من السطر "العالم!" وأضف السطر "مرحبًا" إليه.

String = Abbreviation("world!"); سلسلة = "مرحبا"+سلسلة؛ تقرير (سلسلة)؛

ستكون نتيجة تنفيذ هذا الرمز هي عرض السطر "Hello World!"

مختصر

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

مثال 4. النموذج من السطور "مرحبا" و"السلام!" عبارة "مرحبا بالعالم!"

Line = Abbreviation("Hello ")+" "+ Abbreviation("world!"); تقرير (سلسلة)؛

AbbrLP

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

مثال 5. قم بإزالة الأحرف غير المهمة على اليسار واليمين من اسم الطرف المقابل.

الطرف المقابل = الدلائل.البحث حسب التفاصيل("TIN"، "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

أسد

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

مثال 6. دع الهيكل يدخل موظفتحتوي على الأسماء الأولى والأخيرة والعائلية للموظف. احصل على سلسلة بالاسم الأخير والأحرف الأولى.

NameInitial = Lev(Employee.Name, 1); Patronymic الأولي = Leo(Employee. Patronymic, 1); الاسم الكامل = اسم الموظف.اسم العائلة + "" + الاسم الأول الأولي + "." + الأولي الأوسط + ".";

يمين

يمين(<Строка>, <ЧислоСимволов>) . يحصل على الأحرف الأخيرة من السلسلة، وهو عدد الأحرف المحدد في المعلمة عدد الشخصيات.إذا تجاوز عدد الأحرف المحدد طول السلسلة، فسيتم إرجاع السلسلة بأكملها.

مثال 7. دع التاريخ بالتنسيق "yyyymmdd" يتم كتابته في نهاية متغير السلسلة، واحصل على سلسلة تحتوي على التاريخ وقم بتحويلها إلى كتابة تاريخ.

سلسلة = "التاريخ الحالي: 20170910"؛ StringDate = Right(String, 8); التاريخ = التاريخ(StringDate);

الأربعاء

الأربعاء(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . يحصل على سلسلة فرعية من السلسلة التي تم تمريرها كمعلمة خطبدءًا من الحرف المحدد رقمه في المعلمة الرقم الأوليوالطول الذي تم تمريره إلى المعلمة عدد الشخصيات.يبدأ ترقيم الأحرف في السطر من 1. إذا كان في المعلمة الرقم الأوليتم تحديد قيمة أقل من أو تساوي الصفر، ثم تأخذ المعلمة القيمة 1. إذا كانت المعلمة عدد الشخصياتلم يتم تحديده، ثم يتم تحديد الأحرف حتى نهاية السطر.

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

String = "المنطقة: 99 موسكو"; المنطقة = المتوسط ​​(سلسلة، 9، 2)؛

بحث عن الصفحات

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

  • خط. سلسلة المصدر؛
  • البحث عن سلسلة فرعية. بحث عن سلسلة فرعية؛
  • اتجاه البحث. يحدد الاتجاه للبحث عن سلسلة فرعية في سلسلة. يمكن أن تأخذ القيم:
    • اتجاه البحث.من البداية;
    • بحث.نهاية الاتجاه;
  • الوضعية الأولية. يحدد الموضع في السلسلة التي يبدأ عندها البحث؛
  • عدد الحوادث. يحدد رقم حدوث السلسلة الفرعية التي تم البحث عنها في السلسلة المصدر.

مثال 9. في السطر "مرحبا بالعالم!" تحديد موضع آخر تواجد للحرف "و".

PositionNumber = StrFind("مرحبًا بالعالم!", "و"، SearchDirection.End); تقرير (رقم الوظيفة)؛

ستكون نتيجة تنفيذ هذا الكود هي عرض رقم آخر تواجد للرمز "و": 9.

VReg

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

المثال 10: تحويل السلسلة "hello World!" إلى الحالة العليا.

StringVreg = VReg("مرحبا بالعالم!"); تقرير(StringVreg);

ستكون نتيجة تنفيذ هذا الرمز عرض السطر "HELLO WORLD!"

نريج

نريج(<Строка>) . يحول كافة الأحرف في السلسلة المحددة في 1s8 إلى أحرف صغيرة.

مثال 11: تحويل السلسلة "HELLO WORLD!" إلى حالة الأحرف الصغيرة.

StringNreg = NReg("مرحبا بالعالم!"); تقرير(StringVreg);

ستكون نتيجة تنفيذ هذا الكود هي عرض السطر "hello World!"

تريج

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

مثال 12: قم بكتابة الأحرف الأولى من الكلمات الموجودة في السطر "hello World!"

StringTreg = TReg("مرحبًا بالعالم!"); تقرير(StringTreg);

ستكون نتيجة تنفيذ هذا الرمز هي عرض السطر "Hello World!"

رمز

رمز(<КодСимвола>) . يحصل على حرف من خلال رمز Unicode الخاص به.

مثال 13. أضف اليسار واليمين إلى السطر "Hello World!" الرمز ★

StringWithStars = الرمز("9733")+"مرحبًا بالعالم!"+Symbol("9733"); تقرير(StringWithStars);

ستكون نتيجة تنفيذ هذا الكود هي عرض السطر “★Hello World!★”

رمز الرمز

رمز الرمز(<Строка>, <НомерСимвола>) . يحصل على رمز حرف Unicode من السلسلة المحددة في المعلمة الأولى، الموجودة في الموضع المحدد في المعلمة الثانية.

مثال 14. اكتشف رمز الحرف الأخير في السطر "Hello World!"

سلسلة = "مرحبا بالعالم!"; CharacterCode = CharacterCode(String, StrLength(String)); إعلام(رمز الحرف);

ستكون نتيجة تنفيذ هذا الرمز هي عرض رمز الرمز "!" - 33.

سطر فارغ

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

مثال 15. تحقق مما إذا كانت السلسلة المكونة من ثلاث مسافات فارغة.

فارغ = EmptyString(" "); تقرير (فارغ)؛

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

استبدال الصفحة

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

مثال 16. في السطر "Hello World!" استبدال كلمة "السلام" بكلمة "الأصدقاء".

String = StrReplace("Hello World!", "World", "Friends"); تقرير (سلسلة)؛

ستكون نتيجة تنفيذ هذا الرمز هي عرض السطر "Hello Friends!"

StrNumberLines

StrNumberRow(<Строка>) . يسمح لك بحساب عدد الأسطر في سلسلة متعددة الأسطر. للانتقال إلى سطر جديد في 1s 8، استخدم الرمز ملاحظة(حرف السطر الجديد).

مثال 17. تحديد عدد الأسطر في النص:
"السطر الأول
السطر الثاني
السطر الثالث"

Number = StrNumberString("السطر الأول"+Characters.PS +"السطر الثاني"+Symbols.PS +"السطر الثالث"); تقرير (رقم)؛

ستكون نتيجة تنفيذ هذا الكود هي عرض عدد الأسطر في النص: 3

StrGetString

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

مثال 18. احصل على السطر الأخير في النص:
"السطر الأول
السطر الثاني
السطر الثالث"

النص = "السطر الأول" + الرموز PS + "السطر الثاني" + الرموز PS + "السطر الثالث". LastRow = StrGetRow(Text, StrNumberLines(Text)); تقرير (السطر الأخير)؛

ستكون نتيجة تنفيذ هذا الرمز عرض السطر "الخط الثالث".

عدد مرات الصفحة

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

مثال 19. حدد عدد مرات ظهور الحرف "c" في السطر "خطوط في 1s 8.3 و8.2"، بغض النظر عن حالته.

Line = "خطوط في 1s 8.3 و8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "With"); تقرير (عدد الحوادث)؛

ستكون نتيجة تنفيذ هذا الكود هي عرض عدد التكرارات: 2.

يبدأ الصفحة مع

StrStartsWith(<Строка>, <СтрокаПоиска>) . التحقق مما إذا كانت السلسلة التي تم تمريرها في المعلمة الأولى تبدأ بالسلسلة الموجودة في المعلمة الثانية.

مثال 20. تحديد ما إذا كان رقم التعريف الضريبي (TIN) للطرف المقابل المحدد يبدأ بالرقم 1. أدخل المتغير الطرف المقابل الأطراف المقابلة.

TIN = Counterparty.TIN; StartsUNits = StrStartsWith(TIN, "1"); إذا بدأ بالوحدات ثم // الكود الخاص بك EndIf؛

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . التحقق مما إذا كانت السلسلة التي تم تمريرها في المعلمة الأولى تنتهي بالسلسلة الموجودة في المعلمة الثانية.

مثال 21. تحديد ما إذا كان رقم التعريف الضريبي (TIN) للطرف المقابل المحدد ينتهي بالرقم 2. أدخل المتغير الطرف المقابليتم تخزين إشارة إلى عنصر الدليل الأطراف المقابلة.

TIN = Counterparty.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); إذا EndsInTwo ثم // الكود الخاص بك EndIf؛

تقسيم الصفحة

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . يقسم سلسلة إلى أجزاء باستخدام الأحرف المحددة ويكتب السلاسل الناتجة في مصفوفة. تقوم المعلمة الأولى بتخزين السلسلة المصدر، وتحتوي الثانية على السلسلة التي تحتوي على المحدد، وتشير المعلمة الثالثة إلى ما إذا كان يجب كتابة سلاسل فارغة إلى المصفوفة (افتراضيًا حقيقي).

مثال 22. لنحصل على سلسلة تحتوي على أرقام مفصولة بالرمز "؛"، احصل على مصفوفة من الأرقام من السلسلة.

سلسلة = "1؛ 2؛ 3"؛ Array = StrDivide(String, ";"); For Count = 0 By Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(AbbrLP(Array[Count])); صفيف الاستثناء[Sch] = 0; EndAttemptsEndCycle;

نتيجة للتنفيذ، سيتم الحصول على مجموعة من الأرقام من 1 إلى 3.

اتصال الصفحة

ستركونيكت(<Строки>, <Разделитель>) . يحول مصفوفة السلاسل من المعلمة الأولى إلى سلسلة تحتوي على كافة عناصر المصفوفة مفصولة بالمحدد المحدد في المعلمة الثانية.

مثال 23. باستخدام مصفوفة الأرقام من المثال السابق، احصل على السلسلة الأصلية.

للحساب = 0 بواسطة Array.Quantity() - 1 Cycle Array[Act] = String(Array[Act]); EndCycle; Row = StrConnect(Array, ";");

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

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

Per1 = "كلمة 1" ;
Per2 = "كلمة 2" ;
Per3 = Per1 + "" + Per2;

مؤخراً لكل3سيعني " كلمة 1 كلمة 2".

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

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

يمكنك إدخال سلسلة إذا كنت تعرف رمز الحرف في Unicode:

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

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

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

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

وظائف تحويل حالة النص:

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

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

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

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

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

ابحث عن ("سلسلة"، "أوكا")؛ // 4

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

عدد التكرارات Number4 = Str Find ( "الدفاعية", "حول" ,اتجاه البحث. من البداية، 1، 4)؛ // 7

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

StrReplace ("String" , "oka" , "" ) ; // صفحة

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

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

رقم StrNumberOccurrences ( "الدراسة والدراسة والدراسة مرة أخرى"، "يذاكر" ، "" ) ؛ // 3

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

قالب StrTemplate ( "المعلمة 1 = %1، المعلمة 2 = %2", "1" , "2" ) ; // المعلمة 1= 1، المعلمة 2 = 2

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

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

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

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

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

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

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

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

ميزات أخرى:

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

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

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

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

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

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

StrReplace(Number, Lev(Number, 3), "" );

عندما بحثت في مساعد بناء الجملة أعجبني كثيرًا لدرجة أنني أردت الكتابة عنه العمل مع السلاسل في 1C:Enterprise.

تشير السلسلة في 1C إلى نوع بيانات بدائي.

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

تحديد الخط
التحية = "مرحبا أيها الراكب";

غالبًا ما يتم إنشاء الخطوط المتعددة الأسطر في التكوينات النموذجية باستخدام الفاصل الرأسي "|":
سلسلة = "متعدد الأسطر
|سلسلة
|اكتب
|نص";

يتم تحديد علامة الاقتباس داخل السلسلة بواسطة علامات الاقتباس المزدوجة.
String = ""النص بين علامتي اقتباس"";

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

وظائف للعمل مع السلاسل

فيما يلي ملخص موجز لوظائف العمل مع السلاسل:

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

رمز الرمز(<Строка>, <НомерСимвола>) - تستقبل الوظيفة رمز الحرف الموجود في السلسلة المرسلة في الموضع بالرقم المحدد.

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

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

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

يمين(<Строка>, <ЧислоСимволов>) – تختلف هذه الوظيفة عن الوظائف اليسرى من حيث أنها تقوم بتحديد الأحرف الأخيرة من يمين السلسلة.

سطر فارغ(<Строка>) - تتحقق الوظيفة من وجود أحرف مهمة في السلسلة.

رمز(<КодСимвола>) - تقوم الوظيفة بتحويل رمز الحرف إلى سلسلة تحتوي على الحرف.

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

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

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

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

الطول(<Строка>) - الدالة تحصل على عدد الأحرف في السطر.

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

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

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

StrNumberRow(<Строка>) - تقوم الدالة بحساب عدد الأسطر في سلسلة متعددة الأسطر. في سلسلة متعددة الأسطر، يتم فصل الأسطر بأسطر جديدة.

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

نوع التحويلات
للتحويل الصريح لأنواع البيانات، هناك وظائف تحمل نفس الاسم مع نوع البيانات الذي يتم التحويل إليه: String(<Значение>)

StringFromNumbers = String(Number);

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

أمثلة على العمل مع السلاسل

تحويل رقم إلى سلسلة والعودة.

للحصول على تمثيل سلسلة للسنة، استخدم الدالة Format.

السنة = التنسيق (CurrentDate()، "DF=yyyy") // السنة = "2012"

لتحويل رقم إلى سلسلة دون إدراج حرف فاصل للمجموعة (مسافة غير منقسمة)، يجب عليك استخدام الدالة Format مع المعلمة NG=0:

الرقم = 2012 Line = Format(Number, "NH=0" ); // سلسلة = "2012"

سلسلة بدون مسافات.

هناك آليات قليلة للعمل مع السلاسل في استعلامات 1C. أولا، يمكن إضافة الخطوط. ثانيا، يمكنك أن تأخذ سلسلة فرعية من سلسلة. ثالثًا، يمكن مقارنة السلاسل، بما في ذلك حسب النمط. ربما هذا هو كل ما يمكن فعله بالخيوط.

إضافة سلسلة

لإضافة صفوف في استعلام، يتم استخدام العملية "+". يمكنك فقط إضافة سلاسل ذات طول محدود.

حدد "الاسم:" + اسم الأطراف المقابلة في العمود 1 من الدليل الأطراف المقابلة حيث الارتباط = &الارتباط

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

سلسلة فرعية(<Строка>, <НачальнаяПозиция>, <Длина>)

تناظري للدالة Environment() من طراز الكائن. يمكن تطبيق وظيفة Substring() على بيانات السلسلة وتسمح لك بتحديد جزء <Строки> ، بدءًا من رقم الحرف <НачальнаяПозиция> (يتم ترقيم الأحرف الموجودة في السطر بدءًا من 1) والطول <Длина> الشخصيات. تحتوي نتيجة حساب الدالة على نوع سلسلة متغيرة الطول، وسيتم اعتبار الطول غير محدود إذا <Строка> له طول ومعلمة غير محدودة <Длина> ليس ثابتًا أو أكبر من 1024.

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

انتباه!لا ينصح باستخدام الدالة SUBSTRING() لتحويل سلاسل ذات طول غير محدود إلى سلاسل ذات طول محدود. بدلاً من ذلك، من الأفضل استخدام عامل الإرسال EXPRESS().

وظيفة مماثلة

إذا أردنا التأكد من أن سمة السلسلة تلبي معايير معينة، فإننا نقارنها:

حدد اسم الأطراف المقابلة في العمود 1 من الدليل الأطراف المقابلة حيث الاسم = "غازبروم".

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

LIKE - عامل التحقق من سلسلة ما للتأكد من تشابهها مع النمط. التناظرية مثل في SQL.

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

الأحرف التالية في سلسلة النمط هي أحرف خدمة ولها معنى مختلف عن حرف السلسلة:

  • % (نسبة مئوية): تسلسل يحتوي على أي عدد من الأحرف العشوائية؛
  • _ (شرطة سفلية): حرف واحد عشوائي؛
  • […] (حرف واحد أو أكثر بين قوسين مربعين): أي حرف واحد مدرج بين قوسين مربعين. قد يحتوي التعداد على نطاقات، على سبيل المثال a-z، مما يعني حرفًا عشوائيًا مدرجًا في النطاق، بما في ذلك نهايات النطاق؛
  • [^...] (بين قوسين مربعين علامة النفي متبوعة بحرف واحد أو أكثر): أي حرف واحد غير تلك المدرجة بعد علامة النفي.

أي رمز آخر يعني نفسه ولا يحمل أي حمولة إضافية. إذا كان أحد الأحرف المدرجة يحتاج إلى الكتابة بنفسه، فيجب أن يسبقه<Спецсимвол>. نفسي<Спецсимвол>(أي حرف مناسب) يتم تعريفه في نفس العبارة بعد الكلمة الأساسية SPECIAL CHARACTER.

هل أعجبك المقال؟ أنشرها
قمة