زنگ

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

سلام به خوانندگان عزیز سایت وبلاگ! آخرین باری که ما به زبان تعبیه شده 1C: Enterprise 8. توجه کردیم. امروز ادامه خواهیم داد و در مورد دو صحبت خواهیم کرد انواع داده ها - بولی و تاریخو همچنین نحوه کار با آنها را در نظر بگیرید. بنابراین ، اجازه دهید شروع کنیم!

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

  • 101\u003e 1001 برابر است غلط
  • 101 حقیقت
  • ‘20000101 '\u003d‘ 20000102 برابر است غلط
  • "باز" \u200b\u200b"باز" \u200b\u200bبرابر است درست است، واقعی

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

اکنون در نظر بگیرید تاریخ اولیه نوع داده... برای توصیف نوع داده تاریخ معمولاً از دو روش استفاده می شود. ابتدا با استفاده از یک لفظ. بیایید متغیری به نام "CurrentDate" اعلام کنیم. به عنوان مثال ، برابر با 2 اکتبر 2014 خواهد بود. در این حالت ، قالب تاریخ سال / ماه / روز است.

CurrentDate \u003d "20141002"؛ // 02.10.2014

در صورت لزوم می توانیم زمان را مشخص کنیم ، زیرا در سیستم 1C: Enterprise 8 ، هر تاریخ شامل تاریخ و زمان می باشد. بنابراین ، در صورت لزوم می توانید مثلاً زمان زیر را مشخص کنید: 15 ساعت 5 دقیقه و 50 ثانیه. نتیجه سال / ماه / روز / ساعت / دقیقه / ثانیه خواهد بود.

CurrentDate \u003d ‘20141002150550 '؛ // 02.10.2014 15:05:50

اگر زمان را مشخص نکنید ، به طور پیش فرض برابر با صفر خواهد بود و تاریخ را می توان اینگونه توصیف کرد: "20141002".
برای وضوح ، از هر جداکننده می توان مانند دوره ها استفاده کرد. " بنابراین تاریخ ممکن است به این شکل باشد: '2014.10.02'. این اولین روش برای توصیف تاریخ بود. توجه داشته باشید که از نقل قولهای واحد استفاده می شود ، به معنای واقعی کلمه ای که نمی تواند شکسته شود. این به نقل از تک نوشته شده است.

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

CurrentDate \u003d تاریخ (2014 ، 10 ، 02)؛ // 02.10.2014 00:00:00

همچنین می توانید زمان را مشخص کنید.

CurrentDate \u003d تاریخ (2014 ، 10 ، 02 ، 15 ، 05 ، 50)؛ // 02.10.2014 15:05:50

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

CurrentDate \u003d تاریخ ("20141002150550")؛ // 02.10.2014 15:05:50

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

برای توصیف یک تاریخ خالی در سیستم 1C: Enterprise 8 ، باید موارد زیر را انجام دهید:

EmptyDate \u003d ""؛ // 01.01.0001 00:00:00

یا استفاده از توضیحات از طریق کلمه ای:

EmptyDate \u003d "00010101"؛ // 01.01.0001 00:00:00

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

تاریخ خالی \u003d تاریخ (1 ، 1 ، 1)؛ // 01.01.0001 00:00:00

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

و همچنین می خواهم توجه داشته باشم که عملیات اضافه برای تاریخ قابل استفاده است. اگر ده را به تاریخ اضافه کنید:

CurrentDate \u003d تاریخ (2014 ، 10 ، 02 ، 15 ، 05 ، 50)؛ // 02.10.2014 15:05:50 CurrentDate \u003d CurrentDate + 10؛

در نتیجه ، تاریخ ده ثانیه بیشتر طول می کشد:

02.10.2014 15:06:00

بنابراین ، عملیات اضافه کردن تعداد مشخصی از ثانیه را به تاریخ مشخص اضافه می کند. این تفاوت با نسخه سیستم 1C: Enterprise 7.7 است که در هنگام اضافه کردن تاریخ تعداد روزها اضافه می شود نه ثانیه.

این مقاله به ادامه سلسله مقالات "اولین گام در توسعه بر روی 1C" می پردازد. در مورد انواع داده های اولیه و رایج ترین توابع هنگام کار با آنها صحبت خواهد کرد. پس از خواندن مطالب ، می آموزید:

  • چه نوع داده های ابتدایی هستند؟
  • چگونه می توانید با رشته ها کار کنید و چه ویژگی هایی را باید در نظر گرفت؟
  • نکات ظریف کار با عبارات عددی چیست؟
  • چگونه یک تاریخ با معنای خاص را توصیف می کنید؟ چگونه می توانم یک تاریخ خالی تعیین کنم؟
  • نحوه تبدیل چگونه کار می کند؟
  • تهی و نامشخص - آنها چه هستند و چه تفاوت هایی دارند؟
  • چگونه می توان تعیین کرد که چه نوع شی / متغیر است؟

قابلیت استفاده

مقاله برای سکوی 1C نسخه 8.3.4.496 نوشته شده است ، بنابراین اطلاعات مربوط به نسخه فعلی این پلتفرم است. اما لازم به ذکر است که در نسخه 8.3.6.1977 عملکرد جدیدی برای کار با رشته ها اضافه شده است. بنابراین ، هنگامی که مراحل مقاله را تکرار می کنید ، تعجب نکنید اگر در بخش مربوط به دستیار Syntax برخی از عملکردها را مشاهده می کنید که در تصویر ما نشان داده نشده است. ما همچنین توصیه می کنیم که خود را با روش جدید StringCNumber () اضافه شده در پلتفرم 8.3.10 آشنا کنید.

انواع داده های ابتدایی و برخی از کارکردهای آنها

انواع داده های ابتدایی زیر متمایز می شوند:

ثابتهای رشته

نوع داده اولیه خط(ثابت رشته) از شخصیت های مختلف تشکیل شده است. خطهمیشه با علائم احاطه شده نمونه ای از ثابت رشته:

Message.Text \u003d "داده خالی وجود دارد"؛

آن خط "داده خالی وجود دارد" به متغیر اختصاص داده شده است متنهدف - شی پیام... هر چیزی که به نقل از آن احاطه شده باشد رشته ای محسوب می شود.

رشته می تواند هر شخصیت باشد. خطوط می توانند چند خط باشند. علاوه بر این ، هر خط جدید باید در نقل قول ها مشخص شود. مثلا:

متن \u003d "صفت نادرست پر شده است"
"ارسال اسناد غیرممکن است"؛

نیم رنگ فقط در انتهای آخرین خط قرار می گیرد.

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

این نحو بیشتر در تنظیمات معمولی استفاده می شود. به ویژه در زبان پرس و جو. مثلا:

درخواست. متن \u003d
"انتخاب کنید
| نام کارمندان ،
| کارمندان. تاریخ تولد به عنوان تاریخ تولد
| از
| دایرکتوری.کارمندان به عنوان کارمندان
| از کجا
| کارمندان نیستند. این یک گروه است "؛

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

آن برای مثال باید دو خط را با علامت افزودنی "+" بین خطوط ترکیب کنید:

متن \u003d "ضروری به طور نادرست پر شده است" + "سند قابل ارسال نیست"؛

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

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

متن \u003d "خطا در ماژول" "ماژول مشترک 1" "؛

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

و در پایان ، سه نقل قول به دست می آید: آخرین نقل قول رشته را می بندد ، دو مورد قبلی علامت نقل قول را نشان می دهند.

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

همه این توابع در هر کجای تنظیمات موجود است.

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

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

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

وظیفه:

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

دنباله ای از ارقام (از یک یا چند) ، که توسط سایر کاراکترها توسط فضاها محدود شده است ، یک عدد صحیح مثبت است.

به عنوان مثال ، رشته "72 ABC 6AP 31 54f -22" شامل دو عدد صحیح مثبت است: 72 و 31. به غیر از فضاها ، از شخصیت های ناچیز دیگر (مانند جدول بندی ، بازگشت کالسکه) استفاده نمی شود. این عملکرد باید تعداد عدد صحیح مثبت را برگرداند.

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

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

در داخل هندلر ، یک متغیر را تعریف کنید خط، به عنوان مثال:

خط \u003d "72 ABC 6AP 31 54f -22"؛

مقدار \u003d مقدار ofIntegerNubs (رشته)؛

بیایید پیامی در مورد تعداد عدد صحیح ارسال کنیم:

گزارش ("رشته شامل" + مقدار + "عدد صحیح")؛

علاوه بر این ، متغیر میزان به طور ضمنی به نوع تبدیل می شود ثابت رشته... سپس عملیات جمع بندی برای سه رشته انجام می شود و پیام منتقل می شود.

شروع و پایان (یعنی الگو) عملکرد را تعیین کنید تعداد علاقه ها (رشته).

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

اول از همه ، شما باید با عملکرد آشنا شوید SymbolCode... این عملکرد کد شخصیتی را که در رشته منتقل شده در موقعیت با شماره مشخص شده قرار دارد دریافت می کند.

نحو:

CharacterCode (،)

مولفه های:

(اجباری)

(اختیاری) تعداد کاراکترهای موجود در رشته است ، کدی که می خواهید دریافت کنید. شماره گذاری کاراکترها در یک خط از 1 شروع می شود.

مقدار برگشتی:
کد نماد منتقل شده کد با توجه به رمزگذاری یونیکد برگردانده می شود.

توجه داشته باشید که پارامتر مقدار پیش فرض 1 وجود دارد.

رشته همچنین می تواند یک شخصیت باشد. بنابراین می توان کد 0 و کد 9 را تعیین کرد و کدهای سایر رقم های دیگر همانطور که می دانید در فواصل بین آنها قرار دارند.

بگذارید متغیرهای مربوطه و مقادیر آنها را تعریف کنیم:

Code0 \u003d CharacterCode ("0")؛
Code9 \u003d CharacterCode ("9")؛

برای حل مشکل ، ما طرح زیر را انتخاب می کنیم:

  1. اگر تعداد رشته های برجسته یا دنباله دار در رشته وجود داشته باشد ، با عملکردی خاص از شر آنها خلاص خواهیم شد. در مرحله بعد ، ما به گروه های شخصیت های بین فضاهای داخلی علاقه مند خواهیم شد. اگر این گروه فقط از اعداد تشکیل شده باشد ، این عدد صحیح است. یک عملکرد ویژه وجود دارد که با استفاده از آن می توانید موقعیت فضای اول را تعیین کنید.
  2. با توجه به موقعیت فضای اول ، عملکرد دیگر می تواند گروه کاراکترها (substring) را در سمت چپ فضا قرار دهد.
  3. بیایید نمادهای تشکیل دهنده گروه را تجزیه و تحلیل کنیم و مشخص کنیم که آیا عدد صحیح است. اعداد صحیح کشف شده در یک متغیر خاص خلاصه می شوند.
  4. بیایید خط اولیه را با انتخاب با کمک یک کارکرد دیگر تمام کاراکترهای موجود در سمت راست فضا کوتاه کنیم. این فضا می تواند یک نباشد بلکه یک سری کامل از فضا ها در یک ردیف باشد ، بنابراین در خط باقی مانده از همه چپترین فضاها (در یک ردیف) با عملکردی خاص خلاص می شویم و به مرحله 2 باز می گردیم. مراحل را از نقطه 2 تا نقطه 4 تکرار می کنیم تا رسیدن به اظهار می کند که هیچ فضایی در خط باقی نمی ماند. در این حالت ، رشته کوتاه آخرین گروه از کاراکترهای تجزیه شده خواهد بود.

حال بیایید عملکردهایی را که برای حل مسئله نیاز داریم ، تحلیل کنیم.

SokrLP
نحو: اختصار ()
مولفه های: (اجباری)
فضاها (کاراکترهای ناچیز) را به سمت چپ اولین شخصیت مهم در رشته و در سمت راست آخرین شخصیت مهم در رشته قرار می دهد.

برای پیدا کردن
نحو: یافتن (،)
مولفه های: (اجباری) ، (اجباری)
موقعیت اولین کاراکتر بستر یافت شده را برمی گرداند.
شماره گذاری کاراکترهای رشته از 1. شروع می شود. اگر رشته شامل بستر مشخص نشده باشد ، 0 بازگردانده می شود. در مورد ما ، از یک فضای ("") به عنوان بستر استفاده می کنیم.

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

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

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

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

در زیر یک الگوریتم عملکرد امکان پذیر با نظرات وجود دارد.

عبارات عددی

متغیرهای ماژول ها و ویژگی های اشیاء پایگاه داده می توانند عددی باشند.
برای تعداد محدودیت کمی وجود دارد. برای یک متغیر عددی ، طول قسمت عدد صحیح نمی تواند از 32 نویسه تجاوز کند.

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

یاور نحوی می گوید که حداکثر تعداد رقم ها 38 نویسه است. چنین محدودیتی مانع حل مشکلات اقتصادی نمی شود ، یعنی. هر مقدار پولی را می توان با استفاده از این اعداد توصیف کرد.

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

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

  • عملیات حسابی معمولی (- ، + ، * ، /). ضرب و تقسیم تقدم بر جمع و تفریق دارد. پرانتز بالاترین اولویت را دارد. همچنین عملیات unary + و - وجود دارد که بلافاصله در خارج از پرانتز اولویت دارند.
  • عملیات "باقی مانده تقسیم" (٪). به عنوان مثال ، 12٪ 5 \u003d 2؛
  • توابع ریاضی است که می تواند برای اعداد استفاده شود (توابع مثلثاتی ، استخراج ، ریشه مربع ، گرد کردن به عمق بیت مشخص ، انتخاب قسمت عدد صحیح از یک عدد)

اگر در مورد صحت مقادیر عددی صحبت کنیم ، در مورد جزئیات پایگاه داده ، محدودیت های طبیعی وجود دارد.

اما در مورد متغیرها ، یک ویژگی خاص در اینجا وجود دارد. در حقیقت ، متغیرها را می توان با تعداد بسیار زیادی کار کرد ، اما infobase مقادیر با طول قسمت عدد صحیح بیش از 32 کاراکتر را ذخیره می کند.

مقادیر بولی

در مورد نوع داده بولی ، فقط دو مقدار True و False وجود دارد که می توان آنها را به روش های مختلف بدست آورد.

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

تاریخ ادبیات

دو روش برای توصیف تاریخ وجود دارد. یکی از آنها استفاده از یک لفظ است. این لغات به نقل از تک نوشته شده است.

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

در صورت لزوم ، می توانید زمان را نیز مشخص کنید ، زیرا در سیستم 1C: Enterprise 8 ، هر تاریخ شامل تاریخ و زمان است. مثلا:

DocumentDate \u003d ‘20140315121020 '؛

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

DocumentDate \u003d '2014.03.15'؛

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

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

در سیستم 1C: Enterprise 8 ، یک تاریخ خالی همان آغاز تقویم است. گزینه های ضبط:

EmptyDate \u003d '00010101'؛
EmptyDate \u003d تاریخ (1،1،1)؛

هر دو رکورد نتیجه مشابه را برمی گردانند و این تاریخ خالی تلقی می شود.

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

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

تبدیل نوع داده اولیه

در بیانیه تکلیف که متغیرهای چندگانه در آنها خلاصه می شود (به عنوان مثال ، متغیر \u003d A + B + C) ، تبدیل انواع داده های بدوی امکان پذیر است. تبدیل نوع داده روی مقدار نوع داده اول انجام می شود.

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

و بنابراین ، رشته + شماره \u003d رشته. بعضی اوقات می توان عددی را به رشته اضافه کرد ، در صورتی که می توان مقدار عددی را از رشته استخراج کرد (برای مثال ، 123 + "456").

برای یک نوع داده boolean ، عبارات زیر اعمال می شود:

حقیقت و 1 \u003d حقیقت؛
واقعی و 0 \u003d نادرست.

هر عددی بیشتر از صفر به True تبدیل می شود ، 0 به False تبدیل می شود.

همانطور که قبلاً ذکر شد می توان تاریخ را به شماره اضافه کرد. تاریخ را می توان به نوع داده boolean نیز اضافه کرد.

در این حالت ، True به 1 و False به 0 تبدیل می شود.

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

به خطهر نوع داده تبدیل می شود.

تعداد را می توان از یک رشته یا از یک بولی بدست آورد. تبدیل بولی: درست به 1 ، غلط به 0.

اگر یک مقدار تاریخ داشته باشد ، یک رشته را می توان به Date تبدیل کرد. به عنوان مثال ، تاریخ ("20140315"). همانطور که قبلاً اشاره شد ، تبدیل به موقعیت ممکن است:

تاریخ(،).

به Boolean ، می توانید یک شماره و مقدار خود را به یک بولی تبدیل کنید.

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

انواع اولیه داده ها شماره ، رشته ، تاریخ و بولی می توانند به عنوان فیلد پایگاه داده عمل کنند.

مقادیر NULL و تعریف نشده

NULL یک لغت است. معمولاً هنگام پیوستن دو یا چند جدول ، در نمایش داده های پایگاه داده استفاده می شود.

این سوابق موجود در جدول دوم است که با یک مقدار NULL پر شده است. آن این نوعی معنای گمشده است.

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

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

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

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

یعنی ، مقایسه A \u003d NULL در سطح پرس و جو کار نخواهد کرد ، شما نیاز به استفاده از توابع تخصصی دارید. با این حال ، در زبان داخلی ، مقایسه با یک مقدار NULL به درستی کار خواهد کرد.

نوع داده نامشخص - این یک مقدار خالی برای هیچ ویژگی نیست.

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

این نوع (تعریف نشده) در مرحله اول ظاهر می شود ، اگر متغیر خاصی داشته باشیم و اولیه نباشد (نوع داده تعریف نشده است).

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

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

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

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

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

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

NULL و Undefined هر دو نوع داده و مقادیر در این نوع ها هستند و تنها یک مورد وجود دارد. برای NULL ، این NULL است ، برای نامعین ها ، تعریف نشده ها.

نوع داده نوع

کاربرد اصلی این نوع داده برای مقایسه مقدار متغیر یا خاصیت پایگاه داده با یک نوع خاص است.

آن الگوریتم باید درک کند که چه نوع از یک شیء داده شده است.

قابل توجه است که این نوع داده فاقد لفظی است. ما نمی توانیم آن را مانند NULL یا Undefined بنویسیم ، اما می توانیم با استفاده از دو عملکرد ، مقداری از این نوع دریافت کنیم یک نوعو TypeZnch.

برای به دست آوردن نوع برخی از اشیاء (می تواند متغیر باشد ، یا یک ویژگی پایگاه داده یا یک ویژگی فرم) از این تابع استفاده کنید TypeZnch.

این عملکرد به شیئی منتقل می شود که می خواهید نوع داده را بدست آورید.

به عنوان مقدار برگشتی ، این تابع دقیقاً نوع نوع را برمی گرداند.

در آینده باید با هر نوع علاقه ای مقایسه شود. مثلا:

IfTypeVal (Element) \u003d تایپ کنید ("ReferenceLink.Nomenclature") سپس
گزارش ("این یک محصول است")؛
EndIf؛

در پایان ، بیایید کلیه مطالب پوشش داده شده را خلاصه کنیم.

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

ما در مقاله بعدی این اشیاء را با جزئیات بیشتری بررسی خواهیم کرد ، بنابراین سوئیچ نکنید! ؛)

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

قبل از شروع مطالعه این نوع بدوی ، به طور کلی خواهیم آموخت که عبارات بولی یا منطقی چیست.

عبارات بولی چیزی شبیه به سؤالی است که باید به طور واضح پاسخ داده شود ، بله یا خیر.

5 < 7 — Да;

5 \u003d 8 - خیر؛

4\u003e 9 - شماره

همچنین می توانم سؤالات پیچیده تری داشته باشم:

دکمه را فشار داد - بله؛

دکمه را فشار دهید - نه؛

عبارات بولی در همه پرش های شرطی استفاده می شود:

اگر یک< Булево выражение1> سپس

// اپراتورها

در غیر این صورت ، اگر< BooleanExpression2\u003e پس از آن

// اپراتورها

EndIf؛

در زبان برنامه نویسی 1C ، یک متغیر با نوع بولی ابتدایی به صراحت قابل تنظیم است:

A \u003d حقیقت؛

ب \u003d نادرست؛

جایی که True و False تنها مقادیری هستند که نوع اولیه بولی می تواند از آن بگیرد.

حقیقت به این معنی است که یک جمله صحیح است (جواب - بله).

دروغ - به این معناست که یک عبارت ، برعکس ، با واقعیت مطابقت ندارد (جواب - نه).

همچنین ، متغیرهایی با نوع بولی را می توان با استفاده از هر عبارت منطقی تنظیم کرد.
مثلا:

A \u003d 5< 7 ;

B \u003d 6\u003e 9؛

در این حالت ، متغیر A مقدار True خواهد داشت و متغیری از نوع B حاوی نادرست است.

در زبان برنامه نویسی 1C می توان عملیات مختلفی را روی متغیرهایی از نوع Boolean انجام داد.

مثلا:

A \u003d 5< 7 ;

B \u003d 6\u003e 9؛

B \u003d A و B؛

C \u003d A OR B؛

د \u003d نه A؛

سه مورد وجود دارد - و ، یا و نه.

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

عملیات نه

و ب
درست است، واقعی غلط
غلط درست است، واقعی

عملیات و

C \u003d A و B و ب
درست است، واقعی درست است، واقعی درست است، واقعی
غلط غلط درست است، واقعی
غلط درست است، واقعی غلط
غلط غلط غلط

یا عملیات

C \u003d A OR B و ب
درست است، واقعی درست است، واقعی درست است، واقعی
درست است، واقعی غلط درست است، واقعی
درست است، واقعی درست است، واقعی غلط
غلط غلط غلط

آیا انجام این عملیات ها به صورت متوالی امکان پذیر است؟

بله ، می توانید ، این عملیات از چپ به راست انجام می شود. و سطح ارشد زیر را دارند:

اول: عملیات در براکت ها ابتدا انجام می شود

دوم: عملیات نه

سوم: عملیات من

چهارم: عملیات یا.

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

مثلا:

الف \u003d غلط؛

ب \u003d حقیقت؛

ج \u003d غلط؛

D \u003d A و C یا B؛

در این حالت ابتدا عملیات انجام می شود. وبین A و C

جدول A را ببینید - غلط، از جانب - غلط، نتیجه A ومی خواهم غلط.

مرحله بعدی اجرای عملیات است یابین دروغ(نتیجه عملیات قبلی) و مقدار B ، که درست است، واقعی.

نتیجه خواهد بود درست است، واقعی.

و در صورت نیاز به عملیات ، ابتدا انجام می شود یابین C و B ، و سپس فقط عملیات وبین A و آنچه اتفاق افتاده است ، پس برای این کار باید از پرانتز استفاده کنید.

الف \u003d غلط؛

ب \u003d حقیقت؛

ج \u003d غلط؛

D \u003d A و (C یا B)؛

نتیجه کاملاً مخالف خواهد بود. چرا؟ اکنون ما تجزیه و تحلیل خواهیم کرد. با تشکر از براکت ها ، این عملیات ابتدا بین C و B انجام می شود ، زیرا از جانب - غلط، و ب - درست است، واقعی، نتیجه خواهد بود درست است، واقعی... سپس بین مقدار A (که غلط) و مقدار درست است، واقعی(نتیجه عملیات قبلی) عملیات انجام می شود و... نتیجه خواهد بود غلط.

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

اصول اولیه پیکربندی در 1C را بیاموزید و یاد بگیرید که در 1C برنامه ریزی کنید: با کمک کتابهای من تصدی برنامه ریزی کنید: و "اصول توسعه در 1C: تاکسی"

یادگیری برنامه نویسی در 1C در محل از کتاب من "برنامه در 1C در 11 مرحله"

  1. این کتاب به زبان روشن و ساده نوشته شده است - برای مبتدی.
  2. یاد بگیرید که معماری 1C را درک کنید.
  3. نوشتن کد را در 1C شروع کنید.
  4. تسلط بر فنون اساسی برنامه نویسی؛
  5. تقویت دانش به دست آمده با کمک یک کتاب مشکل.

راهنمای عالی برای توسعه در یک برنامه مدیریت 1C ، هم برای توسعه دهندگان تازه کار و هم برای برنامه نویسان باتجربه.

  1. زبان بسیار در دسترس و قابل فهم
  2. این کتاب از طریق ایمیل با فرمت PDF ارسال می شود. می توان در هر دستگاهی باز شد!
  3. ایدئولوژی یک برنامه مدیریت شده 1C را درک کنید
  4. بیاموزید که چگونه یک برنامه مدیریت شده تهیه کنید.
  5. یاد بگیرید که فرمهای کنترل شده 1C ایجاد کنید.
  6. شما قادر خواهید بود با عناصر اصلی و ضروری اشکال مدیریت شده کار کنید
  7. برنامه نویسی تحت برنامه مدیریتی مشخص خواهد شد

کد تبلیغی 15٪ تخفیف - 48PVXHeYu


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

می توانید به صورت دستی پرداخت کنید:

Yandex.Money - 410012882996301
پول وب - R955262494655

به گروههای من بپیوندید

پیکربندی ادغام بعدی 1C: Trade Trade 11 با سایتی که توسط 1C-Bitrix مدیریت شده است ، با این مشکل روبرو شدم: جزئیات با نوع "Boolean" با نوع "رشته" و با مقدار "بله" در سایت بارگذاری شد. در نتیجه ، جزئیات استاندارد "جدید" ، "پیشنهاد ویژه" و "پرفروش" دیگر نمایش داده نمی شوند.

متأسفانه ، گزینه دیگری در مورد چگونگی رفع بارگذاری در سایت در 1C: UT پیدا نکردم. پیشرفت ها حداقل است.

1. تمام مقادیر ویژگی ملک به جز اعداد ، تاریخ و مرجع به عنوان رشته عادی نوع بارگذاری می شوند. بیایید Boolean را به عنوان یک رشته تخلیه کنیم ، بلکه به عنوان یک دایرکتوری ، برای این کار در ماژول عمومی پیکربندی "Exchange by site" روش UnloadMainPropertyAttributesForClassifier () را می یابیم. دو خط را به شرط اضافه کنید:

2. حالا باید مقادیر ممکن را بارگیری کنید. در مورد ما ، فقط یک مورد خواهد بود: "بله" با شناسه "بله". بیایید شرط اضافی را فقط در همین روش اضافه کنیم:

3. هنگام بارگیری یک مورد از ویژگی ، لازم است که اگر مقدار بولی صادق است ، "بله" تخلیه شود. برای انجام این کار ، در همان ماژول ، روش UnloadNomenclatureProperties () را پیدا کنید و چند خط به آن اضافه کنید:

4- اکنون می توانید تغییرات را ذخیره کرده و تبادل داده با سایت را شروع کنید. در هر صورت ، به منوی "محتوا - خواص infoblocks - کاتالوگ - فروشگاه محصولات" بروید و تنظیمات خواص عناصر با نوع Boolean را بررسی کنید. ظاهر آنها باید به عنوان "کادرهای چک" تنظیم شود:

اکنون "جدید" ، "پیشنهاد ویژه" و "پرفروش" به درستی از 1C منتقل شده و به عنوان پرچم در کارت محصول نمایش داده می شوند:

زنگ

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