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

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

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

ამიტომ, 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-ში.

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

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

მოძებნეთ 1C მნიშვნელობების ცხრილში

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

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

1. იპოვეთ

TVHorizon = Directories.Nomenclature.FindByName("TVHorizon");
FoundString = TZNomenclature.Find(TVHorizon);
//ჩვენ ასევე შეგვიძლია განვსაზღვროთ რომელ სვეტებში მოვიძიოთ ძიების დასაჩქარებლად
FoundString = TZNomenclature.Find(TVHorizon, "Nomenclature");

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

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

2. FindStrings


Selection Structure.Insert("Nomenclature", TVHorizon); // ჯერ მიუთითეთ სვეტი სად უნდა ვეძებოთ და შემდეგ რა უნდა ვეძებოთ.

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

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


SelectionStructure = ახალი სტრუქტურა;
Selection Structure.Insert("Nomenclature", TVHorizon);
Selection Structure.Insert("Quantity", 10);
მწკრივების FoundArray = TZNomenclature.FindLines(SelectionStructure);

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

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

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

ღირებულებების ცხრილის, როგორც ობიექტის სტრუქტურა

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

მნიშვნელობების ცხრილი - სვეტები

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

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

ღირებულებების ცხრილის მწკრივი

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

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

შექმენით ღირებულებების ცხრილი

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

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

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

DemoTable = New ValueTable; // უპირველეს ყოვლისა ვაკეთებთ TK-ს ინიციალიზაციას // შემდეგ განვსაზღვრავთ საჭირო პარამეტრებს ახალი სვეტებისთვის და ვამატებთ მათ კოლექციას // "Nomenclature" სვეტის შექმნა Name = "Nomenclature"; ValueType = New TypeDescription("DirectoryLink.Nomenclature"); სათაური = "ნომენკლატურა (პროდუქტი)"; DemoTable.Columns.Add(Name, ValueType, Header); // "რაოდენობის" სვეტის შექმნა Name = "Quantity"; ValueType = New TypeDescription("ნომერი"); DemoTable.Columns.Add(Name, ValueType); // ამ მანიპულაციების შედეგად შევქმენით ცარიელი ცხრილი აკრეფილი სვეტებით // თუ გჭირდებათ პრიმიტიული ტიპების უფრო ზუსტი აკრეფა, მაშინ უნდა გამოიყენოთ კონსტრუქტორის "ტიპების აღწერა" გაფართოებული სინტაქსი.

ცხრილის შექმნა კოპირებით

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

// ვარიანტი ყველა სტრიქონის კოპირებით ტექნიკური სპეციფიკაციის სტანდარტიდან, მაგრამ შენარჩუნებულია მხოლოდ ორი მითითებული სვეტი სტანდარტის სვეტები = "ნომენკლატურა, რაოდენობა"; DemoTable = TableEtalon.Copy(, ColumnsEtalon); // ოფცია ტექნიკური სპეციფიკაციის სტანდარტიდან წინასწარ შერჩეული სტრიქონების კოპირებით, ორი მითითებული სვეტის შენარჩუნებით.Standard-ის რიგები = SelectIntoArrayThe Rows Need From the Table of Standard(); ColumnsStandard = "ნომენკლატურა, რაოდენობა"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // ტექნიკური სპეციფიკაციის სტანდარტიდან სტრიქონების კოპირების ვარიანტი მითითებული ფილტრის გამოყენებით, ერთი სვეტის "ნომენკლატურის" შენარჩუნებით // შეირჩევა ყველა სტრიქონი, სადაც მნიშვნელობა რაოდენობა სვეტში არის 0, მხოლოდ ნომენკლატურის სვეტი Row Selection = New Structure(" რაოდენობა" გამოჩნდება მიღებულ ცხრილში, 0); ColumnsStandard = "ნომენკლატურა"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); // ოფცია ცხრილის სრული ასლით და ერთი მწკრივის შემდგომი წაშლა სიდიდის ველის მნიშვნელობით ნულის ტოლი და მთელი სვეტის “რაოდენობა” წაშლა Row Selection = New Structure("Quantity", 0); ColumnsStandard = "ნომენკლატურა"; DemoTable = TableEtalon.Copy(RowsEtalon, ColumnsEtalon); TableRow = DemoTable.Find(0, "რაოდენობა"); DemoTable.Delete(TableRow); DemoTable.Columns.Delete("რაოდენობა"); // მსგავსი ოფციები და მათი მოდიფიკაციები შეიძლება გამოყენებულ იქნას ცხრილის ნაწილებზე და რეესტრის ჩანაწერების კომპლექტებზე

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

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

// ცარიელი ცხრილის შექმნის მაგალითი დაგროვების რეესტრის სტრუქტურაზე დაყრდნობით // ადვილი მისახვედრია, რომ ამ გზით თქვენ ასევე შეგიძლიათ მიიღოთ შევსებული ცხრილი Query = New Query("SELECT FIRST 0 * From Accumulation Register. Products საწყობში"); RequestResult = Request.Execute(); DemoTable = შეკითხვის შედეგი.Unload(); // ცარიელი ცხრილის შექმნის მაგალითი ცალსახად მითითებული ტიპებისა და ველების სახელების გამოყენებით Query = New Query; Query.Text = "SELECT TOP 0 | Value(Directory.Nomenclature.EmptyLink) როგორც ნომენკლატურა, | EXPRESS(0 AS NUMBER(15, 3)) როგორც რაოდენობა"; RequestResult = Request.Execute(); DemoTable = შეკითხვის შედეგი.Unload(); // ᲛᲜᲘᲨᲕᲜᲔᲚᲝᲕᲐᲜᲘ! არ დაგავიწყდეთ, რომ მოთხოვნიდან მიღებული სვეტის მნიშვნელობების ტიპები ყოველთვის შეიცავს Null ტიპს // ამრიგად, მოთხოვნით შექმნილ TK ყოველთვის აქვს სვეტის კომპოზიტური ტიპები

დასკვნა

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

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

1. შექმენით მნიშვნელობების ცხრილი

ValueTable = New ValueTable;


2. შექმენით სვეტები მნიშვნელობების ცხრილისთვის:

ValueTable.Columns.Add("სახელი");
Value Table.Columns.Add("გვარი");


3. დაამატეთ ახალი რიგები სვეტების სახელების გამოყენებით:


NewLine.Name = "ვასილი";
NewLine.LastName = "Pupkin";


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

FoundRow = ValueTable.Find(SearchValue);


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

FoundRow = ValueTable.Find(SearchValue, "მიმწოდებელი, მყიდველი");


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

SearchStructure = Structure("Employee", SearchValue);
FoundRows-ების მასივი = ValueTable.FindRows(SearchStructure);


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

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

თითოეული მიმდინარე მწკრივისთვის მნიშვნელობების ცხრილის მარყუჟიდან
ანგარიში (CurrentRow.Name);
საბოლოო ციკლი;

იგივეა ინდექსების გამოყენებით:

SeniorIndex = ValueTable.Quantity() - 1;
ანგარიშისთვის = 0 SeniorIndex ციკლისთვის
ანგარიში (TableValues[Account].Name);
საბოლოო ციკლი;


8. არსებული მნიშვნელობების ცხრილის მწკრივის წაშლა

ValueTable.Delete(წელი წაშლილი);

ინდექსით

ValueTable.Delete(0);


9. მნიშვნელობის ცხრილის არსებული სვეტის წაშლა

ValueTable.Columns.Delete(ColumnDeleted);


ინდექსით

ValueTable.Columns.Delete(0);

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

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

NewRow = ValueTable.Add();
NewRow[ColumnName] = მნიშვნელობა;


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

ღირებულებების ცხრილი.შეავსეთ მნიშვნელობები (მცდარი, „ფისკალური აღრიცხვის დროშა“);


ჩვენ ვიყენებთ FillValues() მეთოდს მნიშვნელობების ცხრილისთვის. პირველი პარამეტრი არის შევსებული მნიშვნელობა. მეორე პარამეტრი არის შევსებული სვეტის სახელი.

12. როგორ შევავსო მნიშვნელობების ცხრილი „მიმღების ცხრილი“ მნიშვნელობების ცხრილის „SourceTable“ მონაცემებით?

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

მიმღების ცხრილი = Source table.Copy();


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

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

SourceTable-ის თითოეული რიგისთვის SourceTable ციკლიდან
FillPropertyValues ​​(NewRow, SourceTableRow);
ციკლის დასასრული


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

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

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

იგივე სვეტები = ახალი მასივი();

თითოეული სვეტისთვის SourceTable.Columns Cycle
MatchingColumn = TableReceiver.Columns.Find(Column.Name);

თუ შესატყვისი სვეტი<>განუსაზღვრელი მაშინ

// სვეტის თვისებების მიღება.
სახელი = სვეტი.სახელი;
ValueType = Column.ValueType;
Header = Column.Header;
Width = Column.Width;

// სვეტების ჩანაცვლება დანიშნულების ცხრილში.
Index = TableReceiver.Columns.Index(MatchingColumn);

TableReceiver.Columns.Delete(Index);
ReceiverTable.Columns.Insert(Index, Name, ValueType, Header, Width);

// დაამატეთ შესაბამისი სვეტების შემდეგი სახელი მასივში.
Same Columns.Add(Column.Name);

დაასრულე თუ;

საბოლოო ციკლი;

// ციკლი წყაროს ცხრილის რიგებში.
SourceTable-ის თითოეული რიგისთვის SourceTable ციკლიდან

// დაამატეთ ახალი მწკრივი დანიშნულების ცხრილში.
NewRow = TableReceiver.Add();

// შეავსეთ მნიშვნელობები შესაბამის უჯრედებში.
თითოეული სახელის სვეტისთვის ამავე სახელწოდების ციკლის სვეტებიდან
NewRow[ColumnName] = SourceTableRow[ColumnName];

საბოლოო ციკლი;

საბოლოო ციკლი;


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

13. როგორ დავამატოთ სვეტები "ValueTable" მნიშვნელობების ცხრილში ტიპის შეზღუდვებით?

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

სვეტის დამატება მონაცემთა ტიპის მითითების გარეშე

// დაამატეთ სვეტი ტიპის შეზღუდვის გარეშე.
ValueTable.Columns.Add("ობიექტი");


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

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

// შეზღუდვები სვეტების მონაცემთა ტიპებზე:
// მხოლოდ "კონტრაქტორების" დირექტორიას ელემენტები.
ღირებულებების ცხრილი.Columns.Add("ანგარიში", ტიპების ახალი აღწერა("DirectoryLink.Accounts"));


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

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

// მოამზადეთ და დააწესეთ შეზღუდვები String ტიპის მონაცემებისთვის.
სიმებიანი კვალიფიკატორები = ახალი სიმებიანი კვალიფიკატორები (20, AllowedLength.Variable);
ValidTypes = NewTypeDescription("String", StringQualifiers);
ValueTable.Columns.Add("NoteStringShort", ValidTypes);


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

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

// ადრე გამოყენებული ტიპის აღწერის გაფართოება.
QualifiersNumbers = New QualifiersNumbers(10, 2, ValidSign.Non-negative);
DateQualifiers = New DateQualifiers(DateParts.Date);
Extended ValidTypes = New TypeDescription(ValidTypes, "Number, Date", Number Qualifiers, Date Qualifiers);

ValueTable.Columns.Add("Note", ExtendedAcceptableTypes);

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

სტატიები ღირებულებების სხვა უნივერსალური კოლექციების შესახებ 1C-ში

ისწავლეთ პროგრამირება 1C-ში ჩემს წიგნში "პროგრამირება 1C-ში 11 ნაბიჯში"

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

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

  1. ძალიან ხელმისაწვდომი და გასაგები პრეზენტაციის ენა
  2. წიგნი იგზავნება ელექტრონული ფოსტით PDF ფორმატში. იხსნება ნებისმიერ მოწყობილობაზე!
  3. გაიგეთ მართული 1C აპლიკაციის იდეოლოგია
  4. ისწავლეთ მართული აპლიკაციის შემუშავება;
  5. ისწავლეთ მართული 1C ფორმების შემუშავება;
  6. თქვენ შეძლებთ მართული ფორმების ძირითად და საჭირო ელემენტებთან მუშაობას
  7. მართული აპლიკაციის ქვეშ პროგრამირება ნათელი გახდება

პრომო კოდი 15% ფასდაკლებით - 48PVXHeYu


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

შეგიძლიათ გადაიხადოთ ხელით:

Yandex.Money - 410012882996301
ვებ ფული - R955262494655

შემოუერთდი ჩემს ჯგუფებს.