نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی. پرتال اطلاعاتی
  • خانه
  • ویندوز 8
  • هر کاراکتری را در فهرست 1c جایگزین کنید. توابع جدید برای کار با رشته ها

هر کاراکتری را در فهرست 1c جایگزین کنید. توابع جدید برای کار با رشته ها

رشته یکی از انواع داده های اولیه در سیستم های 1C:Enterprise 8 است. متغیرهایی با نوع خطحاوی متن

مقادیر متغیر را تایپ کنید خطدر دو گیومه قرار می گیرند. چندین متغیر از این نوع را می توان اضافه کرد.

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

در نهایت Per3به معنای " کلمه 1 کلمه 2 اینچ.

علاوه بر این، سیستم های 1C: Enterprise 8 عملکردهایی را برای کار با رشته ها ارائه می دهند. بیایید به موارد اصلی نگاه کنیم:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — این تابع برای نمایش یک کادر محاوره ای طراحی شده است که در آن کاربر می تواند مقدار یک متغیر از نوع را مشخص کند خط. پارامتر <Строка> مورد نیاز است و حاوی نام متغیری است که رشته وارد شده در آن نوشته می شود. پارامتر <Подсказка> اختیاری - این عنوان کادر محاوره ای است. پارامتر <Длина> اختیاری، حداکثر طول رشته ورودی را نشان می دهد. پیش‌فرض صفر است که به معنای طول نامحدود است. پارامتر <Многострочность> اختیاری. حالت ورودی متن چند خطی را تعریف می کند: True—ورودی متن چندخطی با جداکننده خط. نادرست - یک رشته ساده وارد کنید.

اگر کد کاراکتر را در یونیکد می دانید، می توانید یک رشته وارد کنید:

سمبل(<КодСимвола>) — کد به صورت عدد وارد می شود.

حرف= نماد(1103) ; // من

همچنین یک تابع معکوس وجود دارد که به شما امکان می دهد کد یک نماد را پیدا کنید.

SymbolCode(<Строка>, <НомерСимвола>) — عدد یونیکد کاراکتر مشخص شده را به صورت عدد برمی گرداند.

توابع تبدیل حروف متن:

VReg(<Строка>) - تمام کاراکترهای یک رشته را به حروف بزرگ تبدیل می کند.

NReg(<Строка>) - تمام کاراکترهای یک رشته را به حروف کوچک تبدیل می کند.

Treg(<Строка>) - تمام کاراکترهای رشته را به حروف عنوان تبدیل می کند. یعنی حروف اول همه کلمات به حروف بزرگ و حروف باقی مانده به حروف کوچک تبدیل می شوند.

توابع جستجو و جایگزینی کاراکترها در یک رشته:

پیدا کردن(<Строка>, <ПодстрокаПоиска>) - شماره کاراکتر وقوع زیررشته جستجو را پیدا می کند. مثلا:

یافتن ("رشته"، "oka") ; // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - شماره کاراکتر وقوع زیررشته جستجو را پیدا می کند، شماره وقوع در پارامتر مربوطه نشان داده می شود. در این حالت جستجو با کاراکتری که شماره آن در پارامتر مشخص شده است آغاز می شود موقعیت اولیهجستجو از ابتدا یا انتهای رشته امکان پذیر است. مثلا:

Number4 Occurrences = Str Find ( "تدافعی", "درباره" ,جهت جستجو. از شروع، 1، 4)؛ // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - همه موارد زیر رشته جستجو را در رشته منبع پیدا می کند و آن را با زیر رشته جایگزین جایگزین می کند.

StrReplace ("رشته"، "oka"، "") ; // صفحه

خط خالی(<Строка>) - رشته را برای کاراکترهای مهم بررسی می کند. اگر هیچ کاراکتر مهمی وجود نداشته باشد، یا اصلاً هیچ کاراکتری وجود نداشته باشد، مقدار برگردانده می شود درست است، واقعی. در غیر این صورت - دروغ.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – تعداد وقوع زیررشته جستجو را در رشته منبع محاسبه می کند.

StrNumberOccurrences ( "مطالعه، مطالعه و دوباره مطالعه"، "مطالعه" ، "" ) ؛ // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — پارامترها را با یک رشته جایگزین می کند. خط باید حاوی نشانگرهای جایگزینی به شکل "%1..%N" باشد. شماره گذاری نشانگر از 1 شروع می شود. اگر مقدار پارامتر تعریف نشده، یک رشته خالی جایگزین می شود.

StrTemplate ( "پارامتر 1 = %1، پارامتر 2 = %2", "1" , "2" ) ; // پارامتر 1= 1، پارامتر 2 = 2

توابع تبدیل رشته:

یک شیر(<Строка>, <ЧислоСимволов>) – اولین کاراکترهای یک رشته را برمی گرداند.

درست(<Строка>, <ЧислоСимволов>) – آخرین کاراکترهای یک رشته را برمی گرداند.

چهار شنبه(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - رشته ای از طول را برمی گرداند<ЧислоСимволов>، از نماد شروع می شود<НачальныйНомер>.

AbbrL(<Строка>) کاراکترهای غیر مهم را در سمت چپ اولین کاراکتر مهم در رشته برش می دهد.

مخفف(<Строка>) - نویسه‌های بی‌اهمیت را در سمت راست آخرین کاراکتر مهم در خط برش می‌دهد.

AbbrLP(<Строка>) - نویسه های بی اهمیت را در سمت چپ اولین نویسه مهم در خط و در سمت راست آخرین نویسه مهم در خط برش می دهد.

StrGetString(<Строка>, <НомерСтроки>) - یک رشته چند خطی را بر اساس عدد دریافت می کند.

ویژگی های دیگر:

طول (<Строка>) – تعداد کاراکترهای رشته را برمی گرداند.

StrNumberRow(<Строка>) - تعداد خطوط یک رشته چند خطی را برمی گرداند. یک خط در صورتی جدید در نظر گرفته می شود که با یک کاراکتر خط جدید از خط قبلی جدا شود.

StrCompare(<Строка1>, <Строка2> ) - دو رشته را به روشی غیر حساس با حروف بزرگ مقایسه می کند. یک تابع شبیه به یک شی کار می کند مقایسه ارزش ها. برمی گرداند:

  • 1 - اگر خط اول بزرگتر از خط دوم باشد
  • -1 - اگر خط دوم بزرگتر از خط اول باشد
  • 0 - اگر رشته ها مساوی باشند

StrCompare("خط اول"، "خط دوم") ; // 1

قابلیت های اساسی یک زبان برنامه نویسی معمولاً شامل کار با اعداد و رشته ها می شود. معمولاً این ویژگی ها در کد کامپایلر به صورت سخت کدگذاری می شوند (یا کلاس های "پایه" زبان برنامه نویسی پیاده سازی می شوند).

در 1C، توانایی کار با رشته ها در خود پلتفرم برنامه ریزی شده است. امروز به ویژگی های کار با رشته های 1C در برنامه های زبان داخلی 1C خواهیم پرداخت.

مقدار خط 1C

1. بیایید با ساده ترین شروع کنیم. ایجاد یک متغیر و اختصاص یک مقدار رشته ثابت به آن در 1C به شکل زیر است:

متغیر = "سلام، دنیا!";

اگر باید یک کاراکتر نقل قول را در یک مقدار رشته ثابت 1C مشخص کنید، باید آن را دو برابر کنید ""

متغیر = "سلام، دنیا"!;

2. خط شکست 1C را می توان به دو روش در یک بار مشخص کرد. اولین مورد استفاده از نماد |

متغیر = "سلام،
| دنیا! "؛

مورد دوم استفاده از سیستم شمارش نمادها است. این امکان را به شما می دهد که هم شکست خط 1C و هم سایر کاراکترهای غیرچاپ مانند TAB را اضافه کنید.

متغیر = "سلام" + Symbols.PS + "صلح!";

3. تنظیمات در 1C را می توان نه تنها برای یک زبان (روسی، انگلیسی یا دیگری) - بلکه به طور همزمان برای چندین زبان توسعه داد. در این حالت، زبان مورد استفاده فعلی در پایین پنجره 1C انتخاب می شود.

لیست زبان ها در پنجره پیکربندی در شاخه General/Languages ​​قرار دارد. هر زبان دارای یک شناسه کوتاه مانند ruیا eng.

واضح است که هنگام برنامه ریزی چنین پیکربندی، خطوط 1C نیز می توانند چند زبانه باشند. برای انجام این کار، ایجاد چنین خط 1C با مشخص کردن از طریق امکان پذیر است. گزینه ها بر اساس شناسه زبان:

Variable = "ru=""سلام، دنیا! ""; en=""سلام، دنیا! """;

اگر طبق معمول از خط 1C که به این شکل تشکیل شده است استفاده کنید، همان چیزی است که در آن نوشته شده است. برای اینکه سیستم آن را به دو گزینه تقسیم کند و از گزینه مورد نظر استفاده کند، باید از تابع НStr() استفاده کنید:

//درست برای تنظیمات دو زبانه
گزارش(NStr(متغیر));

لوازم با خط نوع 1C

ویژگی فیلدی در دایرکتوری/سند 1C است. تفاوت آن با یک متغیر در یک برنامه به زبان 1C در این است که برای ویژگی نوع آن دقیقاً مشخص شده است (شماره، رشته 1C و غیره). اگر نیاز دارید که حافظه خود را از چیستی پروپوزال تجدید کنید، درس را تماشا کنید.

اگر نوع ویژگی - خط 1C را مشخص کنید، باید پارامترها را نیز مشخص کنید.

خطوط 1C دارای طول نامحدود (با طول = 0) و طول محدود هستند که تعداد دقیق کاراکترها را نشان می دهد. ردیف‌های 1C با طول نامحدود در یک جدول SQL جداگانه ذخیره می‌شوند، بنابراین استفاده از آنها نسبت به موارد محدود بهره‌وری کمتری دارد.

به همین دلیل است که استفاده از رشته های 1C با طول نامحدود محدودیت های خود را دارد - استفاده از آنها در همه جا امکان پذیر نیست. به عنوان مثال، به عنوان شماره سند، کد مرجع یا اندازه گیری مجاز نیست.

کار با رشته های 1C

چندین عملکرد داخلی پلت فرم 1C برای کار با رشته ها وجود دارد.

  • AbbrLP ("باورنکردنی، اما واقعی!")
    فضاهای اضافی را از خط 1C حذف می کند. همچنین می تواند برای تبدیل هر نوع به رشته 1C (مثلاً اعداد) استفاده شود.
  • متغیر = "Vasya" + AbbrLP(" plus") + "Olya"; // "Vasya plus Olya" وجود خواهد داشت
    مثالی از جمع چند مقدار رشته 1C. نتیجه یک خط 1C خواهد بود.
  • متغیر = Lev("موسیقی"، 2); // "مو" خواهد بود
    متغیر = متوسط ​​("موسیقی"، 2، 2); // "تهدید" وجود خواهد داشت
    متغیر = حقوق ("موسیقی"، 2); // "کا" وجود خواهد داشت
    گزینه های مختلف برای به دست آوردن یک رشته فرعی از یک رشته 1C.
  • متغیر = Find("Music", "zy"); //3 وجود خواهد داشت
    یک زیر رشته را در رشته 1C جستجو کنید، از کاراکتر 1 شروع کنید.
  • متغیر = StrLength ("موسیقی")؛ //6 عدد خواهد بود
    تعداد کاراکترهای خط 1C را برمی‌گرداند.
  • گزارش ("سلام") // در پنجره پیام در پایین پنجره 1C
    هشدار ("سلام") //گفتگوی بازشو
    وضعیت ("سلام") //در خط نمایش وضعیت در پایین سمت چپ
    .

آوردن اشیاء به خط 1C

همانطور که می دانید در حال حاضر محبوب ترین فرمت برای تبادل اطلاعات ساختاریافته XML است. حتی آخرین نسخه MS Office Word و Excel فایل ها را با این فرمت ذخیره می کند (به ترتیب docx و xlsx، پسوند را به zip تغییر دهید، در بایگانی باز کنید).

پلت فرم 1C برای تبادل داده چندین گزینه را ارائه می دهد که اصلی ترین آنها نیز XML است.

1. ساده ترین روش استفاده از تابع ()Abbreviation یا String() است. شما می توانید از تابع ()REPRESENTATION در بدنه درخواست استفاده کنید. نتیجه عمل آنها یکسان است - آنها یک نمایش رشته ای از هر شی 1C را برای کاربر ایجاد می کنند.

برای یک فهرست به طور پیش فرض، این نام آن خواهد بود. برای یک سند - نام سند، شماره و تاریخ.

2. هر شی 1C (با محدودیت) را می توان به XML تبدیل کرد و بالعکس. فرآیند تبدیل سریال سازی نامیده می شود.

StringViewXml = XMLString(Value); //XML را از مقدار 1C دریافت کنید
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); // مقدار 1C را از رشته XML دریافت کنید، باید نوع 1C را که باید دریافت شود مشخص کنید.

3. راه خود پلتفرم 1C برای تبدیل هر شی 1C به رشته وجود دارد. از نسخه 1C 7.7 مهاجرت کرد. این قالب توسط برنامه های دیگر قابل درک نیست، اما 1C های دیگر آن را درک می کنند، که استفاده از آن را برای تبادل بین پایگاه های داده 1C آسان می کند.

ردیف = ValueInRowInt(Value1C); // رشته 1C را از مقدار 1C دریافت کنید
ValueVFile("C:\MyFile.txt"، Value1C); //گزینه دیگر، یک فایل با یک رشته ذخیره شده از مقدار 1C دریافت می کنیم
Value1C = ValueFromStringInt(String); //بازگشت از خط 1C
Value1C = ValueFile("C:\MyFile.txt"); //بازگشت از فایل

ویرایش خطوط 1C در فرم

علاوه بر کار با رشته های 1C در برنامه ای به زبان 1C، البته دوست دارم کاربر بتواند آنها را ویرایش کند. چندین احتمال برای این وجود دارد:

1. ساده ترین راه درخواست ورود خط 1C در صورت تقاضا است. این روش هنگام آموزش برنامه نویسی 1C استفاده می شود؛ در زندگی از آن بسیار کمتر استفاده می شود (اما استفاده می شود!).

متغیر = "";
ردیف = EnterValue (متغیر، "نام کامل را وارد کنید");

2. برای نمایش جزئیات یک شی 1C (دایرکتوری/سند) یا جزئیات فرم (نگاه کنید به)، بیشتر اوقات از یک فیلد ورودی استفاده می شود. این رایج ترین ابزار در 1C برای کاربر برای کار با فیلدهای ویرایش است.

3. قابلیت های فیلد ورودی را می توان گسترش داد (به ویژگی های فیلد ورودی مراجعه کنید، روی آن کلیک راست کنید، جزئیات بیشتر):

  • حالت ویرایش چندخطی چک باکس
  • چک باکس ویرایش پیشرفته (در صورت علامت زدن چک باکس قبلی موجود است)
  • حالت رمز عبور چک باکس (نگاه کنید به).

4. اگر تمام قابلیت های فیلد ورودی برای شما کافی نیست، یک ویرایشگر داخلی وجود دارد. برای اضافه کردن آن به فرم، باید یک فیلد سند متنی را به منوی Form/Insert Control اضافه کنید. در ویژگی های آن می توانید حالت عملکرد آن را مشخص کنید - ویژگی Extension.

یک فیلد سند متنی را نمی توان مستقیماً با داده ها مرتبط کرد. لازم است یک تابع در کنترل کننده رویداد OnOpen() فرم بنویسید (نگاه کنید به):

Form Elements.ElementNameTextDocumentField.SetText(StringValue); //here ValueString متنی است که مثلاً از ویژگی دریافت می‌شود

و در کنترل کننده ذخیره - به عنوان مثال، در دکمه ذخیره - یک ذخیره اضافه کنید:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //Valueخط در اینجا مشخصه ای است که در آن مقدار را ذخیره می کنیم

5. در 1C نسخه 8.2.11، در فرم های مدیریت شده، گزینه جدیدی برای نشان دادن یک خط 1C ظاهر شده است - قسمت Formatted Document.


مشابه فیلد یک سند متنی، هنگام باز کردن آن باید آن را تنظیم کنید و هنگام ذخیره آن با استفاده از برنامه، آن را یادداشت کنید.

  • در شی 1C که فرم آن را ایجاد می کنیم (دایرکتوری، سند، پردازش و غیره) - یک ویژگی با نوع Value Storage اضافه کنید
  • در تابع OnReadOnServer() متن را از ویژگی تنظیم می کنیم

    //در اینجا Attribute ویژگی اضافه شده شی 1C است
    //here FormattedDocument نام فیلد روی فرم برای ویرایش است
    &روی سرور

    FormattedDocument = CurrentObject.Attributes.Get();
    پایان رویه

  • در تابع BeforeWritingOnServer() یا با استفاده از دکمه، متن را از فیلد می نویسیم

    &روی سرور
    رویه هنگام ReadingOnServer (CurrentObject)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    پایان رویه

ردیف‌های 1C 8.3 در زبان داخلی 1C مقادیری از نوع اولیه را نشان می‌دهند. خط. مقادیر این نوع شامل یک رشته یونیکد با طول دلخواه است. متغیرهای نوع رشته مجموعه ای از کاراکترهای محصور در گیومه هستند.

مثال 1. بیایید یک متغیر رشته ای با متن ایجاد کنیم.

StringVariable = "سلام دنیا!";

توابع کار با رشته ها در 1s 8.3

این بخش توابع اصلی را ارائه می دهد که به شما امکان می دهد خطوط را در 1c تغییر دهید یا اطلاعات موجود در آنها را تجزیه و تحلیل کنید.

StrLength

طول (<Строка>) . تعداد کاراکترهای موجود در رشته ارسال شده به عنوان پارامتر را برمی‌گرداند.

مثال 2. بیایید تعداد کاراکترهای خط "سلام دنیا!"

String = "سلام دنیا!"; NumberofCharacters = StrLength(String); گزارش (تعداد کاراکترها)؛

نتیجه اجرای این کد نمایش تعداد کاراکترهای خط: 11 خواهد بود.

AbbrL

AbbrL(<Строка>) . کاراکترهای غیر معنی دار را در سمت چپ اولین کاراکتر مهم در رشته برش می دهد.
شخصیت های کوچک:

  • فضا؛
  • فضای بدون شکست؛
  • جدول بندی
  • برگشت محموله؛
  • ترجمه خطی؛
  • ترجمه فرم (صفحه).

مثال 3. تمام فاصله ها را از سمت چپ خط "world!" و خط "Hello" را به آن اضافه کنید.

String = مخفف ("جهان!"); String = "سلام" + رشته; گزارش (رشته)؛

نتیجه اجرای این کد، نمایش خط “Hello world!” بر روی صفحه نمایش خواهد بود.

به اختصار

مخفف(<Строка>) . کاراکترهای غیر معنی دار را در سمت راست اولین کاراکتر مهم در رشته برش می دهد.

مثال 4. از خطوط "سلام" و "صلح!" عبارت "سلام دنیا!"

Line = مخفف ("Hello")+" "+ Abbreviation(" world!"); گزارش (رشته)؛

AbbrLP

AbbrLP(<Строка>) . نویسه‌های غیر معنی‌دار را در سمت راست اولین نویسه معنی‌دار رشته برش می‌دهد و همچنین کاراکترهای غیر معنی‌دار را در سمت چپ اولین کاراکتر معنی‌دار رشته برش می‌دهد. این تابع بیشتر از دو مورد قبلی استفاده می شود، زیرا جهانی تر است.

مثال 5. نویسه های بی اهمیت در سمت چپ و راست به نام طرف مقابل را حذف کنید.

Counterparty = دایرکتوری ها Counterparties.Find By Details("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

یک شیر

یک شیر(<Строка>, <ЧислоСимволов>) . اولین کاراکترهای رشته را می گیرد، تعداد کاراکترها در پارامتر مشخص می شود تعداد کاراکترها

مثال 6. اجازه دهید در ساختار کارمندشامل نام اول، نام خانوادگی و نام خانوادگی کارمند باشد. یک رشته با نام خانوادگی و حروف اول دریافت کنید.

NameInitial = Lev(Employee.Name, 1); نام اصلی = Leo(Employee. Patronymic, 1); FullName = Employee.LastName + " " + FirstName Initial + "." + ابتدایی میانی + ".";

درست

درست(<Строка>, <ЧислоСимволов>) . آخرین کاراکترهای یک رشته، تعداد کاراکترهای مشخص شده در پارامتر را دریافت می کند تعداد کاراکترهااگر تعداد کاراکترهای مشخص شده از طول رشته بیشتر شود، کل رشته برگردانده می شود.

مثال 7. اجازه دهید یک تاریخ با فرمت "yyyymmdd" در انتهای یک متغیر رشته نوشته شود، یک رشته با تاریخ دریافت کنید و آن را به نوع تبدیل کنید. تاریخ.

String = "تاریخ فعلی: 20170910"; StringDate = حقوق (رشته، 8); تاریخ = تاریخ (StringDate);

چهار شنبه

چهار شنبه(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . یک رشته فرعی از رشته ارسال شده به عنوان پارامتر دریافت می کند خط، از کاراکتری که شماره آن در پارامتر مشخص شده است شروع می شود شماره اولیهو طول به پارامتر منتقل شد تعداد کاراکترهاشماره گذاری کاراکترها در یک خط از 1 شروع می شود. اگر در پارامتر شماره اولیهمقدار کمتر یا مساوی صفر مشخص می شود، سپس پارامتر مقدار 1 را می گیرد. اگر پارامتر تعداد کاراکترهامشخص نشده است، سپس کاراکترهای تا انتهای خط انتخاب می شوند.

مثال 8. اجازه دهید متغیر رشته ای که از موقعیت نهم شروع می شود حاوی کد منطقه باشد، باید آن را دریافت کرده و در یک خط جداگانه بنویسید.

رشته = "منطقه: 99 مسکو"; منطقه = میانگین (رشته، 9، 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . یک زیررشته مشخص را در یک رشته جستجو می‌کند و شماره موقعیت اولین کاراکتر زیررشته پیدا شده را برمی‌گرداند. بیایید به پارامترهای این تابع نگاه کنیم:

  • خط. رشته منبع؛
  • جستجوی رشته فرعی. جستجوی زیر رشته؛
  • جهت جستجو. جهت جستجوی رشته فرعی در رشته را مشخص می کند. می تواند مقادیر را بگیرد:
    • جستجو Direction.From Start;
    • جستجو. پایان جهت;
  • موقعیت اولیه. موقعیتی را در رشته ای که جستجو در آن آغاز می شود مشخص می کند.
  • NumberOccurrences. تعداد وقوع رشته فرعی جستجو شده در رشته منبع را مشخص می کند.

مثال 9. در خط "سلام دنیا!" موقعیت آخرین وقوع کاراکتر "و" را تعیین کنید.

PositionNumber = StrFind("سلام دنیا!"، "و" SearchDirection.End); گزارش (شماره موقعیت)؛

نتیجه اجرای این کد نمایش عدد آخرین وقوع علامت “و” 9 خواهد بود.

VReg

VReg(<Строка>) . تمام کاراکترهای رشته مشخص شده در 1s8 را به حروف بزرگ تبدیل می کند.

مثال 10: رشته "Hello world!" به حروف بزرگ

StringVreg = VReg("سلام دنیا!"); گزارش (StringVreg)؛

نتیجه اجرای این کد، نمایش خط HELLO WORLD خواهد بود.

NReg

NReg(<Строка>) . تمام کاراکترهای رشته مشخص شده در 1s 8 را به حروف کوچک تبدیل می کند.

مثال 11: رشته "HELLO WORLD!" به حروف کوچک

StringNreg = NReg("HELLO WORLD!"); گزارش (StringVreg)؛

نتیجه اجرای این کد نمایش خط "سلام دنیا!"

Treg

Treg(<Строка>) . یک رشته را به صورت زیر تبدیل می کند: کاراکتر اول هر کلمه به حروف بزرگ تبدیل می شود، کاراکترهای باقی مانده کلمه به حروف کوچک تبدیل می شوند.

مثال 12: حروف اول کلمات در خط "سلام دنیا!"

StringTreg = Treg ("سلام دنیا!"); گزارش (StringTreg)؛

نتیجه اجرای این کد نمایش خط “Hello World!” خواهد بود.

سمبل

سمبل(<КодСимвола>) . با کد یونیکد خود یک کاراکتر دریافت می کند.

مثال 13. چپ و راست را به خط "Hello World!" اضافه کنید. نماد ★

StringWithStars = Symbol("9733")+"Hello World!"+Symbol("9733"); گزارش (StringWithStars)؛

نتیجه اجرای این کد نمایش خط ★Hello World!★ خواهد بود.

کد نماد

SymbolCode(<Строка>, <НомерСимвола>) . کد کاراکتر یونیکد را از رشته مشخص شده در پارامتر اول که در موقعیت مشخص شده در پارامتر دوم قرار دارد دریافت می کند.

مثال 14. کد آخرین کاراکتر در خط "Hello World!" را پیدا کنید.

String = "سلام جهان!"; CharacterCode = CharacterCode(String, StrLength(String)); اطلاع رسانی (شخصیت کد)؛

نتیجه اجرای این کد نمایش رمز نماد “!” خواهد بود. - 33.

خط خالی

خط خالی(<Строка>) . بررسی می کند که آیا رشته فقط از کاراکترهای ناچیز تشکیل شده است، یعنی خالی است یا خیر.

مثال 15. بررسی کنید که آیا رشته ای متشکل از سه فاصله خالی است یا خیر.

Empty = EmptyString(" "); گزارش (خالی)؛

نتیجه اجرای این کد نمایش کلمه "Yes" (یک عبارت رشته ای از یک مقدار منطقی) خواهد بود. درست است، واقعی).

PageReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . تمام رخدادهای زیررشته جستجو را در رشته منبع پیدا می کند و آن را با رشته فرعی جایگزین جایگزین می کند.

مثال 16. در خط "سلام جهان!" کلمه "صلح" را با کلمه "دوستان" جایگزین کنید.

String = StrReplace("Hello World!"، "World"، "Friends"); گزارش (رشته)؛

نتیجه اجرای این کد نمایش خط "سلام دوستان!"

StrNumberLines

StrNumberRow(<Строка>) . به شما امکان می دهد تعداد خطوط یک رشته چند خطی را بشمارید. برای رفتن به یک خط جدید در 1s 8، از نماد استفاده کنید PS(شخصیت خط جدید).

مثال 17. تعداد خطوط متن را تعیین کنید:
"خط اول
خط دوم
خط سوم"

Number = StrNumberString("First line"+Characters.PS +"Second line"+Symbols.PS +"Third line"); شماره گزارش)؛

نتیجه اجرای این کد نمایش تعداد خطوط متن خواهد بود: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . یک خط را در یک رشته چند خطی با شماره آن بدست می آورد. شماره گذاری خطوط از 1 شروع می شود.

مثال 18. آخرین خط متن را دریافت کنید:
"خط اول
خط دوم
خط سوم"

متن = "خط اول" + نمادها. PS + "خط دوم" + نمادها. PS + "خط سوم"; LastRow = StrGetRow(Text, StrNumberLines(Text)); گزارش (آخرین خط)؛

نتیجه اجرای این کد نمایش خط "خط سوم" خواهد بود.

Page NumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . تعداد تکرار رشته فرعی مشخص شده را در یک رشته برمی گرداند. تابع به حروف بزرگ و کوچک حساس است.

مثال 19. تعیین کنید که چند بار حرف "c" در خط "خطوط در 1s 8.3 و 8.2" ظاهر می شود، صرف نظر از حروف آن.

Line = "خطوط در 1s 8.3 و 8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String)، "C"); گزارش (NumberOccurrences);

نتیجه اجرای این کد نمایش تعداد رخدادها خواهد بود: 2.

PageStartsWith

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;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . یک رشته را با استفاده از کاراکترهای جداکننده مشخص شده به قطعات تقسیم می کند و رشته های حاصل را در یک آرایه می نویسد. پارامتر اول رشته منبع را ذخیره می‌کند، دومی شامل رشته‌ای حاوی جداکننده است، و پارامتر سوم نشان می‌دهد که آیا رشته‌های خالی باید در آرایه نوشته شوند (به طور پیش‌فرض درست است، واقعی).

مثال 22. اجازه دهید یک رشته حاوی اعدادی داشته باشیم که با علامت ";" از هم جدا شده اند، آرایه ای از اعداد را از رشته بدست آوریم.

رشته = "1; 2; 3"; آرایه = StrDivide(String, ";"); برای تعداد = 0 توسط Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(AbbrLP(Array[Count])); آرایه استثنایی[Sch] = 0; EndAttemptsEndCycle;

در نتیجه اجرا، آرایه ای با اعداد از 1 تا 3 به دست می آید.

PageConnect

StrConnect(<Строки>, <Разделитель>) . آرایه رشته ها را از پارامتر اول به رشته ای تبدیل می کند که شامل تمام عناصر آرایه است که توسط جداکننده مشخص شده در پارامتر دوم از هم جدا شده اند.

مثال 23. با استفاده از آرایه اعداد مثال قبلی، رشته اصلی را بدست آورید.

برای حساب = 0 توسط Array.Quantity() - 1 Cycle Array[Act] = String(Array[Act]); چرخه پایان Row = StrConnect(Array, ";");

مکانیسم های کمی برای کار با رشته ها در جستارهای 1C وجود دارد. ابتدا خطوط را می توان اضافه کرد. در مرحله دوم، شما می توانید یک رشته فرعی از یک رشته بگیرید. ثالثاً، رشته ها را می توان با هم مقایسه کرد، از جمله با الگو. این احتمالاً تنها کاری است که می توان با رشته ها انجام داد.

اضافه کردن رشته

برای افزودن ردیف در یک پرس و جو، از عملیات "+" استفاده می شود. شما فقط می توانید رشته هایی با طول محدود اضافه کنید.

"Name: " + Counterparties. Name AS ستون 1 FROM Directory. Counterparties AS Counterparties WHERE Counterparties. پیوند = &پیوند

تابع رشته فرعی

SUBSTRING(<Строка>, <НачальнаяПозиция>, <Длина>)

آنالوگ تابع Environment() از مدل شی. تابع Substring() می تواند روی داده های رشته اعمال شود و به شما امکان می دهد یک قطعه را انتخاب کنید <Строки> ، با شماره کاراکتر شروع می شود <НачальнаяПозиция> (نویسه های یک خط از 1 شماره گذاری می شوند) و طول <Длина> شخصیت ها. نتیجه محاسبه تابع دارای یک نوع رشته با طول متغیر است و اگر طول آن نامحدود در نظر گرفته شود <Строка> دارای طول و پارامتر نامحدود است <Длина> ثابت یا بزرگتر از 1024 نیست.

اگر طول رشته کمتر از مقدار مشخص شده در پارامتر دوم باشد، تابع یک رشته خالی برمی گرداند.

توجه!استفاده از تابع ()SUBSTRING برای تبدیل رشته هایی با طول نامحدود به رشته هایی با طول محدود توصیه نمی شود. در عوض، بهتر است از عملگر cast () EXPRESS استفاده کنید.

تابع مشابه

اگر لازم باشد مطمئن شویم که یک ویژگی رشته دارای معیارهای خاصی است، آن را با هم مقایسه می کنیم:

طرفین را انتخاب کنید. نام به‌عنوان ستون 1 از فهرست راهنمای طرفین.

اما اگر نیاز به مقایسه ظریف تری داشته باشید چه؟ نه فقط برابری یا نابرابری، بلکه شباهت به یک الگوی خاص؟ این دقیقاً همان چیزی است که تابع SIMILAR برای آن ایجاد شده است.

LIKE - عملگر برای بررسی شباهت یک رشته به یک الگو. آنالوگ LIKE در SQL.

عملگر SIMILAR به شما امکان می دهد مقدار عبارت مشخص شده در سمت چپ آن را با رشته الگوی مشخص شده در سمت راست مقایسه کنید. مقدار عبارت باید از نوع رشته باشد. اگر مقدار عبارت با الگو مطابقت داشته باشد، نتیجه عملگر TRUE و در غیر این صورت FALSE خواهد بود.

کاراکترهای زیر در رشته الگو کاراکترهای سرویس هستند و معنایی متفاوت از کاراکتر رشته دارند:

  • % (درصد): دنباله ای حاوی هر تعداد کاراکتر دلخواه.
  • _ (تاکید): یک کاراکتر دلخواه.
  • […] (یک یا چند کاراکتر در براکت مربع): هر کاراکتر منفرد که در داخل کروشه ذکر شده است. شمارش ممکن است شامل محدوده هایی باشد، به عنوان مثال a-z، به این معنی که یک کاراکتر دلخواه در محدوده، از جمله انتهای محدوده، گنجانده شده است.
  • [^...] (در پرانتز یک علامت نفی به دنبال یک یا چند کاراکتر): هر کاراکتر منفرد غیر از آنهایی که در زیر علامت نفی فهرست شده اند.

هر علامت دیگری به معنای خودش است و بار اضافی را حمل نمی کند. اگر یکی از کاراکترهای فهرست شده باید به عنوان خودش نوشته شود، باید قبل از آن نوشته شود<Спецсимвол>. خودم<Спецсимвол>(هر کاراکتر مناسب) در همان عبارت بعد از کلمه کلیدی SPECIAL CHARACTER تعریف می شود.

بهترین مقالات در این زمینه