მონაცემთა შემადგენლობის სისტემის გამოხატვის ენა შექმნილია სისტემის სხვადასხვა ნაწილში გამოყენებული გამონათქვამების დასაწერად.
გამონათქვამები გამოიყენება შემდეგ ქვესისტემებში:
გამოთქმა შეიძლება შეიცავდეს სიტყვასიტყვით. შესაძლებელია ლიტერალების შემდეგი ტიპები:
სტრიქონი ლიტერალი იწერება "" სიმბოლოებით, მაგალითად:
"სტრიქონი სიტყვასიტყვით"
თუ თქვენ გჭირდებათ "" სიმბოლოს გამოყენება სტრიქონის სიტყვიერად, თქვენ უნდა გამოიყენოთ ორი ასეთი სიმბოლო.
Მაგალითად:
„სიტყვასიტყვით“ „ბრჭყალებში“““
რიცხვი იწერება შუალედების გარეშე, ათობითი ფორმატით. წილადი ნაწილი გამოყოფილია სიმბოლოს გამოყენებით. Მაგალითად:
10.5 200
თარიღი ლიტერალი იწერება გასაღების სიტყვასიტყვით DATETIME. ამის შემდეგ საკვანძო სიტყვა, ფრჩხილებში, მძიმეებით გამოყოფილი, ჩამოთვლილია წელი, თვე, დღე, საათი, წუთი, წამი. დროის დაზუსტება საჭირო არ არის.
Მაგალითად:
DATETIME(1975, 1, 06) – 1975 წლის 6 იანვარი DATETIME(2006, 12, 2, 23, 56, 57) – 2 დეკემბერი, 2006 წელი, 23 საათი 56 წუთი 57 წამი, 23 საათი 56 წუთი 57 წამი
ლოგიკური მნიშვნელობები შეიძლება დაიწეროს პირდაპირი მნიშვნელობების გამოყენებით True (True), False (False).
სხვა ტიპის ლიტერალების დასაზუსტებლად (სისტემის ჩამოთვლა, წინასწარ განსაზღვრული მონაცემები) გამოიყენება საკვანძო სიტყვა Value, რასაც მოჰყვება სიტყვასიტყვის სახელი ფრჩხილებში.
მნიშვნელობა (ანგარიშის ტიპი. აქტიური)
ეს ოპერაცია მიზნად ისახავს რიცხვის ნიშნის საპირისპირო ნიშნის შეცვლას. Მაგალითად:
გაყიდვები.რაოდენობა
ეს ოპერაცია არ ასრულებს არანაირ მოქმედებას ნომერზე. Მაგალითად:
გაყიდვები.რაოდენობა
ეს ოპერაცია გამიზნულია ორი რიცხვის სხვაობის გამოსათვლელად. Მაგალითად:
ResidualsAndTurnovers.InitialRemaining – RemainingsAndTurnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357
ეს ოპერაცია შექმნილია ორი რიცხვის ჯამის გამოსათვლელად. Მაგალითად:
RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Turnover ResiduesAndTurnover.InitialRemaining + 100 400 + 357
ეს ოპერაცია შექმნილია ორი რიცხვის ნამრავლის გამოსათვლელად. Მაგალითად:
ნომენკლატურა.ფასი * 1.2 2 * 3.14
ეს ოპერაცია შექმნილია ერთი ოპერანდის მეორეზე გაყოფის შედეგის მისაღებად. Მაგალითად:
ნომენკლატურა.ფასი / 1.2 2 / 3.14
ეს ოპერაცია შექმნილია ნარჩენების მისაღებად, როდესაც ერთი ოპერანდი იყოფა მეორეზე. Მაგალითად:
ნომენკლატურა ფასი % 1,2 2 % 3,14
ეს ოპერაცია შექმნილია ორი სტრიქონის შესაერთებლად. Მაგალითად:
ნომენკლატურა.მუხლი + “: ”+ ნომენკლატურა.სახელწოდება
ეს ოპერაცია ამოწმებს შეესაბამება თუ არა სტრიქონი გავლილ შაბლონს.
LIKE ოპერატორის მნიშვნელობა არის TRUE, თუ მნიშვნელობა<Выражения>აკმაყოფილებს შაბლონს, ხოლო FALSE სხვაგვარად.
შემდეგი პერსონაჟები<Строке_шаблона>აქვს მნიშვნელობა განსხვავებული ხაზის სხვა სიმბოლოსგან:
ნებისმიერი სხვა სიმბოლო ნიშნავს თავის თავს და არ ატარებს რაიმე დამატებით დატვირთვას. თუ ჩამოთვლილი სიმბოლოებიდან ერთ-ერთი უნდა დაიწეროს როგორც თავად, მაშინ მას წინ უნდა უძღოდეს<Спецсимвол>, მითითებულია SPECIAL CHARACTER საკვანძო სიტყვის (ESCAPE) შემდეგ.
მაგალითად, შაბლონი
"%ABV[abvg]\_abv%" სპეციალური სიმბოლო "\"
ნიშნავს ქვესტრიქონს, რომელიც შედგება სიმბოლოების თანმიმდევრობისგან: ასო A; ასოები B; ასოები B; ერთი ციფრი; ერთ-ერთი ასო a, b, c ან d; ხაზგასმა; ასო ა; ასო ბ; ასოები ვ. უფრო მეტიც, ეს თანმიმდევრობა შეიძლება განთავსდეს ხაზის თვითნებური პოზიციიდან დაწყებული.
ეს ოპერაცია მიზნად ისახავს ტოლობის ორი ოპერანდის შედარებას. Მაგალითად:
Sales.Counterparty = Sales.NomenclatureMainSupplier
ეს ოპერაცია გამიზნულია ორი ოპერანდის უტოლობის შედარებისთვის. Მაგალითად:
გაყიდვები.კონტრაგენტი<>გაყიდვები.ნომენკლატურამთავარი მიმწოდებელი
ეს ოპერაცია შექმნილია იმის შესამოწმებლად, რომ პირველი ოპერანდი მეორეზე ნაკლებია. Მაგალითად:
გაყიდვები მიმდინარე. თანხა< ПродажиПрошлые.Сумма
ეს ოპერაცია შექმნილია იმის შესამოწმებლად, რომ პირველი ოპერანდი მეორეზე მეტია. Მაგალითად:
SalesCurrent.Sum > SalesPast.Sum
ეს ოპერაცია შექმნილია იმის შესამოწმებლად, რომ პირველი ოპერანდი არის მეორეზე ნაკლები ან ტოლი. Მაგალითად:
გაყიდვები მიმდინარე. თანხა<= ПродажиПрошлые.Сумма
ეს ოპერაცია შექმნილია იმისთვის, რომ შეამოწმოს, არის თუ არა პირველი ოპერანდი მეორეზე დიდი ან ტოლი. Მაგალითად:
SalesCurrent.Amount >= SalesPast.Amount
ეს ოპერაცია ამოწმებს მნიშვნელობის არსებობას მნიშვნელობების მიღებულ სიაში. ოპერაციის შედეგი იქნება True, თუ მნიშვნელობა მოიძებნება, ან False სხვაგვარად. Მაგალითად:
ერთეული B (&პროდუქტი1, &პროდუქტი2)
ოპერაცია ამოწმებს მნიშვნელობის არსებობას მითითებულ მონაცემთა ნაკრებში. ვალიდაციის მონაცემთა ნაკრები უნდა შეიცავდეს ერთ ველს. Მაგალითად:
გაყიდვები კონტრაგენტებთან
ეს ოპერაცია აბრუნებს True-ს, თუ მნიშვნელობა არის NULL. Მაგალითად:
გაყიდვები. კონტრაგენტი არის NULL
ეს ოპერაცია აბრუნებს True-ს, თუ მნიშვნელობა არ არის NULL. Მაგალითად:
გაყიდვები არ არის NULL
ლოგიკური ოპერაციები იღებს ლოგიკური ტიპის გამონათქვამებს ოპერანდებად.
ოპერაცია NOT აბრუნებს True-ს, თუ მისი ოპერანდი არის False და False, თუ მისი ოპერანდი არის True. Მაგალითად:
NOT Document.consignee = Document.Consignor
AND ოპერაცია აბრუნებს True-ს, თუ ორივე ოპერანდი არის True, და False-ს, თუ ერთ-ერთი ოპერანდი არის False. Მაგალითად:
Document.Consignee = Document.Consignor AND Document.Consignee = &Counterparty
OR ოპერაცია აბრუნებს True-ს, თუ მისი ერთ-ერთი ოპერანდი არის True, და False, თუ ორივე ოპერანდი არის False. Მაგალითად:
Document.Consignee = Document.Consignor OR Document.Consignee = &კონტრაგენტი
აგრეგატული ფუნქციები ასრულებენ გარკვეულ მოქმედებას მონაცემთა ნაკრებზე.
Sum aggregate ფუნქცია ითვლის მასზე გადაცემული გამონათქვამების მნიშვნელობების ჯამს, როგორც არგუმენტი ყველა დეტალური ჩანაწერისთვის. Მაგალითად:
თანხა (გაყიდვები. ოდენობა ბრუნვა)
Count ფუნქცია ითვლის NULL-ის გარდა სხვა მნიშვნელობების რაოდენობას. Მაგალითად:
რაოდენობა (გაყიდვები. კონტრაგენტი)
ეს ფუნქცია ითვლის განსხვავებული მნიშვნელობების რაოდენობას. Მაგალითად:
რაოდენობა (სხვადასხვა გაყიდვები. კონტრაგენტი)
ფუნქცია იღებს მაქსიმალურ მნიშვნელობას. Მაგალითად:
მაქსიმალური (დარჩენილი. რაოდენობა)
ფუნქცია იღებს მინიმალურ მნიშვნელობას. Მაგალითად:
მინიმალური (დარჩენილი. რაოდენობა)
ფუნქცია იღებს არა NULL მნიშვნელობების საშუალოს. Მაგალითად:
საშუალო (დარჩენილი. რაოდენობა)
Select ოპერაცია გამიზნულია რამდენიმე მნიშვნელობიდან ერთ-ერთის ასარჩევად, როდესაც გარკვეული პირობები დაკმაყოფილებულია. Მაგალითად:
აირჩიეთ როდესაც თანხა > 1000, შემდეგ თანხა სხვაგვარად 0 დასასრული
თუ შედარებული მნიშვნელობების ტიპები განსხვავდება ერთმანეთისგან, მაშინ მნიშვნელობებს შორის ურთიერთობები განისაზღვრება ტიპების პრიორიტეტის საფუძველზე:
სხვადასხვა მიმართვის ტიპებს შორის ურთიერთობები განისაზღვრება ცხრილების მითითების ნომრების საფუძველზე, რომლებიც შეესაბამება კონკრეტულ ტიპს.
თუ მონაცემთა ტიპები იგივეა, მაშინ მნიშვნელობები შედარებულია შემდეგი წესების მიხედვით:
ნებისმიერი ოპერაცია, რომელშიც ერთ-ერთი ოპერანდი არის NULL, გამოიღებს NULL შედეგს.
არის გამონაკლისები:
ოპერაციებს აქვთ შემდეგი პრიორიტეტები (პირველ ხაზს აქვს ყველაზე დაბალი პრიორიტეტი):
Calculate ფუნქცია შექმნილია გამოხატვის გამოსათვლელად გარკვეული ჯგუფის კონტექსტში. ფუნქციას აქვს შემდეგი პარამეტრები:
IN ამ მაგალითშიშედეგი იქნება დაჯგუფების ჩანაწერის "Sales.SumTurnover" ველის თანხის თანაფარდობა იმავე ველის რაოდენობასთან მთელ განლაგებაში.
ფუნქცია შექმნილია ჩაწერის მიმდინარე დონის მისაღებად.
დონე ()
მიიღეთ შემდეგი რიგითი ნომერი.
NumberByOrder()
აბრუნებს მომდევნო რიგით რიცხვს მიმდინარე ჯგუფში.
NumberByOrderInGroup()
მიიღეთ მიღებული მნიშვნელობის ფორმატირებული სტრიქონი.
ფორმატის სტრიქონი დაყენებულია მიხედვით ფორმატის სტრიქონი 1C: საწარმო.
Პარამეტრები:
ფორმატი (სახარჯავი ინვოისები. დოკუმენტის თანხა, "NPV=2")
Პარამეტრები:
დაწყების პერიოდი (თარიღი დრო (2002, 10, 12, 10, 15, 34), "თვე")
შედეგი:
01.10.2002 0:00:00
ფუნქცია შექმნილია კონკრეტული თარიღის ამოსაღებად მოცემული თარიღიდან.
Პარამეტრები:
ბოლო პერიოდი (თარიღი დრო (2002, 10, 12, 10, 15, 34), "კვირა")
შედეგი:
13.10.2002 23:59:59
ფუნქცია შექმნილია თარიღისთვის გარკვეული მნიშვნელობის დასამატებლად.
Პარამეტრები:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "თვე", 1)
შედეგი:
12.11.2002 10:15:34
ფუნქცია შექმნილია ორ თარიღს შორის სხვაობის მისაღებად.
Პარამეტრები:
DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34), DATETIME(2002, 10, 14, 9, 18, 06), „DAY“)
შედეგი:
ეს ფუნქცია შექმნილია სტრიქონიდან ქვესტრიქონის ამოსაღებად.
Პარამეტრები:
SUBSTRING(Accounts.Address, 1, 4)
ფუნქცია შექმნილია სტრიქონის სიგრძის დასადგენად.
Პარამეტრი:
ხაზი (კონტრაგენტები. მისამართი)
ეს ფუნქცია შექმნილია წლის ამოსაღებად თარიღის ტიპის მნიშვნელობიდან.
Პარამეტრი:
YEAR (ხარჯი.თარიღი)
ეს ფუნქცია შექმნილია კვარტლის ნომრის ამოსაღებად თარიღის ტიპის მნიშვნელობიდან. კვარტლის რიცხვი ჩვეულებრივ მერყეობს 1-დან 4-მდე.
Პარამეტრი
ეს ფუნქცია შექმნილია თვის ნომრის ამოსაღებად თარიღის ტიპის მნიშვნელობიდან. თვის რიცხვი ჩვეულებრივ მერყეობს 1-დან 12-მდე.
ეს ფუნქცია შექმნილია წლის დღის მისაღებად თარიღის ტიპის მნიშვნელობიდან. წელიწადის დღე ჩვეულებრივ მერყეობს 1-დან 365-მდე (366).
ეს ფუნქცია შექმნილია თარიღის ტიპის მნიშვნელობიდან თვის დღის მისაღებად. თვის დღე ჩვეულებრივ მერყეობს 1-დან 31-მდე.
ეს ფუნქცია შექმნილია თარიღის ტიპის მნიშვნელობიდან წლის კვირის რიცხვის მისაღებად. წელიწადის კვირები დათვლილია 1-დან.
ეს ფუნქცია შექმნილია კვირის დღის მისაღებად თარიღის ტიპის მნიშვნელობიდან. კვირის ნორმალური დღე მერყეობს 1-დან (ორშაბათი) 7-მდე (კვირა).
ეს ფუნქცია შექმნილია თარიღის ტიპის მნიშვნელობიდან დღის საათის მისაღებად. დღის საათი 0-დან 23-მდე მერყეობს.
ეს ფუნქცია შექმნილია თარიღის ტიპის მნიშვნელობიდან საათის წუთების მისაღებად. საათის წუთი 0-დან 59-მდე მერყეობს.
ეს ფუნქცია შექმნილია თარიღის ტიპის მნიშვნელობიდან წუთის წამის მისაღებად. წამის წამი მერყეობს 0-დან 59-მდე.
ეს ფუნქცია შექმნილია გამოსახულებიდან ტიპის ამოსაღებად, რომელიც შეიძლება შეიცავდეს ნაერთ ტიპს. თუ გამონათქვამი შეიცავს საჭირო ტიპის გარდა სხვა ტიპს, NULL დაბრუნდება.
Პარამეტრები:
Express(Data.Props1, "Number(10,3)")
ეს ფუნქცია აბრუნებს მეორე პარამეტრის მნიშვნელობას, თუ პირველი პარამეტრის მნიშვნელობა არის NULL.
წინააღმდეგ შემთხვევაში, პირველი პარამეტრის მნიშვნელობა დაბრუნდება.
YesNULL (თანხა (გაყიდვები. ოდენობა ბრუნვა), 0)
მონაცემთა კომპოზიციის ძრავის გამოხატულება შეიძლება შეიცავდეს ზარებს გლობალური საერთო კონფიგურაციის მოდულების ფუნქციებზე. ასეთი ფუნქციების გამოსაძახებლად დამატებითი სინტაქსი არ არის საჭირო.
ამ მაგალითში, "AbbreviatedName" ფუნქცია გამოიძახება ზოგადი კონფიგურაციის მოდულიდან.
გაითვალისწინეთ, რომ მოდულის საერთო ფუნქციების გამოყენება დასაშვებია მხოლოდ იმ შემთხვევაში, თუ მითითებულია მონაცემთა შემადგენლობის შესაბამისი პროცესორის პარამეტრი.
გარდა ამისა, ჩვეულებრივი მოდულების ფუნქციები არ შეიძლება გამოყენებულ იქნას მორგებული ველის გამონათქვამებში.
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")
ამ მაგალითში შედეგი იქნება ჯამის თანაფარდობა ველების მიხედვით გაყიდვები.რაოდენობა ბრუნვაჩანაწერების დაჯგუფება იმავე ველის ჯამზე მთელ განლაგებაში;
ტიპი: ხაზი. პარამეტრს შეუძლია მიიღოს შემდეგი მნიშვნელობები:
· გრანდიოზული სულ- გამოთქმა გამოითვლება ყველა დაჯგუფების ჩანაწერისთვის.
· იერარქია— გამონათქვამი შეფასდება მშობლის იერარქიული ჩანაწერისთვის, თუ არსებობს და მთელი ჯგუფისთვის, თუ არ არის მშობლის იერარქიული ჩანაწერი.
· დაჯგუფება— გამონათქვამი შეფასდება ჯგუფის მიმდინარე ჩანაწერისთვის.
· GroupingNonResource— რესურსების მიხედვით ჯგუფის ჩანაწერისთვის ფუნქციის გაანგარიშებისას, გამონათქვამი გამოითვლება ორიგინალური დაჯგუფების პირველი ჯგუფის ჩანაწერისთვის.
ფუნქციის გამოთვლისას CalculateExpression() მნიშვნელობით GroupingNonResourceჯგუფური ჩანაწერებისთვის, რომლებიც არ არის დაჯგუფებული რესურსების მიხედვით, ფუნქცია გამოითვლება ისევე, როგორც გამოითვლება, თუ პარამეტრის მნიშვნელობა ტოლი იქნება მნიშვნელობასთან დაჯგუფება.
მონაცემთა კომპოზიციის განლაგების შემქმნელი, მონაცემთა კომპოზიციის განლაგების გენერირებისას რესურსის ველის გამოტანისას, რომლითაც ხდება დაჯგუფება განლაგებაში, განათავსებს გამოხატვას განლაგებაში, რომელიც გამოითვლება ფუნქციის გამოყენებით. CalculateExpression() , პარამეტრის მითითებით GroupingNonResource. სხვა რესურსებისთვის, რესურსების ჩვეულებრივი გამონათქვამები მოთავსებულია რესურსების დაჯგუფებაში.
ტიპი: ხაზი. მიუთითებს, თუ რომელი ჩანაწერიდან უნდა დაიწყოს ფრაგმენტი, რომელშიც უნდა გამოითვალოს აგრეგატის გამოხატვის ფუნქციები და რომელი ჩანაწერიდან მიიღოთ ველის მნიშვნელობები აგრეგატის ფუნქციების გარეთ. ღირებულება შეიძლება იყოს ერთ-ერთი შემდეგი:
· Პირველი
· ბოლო (ბოლო)
· წინა
· შემდეგი (შემდეგი)
· მიმდინარე
· LimitingValue(BoundaryValue) LimitingValue
ტიპი: ხაზი. მიუთითებს, რომელ ჩანაწერზე უნდა გაგრძელდეს ფრაგმენტი, რომელშიც უნდა გამოითვალოს აგრეგატული გამოხატვის ფუნქციები. ღირებულება შეიძლება იყოს ერთ-ერთი შემდეგი:
· Პირველი. აუცილებელია პირველი დაჯგუფების ჩანაწერის მოპოვება. ფრჩხილებში მოცემული სიტყვის შემდეგ შეგიძლიათ მიუთითოთ გამონათქვამი, რომლის შედეგი გამოყენებული იქნება ოფსეტად დაჯგუფების დასაწყისიდან. მიღებული მნიშვნელობა უნდა იყოს ნულზე მეტი მთელი რიცხვი. მაგალითად, First(3) - მესამე ჩანაწერის მიღება დაჯგუფების დასაწყისიდან.
თუ პირველი ჩანაწერი არის დაჯგუფების გარეთ, მაშინ ითვლება, რომ არ არსებობს ჩანაწერები. მაგალითად, თუ არის 3 ჩანაწერი და გსურთ მიიღოთ First(4), მაშინ ითვლება, რომ ჩანაწერები არ არის.
· ბოლო (ბოლო). თქვენ უნდა მიიღოთ ბოლო დაჯგუფების ჩანაწერი. ფრჩხილებში მოცემული სიტყვის შემდეგ შეგიძლიათ მიუთითოთ გამონათქვამი, რომლის შედეგი გამოყენებული იქნება როგორც ოფსეტური დაჯგუფების ბოლოდან. მიღებული მნიშვნელობა უნდა იყოს ნულზე მეტი მთელი რიცხვი. მაგალითად, Last(3) - ჯგუფის ბოლოდან მესამე ჩანაწერის მიღება.
თუ ბოლო ჩანაწერისცილდება დაჯგუფებას, ითვლება, რომ არ არსებობს ჩანაწერები. მაგალითად, თუ არის 3 ჩანაწერი და გსურთ მიიღოთ Last(4), მაშინ ითვლება, რომ ჩანაწერები არ არის.
· წინა. თქვენ უნდა მიიღოთ წინა დაჯგუფების ჩანაწერი. ფრჩხილებში მოცემული სიტყვის შემდეგ შეგიძლიათ მიუთითოთ გამონათქვამი, რომლის შედეგი გამოყენებული იქნება ოფსეტური სახით მიმდინარე დაჯგუფების ჩანაწერიდან. მაგალითად, წინა (2) - წინა ჩანაწერიდან წინას მიღება.
თუ წინა ჩანაწერი სცილდება დაჯგუფებას (მაგალითად, მეორე დაჯგუფების ჩანაწერისთვის თქვენ უნდა მიიღოთ Previous(3)), მაშინ მიიღება პირველი დაჯგუფების ჩანაწერი.
დაჯგუფების ჯამისთვის წინა ჩანაწერის აღებისას ითვლება, რომ მიღებულია პირველი ჩანაწერი.
· შემდეგი (შემდეგი). თქვენ უნდა მიიღოთ შემდეგი დაჯგუფების ჩანაწერი. ფრჩხილებში მოცემული სიტყვის შემდეგ შეგიძლიათ მიუთითოთ გამონათქვამი, რომლის შედეგი გამოყენებული იქნება ჯგუფის მიმდინარე ჩანაწერიდან გადასატანად. მაგალითად, Next(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 სისტემის ფორმატის სტრიქონის შესაბამისად.
ქვესტრიქონი(, , ) - ეს ფუნქცია შექმნილია სტრიქონიდან ქვესტრიქონის ამოსაღებად.
ხაზის სიგრძე() - ფუნქცია შექმნილია სტრიქონის სიგრძის დასადგენად. პარამეტრი არის სიმებიანი გამოხატულება
ხაზი() - თუ მასივი გადაეცემა პარამეტრად, ფუნქცია აბრუნებს სტრიქონს, რომელიც შეიცავს მასივის ყველა ელემენტის სტრიქონებს, გამოყოფილი ";" სიმბოლოებით. თუ მნიშვნელობების ცხრილი გადაეცემა პარამეტრად, ფუნქცია აბრუნებს სტრიქონს, რომელიც შეიცავს მნიშვნელობების ცხრილის ყველა სტრიქონის სტრიქონებს, თითოეული მწკრივის უჯრედის გამოსახულებით გამოყოფილი ";"-ით, ხოლო რიგები ახალი ხაზით პერსონაჟი. თუ ელემენტის სტრიქონის გამოსახულება ცარიელია, მაშინ სტრიქონი გამოჩნდება მისი წარმოდგენის ნაცვლად.
ამ მოკლე ჩანაწერში მინდა გაჩვენოთ, თუ როგორ შეგიძლიათ შეაჯამოთ მნიშვნელობები დაჯგუფების სხვადასხვა დონეზე ანგარიშში მონაცემთა შემადგენლობის სისტემის გამოყენებით.
როგორც სურათზეა ნაჩვენები, მხოლოდ „საქონელი ჯგუფების“ დაჯგუფების დონეზე გამოითვლება „შეკვეთის“ რესურსი, ის აჩვენებს რამდენის შეკვეთას საჭიროებს მიმდინარე საქონლის ჯგუფისთვის გარკვეული პირობების საფუძველზე:
შესაბამისად, ახლა აუცილებელია ზემოაღნიშნული დაჯგუფებების („საწყობები“, „საწყობის ტიპები“) და საერთო ჯამების გამოთვლა.
ამისათვის გამოიყენეთ ფუნქცია CalculateExpressionWithGroupArray:
გამოთქმის შეფასება GROUPARRAY-ით (EVALEXPRESSIONWITHGROUPARRAY)
Სინტაქსი:
EvaluateExpressionWithGroupArray(,)
აღწერა:
ფუნქცია აბრუნებს მასივს, რომლის თითოეული ელემენტი შეიცავს განსაზღვრული ველის მიხედვით დაჯგუფების გამოხატვის შეფასების შედეგს.
განლაგების კომპოზიტორი, განლაგების გენერირებისას, გარდაქმნის ფუნქციის პარამეტრებს მონაცემთა კომპოზიციის განლაგების ველებად. მაგალითად, ანგარიშის ველი გარდაიქმნება DataSet.Account-ად.
განლაგების შემქმნელი, როდესაც გამოიმუშავებს გამონათქვამებს მორგებული ველის გამოსავალზე, რომლის გამოხატულება შეიცავს მხოლოდ CalculateArrayWithGroupArray() ფუნქციას, აგენერირებს გამომავალ გამოსახულებას ისე, რომ გამომავალი ინფორმაცია მოწესრიგდეს. მაგალითად, მორგებული ველისთვის გამოხატულებით:
CalculateExpressionWithGroupArray ("Amount(AmountTurnover)", "Counterparty")
განლაგების შემქმნელი გამოიმუშავებს შემდეგ გამონათქვამს გამოსავალისთვის:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))
Პარამეტრები:
ტიპი: სიმებიანი. შესაფასებელი გამოთქმა. სიმებიანი, მაგალითად, Amount (AmountTurnover).
ტიპი: სიმებიანი. ველების დაჯგუფება – დაჯგუფების ველების გამონათქვამები, გამოყოფილი მძიმეებით. მაგალითად, კონტრაქტორი, მხარე.
ტიპი: სიმებიანი. გამოხატულება, რომელიც აღწერს შერჩევას, რომელიც გამოიყენება დეტალურ ჩანაწერებზე. გამოთქმა არ უჭერს მხარს აგრეგატული ფუნქციების გამოყენებას. მაგალითად, DeletionFlag = False.
ტიპი: სიმებიანი. გამონათქვამი, რომელიც აღწერს შერჩევას, რომელიც გამოიყენება ჯგუფურ ჩანაწერებზე. მაგალითად, Amount(AmountTurnover) > &Parameter1.
მაგალითი:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));
ფუნქციის სინტაქსის დეტალური აღწერა შეგიძლიათ იხილოთ http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
ახლა, გაანგარიშებისთვის, ჩვენ ვამეორებთ ველს "შეკვეთა", სხვადასხვა მნიშვნელობებით "გამოთვალეთ ...", შემდეგი გამონათქვამების გამოყენებით, გაითვალისწინეთ, რომ თითოეულ მაღალ დონეზე გამოიყენება დაჯგუფების ქვემოთ მოცემული დონეების მნიშვნელობები. .
შედეგად, ჩვენ ვიღებთ შემდეგ კონსტრუქციას:
გამარჯობა, ძვირფასო მკითხველო! გვაქვს კიდევ ერთი გაკვეთილი განლაგების სისტემის საფუძვლებზე. თქვენ გაეცანით ენის ფუნქციებს SKD გამონათქვამები, დაინახა განლაგების სისტემის მახასიათებლები და ასევე გაიგო განლაგების ველების ძირითადი პარამეტრები. ახლა ჩვენ გადავხედავთ ახალი მასალა. წადი!
სვეტი "ღირებულების ტიპი"გაძლევთ საშუალებას მიუთითოთ მონაცემთა ტიპი განლაგების ველისთვის. რატომ უნდა მიუთითოთ ტიპი, მაგალითად, "ნომენკლატურის" ველისთვის, თუ უკვე იცით რა ტიპისაა? ეს აუცილებელია, თუ განლაგების ველი კომპოზიტური ტიპისაა. შეგიძლიათ აირჩიოთ კონკრეტული ტიპი, შემდეგ ამ ველის არჩევისას შეირჩევა ამ ტიპის მნიშვნელობები.
სვეტი "ხელმისაწვდომი მნიშვნელობები"საშუალებას გაძლევთ მიუთითოთ შერჩევისთვის ხელმისაწვდომი მნიშვნელობები და შეზღუდოთ მომხმარებლის არჩევანი გარკვეულ ლიმიტებზე.
სვეტი "დეკორი"საშუალებას გაძლევთ მიუთითოთ განლაგების ველის დიზაინი განლაგების გამოყენების გარეშე. თქვენ შეგიძლიათ მიუთითოთ შრიფტის ფერი, ჩარჩოს ფერი, ტექსტის ორიენტაცია და ა.შ.
სვეტი "რედაქტირების პარამეტრები"საშუალებას გაძლევთ მიუთითოთ, თუ როგორ უნდა შეცვალოთ განლაგების ველი. მაგალითად, შერჩევისას შეგიძლიათ მიუთითოთ ელემენტების სწრაფი შერჩევა სიიდან. ნაგულისხმევად, განლაგების ველი მემკვიდრეობით იღებს ყველა რედაქტირების ვარიანტს მეტამონაცემების ობიექტიდან.
მონაცემთა შემადგენლობის "გამოთვლილი ველები" ჩანართზე შეგიძლიათ შექმნათ თქვენი საკუთარი გამოთვლილი ველები.
რატომ გჭირდებათ გამოთვლილი ველები, როდესაც შეგიძლიათ შექმნათ ისინი შეკითხვის დონეზე? ყველა ველის აღწერა შეუძლებელია შეკითხვის გამოყენებით. თუ თქვენ გჭირდებათ რთული ველის შექმნა სხვადასხვა მონაცემთა ნაკრებიდან, მაგალითად, მოთხოვნა და ობიექტი, მაშინ არ შეგიძლიათ გაანგარიშებული ველების გარეშე. თქვენ არ შეგიძლიათ დაამატოთ მონაცემთა შემადგენლობის ველი, თუ მონაცემთა წყარო არის მოთხოვნა და ჩართულია ავტომატური შევსება, მაგრამ გამოთვლილი ველების გამოყენებით შეგიძლიათ დაამატოთ იმდენი ველი, რამდენიც გსურთ.
გამოთვლილი ველის "გამოხატვა" სვეტში, თქვენ უნდა დაწეროთ თვითნებური გამოხატულება, რომელიც იყენებს მონაცემთა შემადგენლობის ველებს, მათ გზაზე წვდომას (სვეტი "გზა" ჩანართზე "მონაცემთა ნაკრები"). ან შეგიძლიათ გამოიყენოთ მათემატიკური ტრანსფორმაციის ფუნქციები ან შეხვიდეთ საერთო მოდულების ფუნქციებზე. მაგალითად, სვეტში "მონაცემთა გზა" ჩავწეროთ გამოთვლილი ველის სახელი "გადახრა", ხოლო "გამოხატვა" ველში შემდეგი.
ბიზნეს პროგრამული უზრუნველყოფის ერთ-ერთი ყველაზე მნიშვნელოვანი სფეროა ანგარიშგება. ბიზნესის ბედი შეიძლება იყოს დამოკიდებული (და არა გადატანითი მნიშვნელობით!) იმაზე, თუ რამდენად ადვილია არსებული ანგარიშის მორგება ბიზნესის (და კანონმდებლობის) ცვალებად საჭიროებებზე ან ახლის შექმნა, იქნება ეს ანგარიში საგადასახადო ოფისისთვის. ან სეზონზე და სხვა ფაქტორებზე საქონელზე მოთხოვნის დამოკიდებულების დიაგრამა. მძლავრი და მოქნილი ანგარიშგების სისტემა, რომელიც აადვილებს სისტემიდან საჭირო მონაცემების ამოღებას, მის გასაგებ ფორმაში წარდგენას, რაც საშუალებას აძლევს საბოლოო მომხმარებელს ხელახლა დააკონფიგურიროს სტანდარტული ანგარიში, რათა ნახოს მონაცემები ახლებურად - ეს არის იდეალი, რომელიც ყველა ბიზნეს სისტემა უნდა იბრძოლოს.
1C:Enterprise პლატფორმაზე, მექანიზმი სახელწოდებით "მონაცემთა შედგენის სისტემა" (შემოკლებით DCS) პასუხისმგებელია ანგარიშების გენერირებაზე. ამ სტატიაში ჩვენ შევეცდებით მოგცეთ მოკლე აღწერა ACS მექანიზმის იდეები და არქიტექტურა და მისი შესაძლებლობები.
ACS არის მექანიზმი, რომელიც ეფუძნება ანგარიშების დეკლარაციულ აღწერას. დაშვების კონტროლის სისტემა შექმნილია ანგარიშების გენერირებისთვის და რთული სტრუქტურის მქონე ინფორმაციის ჩვენებისთვის. სხვათა შორის, ანგარიშების შემუშავების გარდა, ACS მექანიზმი ასევე გამოიყენება 1C: Enterprise-ში დინამიურ სიაში, სიის ინფორმაციის ჩვენების საშუალება. მდიდარი ფუნქციონირება(ბრტყელი და იერარქიული სიების ჩვენება, რიგების პირობითი დიზაინი, დაჯგუფება და ა.შ.).
ერთ-ერთი იდეა, რომელიც საფუძვლად დაედო წვდომის კონტროლის სისტემას, იყო ანგარიშების მოქნილობა და მორგება, რაც ხელმისაწვდომი იყო როგორც დეველოპერისთვის, ასევე საბოლოო მომხმარებლისთვის. იდეალურ შემთხვევაში, მსურს საბოლოო მომხმარებლისთვის წვდომა მივცე ანგარიშის დიზაინის ინსტრუმენტების იმავე კომპლექტზე, როგორც დეველოპერს. ლოგიკური იქნებოდა ყველასთვის ხელმისაწვდომი ინსტრუმენტების ერთი ნაკრების შექმნა. ისე, რადგან ხელსაწყოები მოითხოვს საბოლოო მომხმარებლის მონაწილეობას, ეს ნიშნავს, რომ მათში პროგრამირების გამოყენება მინიმუმამდე უნდა შემცირდეს (საუკეთესოა მისი სრულად აღმოფხვრა), ხოლო ვიზუალური პარამეტრები მაქსიმალურად უნდა იქნას გამოყენებული.
მარტივია SQL მოთხოვნებისთვის სტანდარტული სექციების ანალოგების ნახვა - SELECT, FROM, GROUP BY, ORDER BY.
ამავდროულად, შეკითხვის ენა შეიცავს გაფართოებების მნიშვნელოვან რაოდენობას, რომლებიც მიზნად ისახავს ფინანსური და ეკონომიკური პრობლემების სპეციფიკის ასახვას და აპლიკაციის გადაწყვეტილებების შემუშავებისთვის საჭირო ძალისხმევის მინიმუმამდე შემცირებას:
ასევე არსებობს სპეციალური შეკითხვის ენის გაფართოებები წვდომის კონტროლის სისტემებისთვის. გაფართოება ხორციელდება სპეციალური სინტაქსური ინსტრუქციების გამოყენებით, რომლებიც ჩასმულია ხვეული ბრეკეტებში და მოთავსებულია უშუალოდ მოთხოვნის სხეულში. გაფართოებების გამოყენებით დეველოპერი განსაზღვრავს რა ოპერაციებს შეძლებს საბოლოო მომხმარებელი ანგარიშის მორგებისას.
Მაგალითად:
მაგალითი:
მაგალითად, შეგიძლიათ დაამატოთ მოთხოვნა მონაცემთა კომპოზიციის სქემაში, როგორც მონაცემთა ნაკრები და გამოიძახოთ შეკითხვის კონსტრუქტორი, რომელიც საშუალებას გაძლევთ გრაფიკულად შექმნათ თვითნებური სირთულის მოთხოვნა:
შეკითხვის დიზაინერის გაშვების შედეგი იქნება მოთხოვნის ტექსტი (1C: Enterprise შეკითხვის ენაზე). საჭიროების შემთხვევაში, ტექსტის რეგულირება შესაძლებელია ხელით:
მონაცემთა განლაგების სქემაში შეიძლება იყოს რამდენიმე მონაცემთა ნაკრები, მონაცემთა ნაკრები შეიძლება იყოს დაკავშირებული განლაგებაში ნებისმიერი გზით, შეიძლება დაემატოს გამოთვლილი ველები, შეიძლება დაზუსტდეს ანგარიშის პარამეტრები და ა.შ. აღსანიშნავია შეკითხვის მექანიზმის საინტერესო მახასიათებელი 1C:Enterprise-ში. მოთხოვნები საბოლოოდ ითარგმნება SQL-ის დიალექტზე, რომელიც სპეციფიკურია DBMS-ისთვის, რომლითაც აპლიკაცია პირდაპირ მუშაობს. ზოგადად, ჩვენ ვცდილობთ მაქსიმალურად გამოვიყენოთ DBMS სერვერების შესაძლებლობები (ჩვენ შეზღუდული ვართ იმით, რომ ვიყენებთ მხოლოდ იმ შესაძლებლობებს, რომლებიც ერთდროულად ხელმისაწვდომია ყველა DBMS-ში, რომელსაც მხარს უჭერს 1C: Enterprise პლატფორმა - MS SQL, Oracle, IBM DB2. , PostgreSQL). ამრიგად, შეკითხვის დონეზე გამოთვლილ ველებში, ჩვენ შეგვიძლია გამოვიყენოთ მხოლოდ ის ფუნქციები, რომლებიც ითარგმნება SQL-ში.
მაგრამ მონაცემთა შემადგენლობის სქემის დონეზე, ჩვენ უკვე შეგვიძლია დავამატოთ მორგებული ველები და გამოვიყენოთ ფუნქციები მათში ჩაშენებულ 1C განვითარების ენაზე (მათ შორის ჩვენს მიერ დაწერილი), რაც მნიშვნელოვნად აფართოებს მოხსენებების შესაძლებლობებს. ტექნიკურად ასე გამოიყურება - ყველაფერი, რისი თარგმნაც შესაძლებელია SQL-ში, ითარგმნება SQL-ში, მოთხოვნა შესრულებულია DBMS დონეზე, შეკითხვის შედეგები მოთავსებულია 1C აპლიკაციის სერვერის მეხსიერებაში და SKD ითვლის მნიშვნელობებს თითოეული ჩანაწერისთვის. გამოთვლილი ველებიდან, რომელთა ფორმულები დაწერილია 1C ენაზე.
პერსონალური ველების დამატება
ანგარიშს შეგიძლიათ დაამატოთ ცხრილებისა და დიაგრამების თვითნებური რაოდენობა:
ანგარიშის დიზაინერი
გაშვების ანგარიში
SKD-ს გამოყენებით მომხმარებელს შეუძლია დაამატოს კომპლექსური არჩევანი ანგარიშში (რომელიც დაემატება მოთხოვნას საჭირო ადგილას), პირობითი დიზაინი (გამოსახული ველების განსხვავებულად ფორმატირების საშუალებას - შრიფტით, ფერით და ა.შ., მათი მნიშვნელობიდან გამომდინარე. ) და უფრო მეტი. .
ანგარიშის შექმნისა და გენერირების პროცესი შეიძლება მოკლედ აღწერილი იყოს შემდეგნაირად:
ანგარიშის გენერირების პროცესი ACS მექანიზმის გამოყენებით
ჩვენ ვცდილობთ მინიმუმამდე დავიყვანოთ სერვერიდან კლიენტის აპლიკაციაში გადაცემული მოხსენების მონაცემების რაოდენობა. ცხრილების დოკუმენტში მონაცემების ჩვენებისას, ცხრილების დოკუმენტის გახსნისას სერვერიდან გადავიტანთ მხოლოდ იმ ხაზებს, რომლებსაც მომხმარებელი ხედავს დოკუმენტის დასაწყისში. როდესაც მომხმარებელი მოძრაობს დოკუმენტის ხაზების გასწვრივ, დაკარგული მონაცემები იტვირთება სერვერიდან კლიენტზე.
ჩვენების რეჟიმის დაყენება დიზაინის დროს
პარამეტრის ჩვენება სწრაფი წვდომის რეჟიმში მუშაობის დროს (ღილაკის გენერირება)