1c გამოთვლილი ველი. მონაცემთა შედგენის სისტემის გამოხატვის ენა (1Cv8)

31.10.2021

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

ანგარიშის ვერსიის შეცვლის ფანჯარა დაყოფილია ორ ნაწილად:

1. ანგარიშის სტრუქტურა.

2. ანგარიშის პარამეტრები.


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

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

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

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

1. პარამეტრები.შეიცავს ACS პარამეტრებიმომხმარებლისთვის ხელმისაწვდომი.

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


პარამეტრების ცხრილი წარმოდგენილია "პარამეტრი" - "მნიშვნელობის" ფორმატში. საჭიროების შემთხვევაში, შეგიძლიათ შეცვალოთ პარამეტრების მნიშვნელობები. "Custom Settings Item Properties" ღილაკზე დაწკაპუნებით იხსნება ელემენტის მორგებული პარამეტრები.


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

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

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


მომხმარებელს შეუძლია დაამატოთ ორი ტიპის ველი:

  • ახალი შერჩევის ველი...
  • ახალი გამოხატვის ველი...

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


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

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

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

· დეტალური ჩანაწერებისთვის:

არჩევანი

როდესაც [გაყიდვის თანხა ფასდაკლების გარეშე] = 0

შემდეგ 0

წინააღმდეგ შემთხვევაში [გაყიდვის თანხა ფასდაკლების გარეშე] - [გაყიდვის თანხა ფასდაკლებით] / [გაყიდვის თანხა ფასდაკლების გარეშე]

დასასრული

· შემაჯამებელი ჩანაწერებისთვის:

არჩევანი

როდესაც თანხა ([გაყიდვის თანხა ფასდაკლების გარეშე]) = 0

შემდეგ 0

წინააღმდეგ შემთხვევაში ჯამი ([გაყიდვის თანხა ფასდაკლების გარეშე]) - ჯამი ([გაყიდვის თანხა ფასდაკლებით]) / თანხა ([გაყიდვის თანხა ფასდაკლების გარეშე])

დასასრული

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

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


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

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

  • Auto - სისტემა ავტომატურად ათავსებს ველებს;
  • ჰორიზონტალური - ველები განლაგებულია ჰორიზონტალურად;
  • ვერტიკალური - ველები განლაგებულია ვერტიკალურად;
  • ცალკე სვეტში - ველები განლაგებულია სხვადასხვა სვეტებში;
  • ერთად - ველები განლაგებულია ერთ სვეტში.


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


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


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


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


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


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

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

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

რა არის გათვლილი ველი

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

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

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

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

მოდით გავიაროთ ეს სია.

მნიშვნელობების მასივი ერთ უჯრედში

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


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


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

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

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

საერთო მოდულის ექსპორტის ფუნქციებზე წვდომა

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

რამდენიმე მნიშვნელოვანი პუნქტი:

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

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


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

ენის გამონათქვამების განლაგება

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

  1. გამოთვალეთ ნივთის საშუალო ღირებულება;
  2. ყველა სახის ინტერესი;
  3. საშუალო შემოსავლის გამოთვლები და ა.შ.

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

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

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

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

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


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

შესაბამისად, ახლა საჭიროა ზემოაღნიშნული დაჯგუფებების („საწყობები“, „საწყობის ტიპები“) ჯამების და საერთო ჯამების გამოთვლა.
ამისათვის გამოიყენეთ ფუნქცია CalculateExpressionWithGroupArray:
გამოთქმის შეფასება GROUPARRAY-ით (EVALEXPRESIONWITHGROUPARRAY)
სინტაქსი:
EvaluateExpressionWithGroupArray(,)
აღწერა:
ფუნქცია აბრუნებს მასივს, რომლის თითოეული ელემენტი შეიცავს განსაზღვრული ველის მიხედვით დაჯგუფებისთვის გამოხატვის შეფასების შედეგს.
განლაგების შემქმნელი, განლაგების გენერირებისას, გარდაქმნის ფუნქციის პარამეტრებს მონაცემთა განლაგების განლაგების ველებად. მაგალითად, ანგარიშის ველი გარდაიქმნება DataSet.Account-ად.
განლაგების შემქმნელი, როდესაც გამოიმუშავებს გამონათქვამებს მორგებული ველის გამოსავალზე, რომლის გამოხატულება შეიცავს მხოლოდ CalculateArrayWithGroupArray() ფუნქციას, აგენერირებს გამომავალ გამოსახულებას ისე, რომ გამომავალი ინფორმაცია მოწესრიგდეს. მაგალითად, მორგებული ველისთვის გამონათქვამით:

CalculateExpressionWithGroupArray ("Amount(AmountTurnover)", "Counterparty")
განლაგების შემქმნელი გამოიმუშავებს შემდეგ გამონათქვამს გამოსავალისთვის:

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.SumTurnover)),Sum(DataSet.SumTurnover)",,"DataSet.Account"),"2")))

პარამეტრები:

ტიპი: სიმებიანი. შესაფასებელი გამოთქმა. სიმებიანი, მაგალითად, Amount (AmountTurnover).

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

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

ტიპი: სიმებიანი. გამონათქვამი, რომელიც აღწერს შერჩევას, რომელიც გამოიყენება ჯგუფურ ჩანაწერებზე. მაგალითად, Amount(AmountTurnover) > &Parameter1.
მაგალითი:

Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));

ფუნქციის სინტაქსის დეტალური აღწერა შეგიძლიათ იხილოთ http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
ახლა, გაანგარიშებისთვის, ჩვენ ვამეორებთ ველს "შეკვეთა", სხვადასხვა მნიშვნელობებით "გამოთვალეთ ...", შემდეგი გამონათქვამების გამოყენებით, გაითვალისწინეთ, რომ თითოეულ მაღალ დონეზე გამოიყენება დაჯგუფების ქვემოთ მოცემული დონეების მნიშვნელობები. .

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

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

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

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

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

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

3. მონაცემთა განლაგების კონფიგურაცია პარამეტრების ჩანართზე

4. გაუშვით 1C Enterprise 8.2.14. გახსენით ანგარიში. ვქმნით, ვიღებთ.

თავად ახალი ფუნქციების აღწერა:

1. მიმდინარე თარიღი ()

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

2. COMPUTEEXPRESSION()

სინტაქსი:

CalculateExpression(,)

აღწერა:

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

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

ფუნქციის გამოყენება შეუძლებელია ამ ჯგუფის ჯგუფურ არჩევანში. მაგალითად, ნომენკლატურის ჯგუფის არჩევისას, თქვენ არ შეგიძლიათ გამოიყენოთ გამოხატულება CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. მაგრამ ასეთი გამოთქმა შეიძლება გამოყენებულ იქნას იერარქიულ შერჩევაში.

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

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

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

ოფციები

ტიპი: ხაზი. შესაფასებელი გამოთქმა.

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

მაგალითად:

Sum(Sales.SumTurnover)/Calculate("Sum(Sales.SumTurnover)", "Total")

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

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

· გრანდიოზული სულ- გამოთქმა გამოითვლება ყველა დაჯგუფების ჩანაწერისთვის.

· იერარქია— გამონათქვამი შეფასდება მშობლის იერარქიული ჩანაწერისთვის, თუ არსებობს, და მთელი ჯგუფისთვის, თუ არ არის მშობლის იერარქიული ჩანაწერი.

· დაჯგუფება— გამონათქვამი შეფასდება ჯგუფის მიმდინარე ჩანაწერისთვის.

· GroupingNonResource— რესურსების მიხედვით ჯგუფის ჩანაწერისთვის ფუნქციის გაანგარიშებისას, გამონათქვამი გამოითვლება ორიგინალური დაჯგუფების პირველი ჯგუფის ჩანაწერისთვის.

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

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

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

· პირველი

· ბოლო (ბოლო)

· წინა

· შემდეგი (შემდეგი)

· მიმდინარე

· LimitingValue(BoundaryValue) LimitingValue

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

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

თუ პირველი ჩანაწერი არის დაჯგუფების გარეთ, მაშინ ითვლება, რომ არ არსებობს ჩანაწერები. მაგალითად, თუ არის 3 ჩანაწერი და გსურთ მიიღოთ First(4), მაშინ ითვლება, რომ ჩანაწერები არ არის.

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

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

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

თუ წინა ჩანაწერი სცილდება დაჯგუფებას (მაგალითად, მეორე დაჯგუფების ჩანაწერისთვის თქვენ უნდა მიიღოთ Previous(3)), მაშინ მიიღება პირველი დაჯგუფების ჩანაწერი.

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

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

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

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

· მიმდინარე. თქვენ უნდა მიიღოთ მიმდინარე ჩანაწერი.

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

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

პირველი ჩანაწერი, რომლის შეკვეთის ველის მნიშვნელობა აღემატება ან ტოლია მითითებულ მნიშვნელობას, დაბრუნდება ჩანაწერად. მაგალითად, თუ პერიოდის ველი გამოიყენება შეკვეთის ველად და აქვს მნიშვნელობები 01/01/2010, 02/01/2010, 03/01/2010 და გსურთ მიიღოთ LimitingValue(DateTime(2010, 1, 15)), შემდეგ მიიღება ჩანაწერი 02/01/2010 თარიღით.

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

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

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

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

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

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

თარიღი სრული სახელი მნიშვნელობა
1 2001 წლის 01 იანვარი

ივანოვი მ.

10
2 2001 წლის 02 იანვარი პეტროვი ს. 20
3 2001 წლის 03 იანვარი სიდოროვი რ. 30
4 2001 წლის 4 იანვარი პეტროვი ს. 40

ცალ-ცალკე, ეს:

§ წინა ჩანაწერი 3-ში იქნება ჩანაწერი 2.

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

თუ პარამეტრის მნიშვნელობა არის ერთად, ეს:

§ წინა ჩანაწერი 3-ში იქნება ჩანაწერი 1.

§ თუ საანგარიშო ფრაგმენტი განისაზღვრება როგორც მიმდინარე, მიმდინარე(შესაბამისად, პარამეტრები დაწყებადა დასასრული), შემდეგ მე-2 ჩანაწერისთვის ეს ფრაგმენტი შედგება 2 და 3 ჩანაწერებისგან. გამოხატულება CalculateExpression ("ჯამ (მნიშვნელობა)", მიმდინარე, მიმდინარე) 50-ის ტოლი იქნება.

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

CalculateExpression("Sum(SumTurnover)", "First", "Current")

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

CalculateExpression ("შეფასება", "წინა")

სია ახალიფუნქციები:

CalculateExpressionWithGroupArray(,) -

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

CalculateExpressionWithGroupValueTable(,) -

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

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

ფორმატი(, ) - მიიღეთ მიღებული მნიშვნელობის ფორმატირებული სტრიქონი. ფორმატის სტრიქონი დაყენებულია მიხედვით ფორმატის სტრიქონისისტემები "1C: Enterprise".

ქვესტრიქონი(, , ) - ეს ფუნქცია შექმნილია სტრიქონიდან ქვესტრიქონის ამოსაღებად.

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

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