زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم

نوع "رشته" در همه زبانهای برنامه نویسی یافت می شود. این ابتکاری است و در 1C عملکردهای زیادی برای کار با آن وجود دارد. در این مقاله ، با نگاهی دقیق تر به روشهای مختلف کار با انواع رشته در 1C 8.3 و 8.2 با استفاده از مثالها خواهیم پرداخت.

خط

برای تبدیل متغیر از هر نوع به یک رشته ، تابعی با همین نام "String ()" وجود دارد. پارامتر ورودی خود متغیر خواهد بود ، نمایش رشته ای که باید بدست آید.

رشته (نادرست) // "نه" را برمی گرداند
رشته (12345) // "12 345" را برمی گرداند
String (CurrentDate ()) // 07/21/2017 11:55:36 ″

می توان نه تنها انواع اولیه را به یک رشته تبدیل کرد ، بلکه دیگران نیز ، برای مثال عناصر کتابهای مرجع ، اسناد را می توان تبدیل کرد.

SocrLP ، SocrL ، SocrP

پارامترهای ورودی این توابع یک متغیر نوع رشته هستند. عملکردها کاراکترهای ناچیز را حذف می کنند (فاصله ها ، بازگشت کالسکه ها و غیره): از سمت چپ و راست ، فقط از سمت چپ و به ترتیب فقط از سمت راست.

AbbrLP ("فاصله هر دو طرف برداشته خواهد شد") // "فاصله هر دو طرف برداشته می شود"
مخفف اختصار ("فاصله در هر دو طرف برداشته خواهد شد") // "فاصله در سمت چپ برداشته می شود"
اختصار ("فاصله ها در هر دو طرف برداشته خواهد شد") // "فاصله در سمت راست حذف خواهد شد"

لئو ، درست ، چهارشنبه

این توابع به شما امکان می دهد بخشی از یک رشته را برش دهید. تابع "شیر ()" بخشی از رشته را از سمت چپ آن به طول مشخص بازگرداند. عملکرد "Right ()" همان است ، اما برداشت در سمت راست انجام می شود. تابع "Med ()" به شما امکان می دهد شماره کاراکتر را انتخاب کنید که رشته از آن انتخاب می شود و طول آن.

شیر ("متغیر رشته" ، 4) // "Stro" را برمی گرداند
راست ("متغیر رشته" ، 7) // "متغیر" را برمی گرداند
Wed ("متغیر رشته" ، 2 ، 5) // "troco" را برمی گرداند

طول خیابان

تابع تعداد کاراکترهای موجود در متغیر رشته را تعیین می کند.

StrL طول ("کلمه") // نتیجه اجرای شماره 5 خواهد بود

برای پیدا کردن

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

لطفاً توجه داشته باشید که جستجوها حساس به مورد هستند. اگر رشته اصلی شامل بیش از یک مورد از بستر جستجو باشد ، عملکرد اولین شروع اول را برمی گرداند.

یافتن ("یک ، دو ، یک ، دو ، سه" ، "دو") // تابع عدد 6 را برمی گرداند

خط خالی

با استفاده از این عملکرد می توانید تعیین کنید که یک رشته خالی است یا خیر. شخصیت های ناچیز مانند فضا ، بازگشت کالسکه و دیگران نادیده گرفته می شوند.

EmptyString ("Pupkin Vasily Ivanovich") // تابع مقدار false را برمی گرداند
تابع EmptyString ("") // True برگشت داده خواهد شد

VReg، NReg، Treg

این توابع برای مقایسه و تبدیل متغیرهای رشته بسیار مفید هستند. Breg () رشته اصلی را با حروف بزرگ برگردانده ، HPreg () با حروف کوچک ، و TRreg () آن را قالب بندی می کند تا شخصیت اول هر کلمه مجزا بزرگ شود و تمام موارد بعدی با حروف کوچک باشد.

Vreg ("مدیر کل") // مقدار برگشتی - "مدیر کل"
NReg ("مدیر کل") // مقدار برگشتی - "مدیر کل"
TREG ("مدیر کل") // مقدار برگشتی - "مدیر کل"

صفحه

این عملکرد مشابه با جایگزینی در ویرایشگران متن است. این امکان را به شما می دهد که یک متغیر رشته یا کاراکتر را برای شخصیت دیگر جایگزین کنید.

StrReplace ("قرمز ، سفید ، زرد" ، "،" ، "؛") // "قرمز" باز خواهد گشت. سفید؛ رنگ زرد"

StrNumberStrings

این تابع به شما امکان می دهد تعداد خطوط جدا شده با بازده کالسکه را در یک متغیر متن تعیین کنید.

حلقه در مثال زیر از سه حلقه عبور خواهد کرد زیرا عملکرد RowNumber 3 برمی گردد:

برای ind \u003d 1 توسط StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") حلقه
<тело цикла>
پایان چرخه؛

StrGetString

این عملکرد با متن چند خطی به همان روش قبلی کار می کند. این اجازه می دهد تا یک رشته خاص را از متغیر متن دریافت کنید.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3" ، 2) // "String2" را برمی گرداند

StrNumber of bûyerها

عملکرد تعداد وقایع یک کاراکتر یا زیرلایه را در رشته جستجو می شمارد.

Row of Attachments ("a؛ b؛ c؛ d؛"، "؛") // تابع شماره 4 را برمی گرداند

نماد و نماد کد

این توابع به شما امکان می دهد تا یک شخصیت را با کد یونیکد خود دریافت کنید ، همچنین این کد را توسط خود شخصیت تعیین کنید.

عملکرد SymbolCode ("A") // عدد 1 040 را برمی گرداند
SymbolCode (1040) // عملکرد "A" برمی گردد

کارهای مکرر هنگام کار با رشته ها

رشته های متصل کننده

برای جمع بندی چندین رشته (برای انجام جمع بندی) ، استفاده از عملگر اضافی کافی است.

"خط 1 ″ +" خط 2 ″ // نتیجه اضافه کردن دو رشته "خط 1 خط 2" خواهد بود

تبدیل را تایپ کنید

برای تبدیل یک نوع به یک رشته ، به عنوان مثال ، مراجعه به یک مورد فرهنگ لغت ، یک شماره و غیره ، استفاده از تابع "String ()" کافی است. توابع مانند "اختصار ()" نیز متغیرها را به یک رشته تبدیل می کنند ، اما بلافاصله با کوتاه کردن کاراکترهای ناچیز.

رشته (1000) // "1000" را برمی گرداند

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

StrReplace (رشته (1000) ، Character.NPP ، "") // "1000" را برمی گرداند

رشته (فرمت (1000 ، "CHG \u003d")) // "1000" را برمی گرداند

نقل قول در یک رشته

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

عنوان \u003d رشته ("شاخ و هووها LLC" - این ما هستیم! ") //" شاخ و هوفس LLC "را بازمی گرداند. این همان ما است!"

چند خط ، خط شکسته

برای ایجاد متن چند خطی ، کافی است شکاف های خط (Symbols.PS) را به آن اضافه کنید.

MultilineText \u003d "خط اول" + Symbols.PS + "خط دوم"

نحوه حذف فضاها

به منظور از بین بردن فاصله ها در سمت راست یا چپ ، می توانید از تابع "اختصار ()" (و همچنین "مخفف ()" و "اختصار ()") استفاده کنید:

StringNoSpaces \u003d اختصارLP ("بسیاری از حروف") // تابع مقدار "بسیاری از حروف" را برمی گرداند

اگر بعد از تبدیل یک عدد به یک رشته ، شما نیاز به حذف فضاهای بدون شکست دارید ، از ساختاری زیر استفاده کنید:

StringNoSpaces \u003d StrReplace (رشته (99999) ، Characters.NPP ، "") // "99999" را برمی گرداند

همچنین ، برنامه نویسان غالباً از ساختاری زیر استفاده می کنند که به شما امکان می دهد تمام فضاهای متغیر متن را با کاراکتر دیگری حذف یا جایگزین کنید:

StringNoSpaces \u003d StrReplace ("خوش آمدید" ، "" ، "") // "سلام" را برمی گرداند

مقایسه رشته ها با یکدیگر

شرایط را می توان با علامت مساوی معمولی مقایسه کرد. مقایسه حساس است.

"سلام" \u003d "سلام" // غلط را برمی گرداند
"سلام" \u003d "سلام" // True خواهد شد
"سلام" \u003d "خداحافظ" // دروغ برگردد

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

رشته ها را به هم متصل کنید

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

را انتخاب کنید "نام:" + تعداد مشترک. نام AS Column1 از دایرکتوری را انتخاب کنید. پیمانکاران به عنوان طرف های متفقین در تقابل با طرفین. لینک \u003d & پیوند

عملکرد بستر

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

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

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

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

عملکرد مانند

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

همکاريها را انتخاب كنيد. نام خود را به عنوان Column1 FROM Directory قرار دهيد. طرف مقابل AS Counterparties WHERE counterparties. name \u003d "Gazprom"

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

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

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

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

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

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

یادداشت هایی از Looking Glass

08/18/2014 توابع جدید برای کار با رشته ها

در نسخه 8.3.6.1977 اجرا شده است.

ما مجموعه کارکردها را برای کار با رشته ها گسترش داده ایم. ما این کار را انجام دادیم تا به شما ابزارهای پیشرفته تری برای تجزیه داده های رشته ای ارائه دهیم. عملکردهای جدید در کارهای فن آوری تجزیه و تحلیل متن راحت و مفید خواهند بود. در کارهایی که مربوط به تجزیه متن است که حاوی داده های فرمت شده است. این می تواند تجزیه و تحلیل برخی از پرونده های دریافت شده از تجهیزات یا مثلاً تجزیه و تحلیل یک سیاهه فناوری باشد.

کلیه عملکردهایی که قبلاً عملکردهای جدیدی را انجام داده اید. با کمک الگوریتم های کم و بیش پیچیده ای که به زبانی تعبیه شده نوشته شده است. بنابراین ، توابع جدید هیچ امکان اساسی در اختیار شما قرار نمی دهد. با این حال ، آنها می توانند مقدار کد را کاهش دهند ، کد را ساده تر و راحت تر درک کنند. و علاوه بر این ، آنها به شما اجازه می دهند سرعت اجرای اقدامات را تسریع کنید. زیرا توابع پیاده سازی شده در کار بستر های نرم افزاری ، البته سریعتر از یک الگوریتم مشابه که به زبان تعبیه شده نوشته شده است.

عملکرد قالب بندی StrPattern ()

این عملکرد پارامترها را در یک رشته جایگزین می کند. نیاز به چنین تبدیل اغلب به عنوان مثال هنگام نمایش پیامهای هشدار دهنده ایجاد می شود. نحو این عملکرد به شرح زیر است:

صفحه صفحه (<Шаблон>, <Значение1-Значение10>)

<Шаблон> رشته ای است که می تواند برای بازنمایی پارامترها جایگزین شود.

<Значение1> , ... <Значение10> - این پارامترها (حداکثر - ده) هستند ، بازنمودهای آنها باید در رشته جایگزین شوند.

برای نشان دادن یک مکان خاص در قالب جایی که می خواهید جایگزینی را انجام دهید ، باید از علائمی مانند٪ 1 ، ...٪ 10 استفاده کنید. تعداد نشانگرهای مورد استفاده در الگو و تعداد پارامترهای حاوی مقادیر باید مطابقت داشته باشد.

به عنوان مثال ، نتیجه اجرای چنین بیانیه ای:

یک خط وجود خواهد داشت:

خطای داده در خط 2 (نوع تاریخ مورد نیاز)

عملکرد برای کار با رشته ها StrComp ()

این عملکرد دو رشته را به روشی غیر حساس مقایسه می کند. به عنوان مثال ، مانند این:

قبل از استفاده از شی می توانستید همین عمل را انجام دهید مقایسه ارزشها:

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

توابع کار با رشته های RowStart با () ، RREnd با ()

این توابع تعیین می کنند که آیا یک رشته با یک بستر مشخص شروع می شود یا با یک بستر مشخص به پایان می رسد. الگوریتم این توابع اجرای به زبان تعبیه شده دشوار نیست ، اما حضور آنها به شما امکان می دهد کدی تمیز تر و قابل درک تر بنویسید. و آنها سریعتر کار می کنند.

به عنوان مثال ، استفاده از آنها در اپراتور راحت است اگر یک:

توابع کار با رشته ها StrSplit () ، StrConnect ()

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

عملکرد برای کار با رشته ها StrFind ()

به جای عملکرد قدیمی برای پیدا کردن () ما یک ویژگی جدید را اجرا کرده ایم که دارای قابلیت های دیگری است:

  • جستجو در جهات مختلف (از ابتدا ، از انتها)؛
  • جستجو از یک موقعیت مشخص.
  • با یک شماره مشخص شده (دوم ، سوم و غیره) یک مورد را جستجو کنید.

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

در زیر مثالی با استفاده از قابلیتهای جستجوی جدید آورده شده است. جستجوهای به عقب زمانی مفید است که به آخرین قسمت از یک رشته رسمی ، مانند نام کامل کاملاً واجد شرایط در URL ، نیاز دارید. و جستجو از موقعیت مشخص شده به مواردی کمک می کند که شما نیاز به جستجوی یک قطعه شناخته شده دارید و نه در کل رشته.

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

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

مقدار خط 1C

1. بیایید با ساده ترین شروع کنیم. به نظر می رسد ایجاد یک متغیر و تعیین مقدار رشته ای ثابت در 1C:

متغیر \u003d "سلام جهان!"؛

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

متغیر \u003d "سلام" ، "جهان" "!"؛

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

متغیر \u003d "سلام ،
| جهان! "؛

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

متغیر \u003d "سلام" + Symbols.PS + "جهان!"؛

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

لیست زبانها در پنجره پیکربندی در شاخه عمومی / زبانها قرار دارد. هر زبان دارای شناسه ای کوتاه مانند خراب کردن یا موتور.

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

متغیر \u003d "ru \u003d" "سلام جهان!" "؛ En \u003d" "سلام جهان!" ""؛

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

// صحیح برای تنظیمات دو زبانه
گزارش (НStr (متغیر))؛

برقی با خط 1C

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

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

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

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

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

چندین کارکرد داخلی در بستر 1C برای کار با رشته ها وجود دارد.

  • SocrLP ("باور نکردنی ، اما واقعی!")
    فضاهای اضافی را از خط 1C حذف می کند. همچنین می تواند برای تبدیل هر نوع به رشته 1C (به عنوان مثال اعداد) مورد استفاده قرار گیرد.
  • متغیر \u003d "واسیا" + SokrLP ("به علاوه") + "Olya"؛ // خواهد بود "واسیا به علاوه اولیا"
    نمونه ای از جمع بندی چندین مقدار رشته 1C. نتیجه یک خط از 1C خواهد بود.
  • متغیر \u003d لئو ("موسیقی" ، 2)؛ // خواهد بود "مو"
    متغیر \u003d چهارشنبه ("موسیقی" ، 2 ، 2)؛ // خواهد بود "shl"
    متغیر \u003d راست ("موسیقی" ، 2)؛ // خواهد بود "ka"
    گزینه های مختلف برای به دست آوردن بستر از یک رشته 1C.
  • متغیر \u003d یافتن ("موسیقی" ، "Shl")؛ // 3 خواهد بود
    برای شروع یک بستر در رشته 1C ، از شخصیت 1 شروع کنید.
  • متغیر \u003d StrL طول ("موسیقی")؛ // 6 خواهد بود
    تعداد کاراکترهای موجود در خط 1C را برمی گرداند.
  • گزارش ("سلام") // در پنجره پیام در انتهای پنجره 1C
    هشدار ("سلام") // گفتگوی پنجره
    حالت ("سلام") // را در خط وضعیت در پایین سمت چپ قرار دهید
    .

ریخته گری اشیاء به خط 1C

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

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

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

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

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

ViewStringXml \u003d XMLString (مقدار)؛ // دریافت مقدار XML از مقدار 1C
Value1C \u003d XMLValue (نوع ("ReferenceLink.Nomenclature") ، ViewStringXml)؛ // مقدار 1C را از رشته XML دریافت کنید ، باید نوع 1C که باید دریافت شود را مشخص کنید

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

String \u003d ValueVSStringInter (Value1C)؛ // دریافت خط 1C از مقدار 1C
ValueVFile ("C: \\ MyFile.txt"، Value1C)؛ // گزینه دیگر ، ما یک پرونده با یک رشته ذخیره شده از مقدار 1C دریافت می کنیم
Value1C \u003d ValueFromStringInternal (رشته)؛ // برگشت از خط 1C
Value1C \u003d ValueOfFile ("C: \\ MyFile.txt")؛ // بازگشت از پرونده

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

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

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

متغیر \u003d ""؛
String \u003d EnterValue (متغیر ، "نام کامل خود را وارد کنید")؛

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

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

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

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

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

فرم Elements.ElementNameTextDocumentField.SetText (ValueString)؛ // در اینجا ValueString متنی است که به عنوان مثال از غرفه ها به دست آمده است

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

ValueString \u003d FormElements.ElementNameTextDocumentField.GetText ()؛ // Value رشته در اینجا غرفه هایی است که مقدار را در آن ذخیره می کنیم

5- در نسخه 1C 8.2.11 ، به اشکال مدیریت شده ، فرصتی جدید برای نمایش خط 1C - فیلد سند قالب بندی شده وجود دارد.


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

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

    // در اینجا Props خاصیت اضافه شده شی 1C است
    // here FormattedDocument نام فیلد موجود در فرم برای ویرایش است
    & روی سرور

    FormattedDocument \u003d CurrentObject.Props.Get ()؛
    پایان مراحل

  • در تابع BeforeWriteOnServer () یا با دکمه ، متن را از قسمت زمینه بنویسید

    & روی سرور
    روال ReadingOnServer (CurrentObject)
    CurrentObject.Props \u003d NewValueStore (قالب بندی شده متن)؛
    پایان مراحل

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

مقادیر متغیرهای نوع خطبه صورت مضاعف محصور شده است. چندین متغیر از این نوع قابل افزودن هستند.

Per1 \u003d "کلمه 1"؛
Per2 \u003d "کلمه 2"؛
Per3 \u003d Per1 + "" + Per2؛

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

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

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

رشته را می توان وارد کرده و کد شخصیت Unicode را دریافت کرد:

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

نامه \u003d نماد (1103)؛ // من هستم

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

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

توابع تبدیل مورد:

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

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

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

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

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

یافتن ("رشته" ، "اوکا")؛ // 4

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

شماره شماره 4 \u003d StrFind ( "توانایی دفاعی"، "o" ، جهت جستجو. از ابتدا ، 1 ، 4)؛ // 7

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

StrReplace ("رشته" ، "اوکا" ، "")؛ // صفحه

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

StrNumber of bûyerها (<Строка>, <ПодстрокаПоиска>) - تعداد وقایع بستر جستجو را در رشته اصلی محاسبه می کند.

StrNumber of bûyerها ( "مطالعه ، مطالعه و مطالعه مجدد"، "مطالعه" ، "" ) ؛ // 3

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

صفحه صفحه ( "پارامتر 1 \u003d٪ 1 ، پارامتر 2 \u003d٪ 2", "1" , "2" ) ; // پارامتر 1 \u003d 1 ، پارامتر 2 \u003d 2

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

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

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

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

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

اختصار (<Строка>) - شخصیت های ناچیز را به سمت راست آخرین شخصیت قابل توجه رشته تغییر می دهد.

SocrLP (<Строка>) - شخصیت های ناچیز را در سمت چپ اولین شخصیت مهم در خط و در سمت راست آخرین شخصیت مهم در خط قطع می کند.

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

توابع دیگر:

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

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

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

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

مقایسه کنید ("خط اول" ، "خط دوم")؛ // 1

زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم