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

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

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

ანგარიშის შემქმნელი 1C- ში - რა არის ეს?

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

  1. შეკითხვის შესრულების შედეგი;
  2. ცხრილების დოკუმენტის უჯრედების ფართობი;
  3. დოკუმენტის ან ცნობარის წიგნის ცხრილი;
  4. რეგისტრის ჩანაწერების ნაკრები.

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

ფიგურა 1 გვიჩვენებს კოდის ნაწილს, რომელიც საშუალებას გაძლევთ აჩვენოთ თვითნებური მნიშვნელობების ცხრილი "Report Builder" - ის გამოყენებით

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

სხვათა შორის, ნახაზზე ნაჩვენები კოდის შესრულების შედეგი ჩანს ნახაზზე 2

ნახ. 2

მშენებლის დაყენება

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

ACS- ის მსგავსად, მშენებელი მოიცავს:

  • დაჯგუფება (იერარქიის დონე ინფორმაციის ჩვენებისას);
  • ინდიკატორები (მნიშვნელობები, რომელთა მიღებაც გსურთ);
  • დამატებითი გამოთვლილი ველები (ელემენტების ატრიბუტები, მოქმედებების შედეგები მნიშვნელობებით);
  • ფილტრები (არჩევანი);
  • დალაგება.

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

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

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

  1. ჩვენ ვაცხადებთ ReportBuild ტიპის ახალი ობიექტის შექმნას;
  2. ამ ეტაპზე შეგიძლიათ გამოიყენოთ QueryBuilder, ტექსტის შესაქმნელად, ან DataSource Description ობიექტის გამოყენებით, გამოიყენოთ არსებული შერჩევა;
  3. ანგარიშის შემქმნელის პარამეტრების დაყენება შესაძლებელია შემქმნელის ობიექტის მეთოდის გამოყენებით FillSettings ();
  4. თქვენ შეგიძლიათ უარი თქვათ სტანდარტული დიზაინის განლაგების გამოყენებაზე, რომელიც შექმნილია ავტოგენერაციის მეთოდით, მშენებელში განლაგების ობიექტის თვისების განსაზღვრით
  5. თუ DataSourceDescription არ არის გამოყენებული, ამ ეტაპზე აუცილებელია მოთხოვნის შესრულება, გამოიყენეთ Execute () მეთოდი;
  6. ბოლო ნაბიჯი არის გამოტანის () მეთოდის გაშვება, გამომავალი შეიძლება გაკეთდეს ცხრილების დოკუმენტში, ან შესაბამისი ფორმის ელემენტში.

დეშიფრაციის გამოყენება მშენებელში

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

ამისათვის ჩვენ გამოვიყენეთ FillDecryption თვისება. ამ თვისების ტიპია ReporterDecodingFillType, მას შეუძლია მიიღოს სამი მნიშვნელობიდან ერთი:

  1. დაჯგუფების მნიშვნელობები - უჯრედის გააქტიურებისას გამოყენებული იქნება მასში მითითებული დაჯგუფების მნიშვნელობა;
  2. არ შეავსო - ნაგულისხმევი მნიშვნელობა, რაც ნიშნავს, რომ საბოლოო შედეგისთვის გაშიფვრა არ იქნება გამოყენებული;
  3. გაშიფვრა - გაშიფვრის სტრუქტურა შეივსება ორიგინალი ნიმუშის ყველა ჯგუფის მნიშვნელობებით.

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

ნახ .3

მშენებლის გამოყენების მაგალითი ანგარიშში შერჩევის ჩასატარებლად

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

  1. დავიწყოთ შექმნით გარე ანგარიშიდა მას დაემატება ატრიბუტი თვითნებური სახელით და აკრეფით Report Builder (ნახ .4);

ნახ .4

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

ნახ. 5

  1. ჩვენ ვქმნით OnOpen () პროცედურას, რომელიც ასოცირდება ჩვენი ფორმის შესაბამის მოვლენასთან;

ნახ .6

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

ნახ .7

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

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

ნახ .8

  1. ჩვენ ვინახავთ ჩვენს ანგარიშს.

ჩვენ მიერ შექმნილი ანგარიშის სახე და მისი შედეგი ნაჩვენებია ნახაზზე 9

ნახ .9

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

1. რა არის ანგარიშების შემქმნელი?

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

Report Builder- ის პარამეტრები მოიცავს:

  • დაჯგუფებები (მაგალითად: "ნომენკლატურა", "კონტრაგენტი" ...),
  • ინდიკატორები (მაგალითად: ”რაოდენობა”, ”თანხა” ...),
  • დამატებითი ველები (მაგალითად: ”ნომენკლატურა. სერვისი”, ”კონტრპარტის. კოდი” ...),
  • ფილტრი (მაგალითად: კონკრეტული ნივთისთვის, მხარეთა ჯგუფისთვის ...) და
  • დახარისხება (მაგალითად: "ნომენკლატურა. კოდი", "კონტრპარტი. სახელი" ...)

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

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

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

2. სად შეგიძლიათ გამოიყენოთ Report Builder?

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

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

ვინაიდან ანგარიშის შემქმნელი არ არის ხელმისაწვდომი 1C: Enterprise სერვერზე და არ გამოიყენება გარე კავშირის მოდულში, ამ შემთხვევებში საჭიროა შეკითხვის მშენებელი, რომელიც მსგავსია ანგარიშის შემქმნელის, მაგრამ არ გააჩნია ვიზუალური თვისებები და მეთოდები ("განლაგება", "OutputReportHeader", "გამომავალი ()", "CheckoutLayout ()" ...).

3. ცოტათი ცნებების შესახებ

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

Შინაარსი

აღწერა

ხაზის გაზომვები დაჯგუფებების სია, რომელთა საშუალებითაც განხორციელდება გამომავალი სტრიქონების მიხედვით (მაგალითად: "ნომენკლატურა", "კონტრაგენტი" ...)
სვეტის გაზომვები დაჯგუფებების სია, რომლის მიხედვითაც განხორციელდება გამომავალი სვეტები (მაგალითად: "საწყობი", "თვე" ...).
შერჩევა სხვადასხვა ფილტრების ნაკრები (მაგალითად: კონტრაქტორების ჯგუფის მიერ, მოცემული ორგანიზაციის მიერ ...).
შეკვეთა დალაგების ველების ნაკრები (მაგალითად: "ნომენკლატურა. კოდი", "DocumentSales.Responsible" ...).
ველი მოთხოვნის შერჩევის ერთ-ერთი ველი (მაგალითად: ”ნომენკლატურა”, ”Counterparty.code”, ”რაოდენობა”, ”თანხა” ...).
არჩეული ველები შერჩეული ველების ჩამონათვალში შედის ინდიკატორები (მაგალითად: ”რაოდენობა”, ”თანხა” ...) და დამატებითი ველები (დაჯგუფების დეტალები) (მაგალითად: ”Nomenclature.Group”, ”Counterparty.code” ...).
ხელმისაწვდომი ველები ველების სია, რომელთა დამატება შესაძლებელია დაჯგუფების, ფილტრაციის, დალაგების და შერჩეული ველების დამატებაში. როგორც წესი, იგი შევსებულია შეკითხვის შერჩევის ველების სიით, მაგრამ მისი პროგრამულ რედაქტირება შესაძლებელია (შესაძლებელია ველების დამატება, შეცვლა და წაშლა).

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

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

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

4. ანგარიშის შემქმნელის ტიპიური გამოყენების შემთხვევა

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

  1. შექმენით ახალი ობიექტი ”Report Builder”;
  2. თხოვნის ტექსტი მიანიჭეთ "ტექსტს" თვისებას;
  3. თუ ანგარიშის შემქმნელის პარამეტრები არ იყო მითითებული შეკითხვის ტექსტში, შეასრულეთ მეთოდი "FillSettings ()";
  4. მიეცით მომხმარებელს ანგარიშის შემქმნელის პარამეტრების შეცვლის შესაძლებლობა;
  5. საჭიროების შემთხვევაში, თქვენ შეგიძლიათ უარი თქვათ ანგარიშის შემქმნელის განლაგების ავტომატურად შექმნაზე და მიანიჭოთ ფიქსირებული განლაგება განლაგების თვისებას;
  6. საჭიროების შემთხვევაში, თქვენ შეგიძლიათ მიანიჭოთ ერთ-ერთი სტანდარტული ან საკუთარი განლაგება "განლაგების" თვისებას, ხოლო თუ ანგარიშის შემქმნელის ავტოგენერირებული განლაგება შეიცვალა ფიქსირებულით, შეასრულეთ მეთოდი "შეკვეთის განლაგება ()";
  7. დარეკეთ "Run ()" მეთოდით;
  8. დარეკეთ "გამომავალი ()" მეთოდით.
მშენებელი = ახალი "რეპორტის შემქმნელი"; Postroitel.Tekst = "აირჩიეთ რეზოლუცია | DenezhnyeSredstvaKompaniiOstatki.StrukturnayaEdinitsa, | ოდენობა (DenezhnyeSredstvaKompaniiOstatki.SummaOstatok) ჯამის | | FROM | RegistrNakopleniya.DenezhnyeSredstvaKompanii.Ostatki ((StrukturnayaEdinitsa *)). | | დაჯგუფება | DenezhnyeSredstvaKompaniiOstatki.StrukturnayaEdinitsa | | მთლიანი შედეგები (თანხა) ავტორი | ზოგადი, | სტრუქტურული ერთეული »; Builder.FillSettings (); // აქ შეგიძლიათ მომხმარებელს მისცეთ შესაძლებლობა // შეცვალოს ანგარიშის შემქმნელის პარამეტრები Builder.Layout = GetLayout ("CustomLayout");
Builder.Layout Skins = GetLayoutLayout (StandardLayout.Classic);
Builder.CheckLayout ();
მშენებელი. გაუშვით ();
მშენებელი. ჩვენება ();

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

ქონება

აღწერა

ტექსტი შეიცავს ანგარიშის შემქმნელის მოთხოვნის ტექსტს. თუ ანგარიშის შემქმნელის შეკითხვის ტექსტი არ შეიცავს პარამეტრების ”(…)”, მაშინ შეგიძლიათ გამოიყენოთ FillSettings () მეთოდი, რომ ავტომატურად შეავსოთ პარამეტრები მოთხოვნის ტექსტის საფუძველზე.
TextHeader ტექსტი, რომელიც ნაჩვენები იქნება ანგარიშის სათაურში (მაგალითად: ”საფონდო ბალანსი 01.01.2004 წლის მდგომარეობით”, ”გაყიდვები 2004 წლის იანვრისთვის” ...).
OutputReport სათაური
DisplayHatTable
ShowGeneralResults
ეკრანის საცხობი მაგიდები
DisplayFooterReport
ეს თვისებები განსაზღვრავს, ნაჩვენებია, შესაბამისად, ანგარიშის სათაური, ცხრილის სათაური, ჯამური თანხები, ცხრილის ქვედა კოლონტიტული და ანგარიშის ქვედა კოლოფი.
DisplayDetailedRecords ქონება პასუხისმგებელია დეტალური ჩანაწერების იძულებით ჩვენებაზე ან აკრძალვაზე.
AutoDetailedRecords თუ თვისება "AutoDetailedRecords" დაყენებულია True, მაშინ თითოეული დეტალური ჩანაწერი გამოჩნდება მხოლოდ იმ შემთხვევაში, თუ იგი განსხვავდება ჯგუფისგან.
ხელმისაწვდომი ველები შეიცავს ველების ჩამონათვალს ჯგუფებში დამატება, ფილტრი, არჩეული ველები და დასალაგებლად.
გაზომვები სიმები
გაზომვების სვეტები
შეიცავს ჯგუფების ჩამონათვალს, შესაბამისად, მწკრივების მიხედვით და სვეტების მიხედვით.
შერჩევა შეიცავს ანგარიშის შემქმნელის მიერ განსაზღვრულ ფილტრების ჩამონათვალს.
SelectedFields შეიცავს შერჩეული ინდიკატორებისა და დაჯგუფების ატრიბუტების ჩამონათვალს.
შეკვეთა შეიცავს დალაგების ველების ჩამონათვალს.
Პარამეტრები შეიცავს მშენებლის პარამეტრების ჩამონათვალს (დეკლარირებულია მშენებლის მოთხოვნის ტექსტში ”&” სიმბოლოს გამოყენებით).
შედეგი შეიცავს ანგარიშის შემქმნელის მოთხოვნის შესრულების შედეგს (QueryResult ტიპის ობიექტი).

6. ჩანაწერების დამუშავება ანგარიშის შემქმნელთან

"FillDecryption" თვისება შეიცავს პროდუქტში დეშიფრაციის შევსების სამ ვარიანტს:

1-ლი ვარიანტი: არ შეავსოთ (არ გამოიყენოთ გაშიფვრა).

მე -2 ვარიანტი: დაჯგუფების მნიშვნელობები (უჯრედის გაშიფვრისას, გაიხსნება მასში ნაჩვენები დაჯგუფების მნიშვნელობა).

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

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

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

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

7. რეპორტინგი

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

თვისებები "ReportHeader Layout", "TableHeader Layout", "DetailRecords Layout", "GeneralTotals Layout", "TableFootboard Layout" და "ReportFootboard Layout" შეიცავს ტერიტორიის სახელს ანგარიშის შემქმნელის განლაგებაში ან ინდივიდუალური განლაგებები, რომლებიც გამოიყენება გამომავალში, შესაბამისად ცხრილი, ანგარიშის სათაური, ზედა კოლონტიტულის ჯამი, ცხრილის ქვედა კოლონტიტული და ქვედა კოლონტიტული ცხრილების დოკუმენტში. თუ არეების სახელები ემთხვევა ანგარიშების შემქმნელის განლაგების სახელებს, თქვენ არ გჭირდებათ თვისებების შევსება.

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

დიზაინის ერთ-ერთი სტანდარტული ვარიანტის მისაღებად შეგიძლიათ გამოიყენოთ ”GetDesignLayout ()” გლობალური კონტექსტური მეთოდი.

თუ ანგარიშის შემქმნელის "განლაგების" თვისებას მიენიჭა ფიქსირებული განლაგება, მისი დიზაინისთვის საჭიროა მეთოდი "შეკვეთის განლაგება ()".

თვისება "PlacementDimensionsInstrings" განსაზღვრავს მწკრივების მიხედვით დაჯგუფებების ასახვის სამ ვარიანტს.
1-ლი ვარიანტი: ერთად (ერთ სვეტში).
მაგალითი:

მე -2 ვარიანტი: ცალკე (სხვადასხვა სვეტში).
მაგალითი:


მაგალითი:

"PlacementDimensionsInColumns" თვისება განსაზღვრავს სვეტების მიხედვით დაჯგუფებების ჩვენების სამი ვარიანტიდან ერთს.
1-ლი ვარიანტი: ერთად (ერთ ხაზზე).
მაგალითი:

მე -2 ვარიანტი: ცალკე (სხვადასხვა სტრიქონში).
მაგალითი:

მე -3 ვარიანტი: ცალკე და მხოლოდ ჯამურად.
მაგალითი:

"PlacementTotalsInLows" თვისება განსაზღვრავს მწკრივში ჯამური თანხების ჩვენების ოთხ გზას.
1-ლი ვარიანტი: სათაურში (მხოლოდ შემდგომი დაჯგუფებების და დეტალური ჩანაწერების ზემოთ).

მე -2 ვარიანტი: სათაურში და ქვედა კოლონტიტულში (ზემოთ და ქვემოთ მომდევნო დაჯგუფებებში და დეტალების ჩანაწერებში).

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

მე -4 ვარიანტი: მხოლოდ სარდაფში (მხოლოდ შემდგომი დაჯგუფებების და დეტალური ჩანაწერების ქვემოთ).

საკუთრება შედეგების განთავსება სვეტებში”განსაზღვრავს სვეტებში ჯამური გამოსახულების ოთხი მეთოდიდან ერთს.

პირველი ვარიანტი: სათაურში (მხოლოდ შემდგომი დაჯგუფებების მარცხნივ და დეტალური ჩანაწერები).

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

მე -3 ვარიანტი: სარდაფში (შემდგომი დაჯგუფებების და დეტალური ჩანაწერების მარჯვნივ, მათგან მარცხნივ ნაჩვენებია მხოლოდ დაჯგუფების აღწერა).

მე -4 ვარიანტი: მხოლოდ სარდაფში (მხოლოდ შემდგომი დაჯგუფების და დეტალური ჩანაწერების მარჯვნივ).

საკუთრება განლაგების განზომილების ატრიბუტების განთავსება”ადგენს ატრიბუტების დაჯგუფების ხაზების მიხედვით ასახვის სამ ვარიანტს.

პირველი ვარიანტი: ერთად (ერთ დამატებით სვეტში).
მაგალითი:

მე -2 ვარიანტი: გაზომვებთან ერთად (სვეტებში დაჯგუფებები).
მაგალითი:

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

საკუთრება განთავსება DimensionAttributes სვეტები”განსაზღვრავს სვეტების მიხედვით დაჯგუფების დეტალების ჩვენების სამი ვარიანტიდან ერთს.

1-ლი ვარიანტი: ერთად (ერთ დამატებით სტრიქონში).
მაგალითი:

მე -2 ვარიანტი: გაზომვებთან ერთად (ჯგუფებად დაჯგუფებული მწკრივები).
მაგალითი:

მე -3 ვარიანტი: ცალკე (სხვადასხვა დამატებით ხაზებში).
მაგალითი:

8. ანგარიშის შემქმნელის შედეგები

"Run ()" მეთოდი ასრულებს ანგარიშის შემქმნელის მოთხოვნას და ავსებს "შედეგის" თვისებას.
GetRequest () მეთოდის გამოყენებით შეგიძლიათ მიიღოთ ანგარიშის შემქმნელის მოთხოვნა, რომელიც შესრულდება Run () მეთოდის გამოძახებისას.

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

ახალი ცხრილების დოკუმენტზე გამოტანის მაგალითი:
მშენებელი. ჩვენება ();

არსებული ცხრილების დოკუმენტზე გამოტანის მაგალითი:
Builder.Output (FormElement.ResultTable);

დიაგრამაზე გამომავალი მაგალითი:
Builder.Output (FormElement.ResultDiagram, "რაოდენობა");

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

9. მშენებლის პარამეტრების შენახვა და აღდგენა

"GetSettings ()" მეთოდი საშუალებას გაძლევთ მიიღოთ ანგარიშის შემქმნელის ამჟამინდელი პარამეტრები, რომლითაც შეგიძლიათ მიუთითოთ რომელი (მაგალითად: მხოლოდ ფილტრი, ფილტრი და დახარისხება ...).

"SetSettings ()" მეთოდი საშუალებას გაძლევთ ჩატვირთოთ ანგარიშის შემქმნელის პარამეტრები, რომელი მათგანის მითითების შესაძლებლობით (მაგალითად: მხოლოდ ფილტრი, ფილტრი და დახარისხება ...).

10. ანგარიშის შემქმნელის დაჯგუფებები და ველები

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

დაჯგუფების ძირითადი დეტალებია

  • "სახელი" (ცვლადის იდენტიფიკატორი) (მაგალითად: "ნომენკლატურა", "კონტრაგენტი" ...),
  • "პრეზენტაცია" (პრეზენტაცია გამომავალზე) (მაგალითად: "გაყიდვის დოკუმენტი", "საზომი ერთეული" ...),
  • "DataPath" (მოთხოვნის შერჩევის ველი) (მაგალითი: "ნომენკლატურა", "DocumentSales.Organization" ...)

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

  • "DimensionType" (ველის მნიშვნელობების გაფილტვრის ერთ-ერთი ვარიანტი: იერარქია (წევრები და ჯგუფები), მხოლოდ იერარქია (მხოლოდ ჯგუფები) ან წევრები (მხოლოდ წევრები).

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

  • "განლაგება" არის რეგიონის სახელი ანგარიშის შემქმნელის განლაგებაში ან ცალკეული განლაგება, რომელიც გამოიყენება დაჯგუფების ჩვენებისას.
  • ”LayoutHierarchy” არის ტერიტორიის სახელი ანგარიშის შემქმნელის განლაგებაში ან ცალკეული განლაგება, რომელიც გამოიყენება დაჯგუფების იერარქიის ჩვენებისას.
  • "FooterLayout" არის ტერიტორიის სახელი მშენებლის განლაგებაში ან ცალკეული განლაგება, რომელიც გამოიყენება დაჯგუფების ქვედა კოლონტიტულის ჩვენებისას.
  • "HierarchyFooterLayout" არის არეალის სახელი შემქმნელის განლაგებაში, ან ცალკეული განლაგება, რომელიც გამოიყენება ჯგუფის იერარქიის ქვედა კოლონტიტულის ჩვენებისას.
  • "BasementLayers" - სარდაფის განლაგების მასივი დაჯგუფების სხვადასხვა დონისთვის.
  • "დონის განლაგება" - განლაგების მასივი დაჯგუფების სხვადასხვა დონისთვის.

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

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

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

  • "ჩასმა ()" - დაამატეთ დაჯგუფება / ველი მითითებულ პოზიციაზე.
  • ”დამატება ()” - დაამატეთ დაჯგუფება / ველი სიის ბოლოს.
  • „ინდექსი ()“ - მიიღეთ სიაში დაჯგუფების / ველის ინდექსი.
  • ”Number ()” - მიიღეთ სიაში დაჯგუფებების / ველების რაოდენობა.
  • ”Find ()” - იპოვნეთ სიაში დაჯგუფება / ველი სახელის მიხედვით.
  • ”Clear ()” - გასუფთავება დაჯგუფებების / ველების სიაში.
  • ”Get ()” - მიიღეთ დაჯგუფება / ველი ინდექსის მიხედვით.
  • "გადატანა ()" - გადაადგილეთ დაჯგუფება / ველი მითითებული პოზიციების მიხედვით.
  • „ამოღება ()“ - სიიდან ამოიღეთ დაჯგუფება / ველი.

11. აღმაშენებლის ენა

ანგარიშის შემქმნელს აქვს საკუთარი ენა. ეს არის მოთხოვნის საერთო ენა, რომელსაც ემატება ”(…)” კონსტრუქციები. ამ კონსტრუქციების გამოყენებით შეგიძლიათ უარი თქვათ FillSettings () მეთოდზე და შეუკვეთოთ ანგარიშის შემქმნელი მოთხოვნის კორპუსში.
ამრიგად, შეგიძლიათ მოირგოთ საგნები "SELECT", "WHERE", "ORDER BY", "RESULTS BY" და ასევე გააკეთოთ რამდენიმე სხვა საინტერესო რამ. ამ შემთხვევაში, მშენებლის მოთხოვნის ძირითადი ტექსტი იქნება ნაგულისხმევი პარამეტრები, ხოლო კონსტრუქციები (…) აღწერს არსებულ პარამეტრებს.

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

SELECT კონსტრუქციაში მითითებული ველები ზღუდავს მომხმარებლისთვის ხელმისაწვდომი ველების ჩამონათვალს.
"WHERE" კონსტრუქციაში მითითებული ველები ზღუდავს იმ ველების ჩამონათვალს, რომელთა გამოყენება შესაძლებელია ფილტრში.
“ORDER BY” კონსტრუქციაში მითითებული ველები ზღუდავს დასალაგებელი ველების ჩამონათვალს.
"BY TOTAL" - ის კონსტრუქციაში მითითებული ველები ზღუდავს ჯამების დაჯგუფების ველების ჩამონათვალს.

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

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

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

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

| არჩევა


| LotProducts კომპანიები ნაშთები. რაოდენობა ბალანსი AS QuantityByBatch
| (აირჩიეთ
| კომპანიის სასაქონლო ბალანსის ნაშთები, ნომენკლატურა, როგორც ნომენკლატურა,
| კომპანიის ნაშთების საქონლის ბალანსი. რაოდენობის ბალანსი, როგორც რაოდენობა,
| უამრავი საქონელიკომპანიები, ნაშთები. რაოდენობა ბალანსი რაოდენობის მიხედვით ბევრი)
| ფრომიდან
| დაგროვების რეგისტრი. კომპანიის სასაქონლო ბალანსი. რჩება როგორც სასაქონლო ბალანსი კომპანიის ბალანსი
| (მარცხნივ შეუერთდით დაგროვების რეგისტრატორს. უამრავი საქონელი კომპანია. ნაშთები როგორც საქონლის კომპანიები კომპანიები
| საქონლის ბალანსების მიხედვით კომპანიის ნაშთები. ნომენკლატურა = უამრავი საქონელი კომპანიის ბალანსი. ნომენკლატურა)
| TOTALS SUM (რაოდენობა), SUM (QuantityByLots) BY
| ზოგადი,
| ნომენკლატურა

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

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

წერას აზრი აქვს

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

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

მაგალითი: | ნებადართული არჩევა | PartyGoods CompanyObotory.Nomenclature, | AMOUNT (უამრავი საქონელიკომპანიების გადაბრუნება. ხარჯების ჩამოსვლა) როგორც CostInvest, | AMOUNT (უამრავი საქონელიკომპანიების გადაბრუნება. ხარჯების გადახდა), როგორც CostExpense | | მხრიდან | დაგროვების რეგისტრაცია. პარტიის კომპანია კარგი პროდუქტები. ბრუნვა (, (და & პერიოდულობა), | (ნომენკლატურა. *)) როგორც BatchCompanyGoodsTurnovers | | დატვირთვა | PartyGoodsCompotObototy.Nomenclature | | TOTALS SUM (CostPrihod), SUM (CostExpenditure) ON | ზოგადი, | ნომენკლატურა | | (SELECT | საქონლის პარტია CompanyTurnovers. ნომენკლატურა. *, | რეგისტრატორი. ) როგორც პერიოდის თვე, | პერიოდის დასაწყისი (პერიოდი, კვარტალი) AS PeriodQuarter, | პერიოდის დასაწყისი (პერიოდი, ნახევარი წელი), როგორც პერიოდი ნახევარი წელი, | პერიოდის დასაწყისი (პერიოდი, წელი), როგორც პერიოდის ღირებულება დახარჯული ღირებულება), როგორც ხარჯების ღირებულება) | | (ORDER BY | Batch of ProductsCompanyObototy.Nomenclature. *, | რეგისტრატორი. *, | CostPrihod, | CostExpenditure) | | (WHERE | უამრავი საქონელიკომპანიის ტურნირები. ნომენკლატურა. *, | რეგისტრატორი. *, | SUM (უამრავი კარგი კომპანიის ტურნირი. შემომავალი თანხა) როგორც ხარჯების შემოსავალი, | SUM (უამრავი საქონელიკომპანიის ბრუნვები. ხარჯების ღირებულება) როგორც ხარჯების ღირებულება | (ჯამური მიხედვით | ნომენკლატურა. *, | რეგისტრატორი. *, | პერიოდის დასაწყისი (პერიოდი, დღე), როგორც პერიოდის დღე, | პერიოდის დასაწყისი (პერიოდი, კვირა), როგორც პერიოდის კვირა, | პერიოდის დასაწყისი (პერიოდი, ათწლეული), როგორც პერიოდის ათწლეული, | პერიოდის დასაწყისი (პერიოდი, თვე), როგორც პერიოდის თვე, | პერიოდი (პერიოდი, კვარტალი), როგორც პერიოდი მეოთხედი, | დასაწყისი პერიოდი (პერიოდი, ნახევარი წელი), როგორც პერიოდი, ნახევარი წელი, | დასაწყისი პერიოდი (პერიოდი, წელი), როგორც პერიოდის წელი)

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

IfReportBuilder.AvailableFields.Find ("სიხშირე")<>განუსაზღვრელი შემდეგ პერიოდულობა = განუსაზღვრელი; IfReportBuilder.DimensionsStrings.Find ("PeriodYear")<>განუსაზღვრელი ან ანგარიშის შემქმნელი. DimensColumns.Find ("PeriodYear")<>განუსაზღვრელი შემდეგ პერიოდულობა = 9; Დაასრულე თუ; IfReportBuilder.DimensionsRows.Find ("PeriodSemi-Year")<>განუსაზღვრელი ან ანგარიშების შემქმნელი. DimensColumns.Find ("Period Half Year")<>განუსაზღვრელი შემდეგ პერიოდულობა = 8; Დაასრულე თუ; IfReportBuilder.DimensionsRows.Find ("PeriodQuarter")<>Undefined OR Report Builder.DimensionsColumns.Find ("PeriodQuarter")<>განუსაზღვრელი შემდეგ პერიოდულობა = 7; Დაასრულე თუ; თუ ReportBuilder.DimensionsRows.Find ("PeriodMonth")<>განუსაზღვრელი ან ანგარიშის შემქმნელი. DimensColumns.Find ("PeriodMonth")<>განუსაზღვრელი შემდეგ პერიოდულობა = 6; Დაასრულე თუ; IfReportBuilder.DimensionsRows.Find ("PeriodDecade")<>Undefined OR Report Builder.DimensionsColumns.Find ("PeriodDecade")<>განუსაზღვრელი შემდეგ პერიოდულობა = 5; Დაასრულე თუ; IfReportBuilder.DimensionsRows.Find ("PeriodWeek")<>განუსაზღვრელი ან ანგარიშის შემქმნელი. DimensColumns.Find ("PeriodWeek")<>განუსაზღვრელი შემდეგ პერიოდულობა = 4; Დაასრულე თუ; IfReportBuilder.DimensionsRows.Find ("PeriodDay")<>განუსაზღვრელი ან ანგარიშის შემქმნელი. DimensColumns.Find ("PeriodDay")<>განუსაზღვრელი შემდეგ პერიოდულობა = 3; Დაასრულე თუ; IfReportBuilder.DimensionsStrings.Find ("რეგისტრატორი")<>განუსაზღვრელი ან ანგარიშების შემქმნელი. DimensColumns.Find ("Logger")<>განუსაზღვრელი ან ანგარიშების შემქმნელი. არჩეული საცავები. იპოვნეთ<>განუსაზღვრელი შემდეგ პერიოდულობა = 2; Დაასრულე თუ; თუ სიხშირე<>Undefined მაშინ SelectionFieldBy Periodic = ReportBuilder.Selection.Add ("სიხშირე"); SelectionFieldBy Periodicity.Value = პერიოდულობა; SelectionFieldByFrequency.Usage = True; Დაასრულე თუ; Დაასრულე თუ; მშენებელი. გაუშვით (); თუ შერჩევის ველი სიხშირით<>Undefined ThenReportBuilder.Select.Remove (ReportBuilder.Selection.Index (SelectionFieldBy periodic)); Დაასრულე თუ;

12. მშენებლის პერსონალიზაცია

იმისათვის, რომ მომხმარებელს მიეცეს საშუალება შეცვალოს დაჯგუფებების სია, ფილტრი, შერჩეული ველები ან დახარისხება, საკმარისია შექმნას ანგარიშის "აღმაშენებელი" ატრიბუტი და ანგარიშის ფორმაზე განათავსოს ცხრილი ველი და მიუთითოს იგი, როგორც მონაცემები წყარო "Builder.DimensionsRows", "Builder.DimensionsColns", "Builder.Choose", "Builder.ChosenFields", ან "Builder.Order".

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

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

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

თხოვნის მაგალითი:

არჩევა
ბანკები.
ბანკები. CorrAcount
ფრომიდან
დირექტორია. ბანკები, როგორც ბანკები

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

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

შეკითხვის ენის კონსტრუქციების აღწერა

შეკითხვის სტრუქტურა

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

აირჩიეთ * დირექტორიებიდან. ნომენკლატურა

სადაც "*" ნიშნავს ცხრილის ყველა ველისა და მითითებების შერჩევას. ნომენკლატურა არის მონაცემთა ცხრილის ცხრილის სახელი.

მოდით განვიხილოთ უფრო რთული და ზოგადი მაგალითი:

არჩევა
<ИмяПоля1>ᲠᲝᲒᲝᲠ<ПредставлениеПоля1>,
ჯამი (<ИмяПоля2>) ᲠᲝᲒᲝᲠ<ПредставлениеПоля2>
ფრომიდან
<ИмяТаблицы1>ᲠᲝᲒᲝᲠ<ПредставлениеТаблицы1>
<ТипСоединения>შედგენილი<ИмяТаблицы2>ᲠᲝᲒᲝᲠ<ПредставлениеТаблицы2>
ჩართულია<УсловиеСоединениеТаблиц>

სად
<УсловиеОтбораДанных>

ჩატვირთვა
<ИмяПоля1>

ᲓᲐᲚᲐᲒᲔᲑᲐ
<ИмяПоля1>

შედეგები
<ИмяПоля2>
ჩართულია
<ИмяПоля1>

IN ეს თხოვნაჩვენ ვირჩევთ "FieldName1" და "FieldName1" ველების მონაცემებს "TableName1" და "TableName" ცხრილებიდან, ველებს მივცემთ სინონიმებს "AS" ოპერატორის გამოყენებით, ვუკავშირდებით მათ გარკვეული "TableCondition" პირობით.

მიღებული მონაცემებიდან ჩვენ ვირჩევთ მხოლოდ მონაცემებს, რომლებიც აკმაყოფილებენ პირობას "WHERE" - დან "DataFeed Condition". შემდეგ, ჯგუფს ვაჯგუფებთ "FieldName1" ველის მიხედვით, ხოლო "FieldName2" შეჯამებისას. ჩვენ ვქმნით ჯამებს "FieldName1" ველისთვის და საბოლოო ველი "FieldName2".

ბოლო ნაბიჯი არის თხოვნის დალაგება ORDER BY კონსტრუქციის გამოყენებით.

ზოგადი კონსტრუქციები

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

ᲞᲘᲠᲕᲔᲚᲘ

მეშვეობით ეს ოპერატორიშეგიძლიათ მიიღოთ პირველი ჩანაწერების რაოდენობა. ჩანაწერების თანმიმდევრობა განისაზღვრება მოთხოვნის ბრძანებით.

აირჩიეთ პირველი 100
ბანკები.
ბანკები. კოდი AS BIC
ფრომიდან
დირექტორია. ბანკები, როგორც ბანკები
ᲓᲐᲚᲐᲒᲔᲑᲐ
ბანკები.

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

ნებადართულია

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

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

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

სხვადასხვა

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

აირჩიეთ პირველი 100
ბანკები.
ბანკები. კოდი AS BIC
ფრომიდან
დირექტორია. ბანკები, როგორც ბანკები

ცარიელი მაგიდა

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

მაგალითი დახმარება 1C 8:

აირჩიეთ Reference. ნომერი, ცარიელი ცხრილი. (Nom, Tov, Qty) როგორც კომპოზიცია
დოკუმენტიდან. ხარჯები
შეუთავსეთ ყველა
SELECT Reference. ნომერი, შემადგენლობა. (LineNumber, საქონელი, რაოდენობა)
დოკუმენტიდან. ინვოისი დოკუმენტი. ინვოისი. შინაარსი. *

გაუქმებულია

ძალიან სასარგებლო თვისება, რომელიც თავიდან აიცილებს ბევრ შეცდომას. YesNULL () საშუალებას გაძლევთ შეცვალოთ NULL მნიშვნელობა სასურველით. ის ხშირად გამოიყენება ტესტებში მნიშვნელობის არსებობისთვის შეერთებულ ცხრილებში, მაგალითად:

არჩევა
ნომენკლატურა Ref. Ref.
არსებობს NULL (საქონლის ბალანსი. რაოდენობის ბალანსი, 0), როგორც რაოდენობის ბალანსი
ფრომიდან


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

არის NULL (ინვოისი მიღებულია. თარიღი, ინვოისი შეცვლილია. თარიღი)

AS არის ოპერატორი, რომელიც საშუალებას გვაძლევს მივანიჭოთ სახელი (სინონიმი) ცხრილს ან ველს. ზემოთ გამოყენების მაგალითი ვნახეთ.

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

არჩევა
ხედი (ბმული), // სტრიქონი, მაგალითად ”წინასწარი ანგარიში No123, თარიღი 10/10/2015
წარმომადგენლობა (წაშლის ნიშანი) AS წაშლის ნიშნის ტექსტი, // სტრიქონი, "დიახ" ან "არა"
მითითების ხედი (წაშლის ნიშანი) AS წაშლა Mark Boolean // ლოგიკური, სწორი ან მცდარი
ფრომიდან
დოკუმენტი. წინასწარი ანგარიში

ექსპრესი

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

Express for reference type გამოიყენება მოთხოვნილი მონაცემთა ტიპების შესაზღუდავად რთული ტიპის ველებში, რომლებიც ხშირად გამოიყენება სისტემის მუშაობის ოპტიმიზაციისთვის. მაგალითი:

EXPRESS (Cost. Subconto1 ცხრილი, როგორც მითითება. ხარჯების სტატიები). ActivityTypeFace for Accounting

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

EXPRESS (კომენტარი AS ხაზი (150))

სხვაობა

მიიღეთ 267 1C ვიდეო სახელმძღვანელო უფასოდ:

1C მოთხოვნაში IS NULL- ის გამოყენების მაგალითი:

ᲐᲘᲠᲩᲘᲔ
სპრეი
მარცხნივ შეუერთდით დაგროვების რეესტრს. პროდუქტები საწყობებში. რჩება როგორც დარჩენილი საქონელი
პროგრამული უზრუნველყოფის ნომენკლატურაRef.Ref = განხორციელებული კომენტარებიკომპონენტები რჩება. ნომენკლატურა
სად არის საქონლის ბალანსი. რაოდენობა ბალანსი გაუქმებულია

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

წინასწარ განსაზღვრული მნიშვნელობები

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

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

WHERE Nomenclature.NomenclatureType = მნიშვნელობა (დირექტორია. ნომენკლატურის ტიპები. პროდუქტი)

WHERE მხარეები. საკონტაქტო ინფორმაციის ტიპი = მნიშვნელობა (ჩამოთვლა. საკონტაქტო ინფორმაცია. ტიპი. ტელეფონი)

WHERE ანგარიშის ნაშთები. ანგარიში = მნიშვნელობა (ანგარიშების გეგმა. თვითდახმარებული. მოგება-ზარალი)

კავშირები

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

მარცხნივ და მარჯვნივ გაწევრიანდით

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

Მაგალითად:

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

RIGHT JOINT 1C ენაზეაბსოლუტურად იგივე მარცხენა კავშირი, გარდა ერთი განსხვავებისა - სწორი კავშირი"მთავარი" ცხრილი მეორეა და არა პირველი.

სრული კავშირი

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

Მაგალითად:

ფრომიდან

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

ჩართულია

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

შიდა კავშირი

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

Მაგალითად:

ფრომიდან
დირექტორია, კონტრაქტორები, როგორც კლიენტები

შიდა კავშირი
დირექტორია. ბანკები, როგორც ბანკები

ჩართულია
კლიენტები. სახელი = ბანკები. სახელი

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

ასოციაციები

COMBINE და COMBINE ALL კონსტრუქცია აერთიანებს ორ შედეგს ერთში. იმ ორი შესრულების შედეგი "გაერთიანდება" ერთში, საერთო.

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

როგორ გამოვიყენოთ INDEX პროგრამული უზრუნველყოფა

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

არჩევა
ვალუტის კურსი SliceLast. ვალუტა AS ვალუტა,
ვალუტის კურსი Slice ბოლო. კურსი
საფოსტო ვალუტის კურსი
ფრომიდან
ინფორმაციის რეგისტრაცია. ვალუტის კურსი. სილის ბოლო (& პერიოდი), როგორც სავალუტო კურსი სიახლის ბოლო
INDEX BY
ვალუტა
;
არჩევა
ფასები
ფასები ნომენკლატურები .ფასი,
ფასები ნომენკლატურები. ვალუტა,
ვალუტის კურსი.
ფრომიდან
ინფორმაციის რეგისტრაცია. ნომენკლატურის ფასები. ბოლო ბოლო (& პერიოდი,
ნომენკლატურის B (და ნომენკლატურა) AND PriceType = & PriceType) როგორც ფასები
მარცხენა კავშირის ვალუტის კურსი, როგორც ვალუტის კურსი
RatesNomenclature.Currency = RatesCurrency.ვალუტა

დაჯგუფება

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

შემდეგი ფუნქციები ხელმისაწვდომია:

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

მაგალითი # 1:

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

ჩატვირთვა
საქონლის სერვისების პროდუქტების რეალიზაცია. ნომენკლატურა

მოთხოვნა იღებს საქონლის ყველა სტრიქონს და აჯამებს მათ რაოდენობისა და თანხების მიხედვით ნივთის კონტექსტში.

მაგალითი No2

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

ეს მაგალითი აჩვენებს BIC- ების ჩამონათვალს "ბანკები" დირექტორიაში და აჩვენებს რამდენი დუბლიკატი არსებობს თითოეული მათგანისთვის.

შედეგები

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

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

არჩევა




ფრომიდან
დოკუმენტი. კარგი სერვისების რეალიზაცია. საქონელი, როგორც საქონლის გაყიდვა
ᲓᲐᲚᲐᲒᲔᲑᲐ

შედეგები
SUM (რაოდენობა),
SUM (თანხა)
ჩართულია
ნომენკლატურა

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

ზოგადი რეზიუმე

თუ გსურთ მიიღოთ ჯამები ყველა "ჯამში", გამოიყენეთ ოპერატორი "GENERAL".

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

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

რომელშიც დაჯგუფების 1 დონე არის ყველა საჭირო ველის გაერთიანება.

შეკვეთა

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

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

არჩევა

ფრომიდან
მითითება. ნომენკლატურა, როგორც ნომენკლატურა
ᲓᲐᲚᲐᲒᲔᲑᲐ
სახელი

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

ავტო შეკვეთა

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

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

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

ვირტუალური მაგიდები

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

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

  • პირველი ნაჭერი;
  • ამ უკანასკნელის ნაჭერი.
  • ნაშთები;
  • რევოლუციები;
  • ნაშთები და ბრუნვები.
  • ქვეკონტოტიდან მოძრაობები;
  • რევოლუციები;
  • RPM Dt Kt;
  • ნაშთები;
  • ნაშთები და ბრუნვები
  • ქვეკონტაქტი.
  • ბაზა;
  • გრაფიკის მონაცემები;
  • მოქმედების ნამდვილი პერიოდი.

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

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

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

ვირტუალური ცხრილის პარამეტრები

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

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

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

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

ვირტუალური ცხრილების ალგორითმი

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

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

  1. გამოთვლილ მნიშვნელობას მივიღებთ უახლოესად თარიღისა და გაზომვების თვალსაზრისით ჯამური ცხრილში.
  2. "დაამატეთ" თანხა გადაადგილების ცხრილიდან თანხების ჯამიდან.


ასეთ მარტივ მოქმედებებს შეუძლია მნიშვნელოვნად გააუმჯობესოს სისტემის მუშაობა მთლიანობაში.

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

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

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

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

1C მოთხოვნის კონსტრუქტორის აღწერა

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

ჩანართების ცხრილები და ველები

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

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

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

ბმულების ჩანართი

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

დაჯგუფების ჩანართი

ამ ჩანართზე სისტემა საშუალებას გაძლევთ დააჯგუფოთ და შეაჯამოთ ცხრილის შედეგის საჭირო ველები. აღწერს კონსტრუქციების გამოყენებას GROUP BY, SUM, MINIMUM, AVERAGE, MAXIMUM, QUANTITY, NUMBER OF DIFERENT.

პირობების ჩანართი

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

გაფართოებული ჩანართი

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

დაჯგუფება ჩანაწერების მიღება:

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

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

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

პროფკავშირების / მეტსახელების ტაბ

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

შეკვეთის ჩანართი

აქ თქვენ მიუთითეთ მნიშვნელობების დალაგების რიგი (ORDER BY) - დაღმავალი (DESCENT) ან აღმავალი (UP).

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

შეკითხვის პაკეტის ჩანართი

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

შეკითხვის ღილაკი შეკითხვის შემქმნელში

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

ამ ფანჯარაში შეგიძლიათ შეცვალოთ მოთხოვნა და შეასრულოთ იგი.


შეკითხვის კონსოლის გამოყენება

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

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

ჩამოტვირთეთ 1C მოთხოვნის კონსოლი

უპირველეს ყოვლისა, Query Console- ით დასაწყებად, თქვენ უნდა გადმოწეროთ იგი სადმე. პროცესები, როგორც წესი, იყოფა ორ ტიპად - კონტროლირებადი ფორმები და რეგულარული (ან ზოგჯერ მათ უწოდებენ 8.1 და 8.2 / 8.3).

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

1C მოთხოვნის კონსოლის აღწერა

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

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

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

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

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

მოთხოვნის პარამეტრები:

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

მოთხოვნის პარამეტრების ფანჯარაში საინტერესოა შემდეგი:

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

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

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

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

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

1C 8 მოთხოვნის კონსტრუქტორს ეწოდება კონტექსტური მენიუდან (მაუსის მარჯვენა ღილაკი), როდესაც დააჭირეთ შეყვანის ველს:

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

მოთხოვნა = ახალი მოთხოვნა;
Request.Text = "
| არჩევა
| ვალუტა. ბმული
| ფრომიდან
| დირექტორია. ვალუტა, როგორც ვალუტა ”;
QueryResult = Query.Run ();

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



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

მოთხოვნების ოპტიმიზაცია

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

ვირტუალური ცხრილის არჩევა WHERE კონსტრუქციის გამოყენებით

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

მართალია:

არჩევა

ფრომიდან
დაგროვების რეესტრი. ურთიერთსწორებები დეპონენტებთან ორგანიზაციები. რჩება (
,
ორგანიზაცია = & ორგანიზაცია
და ინდივიდუალური = & ინდივიდუალური) როგორ ხდება ურთიერთგაგება დეპონენტებთან ორგანიზაციებთან

არა სათანადოდ:

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

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

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

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

არა სათანადოდ:

არჩევა
Record Set.Recorder.Date,
ჩანაწერების ნაკრები. ნომერი
ფრომიდან
დაგროვების რეგისტრი. პროდუქტები ორგანიზაციები, როგორც SetRecords

ეს, ფაქტობრივად, ასეთი მოთხოვნა ეხება არა ერთ ცხრილს, არამედ მონაცემთა ბაზის 22 ცხრილს (ამ რეესტრს აქვს 21 ტიპის რეგისტრატორი).

მარჯვენა:

არჩევა
არჩევანი
WHEN საქონელი Org. რეგისტრატორი LINK დოკუმენტი. საქონლის სერვისების რეალიზაცია
შემდეგ ექსპრესი (საქონელი Org.Registrar AS დოკუმენტი. საქონლის რეალიზაცია). თარიღი
WHEN საქონელი Org. რეგისტრატორი LINK დოკუმენტი. საქონლის სერვისების ჩამოსვლა
შემდეგ EXPRESS (საქონელი Org. რეგისტრაცია, როგორც დოკუმენტი. საქონლის სერვისების ჩამოსვლა). თარიღი
დასრულება, როგორც თარიღი,
პროდუქტები Org. რაოდენობა
ფრომიდან
დაგროვების რეგისტრი. პროდუქტები Org

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

მარჯვენა:

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

ქვეკონფერენციები შეერთების პირობებში

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

არა სათანადოდ:

არჩევა

მარცხენა ერთობლივი (
აირჩიეთ ინფორმაციის რეესტრიდან. ლიმიტები
სად
ჩატვირთვა ...
) ON

მარჯვენა:

არჩევა
საფოსტო ლიმიტები
ინფორმაციის რეგისტრიდან. ლიმიტები
სად
ჩატვირთვა ...
INDEX BY…;

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

ვირტუალური ცხრილების ჩანაწერების შეერთება

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

ფილტრების გამოყენება არაინდექსირებულ ველებზე

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

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

  1. ინდექსი შეიცავს პირობებში ჩამოთვლილ ყველა ველს.
  2. ეს ველები ინდექსის დასაწყისშია.
  3. ეს არჩევანი მწკრივშია, ანუ მნიშვნელობები, რომლებიც არ მონაწილეობენ შეკითხვის პირობებში, არ არის ”გაყოფილი” მათ შორის.

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

ლოგიკური ან პირობების გამოყენება

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

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

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

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

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

ანგარიშის შემქმნელისთვის მონაცემთა წყაროს დაყენების მაგალითი:

ReportBuilder.DataSource = NewDataSourceDescription (ValueTableResult);

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

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

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

მონაცემები ინახება მონაცემთა ბაზაში. 1C მოთხოვნები არის მონაცემთა ბაზაში მონაცემების მიღების საშუალება, რათა მომხმარებელს ეს ფორმაში აჩვენოს ან დაამუშაოს.

ანგარიშის ძირითადი ნაწილი არის 1C მოთხოვნა. ACS ანგარიშის შემთხვევაში, ეს მოხსენების უმეტესობაა.

Დაჯექი. ამოისუნთქე. მარტივად იმოქმედე. ახლა მე მოგიყვებით ახალ ამბებს.

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

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

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

როგორ გამოიყენება 1C მოთხოვნები

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

1C მოთხოვნებია:

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

1C მოთხოვნების შექმნა და შესრულება

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

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

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

მოთხოვნა = ახალი მოთხოვნა ();
Request.Text = "არჩევა
| ნომენკლატურა. Ref.
| ფრომიდან
| მითითება. ნომენკლატურა, როგორც ნომენკლატურა
| სადაც
| ნომენკლატურა. მომსახურება ";
შერჩევა = მოთხოვნა. გაუშვით (). აირჩიეთ ();

ანგარიში (Sample.Link);
ციკლის დასასრული;

როგორც მაგალითში ხედავთ - 1C მოთხოვნის შესრულების შემდეგ, შედეგი ჩვენთან მოდის და ის უნდა დავამუშაოთ. შედეგი არის ცხრილის ერთი ან რამდენიმე რიგი (სპეციალური ფორმით).

შედეგი შეიძლება გადაყრილიყო ჩვეულებრივ ცხრილში:
Fetch = Query.Run (). განტვირთვა (); // შედეგი არის მნიშვნელობების ცხრილი

ან უბრალოდ შემოიარე ხაზები.
შერჩევა = მოთხოვნა. გაუშვით (). აირჩიეთ ();
მიუხედავად იმისა, რომ მოიტანს. შემდეგი () მარყუჟი
// გააკეთეთ რამე შეკითხვის შედეგებთან ერთად
ციკლის დასასრული;

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

1C მოთხოვნების ძირითადი პრინციპები

1C მოთხოვნის შექმნის ძირითადი პრინციპებია -
აირჩიეთ ველის სია ცხრილი მაგიდიდან, სადაც პირობები

ასეთი 1C მოთხოვნის აგების მაგალითი:

არჩევა
// ველების სია, რომელთა ასარჩევად
Ბმული,
სახელი,
კოდი
ფრომიდან
// ცხრილის სახელწოდება, საიდანაც ვირჩევთ მონაცემებს
// ცხრილების სია არის ობიექტების სია კონფიგურატორის ფანჯარაში
დირექტორია. ნომენკლატურა
სად
// მიუთითეთ შერჩევა
პროდუქტის ტიპი = & მომსახურება // შერჩევა გარე მნიშვნელობით
ან სერვისული // ლოგიკური ტიპის ცვლადი, შერჩევა მნიშვნელობით True
ᲓᲐᲚᲐᲒᲔᲑᲐ
// დახარისხება
სახელი

ცხრილი 1C

ცხრილის სახელების დანახვა შეგიძლიათ კონფიგურატორის ფანჯარაში. საჭიროა მხოლოდ "დირექტორიების" დაწერა "დირექტორიების" ნაცვლად, მაგალითად "Directory.Nomenclature" ან "Document.Ralisation of GoodsService" ან "Accumulation Register.Sales".

რეგისტრებისთვის არსებობს დამატებითი ცხრილი (ვირტუალური), რომელიც საშუალებას გაძლევთ მიიღოთ ჯამური ციფრები.

ინფორმაციის რეგისტრაცია. რეგისტრაციის სახელი. ბოლო ნაჭერი (& თარიღი) - 1C მოთხოვნა ინფორმაციის რეესტრიდან, თუ ის პერიოდულია, კონკრეტული თარიღისთვის

დაგროვების რეგისტრი. რეგისტრაციის სახელი. ნაშთები (& თარიღი) - 1C მოთხოვნა ბალანსის რეესტრიდან გარკვეული თარიღისთვის

დაგროვების რეგისტრი. დარეგისტრირდით სახელი. ბრუნვები (& დაწყების თარიღი და დასრულების თარიღი) - 1C მოთხოვნა ბრუნვის რეგისტრიდან დაწყების დღიდან დასრულების თარიღამდე პერიოდის განმავლობაში.

დამატებითი პრინციპები

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

არჩევა
// რაოდენობა (FieldName) - ითვლის რაოდენობას
// Field AS OtherName - ასახელებს ველს
ნომერი (ბმული) როგორც გამოქვეყნებული დოკუმენტების რაოდენობა
ფრომიდან

სად
Განახორციელა

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

არჩევა
// მხოლოდ დოკუმენტის ველი
ორგანიზაცია,
// თანხის დათვლა
რაოდენობა (ლინკი) AS რაოდენობა ორგანიზაციის მიერ
ფრომიდან
დოკუმენტი. კარგი სერვისების რეალიზაცია
სად
Განახორციელა
ჩატვირთვა

ორგანიზაცია

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

ჩვენ დამატებით გამოვთვლით ამ დოკუმენტების ჯამს 1C მოთხოვნის გამოყენებით:

არჩევა
// მხოლოდ დოკუმენტის ველი
ორგანიზაცია,
// თანხის დათვლა

// გამოთვალეთ თანხა

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

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

არჩევა
// მხოლოდ დოკუმენტის ველი
ორგანიზაცია,
// თანხის დათვლა
რაოდენობა (ბმული) AS ორგანიზაციის მიხედვით,
// გამოთვალეთ თანხა
თანხა (დოკუმენტის თანხა) როგორც თანხა
ფრომიდან
დოკუმენტი. კარგი სერვისების რეალიზაცია
სად
Განახორციელა
ჩატვირთვა
// უნდა იქნას გამოყენებული, თუ ველების სია შეიცავს თვლის ფუნქციას () და ერთ ან მეტ ველს ერთდროულად - მაშინ ამ ჯგუფების მიხედვით დაჯგუფება გჭირდებათ
ორგანიზაცია
შედეგები ზოგადი

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

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

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

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

იმისათვის, რომ თხოვნის ტექსტი ხელით არ დაწეროთ, არსებობს 1C მოთხოვნის შემქმნელი. უბრალოდ დააჭირეთ მაუსის მარჯვენა ღილაკს მოდულის ნებისმიერ წერტილში და აირჩიეთ 1C შეკითხვის შემქმნელი.

1C მოთხოვნის დიზაინერში შეარჩიეთ სასურველი ცხრილი მარცხნივ და გადაიტანეთ მარჯვნივ.

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

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

შეკვეთის ჩანართზე დალაგება მითითებულია. ჩანართზე Totals - ჯამების შეჯამება.

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