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

მართულ საკეტებზე გადასვლის ძირითადი მიზეზებია:

  • მთავარი მიზეზი არის 1C რეკომენდაცია: ექსპერტი მითითებებზე დაყრდნობით ან 1C: MCC
  • პრობლემები მომხმარებლის ერთდროულ მუშაობასთან დაკავშირებით ()
  • Oracle, PostgreSQL და.

სამუშაოს ღირებულება:

მართული საკეტების არსი

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

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

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

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


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

  • კითხვა: შესაძლებელია ჯერ აუდიტის გაკეთება, შემდეგ კი UB– ზე გადასვლა?

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

  • კითხვა: UB– ზე გადასასვლელად, რა სახის წვდომა გჭირდებათ - RDP, TeamViewer? ან შეიძლება გამოგიგზავნოთ კონფიგურაციის ფაილი?

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

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

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

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

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

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

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

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

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

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

  1. დოკუმენტის რეჟიმი ავტომატური, რეგისტრაციის რეჟიმი ავტომატური ->
  2. დოკუმენტის რეჟიმის მართვა, რეგისტრაციის რეჟიმის მართვა -> დაწერეთ რეგისტრის მიერ კონტროლირებად რეჟიმში
  3. დოკუმენტის რეჟიმი ავტომატური, რეგისტრაციის რეჟიმი ხელმძღვანელობით -> ავტორიზაციის რეჟიმში რეესტრის დაწერა
  4. დოკუმენტის რეჟიმში მართვა, რეგისტრაციის რეჟიმი ავტომატური -> გამონაკლისი (შეცდომა)

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

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

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

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

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

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

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

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

კონფიგურაცია 1C: საწარმოს 8 შეუძლია იმუშაოს გარიგების საკეტების მართვის სამი რეჟიმიდან ერთში:

  • ავტო;
  • მოახერხა - სტანდარტული რეჟიმი ახალი კონფიგურაციისთვის;
  • ავტომატური და კონტროლირებადი.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • ველის სახელისა და მნიშვნელობის მკაფიოდ მითითებით (DataLockElement ობიექტის SetValue () მეთოდი);
  • მონაცემთა მნიშვნელობის შემცველი მონაცემების წყაროს მითითებით (theDataLockElement ობიექტის DataSource თვისება).

თითოეული დაბლოკვის ელემენტისთვის შეიძლება ორიდან ორი დაბლოკვის რეჟიმის დაყენება:

  • გაიზიარა,
  • გამონაკლისი.

მართებული დაბლოკვის თავსებადობის ცხრილი ასე გამოიყურება

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

მუშაობის თავისებურებები "ავტომატური და კონტროლირებადი" რეჟიმში

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

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

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

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

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

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