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

17.03.2024

ცხრილის ნაწილები არსებობს მრავალი ობიექტისთვის 1C-ში:

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

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

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

როგორ ავუაროთ ცხრილის ნაწილს

მაგიდის ნაწილის გადასასვლელად, შეგიძლიათ გამოიყენოთ მარყუჟი ყველასთვის

ციკლის ტაბულური ნაწილის თითოეული რიგისთვის

ანგარიში (სტრიქონი. TabularPart ატრიბუტი) ;

ბოლო ციკლი ;

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

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

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

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

არჩეული ხაზების გამეორებისთვის გამოიყენეთ მარყუჟი ყველასთვის:

SelectedRows = FormElements. TableFieldName. შერჩეული რიგები;

შერჩეული რიგების მარყუჟის თითოეული მწკრივისთვის

//მარყუჟის შინაარსი

ბოლო ციკლი ;

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

ცხრილის ველის რიგების პროგრამულად გაუქმება:

ფორმის ელემენტები. TableFieldName. შერჩეული რიგები. Clear() ;

ცხრილის ველის ყველა მწკრივის პროგრამულად შესარჩევად:

თითოეული CurrentRow-ისთვის TabularPart Loop-დან
ფორმის ელემენტები. TableFieldName. შერჩეული ხაზები. დამატება(CurrentRow);
ბოლო ციკლი ;

როგორ გავასუფთავოთ ცხრილის ნაწილი

TabularPart. Clear() ;

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

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

ჩვეულებრივი ფორმებისთვის კოდი ასე გამოიყურება:

ფორმის ელემენტები. TableFieldName. CurrentData;

მართული ფორმებისთვის:

ელემენტები. TableFieldName. CurrentData;

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

ცხრილის განყოფილების ბოლოს ახალი ხაზის დამატება:

NewRow = TablePart. დამატება() ;

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

NewRow = TablePart. ჩასმა (ინდექსი)
//ინდექსი - დამატებული ხაზის ნომერი. ხაზების ნუმერაცია იწყება ნულიდან.

NewRow. Props1 = "მნიშვნელობა" ;

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

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

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

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

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

პროცედურა TabularPartAtStartEditing (ელემენტი, ახალი მწკრივი, ასლი)

//თუ მომხმარებელი არედაქტირებს არსებულ ხაზს, მაშინ ჩვენ არაფერს ვაკეთებთ
თუ არა NewRow მაშინ
დაბრუნება;
ბოლოს თუ ;

//თუ ხაზი ახალია, დააყენეთ საბუღალტრო ანგარიში
TechString = ელემენტი. CurrentData; //მიიღეთ ტაბულური ნაწილის მიმდინარე მწკრივი
TechString. ბუღალტერია = ანგარიშთა სქემები. თვითმხარდამჭერი. RequiredAccount;
პროცედურის დასასრული

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

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

ამიტომ, 1C-ში მაგიდებთან მუშაობა თვალსაჩინო ადგილს იკავებს.

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

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

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

//ვარიანტი 1 – თანმიმდევრული წვდომა შეკითხვის შედეგებზე

//მიიღე მაგიდა
Select = Query.Run().Select();
// შეკითხვის შედეგის ყველა სტრიქონს თანმიმდევრობით გავდივართ
ხოლო Select.Next() ციკლი
ანგარიში (არჩევა.სახელი);
საბოლოო ციკლი;

//ვარიანტი 2 – ატვირთვა მნიშვნელობათა ცხრილში
Request = New Request("SELECT Name FROM Directory.Nomenclature");
//მიიღე მაგიდა
ცხრილი = Query.Run().Unload().
//შემდეგ ჩვენ ასევე შეგვიძლია გადავკვეთოთ ყველა ხაზი
ცხრილის ციკლიდან თითოეული რიგისთვის
ანგარიში (სტრიქონი.სახელი);
საბოლოო ციკლი;
//ან თვითნებურად წვდომა სტრიქონებს
Row = Table.Find("შოველ", "სახელი");

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

ცხრილი ფორმაზე (სქელი კლიენტი)

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

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

მაშ ასე, დავდოთ ცხრილი ფორმაზე. ამისათვის შეგიძლიათ გადაიტანეთ ცხრილი Controls პანელიდან. ანალოგიურად, მენიუდან შეგიძლიათ აირჩიოთ Form/Insert Control.

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

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

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

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

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

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

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

ცხრილის სამართავად, თქვენ უნდა აჩვენოთ ბრძანების პანელი ფორმაზე. აირჩიეთ მენიუს პუნქტი Form/Insert Control/Command Bar.

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

ცხრილი ფორმის შესახებ (თხელი/მართული კლიენტი)

მართულ ფორმაზე, ეს მოქმედებები ცოტა განსხვავებულად გამოიყურება. თუ ფორმაზე ცხრილის ნაწილის განთავსება გჭირდებათ, გააფართოვეთ Object ფილიალი და გადაიტანეთ ერთ-ერთი ცხრილის ნაწილი მარცხნივ. სულ ესაა!

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

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

შემდეგ ასევე გადაიტანეთ ცხრილი მარცხნივ.

იმისათვის, რომ ცხრილს ჰქონდეს ბრძანების ზოლი, ცხრილის თვისებებში აირჩიეთ მნიშვნელობები Usage – Command bar position განყოფილებაში.

ცხრილის ატვირთვა Excel-ში

ფორმაზე განთავსებული ნებისმიერი 1C ცხრილი შეიძლება დაიბეჭდოს ან აიტვირთოს Excel-ში.

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

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

მთავარი დამწყები დეველოპერებისთვის სწავლობენ პროგრამირებას

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

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

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

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

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

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

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

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