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

انواع ارزش

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

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

معاینه

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

VALUETYPE (مقدار) = TYPE (رشته)

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

مدارک

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

  • DocumentLink. برای آن اعمال می شود ذخیره سازی راحتپیوندهایی به اشیاء مختلف در سایر بخش‌های سیستم.
  • DocumentObject - ویرایش اسناد.
  • DocumentSelection - مرتب سازی اشیاء از پایگاه داده.

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

  • فرم؛
  • خط
  • بولی
  • عدد؛
  • تاریخ؛
  • آرایه؛
  • چک باکس؛
  • تصویر

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

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

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

به عنوان دانشجو وارد شوید

برای دسترسی به محتوای مدرسه به عنوان دانش آموز وارد شوید

زبان پرس و جو 1C 8.3 برای برنامه نویسان مبتدی: توابع و عملگرها برای کار با انواع (VALUE TYPE، TYPE، REFERENCE، IS NULL، EXPRESS)

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

زبان پرس و جو دارد تمام کلاستوابع و عملگرها برای کار با انواع ویژگی. بیایید نگاهی به آنها بیندازیم.

تابع VALUETYPE

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

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

می بینید که این پایه می تواند یکی از چندین نوع باشد: خط, دایرکتوری. سلیقه ها, مرجع.رنگها. به این نوع جزئیات COMPOSITE می گویند.

اگر بخواهیم مقدار چنین ویژگی را در حالت 1C:Enterprise پر کنیم، سیستم از ما می پرسد که مقدار ورودی چه نوع خواهد بود:

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

بنابراین، عناصر دایرکتوری از همان نوع ( دایرکتوری.شهرها) قادر به ذخیره در همان ویژگی ( ویژگی متمایز) ارزش های انواع متفاوت(رشته، رنگ یا طعم).

با کلیک بر روی عناصر دایرکتوری می توانید این موضوع را برای خود تأیید کنید شهرهادر حالت 1C: Enterprise. شما در حال خواندن نسخه آزمایشی درس هستید، دروس کامل قرار دارد.

در اینجا مقدار ویژگی یک عنصر مرجع است سلیقه ها:

اینجا خط:

و در اینجا، به طور کلی، یک عنصر از دایرکتوری رنگ ها:

اینها امکاناتی است که یک نوع داده ترکیبی برای ما باز می کند!

من تعجب می کنم که عملکرد چگونه عمل خواهد کرد VALUETYPEروی لوازم عنصر متمایز، که دارای یک نوع داده ترکیبی است:

این در حال حاضر بسیار جالب است. بیایید به هر خط جداگانه بپردازیم.

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

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

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

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

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

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

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

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

تابع TYPE

فقط یک پارامتر - نام نوع اولیه ( خط, عدد, تاریخ, بولین، یا نام جدولی که می خواهید نوع مرجع آن را دریافت کنید.

نتیجه این ساخت، مقداری از نوع Type برای نوع مشخص شده خواهد بود.

مه آلود به نظر می رسد، اینطور نیست؟

بیایید به کاربرد این طرح نگاه کنیم و همه چیز بلافاصله در جای خود قرار می گیرد.

فرض کنید می خواهیم تمام ورودی های دایرکتوری را انتخاب کنیم شهرها، که دارای ویژگی ترکیبی هستند ویژگی متمایزدارای مقدار نوع است خط:

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

عقب نشینی

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

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

در اینجا نمونه ای از کاربرد آن است:

عالی اما متوجه شدید که هیچ عنصر سائوپائولو در اینجا وجود ندارد، نوع ارزش props ویژگی متمایزکه نیز صادر شد خالی. چرا این اتفاق افتاد؟

و چیز این است که وضعیت برای گروه ها (روسیه، هند، برزیل)، که برای پر کردن جزئیات ویژگی متمایزدر اصل غیرممکن است، زیرا آنها اصلاً آن را ندارند، با وضعیت عنصر سائوپائولو، که پر کردن ویژگی برای آن امکان پذیر است، متفاوت است، اما به سادگی پر نمی شود و، همانطور که به یاد داریم، برابر با ویژگی خاص است. ارزش تعریف نشده.

برای انتخاب تمام رکوردهایی که دارای props هستند ویژگی متمایزوجود دارد اما پر نشده است، ساختار دیگری باید استفاده شود:

اما مقایسه با UNDETERMINATED برای تعریف props خالی (نه پر شده) فقط برای انواع ترکیبی کار خواهد کرد.

به هر حال، در عملگر منطقیشکل نفی IS NULL به شرح زیر است:

مرجع عملگر بولی

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

همانطور که به یاد دارید، ما می‌توانیم همان مشکل را با استفاده از آن حل کنیم VALUETYPEو نوعی از:

تابع ISNULL

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

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

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

عملکرد ISNULLاگر این مقدار برابر باشد به ما کمک می کند مقدار دیگری را خروجی کنیم خالی. شما در حال خواندن نسخه آزمایشی درس هستید، دروس کامل قرار دارد. اجازه دهید در این مورد خط "هیچ ویژگی وجود ندارد!" باشد:

به نظر می رسد که اگر اولین پارامتر تابع ISNULLنا برابر خالی، سپس برمی گردد. اگر NULL باشد، پارامتر دوم برگردانده می شود.

تابع EXPRESS

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

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

برای میدان ویژگی متمایزچنین انواع معتبر هستند خط, مرجع.رنگهاو دایرکتوری. سلیقه ها.

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

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

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

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

امتحان بده

شروع تست

1. صحیح ترین عبارت را انتخاب کنید

2. ویژگی هایی که می توانند مقادیر یکی از چندین نوع را بگیرند نامیده می شوند

3. برای تعیین نوع مقدار ویژگی، تابع مناسب است

4. ویژگی های نوع ترکیبی پر نشده اهمیت دارند

صفحه اصلی برای توسعه دهندگان مبتدی برنامه نویسی را یاد بگیرید

چگونه نوع مقدار یک سند، دایرکتوری را بررسی کنیم؟

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

به عنوان مثال، وظایفی که در 1C:Enterprise 7.7 بر اساس نوع حل شدند سنداکنون توسط چندین نوع حل شده است. آنها بر اساس هدفشان تقسیم می شوند.

نوعی از DocumentObjectبرای نوشتن و حذف اسناد فردی استفاده می شود.

نوعی از DocumentSelectionبرای تکرار روی اسناد ذخیره شده در پایگاه داده استفاده می شود.

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

در مرحله دوم، هیچ دو مفهوم در زبان داخلی وجود ندارد - نوعی ازو چشم انداز. هر شی پیکربندی مجموعه ای از انواع خاص خود را دارد که در زبان داخلی برای کار با شی برنامه ای که توصیف می کند استفاده می شود. یعنی هنگام استفاده از پیکربندی، نوع دیگری وجود نخواهد داشت DocumentLink، و انواع بتن وجود خواهد داشت، به عنوان مثال، DocumentReference.Invoice, DocumentObject.Invoice, DocumentReference.Invoice، و غیره.

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

برای بررسی نوع مقدار یک متغیر، باید نوع آن را با یک تابع تعیین کنید ValueType()و از تابع استفاده کنید نوعی از()برای بدست آوردن یک نوع با نام

مثلا:

انواع تعریف شده یک شیء فراداده جدید 1C هستند که در نسخه 8.3 پلتفرم ظاهر شدند. شی دارای یک شخصیت کمکی است. بیایید در نظر بگیریم که انواع و وظایف تعریف شده ای که این شی می تواند حل کند چیست.

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

267 درس ویدیویی 1C را به صورت رایگان دریافت کنید:

تنظیمات

تنظیمات زیادی برای این شی وجود ندارد:

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

نمونه ای از استفاده از انواع تعریف شده در 1C 8.3

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

نمونه هایی از استفاده:

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

و خیلی بیشتر.

اگر شروع به یادگیری برنامه نویسی 1C کرده اید، ما ما را توصیه می کنیم دوره رایگان(فراموش نکن