ჩაშენებული ენის მოთხოვნის ობიექტთან მუშაობის პროცედურა. რა არის "ენის" კონფიგურაციის ობიექტის მიზანი?

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

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

· რბილი აკრეფა (ცვლადის ტიპი განისაზღვრება მასში შემავალი მნიშვნელობის ტიპით და შეიძლება შეიცვალოს ოპერაციის დროს);

· აპლიკაციის ტიპების პროგრამული აღწერის ნაკლებობა (ისინი იქმნება კონფიგურაციის ობიექტების დამატებისას);

· მოვლენებზე ორიენტირებული ჩაშენებული ენა;

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

კონფიგურაციის მოდულები

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

განასხვავებენ პროგრამული უზრუნველყოფის მოდულების შემდეგ ტიპებს:

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

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

· გარე კავშირის მოდული. კონფიგურაციაში ყოველთვის არის ერთი გარე კავშირის მოდული. ის სრულდება, როდესაც აპლიკაციას წვდება როგორც COM სერვერი (გარე კავშირის რეჟიმში). გარე კავშირის რეჟიმში, ეს არ არის გაშვებული სრულფასოვანი 1C: Enterprise აპლიკაცია, არამედ "მსუბუქი ვერსია", რომელშიც ყველა ფუნქცია, რომელიც ამა თუ იმ გზით არის დაკავშირებული მომხმარებლის ინტერფეისის ორგანიზაციასთან, მიუწვდომელია.

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

· მოდულების ფორმირება. თითოეულ ფორმას აქვს თავისი მოდული, რომელიც განსაზღვრავს ფორმის ქცევას და მისგან შესრულებულ მოქმედებებს, მაგალითად, სხვა ფორმების გახსნას. ღონისძიებები იმართება ყველა ფორმისთვის გახსნამდე, გახსნის დროს, დახურვამდედა დახურვისას.

კონტექსტი

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

· გლობალური კონტექსტი, ხელმისაწვდომია ყველა სხვა კონტექსტში, შედგება შემდეგი ნაწილებისგან:

§ გლობალური კონტექსტის თვისებები, მეთოდები და მოვლენები (მაგალითად, თვისება სამუშაო თარიღი);

§ სისტემური აღრიცხვები და სისტემური მნიშვნელობების კომპლექტები (მაგალითად, დააბრუნეთ CodeDialogდა სიმბოლოები).

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

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

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

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

კონტექსტებს შორის ურთიერთობა სქემატურად არის ნაჩვენები ბრინჯი. 2.ჩართულია ბრინჯი. 3ასახავს ჟურნალის ფორმის მოდულისა და დოკუმენტის მოდულის შესაძლო ურთიერთქმედებას.


პროცედურები და ფუნქციები

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

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

მაგალითი 1:

პროცედურის გამოთვლა ()

თანხა=ფასი*რაოდენობა;

პროცედურის დასასრული

Გაანგარიშება(); // პროცედურის გამოძახება

მაგალითი 2:

Perem Glob;

// პროცედურის აღწერა

პროცედურის გაანგარიშება (Par1, Par2, ParZ) ექსპორტი

Glob = Glob + Par1 + Par2 + ParZ;

პროცედურის დასასრული

გაანგარიშება(5, 6, 7); // პროცედურის გამოძახება

მაგალითი 3:

Perem Glob;

// ფუნქციის აღწერა

ფუნქციის გაანგარიშება (Par1, Par2, ParZ) ექსპორტი

Lok = Glob + Par1 + Par2 + ParZ;

დაბრუნების საკეტი;

საბოლოო ფუნქცია

Res = Calc(5, 6, 7); // ფუნქციის გამოძახება

მონაცემთა ტიპები

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

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

ცვლადების გამოცხადება

ცვლადები გამოჩნდება პროგრამაში შემდეგ შემთხვევებში:

· მას შემდეგ, რაც ისინი გამოცხადდებიან ცვლადი ოპერატორის გამოყენებით.

პერემი<Имя_переменной>[ექსპორტი];

ცვლადი A, B;

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

მაგალითი:

· რედაქტირებული დიალოგის ელემენტების იდენტიფიკატორების სახელების განსაზღვრისას;

· პროცედურების ფორმალური პარამეტრების დადგენისას.

როლებში

ტიპის ჩამოსხმა შეიძლება იყოს აშკარა ან იმპლიციტური.

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

მაგალითი: რიცხვითი ცვლადის MonthNumber მნიშვნელობა ირიბად გარდაიქმნება სტრიქონად და დაერთო სხვა სტრიქონს:

A = "თვე" + თვის ნომერი;

დირექტორიები

დირექტორიებთან მუშაობა ხორციელდება შემდეგი ობიექტების გამოყენებით:

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

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

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

· DirectoryObject.უზრუნველყოფს ელემენტზე ჩასაწერ წვდომას. ეს ობიექტი შეიცავს მეთოდებს, რომლებიც გავლენას ახდენენ მონაცემთა ბაზის ელემენტებზე, მაგალითად, მეთოდებზე Ჩაწერადა წაშლა.

· დირექტორიის არჩევა.უზრუნველყოფს დირექტორია ელემენტების მეშვეობით გამეორების შესაძლებლობას. ნიმუშის აღება შეიძლება იყოს პირდაპირი ან იერარქიული.

· DirectoryList.ობიექტი ცხრილის ველში ელემენტების სიის მართვისთვის. საშუალებას გაძლევთ მართოთ სვეტები, შერჩევა და დახარისხება სიაში.

1C: Enterprise სისტემაში?

1. კონფიგურაციისა და მონაცემთა ბაზის ტექსტები ინახება ფორმატშიUNICODE

3. არ არსებობს სწორი პასუხი

6.75 რა მიზნით ინახება კონფიგურაციის და მონაცემთა ბაზის ტექსტები ფორმატშიUNICODE?

1. UNICODE ფორმატი უზრუნველყოფს ინფორმაციის პრეზენტაციის უცვლელობას (ოპერაციული სისტემის პროგრამული პლატფორმის დამოუკიდებლობას).

2. ფორმატიUNICODE საშუალებას გაძლევთ მხარი დაუჭიროთ სხვადასხვა ენებს 1C: Enterprise სისტემაში

3. არ არსებობს სწორი პასუხი

6.76 ჩამოყალიბებულია ინტერნაციონალიზაციის მექანიზმები. ..

1. ტექნოლოგიური პლატფორმა 1C: Enterprise

2. გამოყენებული გადაწყვეტილებები

3. 1 და 2 პასუხები სწორია

4. არ არსებობს სწორი პასუხი

6.77 რა არის ლოკალიზაციის კოდი?

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

2. პროგრამული პროდუქტის კოდი (მითითებულია სარეგისტრაციო ფორმაზე, დოკუმენტაცია შედის მიტანის კომპლექტში)

3. ფორმატის სიმებიანი ვარიანტი კონვერტაციისთვის

4. მისი პასუხი სწორია

6.78 მართალია, რომ 1C:Enterprise 8-ში ნებისმიერი ტექსტური ინფორმაცია შეიძლება ერთდროულად შეიცავდეს სიმბოლოებს სხვადასხვა ენიდან?

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

2. ინფობაზის შექმნისას მითითებული პარამეტრების მიხედვით

3. მხოლოდ იმ შემთხვევაში, თუ ეს არის გათვალისწინებული კონფიგურაციით

6.79 რა არის "ენის" კონფიგურაციის ობიექტის მიზანი?

1. პროგრამის ინტერფეისის შექმნა სხვადასხვა ენაზე

2. ტექსტური დოკუმენტების შექმნა სხვადასხვა ენაზე

3. ასეთი ობიექტი არ არსებობს 1C-ში: Enterprise 8

6.80 როგორ შევცვალო ენა კონფიგურაციის სანახავად (რედაქტირებისთვის)?

1. ენის შერჩევის ღილაკის გამოყენებით, რომელიც მდებარეობს სტატუსის ზოლში "NUM" ღილაკის მარჯვნივ

2. მენიუს პუნქტის მეშვეობით "კონფიგურაცია - კონფიგურაციის რედაქტირების ენა"

3. In 1 C: Enterprise ეს შესაძლებლობა არ არსებობს

4. ვერპა პასუხობს 1 და 2

6.81 როგორია ჩაშენებული ენის ოპერატორების მართლწერა?

1. მხოლოდ რუსული დამწერლობა

3.

6.82 შესაძლებელია თუ არა ჩაშენებული ენობრივი ოპერატორების გამოყენება რუსულ და ინგლისურ წერილობით ერთ საწყის ტექსტში?

1. მხოლოდ სპეციალური კონფიგურატორის პარამეტრებით

2. დიახ, ეს არ საჭიროებს კონფიგურატორის პარამეტრების შეცვლას

3. არა, რადგან ჩაშენებული ენის ვარიანტი დაყენებულია კონფიგურაციის თვისებებში

6.83 რა არის ჩაშენებული ენის დანიშნულება?

1. პროგრამის ნაგულისხმევი ინტერფეისის დასადგენად

2. გამოყენებული ამოცანის ფუნქციონირების ალგორითმების აღწერა (კონფიგურაციის განვითარების ეტაპზე).

3. არ არსებობს სწორი პასუხი

6.84 როგორია ჩაშენებული ენის ფუნქციების მართლწერა?

1. მხოლოდ რუსული დამწერლობა

2. მხოლოდ ინგლისური მართლწერა

3. რუსული და ინგლისური წერა

4. კონფიგურატორის პარამეტრებიდან გამომდინარე

6.85 რას ნიშნავს პარამეტრი L?() NumberInWriting() ფორმატირების ფუნქციის ფორმატის სტრიქონში?

1. მოაწერეთ ხელი "წილადი ნაწილის გამოტანა რიცხვებში/სიტყვებში"

2. ათობითი ადგილების რაოდენობა

3. ლოკალიზაციის კოდი

7. აპლიკაციის გადაწყვეტის ტაბულური მოდელი

7.1 მონაცემთა წვდომის შეზღუდვების დაყენებისას შეგიძლიათ დააყენოთ რამდენიმე შეზღუდვა (ველების რაოდენობის მიხედვით):

1. „წაკითხვის“ უფლებისთვის

2. სწორი "ცვლისთვის"

3. „დამატების“ უფლებისთვის

4. "წაშლის" უფლებისთვის

5. ყველა ზემოაღნიშნული უფლებისთვის

6. ყველა შესაძლო უფლებისთვის

7.2 მონაცემთა წვდომის შეზღუდვების დაყენებისას, შემდეგი შეიძლება გამოყენებულ იქნას, როგორც მნიშვნელობები, რომლითაც ხდება მონაცემთა წვდომის შეზღუდვები:

1. მხოლოდ სესიის პარამეტრის მნიშვნელობები

2. მხოლოდ მონაცემები ცხრილებიდან (შეკითხვები)

3. სესიის პარამეტრის მნიშვნელობები და მონაცემები ცხრილებიდან (შეკითხვები)

4. მხოლოდ მნიშვნელობები ტიპებით: Number, String, Boolean, Date

7.3 ზემოაღნიშნული მეთოდებიდან რომელი შეიძლება გამოვიყენოთ ისე, რომ დირექტორიას კოდი და სახელი გამოჩნდეს შეკითხვის დიზაინერის განყოფილებაში „ველები“?

1. ჯერ შეავსეთ განყოფილება „ცხრილები“ ​​და შემდეგ, ამ განყოფილებიდან სასურველი ობიექტების არჩევით, გადაიტანეთ ისინი განყოფილებაში „ველები“ ​​მაუსის მარცხენა ღილაკით ორჯერ დაწკაპუნებით.

2. "ცხრილების" განყოფილების შევსების გარეშე, დაუყოვნებლივ შეარჩიეთ ცხრილებიდან საჭირო ობიექტები - "მონაცემთა ბაზის" განყოფილების მონაცემთა წყაროები, გადაიტანეთ ისინი "ველები" განყოფილებაში Drag & Drop ტექნოლოგიის გამოყენებით. განყოფილება "ცხრილები" ივსება ავტომატურად

3. ჯერ შეავსეთ განყოფილება "ცხრილები", შემდეგ კი ამ განყოფილებიდან საჭირო ობიექტების არჩევით გადაიტანეთ ისინი "ველები" განყოფილებაში ">" """ ფორმის ღილაკების გამოყენებით.

4. I და 3 პასუხები სწორია

5. I, 2 და 3 პასუხები სწორია

7.4 მოთხოვნის შესრულების სიჩქარის გასაზრდელად, თქვენ უნდა:

1. დააყენეთ პარამეტრები ყველაზე რეალური ცხრილებისთვის

2. პარამეტრების დაყენება ვირტუალური ცხრილების უმეტესობისთვის

3. იმის ნაცვლად, რომ მიუთითოთ პარამეტრები რეალური ან ვირტუალური ცხრილისთვის, გამოიყენეთ „WHERE“ შეკითხვის ენის კონსტრუქციით განსაზღვრული არჩევანი.

4. I და 2 პასუხები სწორია

7.5 შესაძლებელია თუ არა მისთვის ახალი სახელის (სხვა სახელის) მინიჭება შეკითხვის დიზაინერის განყოფილებაში „ცხრილები“ ​​წყაროს ცხრილის არჩევისას?

1. დიახ, შეგიძლია

2. დიახ, შეგიძლიათ, მაგრამ მხოლოდ იმ შემთხვევაში, თუ მონაცემთა წყარო არის ჩადგმული მოთხოვნა

3. დიახ, შეგიძლიათ, მაგრამ მხოლოდ იმ შემთხვევაში, თუ მონაცემთა წყარო არის ვირტუალური ცხრილი

4. 1 და 2 პასუხები სწორია

5. 1 და 3 პასუხები სწორია

7.6 ჩადგმული შეკითხვა შეიძლება გამოყენებულ იქნას:

1. როგორც მონაცემთა წყაროს ცხრილი

2. როგორც "B" ან "NOT B" შედარების ოპერაციების ოპერანდი ვირტუალური ცხრილის პარამეტრების დაყენებისას

3. როგორც "B" ან "NOT B" შედარების ოპერაციების ოპერანდი შეკითხვის ენის კონსტრუქციის "WHERE" მითითებისას.

4. ვერპა პასუხობს 1, 2 და 3

7.7 შესაძლებელია თუ არა ჯამების მიღება იერარქიის მიხედვით შეკითხვის დიზაინერის გამოყენებით?

1. შესაძლებელია, თუ დაჯგუფების ველისთვის მიუთითებთ მთლიან ტიპს „ელემენტები და იერარქია“.

2. შესაძლებელია, თუ დაჯგუფების ველზე მიუთითებთ მთლიან ტიპს „მხოლოდ იერარქია“.

3. ვერპა პასუხობს 1 და 2

7.8 შეკითხვის დიზაინერის ჩანართზე „პირობები“ შეიძლება შეიქმნას პირობების სიის ცალკე ხაზი:

1. ორჯერ დააწკაპუნეთ მაუსის მარცხენა ღილაკით სასურველ ველზე ხელმისაწვდომი ველების სიაში

2. სასურველი ველის სიაში გადატანით Drag & Drop ტექნოლოგიის გამოყენებით

3. დააწკაპუნეთ ღილაკზე „დამატება“. თუ პირობა თვითნებურია, მაშინ პირობის ტექსტი შეიძლება შეიყვანოთ „ხელით“

4. დარეკეთ კონტექსტურ მენიუში და აირჩიეთ „დამატება“ მისგან. შესაძლებელია თვითნებური გამოხატვის გამოყენება

5. ყველა ზემოთ ჩამოთვლილი პასუხი სწორია

7.9 შეკითხვის დიზაინერის „ბმულების“ ჩანართზე შეგიძლიათ განსაზღვროთ:

1. მონაცემთა წყაროს ცხრილების და მათ შორის ურთიერთობების დაკავშირება

2. მონაცემთა წყაროს ცხრილებისა და მათ შორის კავშირების გაერთიანება

3. შეკითხვის შედეგად მიღებული ცხრილის ველებს შორის ურთიერთობა

4. კავშირი მონაცემთა წყაროს ცხრილის ველებსა და მოთხოვნის შედეგად მიღებულ ცხრილს შორის

7.10 მონაცემთა წყაროს ცხრილების შეერთებისას შეკითხვის დიზაინერში შეგიძლიათ:

1. მიანიჭეთ კავშირი კავშირის მდგომარეობის მითითების გარეშე

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

3. მიანიჭეთ კავშირი კავშირის მდგომარეობის მითითებით და ეს პირობა შეიძლება იყოს მხოლოდ მარტივი

4. მიანიჭეთ კავშირების საჭირო რაოდენობა კომუნიკაციის პირობების საჭირო რაოდენობის მითითებით და ეს პირობები შეიძლება იყოს მარტივი ან თვითნებური

7.11 შეკითხვის დიზაინერში მონაცემთა წყაროს ცხრილებს შორის კავშირის შექმნა საშუალებას იძლევა:

1. მონაცემთა წყაროს მხოლოდ ორი ცხრილის შეერთება

2. მონაცემთა წყაროს ცხრილების საჭირო რაოდენობის დაკავშირება

3. მონაცემთა წყაროს მხოლოდ ორი ცხრილის დაკავშირება და „ყველა“ ჩამრთველი უნდა იყოს მონიშნული ცხრილებიდან მინიმუმ ერთზე

Basic, რაც ახალბედა დეველოპერებს უადვილებს სწავლას. თუმცა, ის არ არის რომელიმე ჩამოთვლილი ენის პირდაპირი ანალოგი.

აქ მოცემულია ჩაშენებული ენის მხოლოდ რამდენიმე ყველაზე მნიშვნელოვანი მახასიათებელი:

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

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

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

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

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

წინასწარ განსაზღვრული მონაცემთა ტიპები

1C:Enterprise 8.0 პლატფორმა დეველოპერს საშუალებას აძლევს გამოიყენოს სხვადასხვა ტიპის მონაცემები.

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


აღწერა მონაცემთა პრიმიტიული ტიპები:

  • NULL- აკლია მნიშვნელობა. გამოიყენება, მაგალითად, შეკითხვებში.
  • Განუსაზღვრელი- ცარიელი, განუსაზღვრელი მნიშვნელობა. იგი გამოიყენება, მაგალითად, პარამეტრების გადაცემის შეფასებისას, თუ ეს პარამეტრი გამოტოვებულია პროცედურის ან ფუნქციის გამოძახებისას. დეტალები, რომლებსაც აქვთ მონაცემთა კომპოზიციური ტიპი, ნაგულისხმევად არის "გაუზუსტებელი" ტიპის.
  • ლოგიკური- შეიცავს ორ მნიშვნელობას: True ან False. გამოიყენება, მაგალითად, ლოგიკურ გამონათქვამებში - ლოგიკური გამონათქვამი არის "Boolean" ტიპის.
  • თარიღი- შეიცავს თარიღსა და დროს. ნაგულისხმევი მნიშვნელობა არის 01/01/01 00:00:00 ჩვენი ეპოქის დაწყების თარიღი. დრო იზომება დღის დასაწყისიდან. გამოთქმა, რომელსაც აქვს პირდაპირი ტიპი "თარიღი" იწერება შემდეგნაირად - "00010101000000". ჯერ წელი იწერება, მერე თვე, მერე თარიღი და მერე დრო. შესაძლებელია შემდეგი ჩანაწერი: "20041031". ნაგულისხმევი დრო არის დღის დასაწყისი.
  • ხაზი- შეიძლება იყოს ცვლადი, ფიქსირებული ან შეუზღუდავი სიგრძე. ზოგადად, რეკომენდებულია ცვლადი სიგრძის სიმების გამოყენება.
  • ნომერი- რიცხვის ბიტის სიღრმე გაიზარდა 38 ბიტამდე.
  • ტიპი- ემსახურება ღირებულებების ტიპების განსაზღვრას. გამოიყენება, მაგალითად, მონაცემთა ტიპების შესადარებლად. მას არ აქვს ლიტერალები და ბრუნდება ფუნქციებით Type(<Имя типа>) ან TypeValue(<Значение>).

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


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

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

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

მიმოწერა. ისევე, როგორც Structure, ის არის Key - Value წყვილების კოლექცია. თუმცა, სტრუქტურისგან განსხვავებით, გასაღები შეიძლება იყოს თითქმის ნებისმიერი ტიპის.

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

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

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

COMSafeArray. წარმოადგენს ობიექტის შეფუთვას მრავალგანზომილებიან SAFEARRAY მასივზე

პროცედურა SelectFromFileClick(Element) // ფაილის შერჩევა viewingFileSelectionDialog = NewFileSelectionDialog(FileSelectionDialogMode.Open); FileSelectionDialog.Directory = ""; FileSelectDialog.Preview = True; FileSelectionDialog.FilterIndex = 0; თუ FileSelectDialog.Select() მაშინ File = New File(FileSelectDialog.FullFileName); სურათი = NewValueStorage(NewImage(FileSelectionDialog.FullFileName)); DisplayImage(); დაასრულე თუ; პროცედურის დასასრული

THIS_KEYWORD
<Это конструкция языка>,
<Это конструкция языка>
THIS_FUNCTION(<Это конструкция языка>)

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

ენის კონსტრუქციები შეიძლება შეიცავდეს არჩევით ელემენტებს - საკვანძო სიტყვებს და ა.შ. შეკითხვის ენის აღწერის წესებში, არჩევითი ელემენტები მოთავსებულია კვადრატულ ფრჩხილებში "[" და "]":

[ეს არასავალდებულო სიტყვაა] [<Это необязательная конструкция>]

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

EITHER_THIS_WORD | ან THIS_WORD
<Либо эта конструкция> | <Либо эта конструкция>

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

კომენტარები შეკითხვის ენაზე

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

// ეს არის კომენტარი.

კომენტარები იგნორირებულია მოთხოვნის შესრულებისას.

საკვანძო სიტყვების ორენოვანი წარმოდგენა

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

მოთხოვნის ტექსტის ძირითადი სექციები

მოთხოვნის ტექსტი შეიძლება აღწერილი იყოს შემდეგი წესით:

<Описание запроса>
[<Объединение запросов>]
[<Упорядочивание результатов>]
[ავტომატური შეკვეთა]
[<Описание итогов>]

როგორც ამ წესიდან ჩანს, მოთხოვნის ტექსტი შედგება რამდენიმე ნაწილისაგან ან სექციისგან:

განყოფილებაში<Упорядочивание результатов>თქვენ შეგიძლიათ განსაზღვროთ რიგების შეკვეთის პირობები შეკითხვის შედეგში. შეკითხვის შედეგების შეკვეთა განხილულია 324 გვერდზე.

AUTO ORDER საშუალებას გაძლევთ ჩართოთ მწკრივების ავტომატური შეკვეთა შეკითხვის შედეგში. ეს რეჟიმი აღწერილია 331 გვერდზე.

განყოფილებაში<Описание итогов>თქვენ შეგიძლიათ მიუთითოთ რომელი ჯამები უნდა იყოს გამოთვლილი მოთხოვნაში. ეს განყოფილება აღწერილია 332 გვერდზე.

მოთხოვნის აღწერა

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

ველები, რომლებიც შეიცავს მოთხოვნის შედეგს;

შეკითხვის მონაცემთა წყაროები - წყაროს ცხრილები;

პირობები, რომლებიც გავლენას ახდენს მოთხოვნის მონაცემების შერჩევაზე;

შეკითხვის შედეგების დაჯგუფების თანმიმდევრობა.

მოთხოვნის აღწერილობის განყოფილება შედგება რამდენიმე ურთიერთდაკავშირებული წინადადებისგან:

აირჩიეთ [განსხვავებული] [პირველი<Количество>]
<Список полей выборки>
[FROM<Список источников>]
[სად<Условие отбора>]
[ᲘᲗ ᲓᲐᲯᲒᲣᲤᲔᲑᲐ<Поля группировки>]
[აქვს<Условие отбора>]
[ცვლისთვის [<Список таблиц верхнего уровня>]]

მოთხოვნის აღწერა იწყება საჭირო საკვანძო სიტყვით არჩევა.

შეთავაზება სად<Условие отбора> საშუალებას გაძლევთ გაფილტროთ შეკითხვის შედეგი. შედეგი მოიცავს მხოლოდ იმ ჩანაწერებს, რომლებისთვისაც მითითებული პირობა მართალია. შერჩევის პირობების აღწერის წესები განხილულია 315 გვერდზე.

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

შეთავაზება ჯგუფისაშუალებას გაძლევთ აღწეროთ მოთხოვნის შედეგების დაჯგუფების თანმიმდევრობა. დაჯგუფება დეტალურად არის განხილული 316 გვერდზე.

შეთავაზება ქონასაშუალებას გაძლევთ დააწესოთ პირობები დაჯგუფების შედეგებზე. აღწერილია 318 გვერდზე.

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

მოდით მოვიყვანოთ საკმაოდ მარტივი მოთხოვნის მაგალითი, რომელიც შედგება ერთი SELECT განაცხადისა და შერჩევის ველების სიისგან.

//ანგარიშში უნდა აჩვენოთ ინვოისების სია.

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

სიტყვის განსხვავებული გამოყენება

ბევრ სიტუაციაში, სასურველია, რომ ანგარიშის იგივე სტრიქონები არ განმეორდეს.

// აუცილებელია გაირკვეს, თუ რომელი კონტრაგენტები ზოგადად
// საქონელი გაიგზავნა იმ პერიოდისთვის.
აირჩიეთ Document.Invoice.Counterparty

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

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

აირჩიეთ სხვადასხვა დოკუმენტი.ინვოისი.კონტრაგენტი

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

სიტყვის FIRST გამოყენება

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

// აუცილებელია ხუთი ყველაზე ძვირადღირებული საქონლის შერჩევა.
// შერჩევა უნდა განხორციელდეს პროდუქტის ფასის კლებადობით.
აირჩიეთ პირველი 5
Directory.Nomenclature.Name,
დირექტორია.Nomenclature.PurchasingPrice
სორტირება დირექტორიაში.ნომენკლატურა. შესყიდვის ფასი კლებადობით

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

შერჩევის ველების აღწერა

სავალდებულო საკვანძო სიტყვის SELECT (და შესარჩევი სიტყვების DIFFERENT და FIRST) შემდეგ მოთხოვნის ტექსტში მითითებულია შერჩევის ველების სია. ეს ველები დამუშავდება მოთხოვნის მონაცემების მოძიებისას. შეკითხვის შედეგს ასევე ექნება ამ სიაში განსაზღვრული ველების ნაკრები. შერჩევის ველები აღწერილია შემდეგი წესების მიხედვით:

<Описание поля>[ [ᲠᲝᲒᲝᲠ]<Псевдоним поля>]

<Выражение>[.<Группа полей>]

შერჩევის ველების სია შედგება ერთი ან მეტი ელემენტისგან, რომლებიც გამოყოფილია მძიმეებით. თითოეული<Поле выборки>შედგება შერჩევის ველისა და არჩევითი ველის მეტსახელისგან.

შერჩევის სიაში ველების ჩამოთვლის ნაცვლად, შეგიძლიათ მიუთითოთ ვარსკვლავი "*". ეს ნიშნავს, რომ შეკითხვის შედეგი უნდა შეიცავდეს ყველა ველს, რომელიც არის წყაროს ცხრილებში - წყაროების სიაში აღწერილი მოთხოვნის მონაცემთა წყაროები.

კომენტარი!შერჩევის ველების სიაში ვარსკვლავის „*“ მითითებისას, წყაროს ცხრილების ვირტუალური ველები არ შედის შედეგში.

<Описание поля>განსაზღვრავს, თუ როგორ უნდა წარმოიქმნას ველის მნიშვნელობები. უმარტივეს შემთხვევაში, შერჩევის ველი არის წყაროს ცხრილის ველის ბმული. ბმული შეიძლება დაზუსტდეს ამ ველის შემცველი ცხრილის მითითებით ან თავად ცხრილის მითითების გარეშე. ველის გაუქმება განიხილება.

ზოგადად, შერჩევის ველი შეიძლება იყოს არა მხოლოდ წყაროს ცხრილის ველის ბმული, არამედ ზოგიერთი<Выражение>. გამონათქვამები დეტალურად არის განხილული 344 გვერდზე.

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

შერჩევის თითოეულ ველს შეიძლება მიენიჭოს მეტსახელი. მომავალში ის შეიძლება გამოყენებულ იქნას ამ სფეროში უფრო მოსახერხებელი წვდომისთვის. ველის მეტსახელების გამოყენება განხილულია ქვემოთ.

<Группа полей>შეიძლება დაზუსტდეს მხოლოდ მაშინ, როდესაც არჩევის ველი მიუთითებს ჩადგმულ ცხრილზე. ამ შემთხვევაში, თქვენ შეგიძლიათ მიუთითოთ რომელი ველები უნდა დამუშავდეს ჩადგმული ცხრილის შერჩევაში. თუ ველის ჯგუფი არ არის მითითებული, ჩადგმული ცხრილის ყველა ველი დამუშავდება შერჩევაში. ჩადგმულ ცხრილებზე წვდომა აღწერილია ში.

ველის მეტსახელები შერჩევის სიაში

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

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

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

ველებზე მეტსახელების მინიჭება თავისთავად არ ახდენს გავლენას მოთხოვნის მონაცემების შერჩევაზე.

// უნდა იყოს არჩეული პროდუქტის დირექტორიადან
// საქონლის სახელწოდებები და ჯგუფების სახელები.
აირჩიეთ
დირექტორია. სახელწოდება, როგორც პროდუქტი,
დირექტორია. ნომენკლატურა.მშობელი.სახელი როგორც ჯგუფი
საწყისი
დირექტორია.ნომენკლატურა

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

გაითვალისწინეთ, რომ ველის მოთხოვნის შედეგში ველებს ჰქვია "Item" და "Group". თუ ველების მეტსახელები არ იყო მითითებული, მოთხოვნის შედეგის ველებს ეძახიან "Name" და "Name1" (მოთხოვნის შედეგში ველების სახელები არ ემთხვევა, ამიტომ "1" ავტომატურად ემატება მეორე ველის სახელს). რაც გაცილებით ნაკლებად ნათელია.

ჩადგმული ცხრილები შერჩევის ველების სიაში

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

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

(<Список вложенных полей>) | *

<Вложенное поле [, <Вложенное поле>[, ...] ]

<Список вложенных полей>შედგება ერთი ან მეტი ელემენტისგან, რომლებიც გამოყოფილია მძიმეებით. თუ სია შედგება ერთი ელემენტისგან, ის არ არის საჭირო ფრჩხილებში ჩასმა.

ჩადგმული ველების ჩამოთვლის ნაცვლად, შეგიძლიათ მიუთითოთ ვარსკვლავი „*“; ეს ნიშნავს, რომ ჩადგმული შეკითხვის შედეგი უნდა შეიცავდეს ყველა ველს, რომელიც არის ჩადგმულ ცხრილში.

<Выражение>[[ᲠᲝᲒᲝᲠ]<Псевдоним поля>]

<Вложенное поле>შეიძლება წარმოადგენდეს რაიმე გამოხატულებას. უმარტივეს შემთხვევაში<Выражение>არის მინიშნება ველზე წყობილ ცხრილში. გამონათქვამები დეტალურად არის განხილული 344 გვერდზე.

თითოეულ ჩადგმულ ველს შეიძლება მიენიჭოს მეტსახელი. Უფრო<Псевдоним поля>შეიძლება გამოყენებულ იქნას ამ ველზე უფრო მოსახერხებელი წვდომისთვის, შერჩევის სიაში არსებული ველების მეტსახელების მსგავსად - იხილეთ განყოფილება „პარსები ველების შერჩევის სიაში“

ფსევდონიმების მინიჭება შესაძლებელია ჩადგმულ ველებს, მიუხედავად იმისა, მიეკუთვნება თუ არა ალიასი თავად ჩადგმულ ცხრილს.

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

Document.Invoice.Composition.(ნომენკლატურა როგორც პროდუქტი, რაოდენობა)

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

Ბმული ნაერთი
პროდუქტი რაოდენობა
ჯინსი ქალებისთვის 4
ჯინსი ქალებისთვის 5
მაისური "Cowgirl" 5
ინვოისი 00005 24.02.2002 0:00:00 ჯინსი ქალებისთვის 1
ჯინსი ქალებისთვის 1
მოიდოდირ "აკვარიუმი" 5
ნიჟარა "ლილი" 8
მიქსერი "ულტრა" 10

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

//ანგარიშში აჩვენეთ ინვოისის ტაბულური ნაწილის ყველა ველი.
აირჩიეთ
დოკუმენტი.ინვოისი.ლინკი,
დოკუმენტი.ინვოისი.კომპოზიცია.*

IZ პუნქტის მიზანია მიუთითოს წყაროს ცხრილების სია - მონაცემთა წყაროები, რომლებიც გამოიყენება მოცემულ SELECT განცხადებაში.

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

საკვანძო სიტყვის IZ შემდეგ მითითებულია წყაროების სია. ზოგადად, წყაროების სია აღწერილია შემდეგი წესების მიხედვით:

<Источник>[, <Источник>[, ...]]

შეკითხვის მონაცემთა წყაროები ჩამოთვლილია წყაროების სიაში, გამოყოფილი მძიმეებით. ყოველი<Источник>წყაროების სია უნდა შეიცავდეს წყაროს აღწერას; გარდა ამისა, შეიძლება დაზუსტდეს<Перечень соединений>- წყაროს სხვა წყაროებთან დაკავშირების წესები. აღწერილია კავშირის სპეციფიკაციები.

<Описание источника> [ <Перечень соединений> ]

თუ მონაცემთა წყარო არის საინფორმაციო ბაზის ცხრილი,<Описание источника>შეიცავს<Имя таблицы>.

<Таблица>[ [ᲠᲝᲒᲝᲠ]<Псевдоним источника>]

თუ წყაროს ცხრილი ვირტუალურია, შეგიძლიათ მიუთითოთ<Параметры>მისი ფორმირება. ვირტუალური ცხრილის პარამეტრები დეტალურად არის აღწერილი განყოფილებაში „შეკითხვის მონაცემთა წყაროები“.

<Имя таблицы> [(<Параметры>)] | <Описание запроса>

ქვემოთხოვნას ასევე შეუძლია იმოქმედოს როგორც შეკითხვის მონაცემთა წყარო; ამ შემთხვევაში წყაროს აღწერა შეიცავს<Описание запроса>. ჩადგმული მოთხოვნების გამოყენება აღწერილია აქ.

მონაცემთა წყაროს აღწერილობას ასევე შეუძლია მიაკუთვნოს მისი მეტსახელი. Უფრო<Псевдоним источника>შეიძლება გამოყენებულ იქნას ამ წყაროზე უფრო მოსახერხებელი წვდომისთვის. მონაცემთა წყაროს მეტსახელების გამოყენება განიხილება აქ.

კავშირის სპეციფიკაციები

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

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

კონტრაპარტიული ბანკი
Მომწოდებლები JSCB InvestBank
Მომწოდებლები JSCB PromStroyBank
ქსოვის ქარხანა "ზარია" JSCB InvestBank
ქსოვის ქარხანა "ზარია" JSCB PromStroyBank
ჯინსის ტანსაცმლის ქარხანა JSCB InvestBank
ჯინსის ტანსაცმლის ქარხანა JSCB PromStroyBank
მყიდველები JSCB InvestBank
მყიდველები JSCB PromStroyBank
ტანსაცმლის გამოფენა JSCB InvestBank
ტანსაცმლის გამოფენა JSCB PromStroyBank
სავაჭრო სახლი "ბუდენოვსკი" JSCB InvestBank
სავაჭრო სახლი "ბუდენოვსკი" JSCB PromStroyBank
პავილიონი 45 საბითუმო ბაზარზე JSCB InvestBank
პავილიონი 45 საბითუმო ბაზარზე JSCB PromStroyBank
ბავარია - ფაიფური JSCB InvestBank
ბავარია - ფაიფური JSCB PromStroyBank
ჯინსის ტანსაცმლის ქარხანა JSCB InvestBank
ჯინსის ტანსაცმლის ქარხანა JSCB PromStroyBank
JSCB PromStroyBank JSCB InvestBank
JSCB PromStroyBank JSCB PromStroyBank

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

არსებობს რამდენიმე სახის კავშირი, ისინი აღწერილია შემდეგი წესებით:

<Соединение> [<Перечень соединений>]

Ზოგადად<Перечень соединений>შეუძლია შეიცავდეს და აღწეროს არა მხოლოდ ერთი კავშირი (ორი წყაროდან), არამედ რამდენიმე წყაროს ერთდროულად რამდენიმე კავშირი.

[შიდა] გაწევრიანება<Описание источника>BY<Условие отбора> |

LEFT [გარე] შეერთება<Описание источника>BY<Условие отбора> |

RIGHT [გარე] გაწევრიანება<Описание источника>BY<Условие отбора> |

სრული (გარე) გაწევრიანება<Описание источника>BY<Условие отбора>

<Условие отбора>შეიცავს პირობებს, რომლის მიხედვითაც შერჩევამ უნდა დააკავშიროს მონაცემები ორიგინალური ცხრილებიდან - მოთხოვნის წყაროებიდან. პირობების აღწერის წესები შეკითხვის ენაზე განხილულია 357 გვერდზე.

საკვანძო სიტყვები LEFT, RIGHT და FULL განმარტავს კავშირის ბუნებას. სიტყვები INTERNAL ან EXTERNAL შეიძლება საერთოდ არ იყოს მითითებული; ისინი ზრდის მოთხოვნის ტექსტის სიცხადეს და წაკითხვას.

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

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

// უნდა გავარკვიოთ, რომელი ბანკებია ამავე დროს
// კონტრაგენტები (იგივე სახელებია
//როგორც Counterparties დირექტორიაში, ასევე Banks დირექტორიაში).
აირჩიეთ

ბანკები.ლინკი როგორ ბანკი
დან

შიდა შეერთება
დირექტორია.ბანკები როგორ ბანკები
მიერ

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

კონტრაპარტიული ბანკი
JSCB PromStroyBank JSCB PromStroyBank

LEFT [OUTER] JOIN ნიშნავს, რომ შეკითხვის შედეგი უნდა შეიცავდეს ჩანაწერების კომბინაციებს ორივე წყაროს ცხრილიდან, რომლებიც აკმაყოფილებენ მითითებულ პირობას. მაგრამ, შიდა შეერთებისგან განსხვავებით, შეკითხვის შედეგი ასევე უნდა მოიცავდეს ჩანაწერებს პირველი წყაროდან (მითითებულია სიტყვის JOIN მარცხნივ), რომლისთვისაც მეორე წყაროდან არ მოიძებნა ჩანაწერები, რომლებიც ემთხვევა მდგომარეობას.

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

//აუცილებელია ანგარიშში ყველა კონტრაგენტის ჩვენება და მათთვის
// ვინც ასევე არის ბანკი - მიუთითეთ ბანკის ბმული.
აირჩიეთ
Counterparties.Link As Counterparty,
ბანკები.ლინკი როგორ ბანკი
დან
დირექტორია. კონტრაგენტები როგორ კონტრაგენტები
მარცხენა გარე შეერთება
დირექტორია.ბანკები როგორ ბანკები
მიერ
Counterparties.Name = Banks.Name

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

RIGHT [OUTER] JOIN ნიშნავს, რომ შეკითხვის შედეგი უნდა შეიცავდეს ჩანაწერების კომბინაციებს ორივე წყაროს ცხრილიდან, რომლებიც აკმაყოფილებენ მითითებულ პირობას. გარდა ამისა, შეკითხვის შედეგი ასევე უნდა მოიცავდეს ჩანაწერებს მეორე წყაროდან (მითითებულია სიტყვის CONNECTION მარჯვნივ), რომლისთვისაც პირველი წყაროდან არ მოიძებნა ჩანაწერები, რომლებიც ემთხვევა მდგომარეობას.

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

//აუცილებელია ანგარიშში ყველა ბანკის ჩვენება და მათთვის
// ვინც ასევე არის კონტრაგენტი - მიუთითეთ კონტრაგენტის ბმული.
არჩევა
Counterparties.Link As Counterparty,
ბანკები.ლინკი Like Bank
FROM
დირექტორია. კონტრაგენტები როგორ კონტრაგენტები
მარჯვენა გარე შეერთება
დირექტორია.ბანკები როგორ ბანკები
მიერ
Counterparties.Name = Banks.Name

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

კონტრაპარტიული ბანკი
NULL JSCB InvestBank
JSCB PromStroyBank JSCB PromStroyBank

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

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

// ანგარიშში აუცილებელია ყველა კონტრაგენტისა და ყველა ბანკის ჩვენება,
// და ვინც ორივე - ბეჭდვა ერთ ხაზზე.
აირჩიეთ
Counterparties.Link As Counterparty,
ბანკები.ლინკი როგორ ბანკი
დან
დირექტორია. კონტრაგენტები როგორ კონტრაგენტები
სრული გარე შეერთება
დირექტორია.ბანკები როგორ ბანკები
მიერ
Counterparties.Name = Banks.Name

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

მონაცემთა წყაროს მეტსახელები

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

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

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

წყაროებისთვის მეტსახელების მინიჭება თავისთავად არ ახდენს გავლენას მოთხოვნის მონაცემების შერჩევაზე.

// ეს მაგალითი გვიჩვენებს გამოყენებას
// მეტსახელის პროდუქტის შერჩევის ველების სიაში,
// მინიჭებული წყაროს ცხრილისთვის Directory.Nomenclature
აირჩიეთ
Პროდუქტის სახელი,
პროდუქტი.მშობელი
დან
დირექტორია.ნომენკლატურა.პროდუქტი

ჩადგმული ცხრილები წყაროს სიაში

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

//ანგარიშში აუცილებელია ინვოისების სპეციფიკაციის ჩვენება -
// აჩვენე თავად დოკუმენტი, ნომენკლატურა და რაოდენობა.
//წყაროების სია შეიცავს ჩადგმულ ცხრილს „კომპოზიცია“ -
// ინვოისის ტაბულური ნაწილი.
// შერჩევა შემოიფარგლება რვა ჩანაწერით, რათა არ გადაიტვირთოს მაგალითი.
აირჩიეთ პირველი 8
ბმული, ნომენკლატურა, რაოდენობა
დან
დოკუმენტი.ინვოისი.კომპოზიცია

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

Ბმული ნომენკლატურა რაოდენობა
ინვოისი 00007 25.02.2002 21:03:21 ჯინსი ქალებისთვის 4
ინვოისი 00006 25.02.2002 0:00:00 ჯინსი ქალებისთვის 5
ინვოისი 00006 25.02.2002 0:00:00 მაისური "Cowgirl" 5
ინვოისი 00005 03/01/2002 20:58:28 ჯინსი ქალებისთვის 1
ინვოისი 00004 03/01/2002 20:50:40 ჯინსი ქალებისთვის 1
ინვოისი 00003 23.02.2002 0:00:00 მოიდოდირ "აკვარიუმი" 5
ინვოისი 00003 23.02.2002 0:00:00 ნიჟარა "ლილი" 8
ინვოისი 00003 23.02.2002 0:00:00 მიქსერი "ულტრა" 10

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

ქვეშეკითხვები წყაროს სიაში

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

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

შედეგი ზუსტად იგივე იქნება, რაც წინა მაგალითში.

ანგარიშების გენერირება

მოთხოვნებთან მუშაობა

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

შეკითხვის მონაცემთა წყაროები

მოთხოვნა იღებს საწყის ინფორმაციას ცხრილების ნაკრებიდან. ეს ცხრილები წარმოადგენს მონაცემებს რეალური მონაცემთა ბაზის ცხრილებიდან ადვილად გასაანალიზებელი ფორმით. ისინი შეიძლება დაიყოს ორ დიდ ჯგუფად: რეალური და ვირტუალური.

რეალური ცხრილები, თავის მხრივ, შეიძლება იყოს ობიექტი (მინიშნება) ან არაობიექტი (არამინიშნება):

რეალური ცხრილების გამორჩეული თვისება ის არის, რომ ისინი შეიცავს მონაცემებს მონაცემთა ბაზაში შენახული ერთი რეალური ცხრილიდან. მაგალითად, რეალური ცხრილები არის ცხრილი "Directory.Clients", რომელიც შეესაბამება "Clients" დირექტორიას, ან ცხრილი "Accululation Register. Material Remaining" ცხრილი, რომელიც შეესაბამება "მატერიალური დარჩენილი" დაგროვების რეესტრს.

ვირტუალური ცხრილები ძირითადად ჩამოყალიბებულია მონაცემთა ბაზის მრავალი ცხრილიდან. მაგალითად, ვირტუალური ცხრილი არის ცხრილი "დაგროვების რეესტრი. მასალების ნაშთები. ნაშთები და ბრუნვები", რომელიც ჩამოყალიბებულია დაგროვების რეესტრის "მატერიალური ნარჩენები" რამდენიმე ცხრილიდან. ზოგჯერ ვირტუალური ცხრილები შეიძლება ჩამოყალიბდეს ერთი რეალური ცხრილიდან (მაგალითად, ვირტუალური ცხრილი „Prices.SliceLast“ იქმნება ინფორმაციის რეგისტრის ცხრილის „Prices“ საფუძველზე). თუმცა, ყველა ვირტუალურ ცხრილს საერთო აქვს ის, რომ მათ შეიძლება მიეცეს რამდენიმე პარამეტრი, რომელიც განსაზღვრავს თუ რა მონაცემები შედის ამ ვირტუალურ ცხრილებში. ასეთი პარამეტრების ნაკრები შეიძლება განსხვავებული იყოს სხვადასხვა ვირტუალური ცხრილისთვის და განისაზღვრება წყაროს მონაცემთა ბაზის ცხრილებში შენახული მონაცემებით.

რეალური ცხრილები იყოფა ობიექტურ (მინიშნება) და არაობიექტურ (არასაცნობარო) ცხრილებად.

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

ობიექტის (საცნობარო) ცხრილების გამორჩეული თვისება არის ის, რომ ისინი შეიცავს ველს „ბმული“, რომელიც შეიცავს ბმულს მიმდინარე ჩანაწერთან. გარდა ამისა, ასეთი ცხრილებისთვის შესაძლებელია ობიექტის მორგებული წარმოდგენის მიღება; ეს ცხრილები შეიძლება იყოს იერარქიული და ასეთი ცხრილების ველები შეიძლება შეიცავდეს ჩადგმულ ცხრილებს (ცხრილის ნაწილებს).

შეკითხვის ენა

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

    მოთხოვნის აღწერა,

    მოთხოვნების შერწყმა

    შედეგების შეკვეთა,

    ავტო შეკვეთა,

    შედეგების აღწერა.

მოთხოვნის ერთადერთი სავალდებულო ნაწილია პირველი - მოთხოვნის აღწერა. ყველა დანარჩენი იმყოფება საჭიროებისამებრ.

მოთხოვნის აღწერაგანსაზღვრავს მონაცემთა წყაროებს, შერჩევის ველებს, დაჯგუფებებს და ა.შ.

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

შედეგების ორგანიზებაგანსაზღვრავს შეკვეთის პირობებს შეკითხვის შედეგის რიგებისთვის.

ავტომატური შეკვეთასაშუალებას გაძლევთ ჩართოთ შეკითხვის შედეგების რიგების ავტომატური შეკვეთა.

შედეგების აღწერაადგენს, რომელი ჯამები უნდა გამოითვალოს მოთხოვნაში და როგორ დაჯგუფდეს შედეგები.

მოხსენება დოკუმენტების რეესტრი მომსახურების გაწევა

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

მოდით შევქმნათ ახალი კონფიგურაციის ობიექტი კონფიგურატორში: მოხსენება „მომსახურების საბუთების რეესტრი“. მოდით გადავიდეთ "განლაგება" ჩანართზე და გავუშვით გამომავალი ფორმის დიზაინერი.

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

  • "ოსტატი",

    "კლიენტი":

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

ამის შემდეგ, მოდით გადავიდეთ ჩანართზე „შეკვეთა“ და მივუთითოთ, რომ მოთხოვნის შედეგი ჯერ უნდა დალაგდეს ველის „თარიღი“ და შემდეგ „მომსახურების უზრუნველყოფა. ბმული“ ველის მნიშვნელობით:

მოდით გადავიდეთ "ანგარიშის" ჩანართზე და გადავაყენოთ "გამოიყენეთ ანგარიშის შემქმნელი" დროშა:

მოდით გადავაყენოთ დროშა „გამოიყენეთ ანგარიშის შემქმნელი“...

დააჭირეთ "OK". დიზაინერი შექმნის მოხსენების ფორმას და განლაგებას. გავხსნათ ფორმის მოდული და ვიპოვოთ მასში პროცედურა „მომსახურების საბუთების რეესტრი“. ამ პროცედურაში, როგორ წარმოიქმნება მოთხოვნის ტექსტი, რომელიც გამოყენებული იქნება ჩვენთვის საინტერესო მონაცემების მისაღებად:

Query.Text = „SELECT

მომსახურების მიწოდება.თარიღი AS თარიღი,

მომსახურების მიწოდება ნომერი AS ნომერი,

მომსახურების მიწოდება საწყობი,

მომსახურება, საწყობი, პრეზენტაცია,

სერვისების მიწოდება.

სერვისების მიწოდება ოსტატი პრეზენტაცია,

მომსახურების მიწოდება კლიენტი,

მომსახურების გაწევა კლიენტი წარმომადგენლობა

დოკუმენტი.მომსახურების მიწოდება როგორ მივაწოდოთ მომსახურება

ᲓᲐᲚᲐᲒᲔᲑᲐ

მოთხოვნის ტექსტი იწყება, როგორც ზემოთ ვთქვით, მოთხოვნის აღწერილობის ნაწილით:

I მომსახურების მიწოდება. თარიღი AS თარიღი,

I მომსახურების მიწოდება ნომერი AS ნომერი,

I მომსახურების გაწევა, საწყობი,

I მომსახურების გაწევა.საწყობი.პრეზენტაცია.

მე გთავაზობთ მომსახურებას.

I მომსახურების მიწოდება, ოსტატი, პრეზენტაცია,

I მომსახურების მიწოდება კლიენტი,

1 მომსახურების გაწევა კლიენტები წარმომადგენლობა

I დოკუმენტი.მომსახურების მიწოდება როგორ მივაწოდოთ მომსახურება

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

IZ საკვანძო სიტყვის შემდეგ მითითებულია მონაცემთა წყაროები - ორიგინალური მოთხოვნის ცხრილები, რომელთა შინაარსი დამუშავებულია მოთხოვნაში. ამ შემთხვევაში ეს არის ობიექტის (საცნობარო) ცხრილი „დოკუმენტი.მომსახურების მიწოდება“. საკვანძო სიტყვის შემდეგ ᲠᲝᲒᲝᲠმითითებულია ფსევდონიმიმონაცემთა წყარო. ჩვენს შემთხვევაში, ეს არის "მომსახურების მიწოდება". მომავალში, მონაცემთა ამ წყაროზე წვდომა შესაძლებელია მოთხოვნის ძირში, მეტსახელის გამოყენებით.

ჩვენ ვხედავთ ამ ზარს შერჩევის ველების აღწერაში:

| მომსახურების მიწოდება.თარიღი AS თარიღი,

| მომსახურების მიწოდება ნომერი AS ნომერი,

| მომსახურების მიწოდება საწყობი,

| მომსახურება, საწყობი, პრეზენტაცია,

| სერვისების მიწოდება.

| სერვისების მიწოდება ოსტატი პრეზენტაცია,

| მომსახურების მიწოდება კლიენტი,

| მომსახურების გაწევა კლიენტი წარმომადგენლობა

შერჩევის ველებს ასევე შეიძლება ჰქონდეთ მეტსახელები, რომლებიც შეიძლება გამოყენებულ იქნას ამ ველის მითითებისთვის მოგვიანებით მოთხოვნის ტექსტში. ჩვენს შემთხვევაში, ეს არის მეტსახელები "თარიღი" და "ნომერი".

ჩვენს მაგალითში მოთხოვნის აღწერის ნაწილის შემდეგ მოდის შედეგის შეკვეთის ნაწილი:

|შეკვეთა

| თარიღი, | ნომერი";

შეთავაზება ᲓᲐᲚᲐᲒᲔᲑᲐსაშუალებას გაძლევთ დაალაგოთ რიგები შეკითხვის შედეგში. ამ საკვანძო პუნქტის შემდეგ არის შეკვეთის გამოხატულება, რომელიც, ზოგადად, არის ველების (გამოხატების) და გამომავალი რიგის ჩამონათვალი. ჩვენს შემთხვევაში შეკვეთა შესრულდება ჯერ შერჩევის ველით, რომელზედაც წვდომა ხდება ფსევდონიმით - "კოდი", შემდეგ კი ველით - "ნომერი". ორივე შემთხვევაში დალაგების თანმიმდევრობა იქნება აღმავალი, რაც არის ნაგულისხმევი დალაგების თანმიმდევრობა.

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

საპროცედურო დოკუმენტების რეესტრი მომსახურების გაწევა (TabDoc) ექსპორტი

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

Layout = GetLayout ("მომსახურების მომწოდებელი დოკუმენტების რეგისტრაცია"); მოთხოვნა = ახალი მოთხოვნა;

შედეგი = Query.Run();

HeaderArea = Layout.GetArea("Header"); ფართობი სარდაფი =

Layout.GetArea ("TableFooter"); DetailRecordsArea =

TabDoc.Output(TableHeadArea); TabDoc.StartAutogruttingRows();

SelectDetails = Result.Select();

ხოლო SelectDetails.NextFunctions() ციკლი

AreaDetailRecords.Parameters.Fill(SelectionDetails);

TabDoc.Output(RecordsDetailsArea,DetailsSelection.Level()); საბოლოო ციკლი;

/L)CONSTRUCTOR_OUTPUT_FORM დასრულების პროცედურა

ანგარიშის ფორმა შეიცავს საკონტროლო ელემენტს TabularDocumentFieldსახელწოდებით "TabDoc", რომელიც ივსება დიზაინერის მიერ გენერირებული განლაგების მიხედვით მონაცემებით.

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

HeaderArea = Layout.GetArea("Header"); ფართობი სარდაფი =

Layout.GetArea ("სარდაფი"); TableHeaderArea =

Layout.GetArea ("TableHeader"); TableFooterArea =

Layout.GetArea ("TableFooter"");DetailRecordsArea =

Layout.GetArea ("დეტალები");

შემდეგ ვასუფთავებთ ცხრილის დოკუმენტს და ვაჩვენებთ იმ უბნებს, რომლებიც არ შეიცავს შეკითხვის შედეგიდან მიღებულ მონაცემებს:

TabDoc.Clear(); TabDoc.Output(AreaHeader);

TabDoc.Output(TableHeadArea); TabDoc.StartAutoGroupingRows();

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

ამის შემდეგ, ჩვენ ვიღებთ არჩევანს შეკითხვის შედეგიდან, რომელსაც გავდივართ ციკლში:

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

პროცედურის დასასრულს, ჩვენ ვაჩვენებთ განლაგების საბოლოო უბნებს ცხრილების დოკუმენტში:

TabDoc.FinishAutoGroupingRows();

TabDoc.Output(TableFooterArea);

TabDoc.Output(AreaFooter);

ახლა მოდით გავუშვათ 1C: Enterprise გამართვის რეჟიმში და გადავხედოთ ჩვენი მოხსენების შედეგს:

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

ანგარიში „მომსახურების რეიტინგი“ შეიცავს ინფორმაციას იმის შესახებ, თუ რომელმა სერვისებმა მოუტანა შპს Master of All Trades-ს ყველაზე დიდი მოგება მითითებულ პერიოდში. მაგალითად, „სერვისის რეიტინგის“ მოხსენების გამოყენებით, ჩვენ ილუსტრირდებით, თუ როგორ უნდა აირჩიოთ მონაცემები გარკვეული პერიოდის განმავლობაში, როგორ დავაყენოთ მოთხოვნის პარამეტრები და როგორ გამოვიყენოთ რამდენიმე ცხრილის მონაცემები შეკითხვაში და ჩავრთოთ ყველა მონაცემი ერთ-ერთი წყაროდან. შეკითხვის შედეგი.

მოდით შევქმნათ ახალი კონფიგურაციის ობიექტი "სერვისის რეიტინგი" ანგარიში. მოდით გადავიდეთ "Layouts" ჩანართზე და გამოვიძახოთ გამომავალი ფორმის კონსტრუქტორი.

ავირჩიოთ დირექტორია "ნომენკლატურა" ობიექტის (საცნობარო) ცხრილი და დაგროვების რეესტრის ვირტუალური ცხრილი "გაყიდვები.ბრუნვა". მოთხოვნაში სახელების ბუნდოვანების აღმოსაფხვრელად, ცხრილს „ნომენკლატურა“ ვუწოდებთ „SprNomenclature“-ს (დააწკაპუნეთ მარჯვენა ღილაკით კონტექსტურ მენიუში).

შემდეგ მოათავსეთ კურსორი "SalesTurnover" მაგიდაზე და გამოიძახეთ დიალოგი ვირტუალური ცხრილის პარამეტრების შესაყვანად:

გახსენით დიალოგი ვირტუალური ცხრილის პარამეტრების შესაყვანად

აღვნიშნოთ, რომ პერიოდის დასაწყისი და დასასრული გადაეცემა შესაბამის პარამეტრებში "დაწყების თარიღი" და "დასასრულის თარიღი" (სახელის წინ სიმბოლო "&" მიუთითებს, რომ ეს არის მოთხოვნის პარამეტრი):

შემდეგ ცხრილებიდან აირჩიეთ ველები „SprNomenclature.Link“ და „SalesTurnover.RevenueTurnover“:

SprNomenclature.პრეზენტაცია

გაყიდვების ბრუნვა შემოსავალი

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

ერთადერთი რაც დაგვრჩა არის რეგისტრის ცხრილისთვის "ყველა" დროშის გადატვირთვა და დირექტორიაში ცხრილისთვის დაყენება.

ჩვენ შევარჩევთ ყველა ელემენტს "ნომენკლატურის" დირექტორიადან

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

მოდით გადავიდეთ "პირობების" ჩანართზე და დავაყენოთ პირობები "ნომენკლატურის" დირექტორიადან ელემენტების არჩევისთვის. შერჩევის პირობების დაყენებისას კვლავ გამოვიყენებთ შეკითხვის პარამეტრებს. პირველი პირობა უნდა იყოს, რომ არჩეული ელემენტი არ იყოს ჯგუფი (ამის გასაკეთებლად, გადართეთ "მორგებული მდგომარეობა" რეჟიმში).

მეორე პირობა უნდა იყოს, რომ არჩეული ელემენტი იყოს სერვისი (ეს არის „მარტივი მდგომარეობა“):

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

მოდით გადავიდეთ ჩანართზე „ასოციაციები / ალიასები“ და დავაზუსტოთ, რომ დირექტორიაში ერთეულის ხედს ექნება მეტსახელი „სერვისი“, ხოლო რეგისტრის ველს ექნება მეტსახელი „შემოსავლები“:

გადავიდეთ ჩანართზე „შეკვეთა“ და მივუთითოთ, რომ მოთხოვნის შედეგი უნდა იყოს დალაგებული „შემოსავლის“ ველის მნიშვნელობის კლებადობით.

"სულების" ჩანართზე ჩვენ განვსაზღვრავთ, რომ ჩვენ გვჭირდება ზოგადი ჯამების ჩვენება და ისინი უნდა იყოს მნიშვნელობების ჯამი "შემოსავლის" ველში:

"ანგარიშის" ჩანართზე გაასუფთავეთ დროშა "გამოიყენეთ ანგარიშის შემქმნელი".

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

დააჭირეთ "OK". პლატფორმა გამოიმუშავებს განლაგებას და ანგარიშის ფორმას.გახსენით ფორმის მოდული და იპოვეთ მასში „სერვისის რეიტინგი“ პროცედურა.

ამ პროცედურაში, იმ ნაწილში, სადაც მითითებულია მოთხოვნის პარამეტრები, ჩვენ განვსაზღვრავთ პარამეტრის "ნომენკლატურის ტიპი" მნიშვნელობას (შესწორებები მონიშნულია თამამად):

| მარცხნივ კავშირი რეგისტრაცია დაგროვება. გაყიდვები, ბრუნვა (&დაწყების თარიღი,

| &Ვადის გასვლის თარიღი,)

| როგორ გავყიდოთ ბრუნვა

|შეკვეთა | შემოსავალი DOWN

|შედეგების თანხა (შემოსავლები) | ᲡᲐᲔᲠᲗᲝᲐ";

RequestSetParameterC"ნომენკლატურის ტიპი",

გადარიცხვები.ნომენკლატურის სახეები.მომსახურება);

Query.SetParameter ("StartDate",StartDate); Request.SetParameterC"EndDate", EndDate);

ახლა მოდით შევხედოთ კონსტრუქტორის მიერ გენერირებულ მოთხოვნის ტექსტს:

| SprNomenclature.Representation AS წარმომადგენლობა,

|გაყიდვების ბრუნვა.შემოსავლები შემოსავალი AS შემოსავალი

| დირექტორია.Nomenclature AS RefNomenclature

მარცხნივ კავშირი RegisterAcumulations.Sales.Turnover(&დაწყების თარიღი,

| როგორ გავყიდოთ ბრუნვა

| პროგრამული უზრუნველყოფის SalesTurnover.Nomenclature = SprNomenclature.Link

| (RefNomenclature.ThisGroup = False) და

| SprNomenclature.Type of Nomenclature = &Type of Nomenclature

|შეკვეთა

| შემოსავალი DOWN

|შედეგების თანხა (შემოსავლები) BY

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

მოთხოვნის წყაროების აღწერისას (IZ საკვანძო სიტყვის შემდეგ) გამოიყენეს მოთხოვნის რამდენიმე წყაროს განსაზღვრის შესაძლებლობა:

| დირექტორია.Nomenclature AS RefNomenclature

|&დამთავრების თარიღი,)

| როგორ გავყიდოთ ბრუნვა

| პროგრამული უზრუნველყოფის SalesTurnover.Nomenclature = SprNomenclature.Link

ამ შემთხვევაში, ჩანაწერები შეირჩევა ორი წყაროდან: „SprNomenklatura“ და „SalesTurnover“, საკვანძო წინადადებით. მარცხენა კავშირი... BYაღწერს ამ ორი წყაროს ჩანაწერების გაერთიანების გზას.

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

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

| RegisterAccumulations.Sales.Turnover(&დაწყების თარიღი, &დამთავრების თარიღი,)

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

თუ წინასწარ ცნობილია, რომ მომხმარებელი არ იქნება დაინტერესებული მოხსენების შედეგებით წამების სიზუსტით მითითებულ პერიოდებში, მაშინ გასათვალისწინებელია შემდეგი ფუნქცია: ნაგულისხმევად, თარიღში დრო დაყენებულია 00-ზე. :00:00. ამიტომ, თუ არ მიიღებთ განსაკუთრებულ ზომებს, გამოდის, რომ როდესაც მომხმარებელი ადგენს საანგარიშო პერიოდს 01/03/2004-დან 31/03/2004 წლამდე, რეესტრის ჯამები გამოითვლება 03/01/ დღის დასაწყისიდან. 2004 00:00:00 დღის დასაწყისამდე 03/31/2004 00:00:00. ამრიგად, 31-ე დღის მონაცემები, გარდა დღის დასაწყისისა, არ ჩაირთვება გაანგარიშებაში, რაც დიდად გააკვირვებს მომხმარებელს.

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

პირველ რიგში, ანგარიშის ფორმაში შეზღუდეთ მომხმარებლის შესაძლებლობა შეიყვანოს დაწყების თარიღი და დასრულების თარიღი თარიღის შემადგენლობის დაყენებით შესაბამისი შეყვანის ველებისთვის, როგორც „თარიღი“:

განვსაზღვროთ თარიღის შემადგენლობა...

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

ProcedureFormActionsRatingServicesGenerate(Button) //((CONSTRUCTOR_WEEKEND_FORM_PROCEDURE_CALL(RatingServices) //ეს ფრაგმენტი აშენებულია კონსტრუქტორის მიერ. // კონსტრუქტორის ხელახლა გამოყენებისას, // ხელით შეტანილი ცვლილებები დაიკარგება!!!

TabDoc = FormElements.TableField;

//))CONSTRUCTOR_OUTPUT_FORM_CALL_PROCEDURE

Co. netპროცედურები

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

| SprNomenclature.Representation AS წარმომადგენლობა,

| SalesTurnover.RevenueTurnover AS შემოსავალი

| დირექტორია.Nomenclature AS RefNomenclature

| მარცხნივ კავშირი RegisterAcumulations.Sales.Turnover(&დაწყების თარიღი,

| &Ვადის გასვლის თარიღი,

| როგორ გავყიდოთ ბრუნვა

| Software SalesTurnover.Nomenclature = SprNomenclature.Ssshka

| SprNomenclature.ThisGroup = False AND

| SprNomenclature.Type of Nomenclature = &Type of Nomenclature

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

RESULTS AMOUNT (შემოსავლები) PO

ის ყოველთვის იწყება საკვანძო სიტყვით შედეგები,რასაც მოჰყვება აღწერა, თუ რა ჯამები იქნება შეკითხვის შედეგში. სიტყვის შემდეგ მაშინვე შედეგებიაღწერს საერთო ფუნქციებს, რომლებიც უნდა გამოითვალოს შედეგებში. ჩვენს შემთხვევაში გამოითვლება თანხა „შემოსავლის“ ველში. ამას მოსდევს საკვანძო სიტყვა PO, რის შემდეგაც აღწერილია დაჯგუფებები, რომლებშიც ჯამები უნდა გამოითვალოს. ჩვენს შემთხვევაში ისინი არ არიან და გამოიყენება მხოლოდ საკვანძო სიტყვა ᲡᲐᲔᲠᲗᲝᲐ,რაც მიუთითებს იმაზე, რომ ჯამები გამოითვლება მთლიანი ცხრილისთვის.

ახლა, როდესაც დავასრულეთ მოთხოვნის ტექსტის გაცნობა, მოდით გავუშვათ 1C: Enterprise გამართვის რეჟიმში და ვნახოთ, როგორ მუშაობს ჩვენი ანგარიში.

დავადგინოთ საანგარიშო პერიოდი 01/03/2004 წლიდან 30/04/2004 წლამდე. შედეგი ასე გამოიყურება:

ახლა მოდით შევცვალოთ დასრულების თარიღი 03/31/2004 და დავრწმუნდეთ, რომ 31 მარტის მონაცემები შედის ანგარიშში: