შეკითხვის სტრიქონებთან მუშაობის ფუნქციები 1s. substring() ფუნქციის თვისება. რთული ტიპის ველის მნიშვნელობის მიღება წერტილის გამოყენებით

შეკითხვის სტრიქონებთან მუშაობის ფუნქციები 1s. substring() ფუნქციის თვისება. რთული ტიპის ველის მნიშვნელობის მიღება წერტილის გამოყენებით

მოგესალმებით, ბლოგის საიტის ძვირფასო მკითხველებო! დღეს, მაგალითების დახმარებით, ჩვენ გადავხედავთ, თუ როგორ შეგიძლიათ გამოიყენოთ 1C შეკითხვის ფუნქცია პრაქტიკაში SUBSTRING. ამ ფუნქციის გამოყენება სასარგებლოა არა მხოლოდ მარტივ შეკითხვებში, რომლებსაც აქ განვიხილავთ, არამედ შეკითხვებში და შეკითხვებშიც.

ამოცანა იყო ის, რაც საჭირო იყო დოკუმენტის დეტალებიდან შესაბამისობააირჩიეთ ორი ხაზი და დაალაგეთ მათ მიხედვით. შესაბამისობა ამ ტიპის ანგარიშთან: 779000/004599. როგორ გავყო ეს მნიშვნელობა ორად?

SUBSTRING ფუნქციას აქვს სამი პარამეტრი. პირველი არის წყაროს სტრიქონი, საიდანაც გსურთ ამოიღოთ სიმბოლოების ნაწილი - ქვესტრიქონი. ნათელია, რომ ამ პარამეტრის მნიშვნელობის ტიპი არის ხაზი. ყურადღება, ეს არის ძალიან მნიშვნელოვანი შენიშვნა, თუ თქვენ იყენებთ პირველი პარამეტრის ტიპს სტრიქონის გარდა, ფუნქცია არ იმუშავებს, მოთხოვნა წარმოქმნის შეცდომას! მეორე პარამეტრი განსაზღვრავს სიმბოლოს პოზიციას წყაროს სტრიქონში, საიდანაც იწყება სტრიქონის ნაწილის შერჩევა, ხოლო მესამე არის არჩეული ქვესტრიქონის სიგრძე. მეორე და მესამე პარამეტრების მნიშვნელობის ტიპი არის რიცხვი.

მოდით გადავიდეთ პრაქტიკაზე:

აირჩიეთ Typical.Recorder AS სახელი, SUBSTRING(ტიპიური. რეგისტრატორი. მიხედვით. სახელი, 1, 6) AS Cost Account, SUBSTRING(Typical.Registrar.According.Name, 8, 11) AS Department, AMOUNT(SELECT WHEN MONTH(Typical.Period) = 3 THEN EXPRESS(Typical.Amount AS NUMBER(15, 2)) ELSE 0 END) რეგისტრაცია მარტის დათვლისას .ტიპიური AS Typical WHERE Typical.AccountKt = &AccountKt AND Typical.პერიოდი &PeriodStart AND &PeriodEnGROUP BY-ს შორის SUBSTRING(Typical.Recorder.According.Name, 1, 6), SUBSTRING(ტიპიური.რეგისტრატორი.სახელი, 8, 11), ტიპიური.რეგისტრატორი ბრძანება დეპარტამენტის მიხედვით, ხარჯების ანგარიში

ამ შეკითხვის შედეგი შემდეგია:

სახელი ხარჯების ანგარიში დეპარტამენტი მარტი
გამავალი გადახდის დავალება 00000000319 03/01/2010 14:42:54 779000 004599 9 000
გამავალი გადახდის დავალება 00000000320 03/02/2010 12:07:34 779000 004599 4 721,6
გამავალი გადახდის დავალება 00000000203 03/01/2010 12:28:52 786500 004599 987 614,51
გამავალი გადახდის დავალება 00000000227 03/03/2010 14:16:00 786500 004599 400 000
გამავალი გადახდის დავალება 00000000238 03/05/2010 12:37:57 732000 004600 5 400
გამავალი გადახდის დავალება 00000000197 03/01/2010 11:53:11 732500 004600 12 100
გამავალი გადახდის დავალება 00000000198 03/01/2010 11:55:39 732500 004600 12 100
გამავალი გადახდის დავალება 00000000279 03/26/2010 0:00:00 734100 004600 19 609
გამავალი გადახდის დავალება 00000000287 03/29/2010 14:15:36 734100 004600 55 300
გამავალი გადახდის დავალება 00000000291 03/30/2010 11:01:10 734100 004600 18 090
გამავალი გადახდის დავალება 00000000268 03/18/2010 10:34:25 738000 004600 10 050
გამავალი გადახდის დავალება 00000000276 03/18/2010 12:20:20 750400 004600 13 060,98
გამავალი გადახდის დავალება 00000000281 03/29/2010 12:33:46 750400 004600 555 645,41
გამავალი გადახდის დავალება 00000000234 03/04/2010 12:21:55 754450 004600 24 120
გამავალი გადახდის დავალება 00000000290 03/30/2010 10:44:39 754450 004600 100 000
გამავალი გადახდის დავალება 00000000240 03/09/2010 10:53:24 786300 004600 20 800
გამავალი გადახდის დავალება 00000000269 03/18/2010 10:58:04 786300 004600 61 012
გამავალი გადახდის დავალება 00000000289 03/30/2010 9:27:14 786300 004600 6 000
გამავალი გადახდის დავალება 00000000223 03/03/2010 12:13:38 786500 004600 36 000
გამავალი გადახდის დავალება 00000000228 03/04/2010 9:52:35 786500 004600 378 138,85
გამავალი გადახდის დავალება 00000000229 03/04/2010 9:57:50 786503 004600 126 117,75
გამავალი გადახდის დავალება 00000000200 03/01/2010 11:58:06 754422 004762 63 000
გამავალი გადახდის დავალება 00000000286 03/29/2010 14:10:18 764422 004762 10 000
გამავალი გადახდის დავალება 00000000267 03/17/2010 0:00:00 764423 004762 464 370
გამავალი გადახდის დავალება 00000000261 03/15/2010 11:16:28 764522 004762 81 357

ასე რომ, თუ ავიღებთ ხაზს 779000/004599, მაშინ SUBSTRING(Typical.Recorder.Respective.Name, 1, 6) გამოყოფს ხაზს „779000“. SUBSTRING(Typical.Recorder.Respective.Name, 8, 11) გამოვა "004599".

იმავე შეკითხვაში გამოიყენება გამოთქმა:

SUM(CHOICE WHEN MONTH(ტიპიური პერიოდი) = 3, შემდეგ გამოხატეთ (ტიპიური. ჯამი როგორც ნომერი(15, 2)) ELSE 0 დასასრული) როგორც მარტი

ამავე ამოცანაში საჭირო იყო დაემატებინა ახალი სვეტები თვეების დასახელებით და მათთვის თანხებით. ეს გამოთქმა წყვეტს ამ პრობლემას. თუ სხვა თვეების გამოყენება გჭირდებათ, მაგალითად იანვარი, შეცვალეთ გამოთქმა:

AMOUNT(SELECT WHEN MONTH(ტიპიური პერიოდი) = 1 THEN EXPRESS(ტიპიური. ჯამი როგორც ნომერი(15, 2)) ELSE 0 ბოლოს) როგორც იანვარი

მე მივცემ მოთხოვნის ტექსტის მაგალითს, რომელშიც თვის ველები (მამატური) ფორმირდება ციკლის გამოყენებით, დაწყებული მარტიდან თებერვლამდე.

მოთხოვნის ტექსტი = " | აირჩიეთ |ტიპიური.რეგისტრატორი AS სახელი, |SUB-STRING(ტიპიური.რეგისტრატორი.შესაბამისი.სახელი, 1, 6) AS ღირებულების ანგარიში, |SUB-STRING(ტიპიური.რეგისტრატორი.შესაბამისი.სახელი, 8, 11 ) ასს დეპარტამენტი“; Sch = 1-დან 12 ციკლისთვის, თუ Sch< 11 Тогда Мес = Сч + 2; Иначе Мес = Сч - 10; КонецЕсли; ТекстЗапроса = ТекстЗапроса + " |СУММА(ВЫБОР | КОГДА МЕСЯЦ(Типовой.Период) = " + Мес + " | ТОГДА ВЫРАЗИТЬ(Типовой.Сумма КАК ЧИСЛО(15, 2)) | ИНАЧЕ 0 |КОНЕЦ) КАК Поле" + Мес + ?(Сч=12,"",","); КонецЦикла; შეკითხვის ტექსტი = მოთხოვნის ტექსტი + " | FROM | ბუღალტრული აღრიცხვის რეგისტრაცია." + AccountingRegisterName + ".MovementsSSubconto(| &StartPeriod, | &EndPeriod,"; შეზღუდვების ხაზი დეტალებზე = " (აქტივობა = TRUE) და (ანგარიში HIERARCHY-ში (&Account of Analysis)"; შეკითხვის ტექსტი = Lext of დეტალებზე + " |) როგორც ტიპიური |"; მოთხოვნის ტექსტი = მოთხოვნის ტექსტი + " | WHERE | ტიპიური.ანგარიშიCt = &AnalysisAccount | AND ტიპიური.პერიოდი &დაწყების პერიოდსა და &ბოლო პერიოდს შორის |GROUP BY | SUBSTRING(Typical.Recorder.Resp.Name. დასახელება, 8, 11), |.

ასე რომ, ზემოთ მოყვანილი კოდის გამოყენებით (მამატური სახით), ნაჩვენებია მოთხოვნის ნაწილები თვეებით. ამრიგად, ემატება ახალი სვეტები თვეების სახელებით და მათთვის თანხებით.

განყოფილება შეიცავს შეკითხვის ენის SUBSTRING() ფუნქციის შესრულების თავისებურებების აღწერას სამუშაოს კლიენტ-სერვერის ვერსიაში და შედეგად მიღებული რეკომენდაციები მოთხოვნების შესაქმნელად.

SUBSTRING() ფუნქცია

1C: Enterprise შეკითხვის ენაში, SUBSTRING() ფუნქცია SUBSTRING(,) ფორმატში შეიძლება გამოყენებულ იქნას სტრიქონის ტიპის მონაცემებზე და საშუალებას გაძლევთ აირჩიოთ ფრაგმენტი, რომელიც იწყება სიმბოლოს ნომრით (სტრიქონების სიმბოლოები დანომრილია 1-ით დაწყებული) და პერსონაჟების სიგრძე. SUBSTRING() ფუნქციის შედეგი არის ცვლადი სიგრძის სტრიქონის ტიპი და სიგრძე ჩაითვლება შეუზღუდავად, თუ მას აქვს შეუზღუდავი სიგრძე და პარამეტრი არ არის მუდმივი ან აღემატება 1024-ს.

SUBSTRING() ფუნქციის გამოთვლა SQL სერვერზე

ნამუშევრის კლიენტ-სერვერის ვერსიაში SUBSTRING() ფუნქცია განხორციელებულია SQL განცხადების SUBSTRING() ფუნქციის გამოყენებით, გადაცემულია SQL Server მონაცემთა ბაზის სერვერზე, რომელიც ითვლის SUBSTRING() ფუნქციის შედეგის ტიპს. რთული წესების გამოყენებით, მისი პარამეტრების ტიპსა და მნიშვნელობებზე, ასევე იმ კონტექსტზე, რომელშიც ის გამოიყენება.

უმეტეს შემთხვევაში, ეს წესები გავლენას არ ახდენს 1C:Enterprise მოთხოვნის შესრულებაზე, თუმცა არის შემთხვევები, როდესაც SQL Server-ის მიერ გამოთვლილი შედეგის სტრიქონის მაქსიმალური სიგრძე აუცილებელია შეკითხვის შესრულებისთვის. მნიშვნელოვანია გვახსოვდეს, რომ ზოგიერთ კონტექსტში SUBSTRING() ფუნქციის გამოყენებისას, მისი შედეგის მაქსიმალური სიგრძე შეიძლება იყოს შეზღუდული სიგრძის სტრიქონის მაქსიმალური სიგრძე, რომელიც SQL Server-ში არის 4000 სიმბოლო. ამან შეიძლება გამოიწვიოს მოთხოვნის მოულოდნელი შეწყვეტა.

მაგალითად, მოთხოვნა:

არჩევა
არჩევანი

სხვა NULL
დასასრული, როგორც პრეზენტაცია,
არჩევანი
WHEN ტიპი = & იურიდიული მისამართი ინდივიდუალური
შემდეგ SUBSTRING (წარმომადგენლობა, 0 , 200 )
სხვა NULL
END AS პრეზენტაცია1
FROM

ᲓᲐᲚᲐᲒᲔᲑᲐ
Შესრულება,
შესრულება 1

იშლება შეტყობინებასთან ერთად:

DBMS შეცდომა:
Microsoft OLE DB პროვაიდერი SQL სერვერისთვის: გაფრთხილება: შეკითხვის პროცესორმა ვერ შექმნა შეკითხვის გეგმა ოპტიმიზატორისგან, რადგან ყველა სვეტის მთლიანი სიგრძე GROUP BY ან ORDER BY პუნქტში აჭარბებს 8000 ბაიტს.
HRESULT=80040E14, SQLSTATE=42000, მშობლიური=8618

ეს იმიტომ ხდება, რომ Microsoft SQL Server ითვლის სტრიქონის მაქსიმალურ სიგრძეს, რომელიც გამოიხატება გამონათქვამიდან:

არჩევანი
WHEN ტიპი = & იურიდიული მისამართი ინდივიდუალური
შემდეგ SUBSTRING (წარმომადგენლობა, 0 , 200 )
სხვა NULL
დასასრული, როგორც პრეზენტაცია,

უდრის 4000 სიმბოლოს. მაშასადამე, ორი ასეთი ველისგან შემდგარი ჩანაწერის სიგრძე აღემატება დახარისხების ოპერაციისთვის დაშვებულ 8000 ბაიტს.

SQL Server-ზე SUBSTRING() ფუნქციის შესრულების აღწერილი თავისებურებების გამო, SUBSTRING() ფუნქციის გამოყენება შეუზღუდავი სიგრძის სტრიქონების შეზღუდული სიგრძის სტრიქონებში გადასაყვანად არ არის რეკომენდებული. ამის ნაცვლად, უმჯობესია გამოიყენოთ cast ოპერატორი EXPRESS(). კერძოდ, ზემოთ მოყვანილი მაგალითი შეიძლება გადაიწეროს შემდეგნაირად:

არჩევა
არჩევანი
WHEN ტიპი = & იურიდიული მისამართი ინდივიდუალური
სხვა NULL
დასასრული, როგორც პრეზენტაცია,
არჩევანი
WHEN ტიპი = & იურიდიული მისამართი ინდივიდუალური
THEN EXPRESS(წარმოდგენა როგორც სტრიქონი(200))
სხვა NULL
END AS პრეზენტაცია1
FROM
ინფორმაციის რეესტრი. საკონტაქტო ინფორმაცია
ᲓᲐᲚᲐᲒᲔᲑᲐ
Შესრულება,
შესრულება 1

ამ სტატიაში ჩვენ გვინდა განვიხილოთ ყველაფერი თქვენთან ერთად 1C შეკითხვის ენის ფუნქციები, და შეკითხვის ენის კონსტრუქციები. რა განსხვავებაა ფუნქციასა და დიზაინს შორის? ფუნქცია გამოძახებულია ფრჩხილებით და მათში არსებული შესაძლო პარამეტრებით, ხოლო კონსტრუქცია იწერება ფრჩხილების გარეშე. უეჭველად 1C შეკითხვის ენის ყველა სტრუქტურა და ფუნქციაგახადოს მონაცემთა მოპოვების პროცესი მოქნილი და მრავალფუნქციური. ეს ფუნქციები და კონსტრუქტები ვრცელდება შეკითხვის ველებზე და ზოგიერთი ასევე ვრცელდება პირობებზე.

1C შეკითხვის ენის ფუნქციები

რადგან მკაფიო აღწერა 1c შეკითხვის ენის ფუნქციებიგაცილებით ნაკლებად გავრცელებულია, ვიდრე სტრუქტურების აღწერილობა, ჩვენ გადავწყვიტეთ დავიწყოთ ფუნქციების დათვალიერება. ახლა მოდით შევხედოთ თითოეულს ცალკე, აღვწეროთ მისი მიზანი, სინტაქსი და გამოყენების მაგალითი, ასე რომ:

1. ფუნქცია თარიღი დრო- ეს ფუნქცია ქმნის მუდმივ ველს "თარიღი" ტიპის.

Სინტაქსი: DATE TIME (<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

გამოყენების მაგალითი:

2. DATE DIFERENCE ფუნქცია- აბრუნებს განსხვავებას ორ თარიღს შორის ერთ განზომილებაში (წელი, თვე, დღე, საათი, წუთი, წამი). გაზომვა გადადის პარამეტრად.

Სინტაქსი: დიფერენცირებული(<Дата1>, <Дата2>, <Тип>)

გამოყენების მაგალითი:

Query.Text = "SELECT | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | დღეების რაოდენობა";

3. ფუნქცია VALUE- ადგენს მუდმივ ველს წინასწარ განსაზღვრული ჩანაწერით მონაცემთა ბაზიდან, ასევე შეგიძლიათ მიიღოთ ნებისმიერი ტიპის ცარიელი ბმული.

სინტაქსი: VALUE(<Имя>)

გამოყენების მაგალითი:

Request.Text = "SELECT //წინასწარ განსაზღვრული ელემენტი | VALUE(Directory.Currencies.Dollar) AS Dollar, // ცარიელი ბმული | VALUE(Document. Receipt of Goods and Services.EmptyLink) როგორც ქვითარი, //გადარიცხვის ღირებულება | VALUE(გადარიცხვა იურიდიული ფიზიკური პირი) AS ინდივიდუალური, //წინასწარ განსაზღვრული ანგარიში VALUE(ანგარიშების სქემა. თვითაღრიცხვა. მასალები) AS Account_10" ;

4. SELECT ფუნქცია- ჩვენ წინაშე გვაქვს IF კონსტრუქციის ანალოგი, რომელიც გამოიყენება კოდში, მხოლოდ ეს გამოიყენება 1C შეკითხვებში.

Სინტაქსი: არჩევა როდის<Выражение>მაშინ<Выражение>წინააღმდეგ შემთხვევაში<Выражение>ᲓᲐᲡᲐᲡᲠᲣᲚᲘ

გამოყენების მაგალითი:

მოთხოვნა.ტექსტი = //თუ თანხა 7500-ზე მეტია, მაშინ უნდა იყოს 300 რუბლის ფასდაკლება, //ასე რომ, თუ პირობა გააქტიურებულია, მაშინ ფუნქცია //აბრუნებს Sum - 300 //წინააღმდეგ შემთხვევაში მოთხოვნა დაბრუნდება უბრალოდ Sum. "SELECT | SELECT | WHEN TCreceipts.Amount > 7500 | THEN TReceipts.Amount - 300 | ELSE TCReceipts.Amount | END AS Amount ფასდაკლებით | FROM |

5. EXPRESS ფუნქცია- საშუალებას გაძლევთ გამოხატოთ მუდმივი ველი კონკრეტული ტიპით.

Სინტაქსი: EXPRESS (FieldName AS TypeName)

გამოყენების მაგალითი:

Query.Text = "SELECT VARIOUS | Sales.Registrar.Number, | SELECT | WHEN Sales.Registrar LINK Document.Consumable | THEN EXPRESS(Sales.Registrar AS Document.Consumable) | ELSE SELECT | WHEN Sales.Registrar LINKDomentation | THEN EXPRESS(Sales.Registrar AS Document.Implementation) END AS ნომერი |.

არის თუ არა EXPRESS ფუნქციის გამოყენების სხვა ვარიანტი შერეული ტიპების ველებში, სად ჩნდება ისინი? უმარტივესი მაგალითია „რეგისტრატორი“ ნებისმიერი რეესტრისთვის. მაშ, რატომ შეიძლება დაგვჭირდეს რეგისტრატორში ტიპის კვალიფიკაცია? განვიხილოთ სიტუაცია, როდესაც რეგისტრატორიდან ვირჩევთ ველს „ნომერი“, რომელი ცხრილიდან შეირჩევა ნომერი? ყველას სწორი პასუხი! ამიტომ, იმისათვის, რომ ჩვენმა შეკითხვამ სწრაფად იმუშაოს, ჩვენ უნდა მივუთითოთ აშკარა ტიპი EXPRESS ფუნქციის გამოყენებით

გამოყენების მაგალითი:

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS კომენტარი, | 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 (ProductsInStockRemains.InStockRemaining, 0) AS Remaining FROM.Nomenclature AS No.

7. წარმომადგენლობის ფუნქცია- საშუალებას გაძლევთ მიიღოთ მოთხოვნის ველის წარმოდგენა.

Სინტაქსი: ᲨᲔᲡᲠᲣᲚᲔᲑᲐ(<НаименованиеПоля>)

გამოყენების მაგალითი:

Query.Text = "SELECT | წარმოდგენა (FreeRemainingRemains.Nomenclature) AS ნომენკლატურა, | REPRESENTATION(FreeRemainingRemaining. Warehouse) AS Warehouse, | FreeRemainingRemaining.InStockRemaining |FROM |RemainingRemaining.FROM |RemainingRemainingAS"

აშენდება 1C შეკითხვის ენაზე

ზემოთ ვისაუბრეთ თქვენთან 1C შეკითხვის ენის ფუნქციები, ახლა დროა განიხილოს აშენდება 1C შეკითხვის ენაზე, ისინი არანაკლებ მნიშვნელოვანი და სასარგებლოა, დავიწყოთ.

1. სამშენებლო ლინკი- არის ლოგიკური ოპერატორი მიმართვის ტიპის შესამოწმებლად. ყველაზე ხშირად გვხვდება რთული ტიპის ველის კონკრეტული ტიპის შემოწმებისას. Სინტაქსი: ᲑᲛᲣᲚᲘ<Имя таблицы>

გამოყენების მაგალითი:

Request.Text = //თუ ჩამწერის მნიშვნელობის ტიპი არის დოკუმენტის მიღება, //მაშინ მოთხოვნა დააბრუნებს "საქონლის მიღებას", წინააღმდეგ შემთხვევაში "საქონლის გაყიდვები" "SELECT | SELECT | WHEN Remainings.Registrar LINK Document.Receipt of Good and მომსახურეობა "შემდეგი" |. "მოხმარება" |.

2. დიზაინი BETWEEN- ეს ოპერატორი ამოწმებს არის თუ არა მნიშვნელობა მითითებულ დიაპაზონში.

Სინტაქსი: ᲨᲝᲠᲘᲡ<Выражение>და<Выражение>

გამოყენების მაგალითი:

Request.Text = //მიიღეთ მთელი ნომენკლატურა, რომლის კოდი არის 1-დან 100-მდე დიაპაზონში "SELECT | Nomenclature.Link |FROM | Directory.Nomenclature AS Nomenclature |WHERE | Nomenclature.Code BETWEEN 1 AND 100" ;

3. კონსტრუქცია B და B იერარქია- შეამოწმეთ არის თუ არა მნიშვნელობა გადატანილ სიაში (მაივები, მნიშვნელობების ცხრილები და ა.შ. შეიძლება გადაიტანოს სიაში). ოპერატორი IN HIERARCHY საშუალებას გაძლევთ ნახოთ იერარქია (ანგარიშების გეგმის გამოყენების მაგალითი).

Სინტაქსი: IN(<СписокЗначений>), იერარქიაში (<СписокЗначений>)

გამოყენების მაგალითი:

მოთხოვნა.ტექსტი = //აირჩიეთ ანგარიშის ყველა ქვეანგარიში "SELECT | თვითმხარდაჭერა. მიბმა AS ანგარიშზე | FROM | ანგარიშთა სქემა. თვითმმართველობის AS თვითმხარდაჭერით | WHERE | თვითმხარდაჭერით. ბმული HIERARCHY VALUE-ში (Chart of ანგარიშები თვითმმართველობის საქონელი.

4. დიზაინი მსგავსი- ეს ფუნქცია საშუალებას გვაძლევს შევადაროთ სტრიქონი სტრიქონის შაბლონს.

Სინტაქსი: მოწონება"<ТекстШаблона>"

მწკრივის ნიმუშის პარამეტრები:

% - თანმიმდევრობა, რომელიც შეიცავს ნებისმიერი რაოდენობის თვითნებურ სიმბოლოებს.

ერთი თვითნებური პერსონაჟი.

[...] - კვადრატულ ფრჩხილებში ჩამოთვლილი ნებისმიერი სიმბოლო ან სიმბოლოების თანმიმდევრობა. ჩამოთვლას შეუძლია განსაზღვროს დიაპაზონები, მაგალითად a-z, რაც ნიშნავს თვითნებურ სიმბოლოს, რომელიც შედის დიაპაზონში, დიაპაზონის ბოლოების ჩათვლით.

[^...] - ნებისმიერი სიმბოლო ან სიმბოლოების თანმიმდევრობა, რომლებიც ჩამოთვლილია კვადრატულ ფრჩხილებში, გარდა უარყოფითი ნიშნის შემდეგ.

გამოყენების მაგალითი:

Query.Text = //იპოვეთ მთელი ნომენკლატურა, რომელიც შეიცავს ფუძეს TABUR და იწყება //მცირე ან დიდი ასო t "SELECT | ნომენკლატურა. ბმული | FROM | დირექტორია. ნომენკლატურა როგორც ნომენკლატურა | WHERE | პროდუქტები. სახელი LIKE "" [Tt ]abur%""" ;

5. დიზაინი დაშვებულია- ეს ოპერატორი საშუალებას გაძლევთ აირჩიოთ მხოლოდ ის ჩანაწერები მონაცემთა ბაზიდან, რომლებზეც აბონენტს აქვს წაკითხვის უფლება. ეს უფლებები კონფიგურირებულია ჩანაწერის დონეზე (RLS).

Სინტაქსი: ALLOWED იწერება საკვანძო სიტყვის SELECT შემდეგ

გამოყენების მაგალითი:

Request.Text = "არჩევა ნებადართული | კონტრაგენტები. ბმული | FROM | დირექტორია. კონტრაგენტები როგორც კონტრაგენტები";

6. დიზაინი სხვადასხვა- გაძლევთ საშუალებას აირჩიოთ ჩანაწერები, რომლებშიც არ არის დუბლიკატი ჩანაწერები.

Სინტაქსი: VARIOUS იწერება საკვანძო სიტყვის SELECT შემდეგ

გამოყენების მაგალითი:

Request.Text = //ირჩევს ჩანაწერებს, რომლებზეც მკითხველს აქვს უფლება "SELECT VARIOUS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties" ;

ასევე, სხვადასხვა კონსტრუქციის გამოყენება შესაძლებელია ALLOWED ოპერატორთან და სხვა ოპერატორებთან.

გამოყენების მაგალითი:

Request.Text = //ირჩევს სხვადასხვა ჩანაწერებს, რომლებზეც მკითხველს აქვს უფლება "SELECT ALLOWED VARIOUS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties";

7. დიზაინი პირველ რიგში- შეკითხვის შედეგიდან ირჩევს პარამეტრში მითითებულ ჩანაწერების რაოდენობას.

სინტაქსი: FIRST<число>

გამოყენების მაგალითი:

Request.Text = //აირჩიეთ პირველი 4 CCD ნომერი დირექტორიადან "SELECT FIRST 4 | CCD Numbers. Link | FROM | Directory. CCD Numbers AS CCD Numbers";

8. დიზაინი ცვლილებისთვის- გაძლევთ საშუალებას ჩაკეტოთ მაგიდა, მუშაობს მხოლოდ ტრანზაქციებში (შესაბამისია მხოლოდ ავტომატური საკეტებისთვის).

Სინტაქსი: ცვლილებისთვის<НаименованиеТаблицы>

გამოყენების მაგალითი:

Query.Text = "SELECT | უფასო ნარჩენები. ნომენკლატურა, | უფასო ნარჩენები. საწყობი, | უფასო ნარჩენები. დარჩენილია მარაგში | FROM | დაგროვების რეგისტრაცია. უფასო ნარჩენები. ნარჩენები, როგორც უფასო ნარჩენები, დაგროვების რეგისტრაცია | დაგროვების | უფასო ნარჩენები";

9. დიზაინი შეკვეთით- აწყობს მონაცემებს კონკრეტული ველის მიხედვით. თუ ველი არის ბმული, მაშინ დროშის დაყენებისას ავტომატური შეკვეთადახარისხება მოხდება ბმულის წარმოდგენის მიხედვით, თუ დროშა გამორთულია, მაშინ ბმულები დალაგებულია მეხსიერებაში არსებული ბმულის მისამართის მიხედვით.

Სინტაქსი: ᲓᲐᲚᲐᲒᲔᲑᲐ<НаименованиеПоля>ავტომატური შეკვეთა

გამოყენების მაგალითი:

Query.Text = "SELECT | უფასო ნარჩენები. ნომენკლატურა AS ნომენკლატურა, | უფასო ნარჩენები. საწყობი AS საწყობი, | თავისუფალი დარჩენილი ნარჩენები. მარაგში დარჩენილი | FROM | რეგისტრაცია დაგროვება. უფასო ნარჩენები. დარჩენილი AS უფასო ნარჩენები | BDERORma | |. ნომენკლატურა AUTO ORDER READING";

10. დიზაინი ჯგუფი- გამოიყენება შეკითხვის სტრიქონების დასაჯგუფებლად კონკრეტული ველების მიხედვით. რიცხვითი ველები უნდა იყოს გამოყენებული ნებისმიერი აგრეგატული ფუნქციით.

Სინტაქსი: ᲘᲗ ᲓᲐᲯᲒᲣᲤᲔᲑᲐ<НаименованиеПоля1>, .... , <НаименованиеПоляN>

გამოყენების მაგალითი:

Query.Text = "SELECT | ProductsIn Warehouses.Nomenclature AS Nomenclature, | ProductsIn Warehouses.Warehouse, | SUM(GoodsIn Warehouses.Instock) AS Instock |FROM | RegisterAcumulations.ProductsIn Warehouses AS ProductsInWarehouses.WaremensG | სახლი";

11. დიზაინი HAVING- გაძლევთ საშუალებას გამოიყენოთ აგრეგატული ფუნქცია მონაცემთა შერჩევის პირობაზე, WHERE კონსტრუქციის მსგავსი.

Სინტაქსი: ქონა<агрегатная функция с условием>

გამოყენების მაგალითი:

Query.Text = //ირჩევს დაჯგუფებულ ჩანაწერებს, სადაც InStock ველი 3-ზე მეტია "SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK.FROM | RegisterAccumStocksInStock | GROUP BY |. პროდუქცია საწყობებში. საწყობებში |.

12. სამშენებლო INDEX BY- გამოიყენება შეკითხვის ველის ინდექსირებისთვის. ინდექსირებასთან დაკავშირებული შეკითხვას უფრო მეტი დრო სჭირდება, მაგრამ აჩქარებს ძიებას ინდექსირებული ველებში. გამოყენება შესაძლებელია მხოლოდ ვირტუალურ ცხრილებში.

Სინტაქსი: ინდექსი BY<Поле1, ... , ПолеN>

გამოყენების მაგალითი:

Query.Text = "SELECT | 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, |CompensationRPORemains.Child, | CompensationRPOREmains.CompensationRPORemains.AmountForCalcCompRemainsz.RPRemains ationRPORE რჩება |WHERE |კომპენსაციაRPORრჩება.კომპენსაციადარჩენი<>0 | და CompensationRPORemains.AmountForCalcCompRemaining> 100";

14. დიზაინის შედეგები... ზოგადი- გამოიყენება ჯამების გამოსათვლელად, დიზაინი განსაზღვრავს ველებს, რომლებითაც გამოითვლება ჯამი და ფუნქციების მთლიანი გამოყენება; TOTAL კონსტრუქციის შემდეგ თითოეული ველის ჯამების გამოყენებისას, მონაცემები ჯგუფდება. არსებობს სურვილისამებრ GENERAL კონსტრუქცია, მისი გამოყენება ასევე უზრუნველყოფს დამატებით დაჯგუფებას. თქვენ იხილავთ მოთხოვნის შედეგის მაგალითს ქვემოთ.

Სინტაქსი: შედეგები<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>BY<ОБЩИЕ> <Поле1, ... , ПолеN>

გამოყენების მაგალითი:

Request.Text = "SELECT | გათვლები. კონტრაგენტის ხელშეკრულება. ხელშეკრულების ტიპი, როგორც კონტრაქტის ტიპი, | გამოთვლები. კონტრაქტის ხელშეკრულება AS კონტრაქტი, | გამოთვლები. კონტრაქტი, | გამოთვლები. ურთიერთგადახდის ბალანსის ოდენობა, როგორც ნაშთი | FROM | დაგროვების რეესტრი. ორმხრივი ანგარიშსწორება კონტრაგენტებთან, როგორც გამოთვლები |.

ნახატზე ასახულია დაჯგუფებები, რომლებიც ჩამოყალიბდა მოთხოვნის შესრულებისას, ზედა ეხება განყოფილებას GENERAL, ხოლო მეორე - Counterparty AgreementAgreement Type ველს.

დანარჩენს ახლა გადავხედოთ.

1C შეკითხვებში სტრინგებთან მუშაობის ფუნქციები

1C შეკითხვებში სიმებიანი მონაცემებით მუშაობისთვის რამდენიმე ფუნქცია და ოპერატორია.

პირველ რიგში, სტრიქონები შეკითხვებში შეიძლება დაემატოს. ამისათვის გამოიყენეთ "+" ოპერატორი:

მოთხოვნა. ტექსტი = "არჩევა
""ხაზი:" " + წყარო.სახელი
;

მეორეც, შეგიძლიათ აირჩიოთ ხაზის ნაწილი. ამისათვის გამოიყენეთ ფუნქცია სუბსტრუქცია.ფუნქცია ჩაშენებული 1C ენის მსგავსია. მას აქვს სამი პარამეტრი:

  1. წყაროს სტრიქონი.
  2. სიმბოლოს ნომერი, რომლითაც არჩეული ხაზი უნდა დაიწყოს.
  3. პერსონაჟები.

მოთხოვნა. ტექსტი = "აირჩიე
SUBSTRING ("
"ხაზი:" ", 4, 3) როგორც შედეგი"; // შედეგი: კარგი

ფუნქცია ISNULL

NULL არის სპეციალური მონაცემთა ტიპი 1C: Enterprise პლატფორმაზე. ეს არის ასევე ამ ტიპის ერთადერთი შესაძლო მნიშვნელობა. NULL შეიძლება გამოჩნდეს შეკითხვებში რამდენიმე შემთხვევაში: შეკითხვის წყაროების შეერთებისას, თუ შესაბამისი მნიშვნელობა ვერ მოიძებნა ერთ-ერთ ცხრილში; არარსებული ობიექტის დეტალებზე წვდომისას; თუ NULL მითითებული იყო მოთხოვნის ველების სიაში (მაგალითად, რამდენიმე ცხრილიდან შერჩევის შედეგების გაერთიანებისას) და ა.შ.

იმის გამო, რომ NULL არ არის არც null, არც ცარიელი სტრიქონი და არც მნიშვნელობა Განუსაზღვრელი,ხშირად სასარგებლოა მისი ჩანაცვლება უფრო სასარგებლო მონაცემთა ტიპით. სწორედ ამისთვის არის შექმნილი ფუნქცია. ISNULL.

მას აქვს ორი პარამეტრი:

  1. ღირებულება შემოწმებულია.
  2. მნიშვნელობა, რომლითაც უნდა შეიცვალოს პირველი პარამეტრი, თუ ის NULL აღმოჩნდება.

მოთხოვნა. ტექსტი = "აირჩიე
ISNULL(წყარო.Remainder, 0) AS Remainder"
; // თუ მოთხოვნის შედეგი არის ველის დარჩენილი ნაწილი = NULL,
// შემდეგ ის შეიცვლება 0-ით და შეგიძლიათ შეასრულოთ მათემატიკური მოქმედებები

ფუნქციები ᲨᲔᲡᲠᲣᲚᲔᲑᲐდა შესავალი ბმულები

ეს ფუნქციები შექმნილია სხვადასხვა მნიშვნელობების სიმებიანი წარმოდგენის მისაღებად. ანუ გარდაქმნიან მითითებებს, რიცხვებს, ლოგინებს და ა.შ. უბრალო ტექსტში. მათ შორის განსხვავება ისაა, რომ ფუნქცია ᲨᲔᲡᲠᲣᲚᲔᲑᲐგარდაქმნის მონაცემთა ნებისმიერ ტიპს ტექსტად (სტრიქონი) და ფუნქციად შესავალი ბმულები- მხოლოდ აკავშირებს და აბრუნებს დარჩენილ მნიშვნელობებს ისე, როგორც არის, არ არის გარდაქმნილი.

მოთხოვნა. ტექსტი = "აირჩიე
წარმოდგენა (ჭეშმარიტი) როგორც ლოგიკური,
წარმომადგენლობა (4) როგორც ნომერი,
წარმომადგენლობა (წყარო.ლინკი) AS ბმული,
წარმომადგენლობა (DATETIME (2016, 10,07)) როგორც თარიღი"
;
// ლოგიკური = "დიახ", ნომერი = "4", ბმული = "დოკუმენტის ნაღდი ფულის ქვითრის ბრძანება No...-დან..."
// თარიღი = "07.10.2016 0:00:00"

მოთხოვნა. ტექსტი = "აირჩიე
RERESENTATIONREFERENCE (true) როგორც ლოგიკური,
RERESENTATIONREFERENCE(4) როგორც ნომერი
PRESENTINGLINK(Source.Link) AS ბმული,
RERESENTATIONREFERENCE(DATETIME(2016,10,07)) AS თარიღი"
;
// ლოგიკური = TRUE, ნომერი = 4, ბმული = "დოკუმენტის ნაღდი ფულის მიღების ორდერი No....-დან..."
// თარიღი=07.10.2016 0:00:00

ფუნქციები TYPEდა TYPE ღირებულებები

ფუნქცია TYPEაბრუნებს 1C: Enterprise პლატფორმის მონაცემთა ტიპს.

მოთხოვნა. ტექსტი = "აირჩიე
TYPE (ნომერი)
TYPE (სტრიქონი),
TYPE (დოკუმენტი. ხარჯის ნაღდი ორდერი)"
;

ფუნქცია TYPE ღირებულებებიაბრუნებს მასზე გადაცემული მნიშვნელობის ტიპს.

მოთხოვნა. ტექსტი = "აირჩიე
VALUES TYPE (5) AS ნომერი,
TYPE ("
"ხაზი" ") AS სტრიქონი,
TYPE (Source.Link) AS მითითება
დირექტორიადან.წყარო AS წყარო"
;
//Number=Number, String=String, Directory = DirectoryLink.Source

ეს ფუნქციები მოსახერხებელია გამოსაყენებლად, მაგალითად, როცა უნდა გაარკვიოთ არის თუ არა მოთხოვნაში მიღებული ველი რაიმე ტიპის მნიშვნელობა. მაგალითად, ავიღოთ კონტრაგენტების საკონტაქტო ინფორმაცია ContactInformation-ის საინფორმაციო რეესტრიდან (იქ ინახება არა მხოლოდ კონტრაგენტების, არამედ ორგანიზაციების, ფიზიკური პირების და ა.შ. კონტაქტები):

მოთხოვნა. ტექსტი = "აირჩიე

FROM

სად
VALUES TYPE(ContactInformation.Object) = TYPE(Directory.Counterparties)"
;

ფუნქცია მნიშვნელობა

ფუნქცია მნიშვნელობასაშუალებას გაძლევთ გამოიყენოთ 1C კონფიგურაციის ობიექტები პირდაპირ მოთხოვნაში, გამოყენების გარეშე.

წინა მაგალითს დავამატოთ კიდევ ერთი პირობა. თქვენ მხოლოდ უნდა მიიღოთ თქვენი კონტრაგენტების ტელეფონის ნომრები.

მოთხოვნა. ტექსტი = "აირჩიე
საკონტაქტო ინფორმაცია.შესავალი
FROM
საკონტაქტო ინფორმაცია HOW საკონტაქტო ინფორმაცია
სად
VALUES TYPE(ContactInformation.Object) = TYPE(Directory.Counterparties)
AND ContactInfo.Type = VALUE(Enum.ContactInfoTypes.Phone)"
;

უნდა აღინიშნოს, რომ ამ ფუნქციის გამოყენება შესაძლებელია მხოლოდ წინასწარ განსაზღვრული მნიშვნელობებით, ე.ი. მნიშვნელობებით, რომელთა წვდომა შესაძლებელია პირდაპირ კონფიგურატორიდან. ანუ ფუნქცია მნიშვნელობაარ შეიძლება გამოყენებულ იქნას მომხმარებლების მიერ შექმნილ დირექტორიის ელემენტებთან, მაგრამ შეუძლია იმუშაოს ჩამოთვლებით, წინასწარ განსაზღვრული დირექტორია ელემენტებით, მნიშვნელობებთან EmptyLink.

ოპერატორი ᲑᲛᲣᲚᲘ

ოპერატორი ᲑᲛᲣᲚᲘშექმნილია მოთხოვნით დაბრუნებული მნიშვნელობების შესამოწმებლად, რათა დაინახოს, ეკუთვნის თუ არა ისინი კონკრეტულ საცნობარო ტიპს. იგივე დავალება შეიძლება შესრულდეს ფუნქციების გამოყენებით TYPEდა TYPE ღირებულებები(რომლებსაც უფრო ფართო მასშტაბები აქვთ და ზემოთ იყო განხილული).

მაგალითად, კონტრაგენტებისთვის საკონტაქტო ინფორმაციის არჩევის ამოცანა შეიძლება გადაწყდეს ამ გზით:

მოთხოვნა. ტექსტი = "აირჩიე
საკონტაქტო ინფორმაცია.შესავალი
FROM
საკონტაქტო ინფორმაცია HOW საკონტაქტო ინფორმაცია
სად
ContactInformation.Object LINK Directory.Counterparties"
;

ოპერატორი EXPRESS

ოპერატორი EXPRESSგამოიყენება 1C შეკითხვებში ორ შემთხვევაში:

  • როდესაც გჭირდებათ პრიმიტიული ტიპის მახასიათებლების შეცვლა;
  • როდესაც გჭირდებათ რთული მონაცემთა ტიპის ველი გადააქციოთ ერთი ტიპის ველად.

მონაცემთა პრიმიტიული ტიპები მოიცავს: ნომერი, სტრიქონი, თარიღი, ლოგიკური.ამ ტიპის მონაცემთა ზოგიერთ ტიპს აქვს დამატებითი მახასიათებლები. ტიპი ნომერიაქვს სიგრძე და სიზუსტე, ტიპი ხაზი -სიგრძე ან შეუზღუდავი.

ოპერატორი EXPRESSსაშუალებას გაძლევთ შეცვალოთ არა მონაცემთა ტიპი, არამედ დამატებითი მახასიათებლები. მაგალითად, მას შეუძლია შეუზღუდავი სიგრძის სტრიქონი შეზღუდული სიგრძის სტრიქონად აქციოს. ეს შეიძლება იყოს სასარგებლო, თუ თქვენ გჭირდებათ შეკითხვის შედეგების დაჯგუფება ასეთი ველის მიხედვით. თქვენ არ შეგიძლიათ დაჯგუფება შეუზღუდავი სიგრძის ველების მიხედვით, ამიტომ ჩვენ მას გადავიყვანთ სტრიქონად 200 სიმბოლოს სიგრძით.

მოთხოვნა. ტექსტი = "აირჩიე
რაოდენობა (საქონლისა და მომსახურების სხვადასხვა ჩამოსვლა. ბმული) როგორც ბმული
FROM
საქონლისა და მომსახურების მიღების დოკუმენტი
ᲘᲗ ᲓᲐᲯᲒᲣᲤᲔᲑᲐ
EXPRESS(საქონლისა და მომსახურების მიღება. კომენტარი ROW (200))"
;

ზოგიერთ შემთხვევაში, შედგენილი მონაცემთა ტიპის მქონე ველებზე მოთხოვნები შეიძლება არ იყოს ოპტიმალურად დამუშავებული 1C პლატფორმის მიერ. ეს იწვევს შეკითხვის უფრო ხანგრძლივ პერიოდს, ამიტომ შეიძლება სასარგებლო იყოს რთული ტიპის ერთ ტიპად გადაქცევა წინასწარ.

მოთხოვნა. ტექსტი = "აირჩიე
EXPRESS (საქონლის ბრუნვის მოძრაობა. შეკვეთა როგორც დოკუმენტი. მომხმარებლის შეკვეთა). თარიღი შეკვეთის თარიღი,
საქონლის ბრუნვის მოძრაობა.ნომენკლატურა
FROM
რეგისტრაცია დაგროვება.საქონლის გადაადგილება.ბრუნვა AS საქონლის გადაადგილება.
სად
საქონლის ბრუნვის მოძრაობა.შეკვეთის ლინკი დოკუმენტი.კლიენტის შეკვეთა"
;

ოპერატორები არჩევანიდა არის NULL

ოპერატორი არჩევანიოპერატორის მსგავსი თუჩაშენებულ 1C ენაზე, მაგრამ აქვს გარკვეულწილად შემცირებული ფუნქციონირება.

ვთქვათ, გვინდა მივიღოთ საკონტაქტო ინფორმაცია ContactInformation საინფორმაციო რეესტრიდან და, ამავდროულად, ცალკე მოთხოვნის ველში მივუთითოთ, ეკუთვნის ის კონტრაგენტს თუ ინდივიდს.

მოთხოვნა. ტექსტი = "აირჩიე
ContactInformation.შესავალი,
არჩევანი
WHEN VALUES TYPE(ContactInformation.Object) = TYPE(Directory.Counterparties)
მერე"
კონტრაპარტიული "
სხვა არჩევანი
WHEN VALUES TYPE(ContactInformation.Object) = TYPE(Directory.Individuals)
მერე"
Ინდივიდუალური"
სხვა "ვინმე სხვა" "
ᲓᲐᲡᲐᲡᲠᲣᲚᲘ
დასრულება როგორც მფლობელი
FROM
ინფორმაციის რეგისტრაცია საკონტაქტო ინფორმაცია AS საკონტაქტო ინფორმაცია.
;

როგორც მაგალითიდან ჩანს, დიზაინში არჩევანისიტყვის შემდეგ ყოველთვის არის პირობა ᲠᲝᲓᲔᲡᲐᲪ;მნიშვნელობა გამოიყენება, თუ პირობა ჭეშმარიტია სიტყვის შემდეგ მაშინდა მნიშვნელობა გამოიყენება, თუ პირობა არ არის დაკმაყოფილებული, სიტყვის შემდეგ წინააღმდეგ შემთხვევაში.სამივე დიზაინის ელემენტი არჩევანისავალდებულოა. ელემენტის გამოტოვება წინააღმდეგ შემთხვევაში, ისევე როგორც ოპერატორის გამოყენებისას თუჩაშენებულ 1C ენაზე ეს შეუძლებელია. ასევე ოპერატორისგან არჩევანიდიზაინის ანალოგი არ არსებობს ELSEIF, მაგრამ შეგიძლიათ ერთის ინვესტიცია არჩევანისხვაში, როგორც ეს გაკეთდა ჩვენს მაგალითში.

ოპერატორი არის NULLგამოიყენება დიზაინში არჩევანიშედარების მიზნით შეკითხვის ველი ტიპის NULL.

მოთხოვნა. ტექსტი = "აირჩიე
არჩევანი
როდესაც მნიშვნელობა არის NULL, მაშინ 0
ELSE მნიშვნელობა
ᲓᲐᲡᲐᲡᲠᲣᲚᲘ"
;

გარდა ამისა, ოპერატორი არის NULLშეიძლება გამოყენებულ იქნას შეკითხვის პირობებში, როგორიცაა წინადადებაში სად.

დათვალიერება