زنگ.

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

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

نوع null یک حروف الفبا است که در آن تنها یک مقدار باید "null" باشد.
null - برابر با یک لینک خالی نیست، فضای یا نوع نامشخص است.

این کار هنگام کار با پایگاه داده (هنگام اتصال جداول) استفاده می شود، برای تعیین مقدار گمشده در هنگام کار با پایگاه داده استفاده می شود.
مقدار نوع صفر را می توان با اختصاص متغیر این مقدار به دست آورد:
متغیر \u003d null.

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

برای تعیین مقدار null با استفاده از طراحی null وجود دارد (null).
برای تابع تبدیل نوع null وجود ندارد (Isnull).

به منظور قطع زمینه های حاوی مقادیر صفر، ساختارهای زیر به عنوان یک نتیجه از پرس و جو استفاده می شود: - null نیست - null نیست

مثال ها

مثال ارزش تایید در null

یک کتاب مرجع را انتخاب کنید nomenclature نام، کتاب مرجع nomenclature تدارکات، جایی که کتاب مرجع است. nomenclature تدارکات صفر است

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

// مقدار را با شماره میدان دریافت کنید. در صورتی که هیچ نوشته ای وجود نداشته باشد، 0HSNULL را انتخاب کنید (مجموع (کمیت)، 0) به عنوان تعدادی از سند. اوکان ساخت

با احترام برنامه نویس 1C
نظر خود را ترک کنید، نظر شما را تعجب می کنم.

null چیزی جز ارزش نیست بسیاری از آنها را با ارزش "0" تعداد شماره، یک مرجع خالی به هر شیء یا یک رشته خالی اشتباه گرفته اند. به دلیل این تصور غلط، اشتباهات زیادی وجود دارد.

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

بر اساس SQL، که اجازه نمی دهد مقدار NULL را در برابری متعارف بررسی کنید. زیر دو روش برای بررسی NULL در 1C 8.3 وجود دارد.

عملکرد زبان پرس و جو 1C 8.3 Isnull () دارای دو پارامتر ورودی است:

  • بیان قابل اثبات؛
  • بیان جایگزینی

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

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

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

انتخاب کنید

وجود ندارد (قیمت ها. قیمت، 0) به عنوان تا به حال به بالا
از



جایی که

در اپراتور انتخاب صفر وجود دارد

آنالوگ عملکرد ISNULL () "وجود دارد" وجود دارد "وجود دارد، که در اپراتور انتخاب استفاده می شود و بررسی می کند که آیا null است. "آیا" در این مورد نشان می دهد برابری و درخواست مثال قبلی به نظر می رسد:

انتخاب کنید
محصولات. namerenclature به عنوان یک محصول،
انتخاب
هنگامی که قیمت ها قیمت صفر است
سپس 0
در غیر این صورت قیمت قیمت
به عنوان دریای واقعی پایان دهید
از
سند Dutchovyovarovyvug.thovars مانند کالاها نیست
اتصال چپ ثبت نام. Prickenoclasture پیشگیرانه به عنوان قیمت
محصولات. NamerenClature \u003d قیمت. NamerenClature
جایی که
کالاها لینک \u003d & linkaduncument

تفاوت عملکرد Isnull () از صفر وجود دارد

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

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

خالی - ارزش از دست رفته.
با ارزش صفر اشتباه نکنید! null یک عدد نیست که برابر با فضا نیست، یک لینک خالی، undefined.

NULL - مقدار نوع تشکیل، I.E. نوع صفر و تنها معنای این نوع وجود دارد.

مقادیر صفر در شرایط زیر در پرس و جو ظاهر می شود:
الف) یک اتصال خارجی که در آن ورودی مربوطه در جدول دیگری یافت شد (در سمت چپ - در مرحله دوم، در سمت راست - در اولین، با Full - در هر دو)
ب) تجدید نظر به جزئیات عناصر برای گروه و بالعکس.
ج) null در لیست زمینه های نمونه برداری (انتخاب کنید)
د) دسترسی به جزئیات برای لینک های بیت

صفر وجود دارداستفاده شده در اپراتور برای انتخاب (چگونه بررسی کنید که مقدار خالی است (null) وجود دارد):
کد 1c v 8.x
انتخاب
هنگامی که مقدار صفر است پس از آن نتیجه
در غیر این صورت، ارزش
پایان

مثالی دیگر:
کد 1C v 8.x را انتخاب کنید

انتخاب زمانی که discountCompanationstoretakes. ماهیت پایه صفر است و سپس 0
در غیر این صورت، حسابداری کارخانه است
از



جایی که

تابع وجود ندارد (به معنی، نتیجه گیری) مقدار پارامتر اول خود را باز می گرداند، اگر آن را برابر با صفر نیست، و مقدار پارامتر دوم در غیر این صورت
این یک انتخاب پیچیده است ... پایان، Butnull ترجیح داده شده است.
کد 1c v 8.x
انتخاب کنید
وجود ندارد (کتاب مرجع. NamerenClature. Arcticulus، "---") به عنوان مقاله
دایرکتوری NamenClature نمایندگی به عنوان یک nomenclature

مثالی دیگر:
کد 1c v 8.x
انتخاب کنید
مشاوره دایرکتوری نام،
وجود ندارد (حسابداری برای حسابداری منابع ملی، 0) به عنوان یک جمعیت
از
دایرکتوری NamerenClature به عنوان یک کتاب راهنما
اتصال چپ از regisuprocessing. Scientoreclature از دست رفته مانند حسابداری
با توجه به فروشگاه های حسابداری. NonEnClature \u003d مدیر شبکه. لینک
جایی که
مدیر کل گروه LEADGROUP \u003d دروغ
که در این مثال تمام عناصر دایرکتوری nomenclature به دست می آیند، پس از آن، برای هر نامگذاری از ثبت انباشت، بقایای فعلی به دست آمده است. زیرا برای nomenclature که بقایای باقی مانده از دست رفته است، میز مجازی باقی مانده ها بازگشت نخواهد کرد، سپس به عنوان یک نتیجه از اتصال در زمینه "تخفیف Setereresters. غیر سهام" ارزش های null برای nomenclature وجود دارد که وجود دارد بدون باقی مانده به منظور به جای مقدار صفر به عنوان یک نتیجه از پرس و جو، مقدار 0 وجود داشت، ما از تابع به Benull () استفاده کردیم، که جایگزین مورد نظر را تضمین می کند.

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

غیر ممکن است که مقادیر را در برابری عادی معمولی بررسی کنید، زیرا SQL دارای منطق سه رقمی است - حقیقت، دروغ، صفر، و نتیجه چنین مقایسه ای ناشناخته است، که در 1C 8.0 شبیه به دروغ است.
خالی<> 0، بنابراین با اتصالات خارجی سمت چپ SPR. nomenclature با جداول باقی مانده ها، قیمت ها، مقادیر متقابل با شهرک های متقابل در غیاب چنین نوشته ها، صفر خواهد بود، که برابر 0 نیست. بهترین تصمیم - IT ISNULL

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

تابع خاموش نیست

در زبان پرس و جو، تابع Hasnull ()، هدف آن جایگزینی بیان به بیان دیگری است اگر عبارات صفر داشته باشند. نمودار نحو این ویژگی به نظر می رسد این است:

وجود ندارد (<Проверяемое выражение>, <Выражение замены>)

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


انتخاب کنید
وجود ندارد (حسابداری برای حسابداری منابع ملی، 0) به عنوان یک جمعیت
از

جایی که

در این مثال، تمام عناصر دایرکتوری nomenclature به دست می آیند، پس از آن، برای هر نامگذاری از ثبت انباشت، باقی مانده های فعلی به دست آمده است. زیرا برای nomenclature که بقایای باقی مانده از دست رفته است، میز مجازی باقی مانده ها بازگشت نخواهد کرد، سپس به عنوان یک نتیجه از اتصال در زمینه "تخفیف Setereresters. غیر سهام" ارزش های null برای nomenclature وجود دارد که وجود دارد بدون باقی مانده به منظور به جای مقدار صفر به عنوان یک نتیجه از پرس و جو، مقدار 0 وجود داشت، ما از تابع به Benull () استفاده کردیم، که جایگزین مورد نظر را تضمین می کند.

با استفاده از انتخاب عملیات

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


انتخاب کنید
مشاوره دایرکتوری نام،
انتخاب زمانی که discountCompanationstoretakes. ماهیت پایه صفر است و سپس 0
در غیر این صورت، حسابداری کارخانه است
از
دایرکتوری NamerenClature به عنوان یک کتاب راهنما
اتصال چپ از regisuprocessing. Scientoreclature از دست رفته مانند حسابداری
با توجه به فروشگاه های حسابداری. NonEnClature \u003d مدیر شبکه. لینک
جایی که
مدیر کل گروه LEADGROUP \u003d دروغ

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

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

ویژگی های تابع Isnull

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

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

با عبارات عددی، وضعیت مشابه است: ارزش بیان به نوع قابل تایید، I.E. بیان جایگزینی می تواند بریده شود. اگر مقدار را نمی توان تبدیل کرد، زبان پرس و جو اجرای درخواست خطا را تکمیل خواهد کرد. به عنوان مثال، یک خطا در تلاش برای تبدیل شماره 1000 به شماره (2) به پایان خواهد رسید.

زنگ.

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