مشابه شرایط پرس و جو. مشابه در شرایط درخواست اپراتور مشابه در درخواست 1c

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

در زبان پرس و جو 1C در مثال ها.

عبور سریع

هدف

  • بررسی کنید که آیا مقدار رشته در درخواست با الگوی مشخص شده مطابقت دارد یا خیر - یک مقدار بولی (TRUE یا FALSE) برمی گرداند.
  • چک مستقل از پرونده است.
  • این پرس و جو از نمایه های جدول استفاده می کند – که به نمایه های جستجوی متن کامل مربوط نمی شود.
  • ممکن است تکمیل آن با میزهای بزرگ زمان زیادی طول بکشد.

رشته هایی با طول نامحدود باید با استفاده از تابع SUBSTRING تبدیل شوند

  • مکان های استفاده
  • در شرایط اپراتور WHERE<>در شرایط طراحی CHOICE WHEN
  • سپس "" ELSE "" END

در فیلدهای انتخاب (به عنوان مثال: Name LIKE &ParameterSimilar to StringSuitable)

شرح نحو عملگر LIKE

پارامتر عملگر باید یک رشته باشد: می توان آن را به عنوان یک ثابت مشخص کرد یا به عنوان پارامتر درخواست ارسال کرد.

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

مشخصات دقیق رشته
10 اول را انتخاب کنید
کلیدها. نام
از جانب
Directory.Keys AS Keys
جایی که

Keys.Name SIMILAR to "1" // معادل Keys.Name = "1"

نتیجه:

% یک کلمه تحت اللفظی به معنای تعداد دلخواه از هر کاراکتر است
10 اول را انتخاب کنید
کلیدها. نام
از جانب
Directory.Keys AS Keys
جایی که

Keys.Name مانند "%"نتیجه

: هر 10 مورد

_ (تاکید): مطابق تحت اللفظی هر یک از کاراکترها

مشخصات دقیق رشته
10 اول را انتخاب کنید
کلیدها. نام
از جانب
Directory.Keys AS Keys
مثال شماره 1:

Keys.Name مانند "_"مثال شماره 2:

مشخصات دقیق رشته
10 اول را انتخاب کنید
کلیدها. نام
از جانب
Directory.Keys AS Keys
با هر کاراکتری شروع می شود، به دنبال آن "1" و سپس هر کاراکتر

Keys.Name SIMILAR to "1" // معادل Keys.Name = "1"

Keys.Name SIMILAR to "_1%"

  • (یک یا چند کاراکتر در پرانتز)
    هر حرفی که با هر یک از کاراکترها مطابقت دارد به عنوان OR استفاده می شود.

قابل قبول است که یک محدوده مشخص شود، به عنوان مثال a-z، 0-5، به معنی یک کاراکتر دلخواه از محدوده مشخص شده

مشخصات دقیق رشته
10 اول را انتخاب کنید
کلیدها. نام
از جانب
Directory.Keys AS Keys
مثال

Keys.Name مانند "%" Keys.Name SIMILAR to "[l]%"

: 10 که با "l" یا "z" شروع می شودمثال:

مشخصات دقیق رشته
10 اول را انتخاب کنید
کلیدها. نام
از جانب
Directory.Keys AS Keys
جایی که

Keys.Name SIMILAR to "1" // معادل Keys.Name = "1"

شروع با 5،6،7

[^] (در پرانتز یک علامت حذف ^ به دنبال یک یا چند کاراکتر وجود دارد)

قابل قبول است که یک محدوده مشخص شود، به عنوان مثال a-z، 0-5، به معنی یک کاراکتر دلخواه از محدوده مشخص شده

مشخصات دقیق رشته
10 اول را انتخاب کنید
کلیدها. نام
از جانب
Directory.Keys AS Keys
معادل هر کاراکتری (_) به جز موارد مشخص شده ()

Keys.Name مانند "%": همه با "8" شروع می شوند. به استثنای موارد ذکر شده

SPECIAL CHARACTER - دستور برای تعیین کاراکترهای ثبت شده در بالا در درخواست

به عنوان نماد سرویس، استفاده از حداقل موارد زیر قابل قبول است: #,~,/,\

: 10 که با "l" یا "z" شروع می شود

مشخصات دقیق رشته
10 اول را انتخاب کنید
کلیدها. نام
از جانب
Directory.Keys AS Keys
Keys.Name مانند "#_" کاراکتر خاص "#"

Keys.Name SIMILAR to "1" // معادل Keys.Name = "1"

قابلیت کاربرد در پلتفرم ها

پارامترهای نادرست LIKE<>

  • یک پارامتر نوع غیر رشته ای ارسال می شود: به عنوان مثال، عدد 1 به جای رشته "1"
  • یک فیلد نوع غیر رشته ای با یک ماسک معتبر (مثلاً یک پیوند) مقایسه می شود یا هنگام اتصال، مقدار برای IsNUL بررسی نمی شود.

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

Keys.Name SIMILAR<>&L

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

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

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

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

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

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

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

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

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

Query.Text = "SELECT | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | به عنوان تعداد روز";

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

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

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

Request.Text = "انتخاب //عنصر از پیش تعریف شده | VALUE(Directory.Currencies.Dollar) به عنوان دلار، //پیوند خالی | VALUE(Document.Receipt of Goods and Services.EmptyLink) به عنوان رسید، //ارزش انتقال | VALUE(انتقال Legal Individual) AS Individual, //حساب از پیش تعریف شده VALUE(Chart of Accounting. Self-Accounting.Materials) AS Account_10" .

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

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

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

Request.Text = //اگر مبلغ بیش از 7500 باشد، باید 300 روبل تخفیف داده شود، //بنابراین اگر شرط فعال شود، تابع //مبلغ - 300 را برمی گرداند //در غیر این صورت درخواست به سادگی Amount را برمی گرداند. "SELECT | SELECT | WHEN TReceipts.Amount > 7500 | THEN TCreceipts.Amount - 300 | ELSE TCReceipts.Amount | END AS Amount With Discount | FROM |

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

نحو: EXPRESS (FieldName AS TypeName)

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

Query.Text = "انتخاب VARIOUS | Sales.Registrar.Number، | SELECT | WHEN Sales.Registrar LINK Document.Expense | THEN EXPRESS(Sales.Registrar AS Document.Expense) | ELSE SELECT | WHEN Sales.Registrar LINK Document. THEN EXPRESS(Sales.Registrar AS Document.Implementation) |.

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

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

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Directory.Nomenclature AS Nomenclature";

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

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

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

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

Query.Text = //کل آیتم و موجودی های آن را انتخاب کنید //اگر موجودی در برخی از آیتم ها وجود نداشته باشد، یک فیلد //NULL وجود خواهد داشت که با مقدار 0 "SELECT | No. Link, | ISNULL" جایگزین می شود. (محصولاتInStockRemains.InStockRemaining, 0) HOW Remaining FROM.Nomenclature AS شماره |.

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

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

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

Query.Text = "انتخاب | نمایندگی(FreeRemainingRemains.Nomenclature) AS نامگذاری، | REPRESENTATION(FreeRemainingRemaining.Warehouse) AS Warehouse, | FreeRemainingRemaining.InStockRemaining |FROM |RemainingRemainingReinmaingAS"FROM |RemainingRemaining.

در زبان پرس و جو 1C ساخته می شود

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

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

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

Request.Text = //اگر نوع مقدار ضبط کننده، Document Receipt باشد، //سپس پرس و جو "دریافت کالا" را برمی گرداند، در غیر این صورت "فروش کالا" "SELECT | SELECT | WHEN Remaining.Registrar LINK Document.Receipt of GoodsServices | سپس "دریافت" |. "مصرف" |.

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

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

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

Request.Text = //دریافت کل نامگذاری که کد آن در محدوده 1 تا 100 قرار دارد.

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

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

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

درخواستی اکانت های خود پشتیبانی.

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

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

گزینه های الگوی ردیف:

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

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

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

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

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

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

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

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

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

Request.Text = "انتخاب مجاز | طرفین. پیوند | از | دایرکتوری. طرفین به عنوان طرف مقابل";

6. طراحی متفاوت- به شما امکان می دهد رکوردهایی را انتخاب کنید که در آنها رکوردهای تکراری وجود ندارد.

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

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

Request.Text = // رکوردهایی را انتخاب می کند که خواننده دارای حقوق است.

همچنین، ساختار مختلف را می توان با اپراتور ALLOWED و سایر اپراتورها استفاده کرد.

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

Request.Text = // رکوردهای مختلفی را انتخاب می کند که خواننده دارای حقوق است.

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

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

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

Request.Text = //انتخاب 4 عدد CCD اول از دایرکتوری "انتخاب FIRST 4 | اعداد CCD. پیوند | FROM | فهرست. اعداد CCD به عنوان اعداد CCD";

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

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

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

Query.Text = "انتخاب | باقیمانده رایگان. نامگذاری، | باقیمانده رایگان. انبار، | باقیمانده رایگان. در انبار باقی مانده | FROM | ثبت تجمعات. باقیمانده های رایگان. باقیمانده ها به عنوان باقیمانده های رایگان باقیمانده ها | ثبت نام برای انباشت | FORCANGE | بقایای رایگان.

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

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

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

Query.Text = "انتخاب | باقیمانده رایگان. نامگذاری AS نامگذاری، | باقیمانده رایگان. انبار به عنوان انبار، | باقیمانده رایگان. در انبار باقیمانده | از | ثبت تجمعات. باقیمانده های رایگان. باقیمانده های AS رایگان BDERORma | |. نامگذاری |.

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

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

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

Query.Text = "انتخاب | محصولات در انبارها. نامگذاری AS نامگذاری، | محصولات در انبارها. انبار، | مجموع (کالاها در انبارها. در انبار) به عنوان انبار | از | ثبت تجمعات. محصولات در انبارها AS محصولات در انبارها خانه"؛

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

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

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

Query.Text = // رکوردهای گروه بندی شده را انتخاب می کند که در آن فیلد InStock بزرگتر از 3 "SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK.FROM | RegisterAcumsInStock | GROUP BY |. محصولات در انبارها. در انبارها |.

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

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

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

Query.Text = "انتخاب | Ts.NameOS، | Ts.FolderNumber، | Ts.CodeOS، | Ts.Term، | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | INDEX BY | Ts.NameOS، | Ts .CodeOS"؛

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

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

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

Query.Text = //همه رکوردهای دارای CompensationRemaining انتخاب می شوند<>0 و //AmountForCalcCompRemaining > 100 "SELECT | CompensationRPORemains.Counterparty, | جبران خسارتRPORemains.Child, | CompensationRPORemains.CompensationRemaining, | CompensationRPORemains.AmountForCalcCompRemains.RpRemains ensationRPRemains |WHERE |CompensationRPORemaining.CompensationRemaining<>0 | و CompensationRPORemains.AmountForCalcCompRemaining> 100" ;

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

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

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

Request.Text = "انتخاب | محاسبات. قرارداد طرف قرارداد. نوع قرارداد به عنوان نوع قرارداد، | محاسبات. قرارداد طرف مقابل به عنوان قرارداد، | محاسبات. طرف مقابل، | محاسبات. مقدار موجودی تسویه متقابل به عنوان موجودی | FROM | ثبت انباشت. متقابل تسویه حساب با طرفین حساب |. AMOUNT |

شکل گروه بندی هایی را نشان می دهد که در طول اجرای درخواست تشکیل شده اند، یکی از بالا به بخش GENERAL و دوم به قسمت Counterparty AgreementAgreement Type اشاره دارد.

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

برای این منظور، یک اپراتور در جستارهای 1C 8.3 و 8.2 وجود دارد - "Similar". به ترتیب در شرایط زیر استفاده می شود:

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

چگونه از قالب ها در پرس و جوهای 1C استفاده کنیم؟

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

به عنوان مثال، کاراکتر "%" اجازه می دهد تا هر دنباله ای از کاراکترهای دلخواه:

شخصیت های خاص دیگری نیز وجود دارد:

  • % (درصد) - اجازه می دهد تا هر دنباله ای از کاراکترهای دلخواه.
  • _ (زیر خط) - هر شخصیت واحد.
  • […] – یک نویسه دلخواه از نویسه های ذکر شده در داخل پرانتز. علاوه بر فهرست کردن کاراکترها، می توانید از محدوده ها نیز استفاده کنید. مثال: a-o;
  • [^...] - مانند قبلی، اما برعکس. علامت «^» به معنای نفی است.


 

شاید خواندن آن مفید باشد: