شامل 1s درخواست است. مشابه شرایط پرس و جو. مثال: محصولاتی را انتخاب کنید که نام آنها با یک عدد ختم می شود

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

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

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

کاراکترهای باقی مانده برای هدف مورد نظر خود استفاده می شوند.
اگر لازم است یکی از کاراکترهای سرویس فوق به عنوان کاراکتر منتقل شود، باید قبل از آن باشد<Спецсимвол>. خودم<Спецсимвол>(هر کاراکتر مناسب) در همان عبارت بعد از کلمه کلیدی SPECIAL CHARACTER تعریف می شود.
به عنوان مثال، الگوی "%ABC[abc]\_abc%" SPECIAL CHARACTER "\" به معنای یک رشته فرعی متشکل از دنباله ای از کاراکترها است:
حروف A; حروف B; حروف B; یک رقمی؛ یکی از حروف a، b، c یا d؛ شخصیت زیرخط. حروف a; حروف ب نامه ها در
علاوه بر این، این دنباله را می توان با مجموعه ای دلخواه از کاراکترها پیشی گرفت.

رویه SelectContractContainingInNameText(mText)
//در درخواست، از قالبی مانند "%" + mText + "%" Request = New Request استفاده خواهیم کرد. Query.SetParameter("Name"، "%" + Text + "%"); Query.Text = "انتخاب | موافقتنامه ها. مرجع، | توافقنامه ها. مالک | از | فهرست. موافقت نامه های طرفین به عنوان توافق نامه ها | | WHERE | توافقنامه ها. نام مانند &نام"; نتیجه = Request.Run(); Selection = Result.Select(); Report("قراردادهای حاوی نام: " + mText + " دارای طرفین زیر هستند"); در حالی که Selection.Next() Loop Report("Account:" + Selection.Owner + "; Contract: " + Selection.Reference EndIf; EndProcedure

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

توابع زبان پرس و جو 1s

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

1. عملکرد وقت قرار - عملکرد داده شدهیک فیلد ثابت با نوع "Date" ایجاد می کند.

نحو: وقت قرار(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

مثال استفاده:

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

نحو: تفاوت (<Дата1>, <Дата2>, <Тип>)

مثال استفاده:

Query.Text = "انتخاب | تفاوت تاریخ(DATETIME(2015، 4، 17)، DATETIME(2015، 2، 1)، DAY) | به عنوان تعداد روز";

3. تابع VALUE- یک فیلد ثابت را با یک ورودی از پیش تعریف شده از پایگاه داده تنظیم می کند، همچنین می توانید یک مرجع تهی از هر نوع دریافت کنید.

نحو: VALUE(<Имя>)

مثال استفاده:

Query.Text = "انتخاب //عنصر از پیش تعریف شده | VALUE(Currency.Dollar.Catalog.Dollar) به عنوان دلار، //مرجع خالی | VALUE(Document.IncomingGoodsServices.EmptyReference) به عنوان رسید، //ارزش انتقال | VALUE(Tranndifer.Iranndifer. . Individual) AS Individual، //حساب از پیش تعریف شده | VALUE(Chart of Accounts. Self-supporting. Materials) AS Account_10" ;

4. تابع SELECT- ما یک آنالوگ از ساختار IF داریم که در کد استفاده می شود، فقط این مورد در جستارهای 1C استفاده می شود.

نحو: انتخاب چه زمانی<Выражение>سپس<Выражение>در غیر این صورت<Выражение>پایان

مثال استفاده:

Request.Text = //اگر مبلغ بیش از 7500 باشد، باید 300 روبل تخفیف داده شود، //بنابراین، اگر شرط فعال شود، تابع //مبلغ - 300 را برمی گرداند //در غیر این صورت، درخواست به سادگی مقدار "SELECT | SELECT | WHEN PMIncome.Amount > 7500 | THEN PTReceipts.Amount - 300 | ELSE PTReceipts.Amount | END AS Amount Discounted |FROM | Document.ReceiptofGoodsServices.

5. تابع EXPRESS- به شما امکان می دهد یک فیلد ثابت را با یک نوع خاص بیان کنید.

نحو: EXPRESS (FieldName AS TypeName)

مثال استفاده:

Query.Text = "انتخاب VARIOUS | Sales.Registrar.Number، | SELECT | WHEN Sales.Registrar REF Document.Expense | THEN EXPRESS(Sales.Registrar AS Document.Expense) | ELSE SELECT | WHEN Sales.Registrar.ImplementationREF | THEN EXPRESS(Sales.Registrar AS Document.Release) | END | ... | END AS Number | FROM | Accumulation Register.Purchases AS Purchases";

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

مثال استفاده:

Query.Text = "انتخاب | EXPRESS(Nomenclature.Comment AS String(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Lookup.Nomenclature AS Nomenclature";

6. تابع ISNULL(املای جایگزین IS NULL) - اگر فیلد از نوع NULL باشد، با پارامتر دوم تابع جایگزین می شود.

نحو: ISNULL(<Поле>, <ПодставляемоеЗначение>)

مثال استفاده:

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

Query.Text = //کل آیتم و موجودی های آن را انتخاب کنید //اگر در برخی از موارد موجودی وجود نداشته باشد، یک فیلد //NULL وجود خواهد داشت که با مقدار 0 "SELECT | No.Ref, | ISNULL جایگزین می شود. (GoodsInWarehouseRemains.InStockRemain, 0) HOW Remainder | FROM | دایرکتوری. نامگذاری به عنوان نام | عضویت چپ ثبت نام تجمعی. کالاها در انبارها. باقیمانده به عنوان کالا در انبارها

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

نحو: کارایی(<НаименованиеПоля>)

مثال استفاده:

Query.Text = "انتخاب | نمایندگی (بازمانده های رایگان. نامگذاری) به عنوان نامگذاری، | نمایندگی (آزادی باقی مانده. انبار) به عنوان انبار، | آزاد ماندگاری. در دسترس باقیمانده | از | انباشته شدن ثبت نام. باقی مانده ها

ساخت و سازها در زبان پرس و جو 1s

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

1. لینک ساخت و ساز- یک عملگر کنترل کننده نوع مرجع منطقی است. معمولاً هنگام آزمایش یک میدان از نوع ترکیبی برای یک نوع خاص با آن مواجه می‌شویم. نحو: ارتباط دادن<Имя таблицы>

مثال استفاده:

Query.Text = //اگر نوع مقدار ثبت کننده، Document Receipt باشد، //آنگاه پرس و جو "کالاهای ورودی" را برمی گرداند، در غیر این صورت "فروش کالا" "SELECT | SELECT | WHEN Remains.Registrar LINK Document.Incoming GoodsServices | سپس ""ورودی" | دیگر "هزینه" | پایان به عنوان نوع جابجایی | از | ثبت تجمع. باقیمانده کالا در انبارها به عنوان باقی مانده ";

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

نحو: بین<Выражение>و<Выражение>

مثال استفاده:

Query.Text = //دریافت تمام نامگذاری که کد آن در محدوده 1 تا 100 است "انتخاب | نامگذاری. مرجع | FROM | فهرست. نامگذاری AS نامگذاری | WHERE | نامگذاری. کد بین 1 و 100" ;

3. ساخت B و B سلسله مراتب- بررسی کنید که آیا مقدار در لیست ارسال شده است (آرایه ها، جداول مقادیر و غیره را می توان به عنوان لیست ارسال کرد). اپراتور IN HIERARCHY به شما امکان می دهد سلسله مراتب را مشاهده کنید (مثالی از استفاده از PlanAccounts).

نحو: AT(<СписокЗначений>), در سلسله مراتب (<СписокЗначений>)

مثال استفاده:

Query.Text = // انتخاب همه حساب‌های فرعی حساب "انتخاب | پشتیبانی از خود. پیوند به عنوان حساب | از | طرح حساب‌ها. خودپشتیبانی AS خود پشتیبانی | WHERE | خود پشتیبانی. مرجع در ارزش سلسله مراتبی( جدول حسابها. خود حمایتی. کالاها)";

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

نحو: پسندیدن"<ТекстШаблона>"

گزینه های قالب خط:

% - دنباله ای حاوی هر تعداد کاراکتر دلخواه.

یک شخصیت دلخواه

[...] - هر کاراکتر منفرد، یا دنباله ای از کاراکترهای فهرست شده در داخل پرانتز. شمارش می‌تواند شامل محدوده‌هایی مانند a-z باشد، یعنی هر کاراکتری در محدوده، از جمله انتهای محدوده.

[^...] - هر کاراکتر منفرد، یا دنباله ای از کاراکترهای فهرست شده در داخل کروشه، به جز آنهایی که بعد از علامت نفی فهرست شده اند.

مثال استفاده:

Query.Text = //کل نامگذاری را بیابید که حاوی ریشه TABUR است و //با یک حرف کوچک یا بزرگ t شروع می شود "انتخاب | نامگذاری. مرجع | FROM | فهرست. نامگذاری AS نامگذاری | WHERE | کالاها. نام مانند "" [Тт ]abur%""" ;

5. طراحی مجاز است- این عبارت به شما امکان می دهد فقط آن دسته از رکوردهایی را از پایگاه داده انتخاب کنید که تماس گیرنده حق خواندن آنها را دارد. این حقوق در سطح رکورد (RLS) پیکربندی شده اند.

نحو: ALLOWED بعد از کلمه کلیدی SELECT نوشته می شود

مثال استفاده:

Query.Text = "انتخاب مجاز | Counterparties.Reference |FROM | Directory.Counterparties AS Counterparties";

6. ساخت و ساز های مختلف- به شما امکان می دهد رکوردهایی را انتخاب کنید که در آنها هیچ رکورد تکراری وجود ندارد.

نحو: DIFFERENT بعد از کلمه کلیدی SELECT نوشته می شود

مثال استفاده:

Request.Text = // رکوردهایی را انتخاب می کند که خواننده دارای حقوق است "انتخاب DIFFERENT | Counterparties.Name |FROM | Directory.Counterparties AS Counterparties" ;

ساختار DIFFERENT همچنین می تواند با عملگر ALLOWED و سایر عملگرها استفاده شود.

مثال استفاده:

Query.Text = // رکوردهای مختلفی را انتخاب می کند که خواننده حقوق مربوط به آنها را دارد "انتخاب ALLOWED DIFFERENT | Contractors.Name |FROM | Directory.Contractors AS Contractors";

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

نحو: اول<число>

مثال استفاده:

Query.Text = // 4 عدد اول GTD را از دایرکتوری انتخاب کنید "انتخاب 4 عدد اول | شماره های GTD. مرجع | از | کاتالوگ. اعداد GTE به عنوان شماره های GTD";

8. طراحی برای تغییر- به شما امکان می دهد جدول را قفل کنید، فقط در تراکنش ها کار می کند (فقط مربوط به قفل های خودکار).

نحو: برای تغییر<НаименованиеТаблицы>

مثال استفاده:

Query.Text = "انتخاب | FreeRemainsRemains.Nomenclature، | FreeRemainsRemains. Warehouse، | FreeRemainsRemains.AvailableRemains |FROM | Accuulation Register.FreeRemains.Remains AS FreeRemainsRemains |برای تغییر |

9. ساختار ORDER BY- داده ها را بر اساس یک فیلد خاص مرتب می کند. اگر فیلد یک پیوند است، پس هنگام تنظیم پرچم سفارش خودکاربر اساس نمایش پیوند مرتب می شود، اگر پرچم خاموش باشد، پیوندها بر اساس قدمت آدرس پیوند در حافظه مرتب می شوند.

نحو: مرتب سازی بر اساس<НаименованиеПоля>سفارش خودکار

مثال استفاده:

Query.Text = "انتخاب | FreeRemainsRemains.Nomenclature AS Nomenclature, | FreeRemainsRemains. Warehouse AS Warehouse, | FreeRemainsRemains.In StockRemaining |از |

10. گروه طراحی توسط- برای گروه بندی رشته های پرس و جو بر اساس فیلدهای خاص استفاده می شود. فیلدهای عددی باید با هر تابع جمعی استفاده شوند.

نحو: دسته بندی بر اساس<НаименованиеПоля1>, .... , <НаименованиеПоляN>

مثال استفاده:

Query.Text = "انتخاب | ItemsInWarehouse.Nomenclature AS Nomenclature, | ItemsInWarehouse.Warehouse, | SUM(ItemsInWarehouse.InStock) AS InStock |FROM |

11. طراحی داشتن- به شما این امکان را می دهد که یک تابع تجمیع را در شرایط انتخاب داده، مشابه ساختار WHERE اعمال کنید.

نحو: داشتن<агрегатная функция с условием>

مثال استفاده:

Query.Text = // رکوردهای گروه بندی شده را انتخاب می کند که در آن فیلد InStock بزرگتر از 3 "SELECT | GoodsInStock.Nomenclature AS Nomenclature, | GoodsInWarehouse.Warehouse, | SUM(ItemsInWarehouse.InStock) AS InStock |FROM | AcumulationWWarehouse.Gooareds | |گروه بر اساس | کالاها در انبارها.نامگذاری، | کالاها در انبارها.انبار | |دارای | مقدار(کالاها در انبارها.در انبار) > 3" ;

12. INDEX BY ساختار- برای نمایه سازی فیلد پرس و جو استفاده می شود. تکمیل یک پرس و جو نمایه شده بیشتر طول می کشد، اما سرعت جستجو در فیلدهای نمایه شده را افزایش می دهد. فقط در جداول مجازی قابل استفاده است.

نحو: شاخص بر اساس<Поле1, ... , ПолеN>

مثال استفاده:

Query.Text = "انتخاب | نام Tz.OS، | Tz. شماره پوشه، | Tz.CodeOS، | Tz.Term، | Tz.Type |PUT DataTz |FROM | &Tz HOW Tz | | INDEX BY | نام Tz.OS , | Tz .CodeOS"؛

13. ساخت و ساز WHERE- به شما این امکان را می دهد که یک شرط را در هر قسمت از انتخاب اعمال کنید. فقط رکوردهایی که شرایط را برآورده می کنند در نتیجه گنجانده می شوند.

نحو: جایی که<Условие1 ОператорЛогСоединения УсловиеN>

مثال استفاده:

Query.Text = //همه رکوردها را با CompensationRemainder انتخاب کنید<>0 و //مبلغ برای Calc.CompBalance > 100 "انتخاب | موجودی RPO جبرانی. حساب، | جبران مانده مانده های RPO. فرزند، | ترازهای RPO جبرانی. ترازهای جبرانی، | موجودی های RPO جبرانی. مجموع برای محاسبه موجودی. انباشت ثبت نام جبران RP. تعادل AS جبران مانده RPO | جبران GPO.<>0 | و ترازهای RPO جبرانی. مقدار برای CalcComp Residual > 100" ;

14. نتایج طراحی ... به طور کلی- برای محاسبه مجموع ها استفاده می شود، طرح فیلدهایی را مشخص می کند که مجموع ها برای آنها محاسبه می شود و توابع جمعبرای فیلدهای خلاصه اعمال می شود. هنگام استفاده از مجموع برای هر فیلد به دنبال ساخت TOTALS، داده ها گروه بندی می شوند. یک ساختار اختیاری GENERAL وجود دارد، استفاده از آن گروه بندی اضافی را نیز فراهم می کند. نمونه ای از نتیجه پرس و جو را در زیر مشاهده می کنید.

نحو: نتایج<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>بر<ОБЩИЕ> <Поле1, ... , ПолеN>

مثال استفاده:

Query.Text = "انتخاب | تسویه حساب. قرارداد طرف. نوع قرارداد به عنوان نوع توافق، | تسویه حساب. موافقتنامه کشور به عنوان توافق، | تسویه حساب. طرف مقابل، | تسویه حساب. میزان تسویه حساب های متقابل مانده به عنوان باقیمانده | از | | نرم افزار | عمومی، | نوع قرارداد"؛

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

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

با استفاده از عملگر "LIKE".

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

  • در بلوک شرایط با برچسب کلمه کلیدی"جایی که"؛
  • در ساخت و ساز انتخاب When then Else End;
  • به طور مستقیم در فیلدهای انتخاب، در نتیجه مقایسه زمینه.

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

  1. "%" - دنباله ای از هر شخصیت طول دلخواه. برای جستجوی کلمات یا اعداد جداگانه در یک رشته استفاده می شود.
  2. "_" هر شخصیت منفرد است. طراحی شده برای نشان دادن حضور یک شخصیت؛
  3. "[...]" دنباله ای از کاراکترها برای مقایسه با یک علامت در رشته است. با کمک چنین الگویی، مطابقت برای هر یک از کاراکترهای فهرست شده در پرانتز بررسی می شود. همچنین می توانید محدوده ای از اعداد یا حروف را مشخص کنید ([a-g], );
  4. "[^…]" برعکس الگوی قبلی است. تفاوت بین کاراکتر مشخص شده در رشته و کاراکترهای فهرست شده در پرانتز بررسی می شود.

برای جذب و درک بهتر اصول ایجاد قالب های صحیح، بیایید به نمونه هایی نگاه کنیم که اغلب در زندگی توسعه دهندگان با آن مواجه می شوند. اولین مورد زمانی است که باید از کتاب مرجع نامگذاری همه موقعیت هایی را انتخاب کنیم که در نام آنها کلمه "CUTTER" آمده است. در این مورد، باید از LIKE در شرایط پرس و جو استفاده کنیم:

نامگذاری.نام را به عنوان نام از دایرکتوری انتخاب کنید. نامگذاری را به عنوان نامگذاری WHERE نامگذاری.نام را مانند "%CUTTER%" انتخاب کنید.

اگر هر دو کاراکتر "%" را حذف کنیم، پرس و جو نامگذاری را نشان می دهد، که در آن نام کاملاً با نام مشخص شده در نقل قول مطابقت دارد. اگر الگوی «CUTTER%» یا «%CUTTER» را رها کنیم، نتیجه فهرستی از نام‌گذاری خواهد بود که به ترتیب با ترکیبی از کاراکترها پایان یا شروع می‌شود.


بیایید مشکلی را تجزیه و تحلیل کنیم که می تواند برنامه نویسان مبتدی را که سینتکس پرس و جو را نمی دانند، گیج کند. فرض کنید باید تمام نامگذاری را پیدا کنید که در نام آن نماد "%" وجود دارد. به خصوص برای مواردی که نیاز به جستجوی کاراکترهای رزرو شده دارید، یک اپراتور "کاراکتر ویژه" وجود دارد. به عنوان یک کاراکتر خاص، می توانید از #، \، /، ~ و کاراکترهای دیگر استفاده کنید، پس از آن هر کاراکتر رزرو شده به سادگی یک کاراکتر را نشان می دهد.

نامگذاری.نام را به عنوان نام از دایرکتوری انتخاب کنید. نامگذاری به عنوان نامگذاری WHERE نامگذاری.نام مانند "%#%" نویسه خاص "#"

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

نامگذاری.نام را به عنوان نام از جستجو. نامگذاری به عنوان نامگذاری انتخاب کنید.

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

43
NULL - مقادیر از دست رفته. نباید با null اشتباه گرفته شود! NULL یک عدد نیست، مساوی با فاصله نیست، مرجع تهی، تعریف نشده است. NULL یک مقدار شکل دهنده نوع است، یعنی. یک نوع NULL و یک مقدار واحد از این نوع وجود دارد. خالی... 26
برای تشکیل و اجرای پرس و جوها در جداول پایگاه داده در پلت فرم 1C، از یک شی خاص از زبان برنامه نویسی Request استفاده می شود. این شی با فراخوانی ساختار New Request ایجاد می شود. درخواست راحت ... 18
این مقاله ترفندهای مفیدی را هنگام کار با جستارهای 1C v.8.2 و همچنین اطلاعاتی ارائه می دهد که در مورد زبان پرس و جو چندان شناخته شده نیستند. من سعی نمی کنم بدهم توضیحات کاملزبان پرس و جو، اما من می خواهم فقط روی ... 12
در مواجهه با وظیفه، لازم بود تمام اسناد پرداخت را انتخاب کرده و بر اساس نوع سند گروه بندی کنید! با نگاهی به تمام خدمات مسکن و خدمات عمومی و اینترنت، متوجه شدم راه اساندریافت نوع سند در درخواست شماره: (من مجبور شدم...

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

برای اپراتور پسندیدنکاراکترهای سرویس ویژه ارائه می شوند که به عنوان یک رشته درک نمی شوند:

  • نماد درصد: وجود هر تعداد کاراکتر دلخواه در رشته را نشان می دهد
  • "[...]" یک یا چند کاراکتر در کروشه مربع: نشان دهنده وجود هر یک از (تک) کاراکترهای فهرست شده است. همچنین، طیف وسیعی از کاراکترها را می توان مشخص کرد (به عنوان مثال)
  • کاراکتر زیر خط "_": نشان دهنده وجود هر کاراکتر دلخواه است
  • کاراکتر نفی "[^...]": نشان دهنده وجود هر کاراکتر منفرد غیر از آنهایی است که در پرانتز هستند.
در صورت نیاز به تعیین یکی از کاراکترهای ویژه بالا برای مقایسه، باید از کلمه کلیدی "SPECIAL CHARACTER" استفاده کنید.

ویژگی های استفاده با DBMS های مختلف

IBM DB2"در سمت راست عملگر LIKE، فقط یک پارامتر را می توان قرار داد. کاراکترهای الگو فقط "_" (زیر خط به معنای هر کاراکتر) و "%" (درصد به معنای دنباله ای از هر کاراکتر) هستند.
در مورد استفاده از DBMS " PostgreSQL" یا " پایگاه داده اوراکل"کاراکترهای خاص "پرانتز مربع [...]" تنها در صورتی پذیرفته می شوند که توسط متن در درخواست مشخص شده باشند و به عنوان پارامتر به درخواست ارسال نمی شوند.

بنابراین، در پایه فایل، بسته به DBMS مورد استفاده در نسخه سرویس گیرنده-سرور، کاراکترهای خاص همیشه به یک شکل و به روش های مختلف درک می شوند.

مثال: محصولات حاوی نماد "%" در نام را انتخاب کنید

انتخاب کنید | لینک مرجع | از | Spravochnik.Nomenclature HOW ref | WHERE | Ref نام مانند "%\%" نویسه خاص "\"

مثال: محصولاتی را انتخاب کنید که نام آنها با کلمه "Tank" شروع می شود.

انتخاب کنید | لینک مرجع | از | Spravochnik.Nomenclature HOW ref | WHERE | نام مرجع مانند "Buck%"

مثال: محصولاتی را انتخاب کنید که نام آنها با یک عدد ختم می شود

انتخاب کنید | لینک مرجع | از | Spravochnik.Nomenclature HOW ref | WHERE | نام مرجع مانند "%"