უახლესი სტატიები
მთავარი / სათამაშო კონსოლები / როგორ დავამატოთ Excel ცხრილი 1-ში. რომელია უკეთესი - "1C" თუ "Excel"? გაქვთ შეკითხვა ან გჭირდებათ კონსულტანტის დახმარება?

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

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

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

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

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

1. გაყიდვების ანალიზი გარკვეული პერიოდის განმავლობაში.

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

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

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

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

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

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

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

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

Excel-ის დასაცავად

ალბათ მოგეჩვენათ, რომ წინააღმდეგი ვარ მონაცემების „მწვანე“ ცხრილებში აგების. Არაფერს. სინამდვილეში, მე თვითონ ხშირად ვაკეთებ რაღაც ბიზნესს Excel-ში: თუ მჭირდება თვითნებური გამოთვლები, თუ მჭირდება მონაცემების სეგმენტირება კლიენტების მიერ, ანალიტიკის ჩატარება იმ პარამეტრების მიხედვით, რომლებიც არ არის 1C-ში - დიახ, ეს ხდება - მე მივდივარ " Excel-ზე. მარტივად რომ ვთქვათ, ცხრილებში ვაკეთებ გამოთვლებს, არასტანდარტულ ანალიზს, მაგრამ შემდეგ მაინც ვაწყობ ყველაფერს მოგვიანებით 1C-ში.

შემდეგ კი, 1C-დან ატვირთული ფაილების სანახავად, ჯერ კიდევ გჭირდებათ Excel, რადგან 1C-ში მონაცემები ინახება ცხრილებში. როგორ ფიქრობთ, ეს მოჯადოებული წრეა? მე სხვანაირად გეტყვით: "1C" და "Excel" მიდიან ერთმანეთის გვერდით, როგორც ორი პარტნიორი, მაგრამ თითოეულ მათგანს აქვს თავისი დანიშნულება, ისინი კარგად ავსებენ ერთმანეთს, მაგრამ არ ენაცვლებიან ერთმანეთს.

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


რა არის შედეგი - "1C" თუ "Excel"?

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

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

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

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

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

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

უნივერსალური მოძრაობა

ITS დისკებზე, ისევე როგორც 1C პორტალზე, მენიუში "ტექნოლოგიური მხარდაჭერა" -> "უნივერსალური ანგარიშები და დამუშავება" გადასვლით, საქაღალდეში "ინფორმაციის ჩატვირთვა ცხრილების დოკუმენტიდან" არის შესაბამისი დამუშავება.

როდესაც ის გაშვებულია, იხსნება ფორმა (ნახ. 1):

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

  1. დირექტორია;
  2. დოკუმენტის ან საცნობარო წიგნის ცხრილის ნაწილი;
  3. ინფორმაციის რეესტრი.

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

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

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

  • შემუშავებულია კომპანიის სპეციალისტების მიერ 1C, ფორმატის ფაილებიmxl;
  • ლისტxls შენახულია ფორმატშიExcel 97-2003;
  • ტექსტური ფაილიტექსტი;
  • მაგიდებიdbf.

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

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

ახლა გადავიდეთ "პარამეტრების" ჩანართზე (ნახ. 2):

ნახ.2

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

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

პარამეტრების სვეტები

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

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

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

ტიპების აღწერა - აჩვენებს მონაცემთა ტიპს, რომელსაც აქვს მეტამონაცემების ამა თუ იმ ატრიბუტი.

ჩამოტვირთვის რეჟიმი - გთავაზობთ ასარჩევად სამ ვარიანტს (ნახ. 3):

ნახ.3

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

ამ უკანასკნელ შემთხვევაში, Expression ველის გააქტიურებით გაიხსნება ფორმა (ნახ.4).

ნახ.4

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

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

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

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

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

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

Excel-დან მონაცემების ატვირთვა საინფორმაციო ბაზები„მართვა და ვაჭრობა“ არის სხვა მექანიზმი. ის ნაკლებად უნივერსალურია ვიდრე ზემოთ მოყვანილი მეთოდი, თუმცა არ საჭიროებს ITS გამოწერას და შედის სტანდარტულ მიწოდებაში.

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

ნახ.5

დამუშავების ფორმა შეიცავს:

  1. თარიღის შერჩევის ველი, რომელიც მიუთითებს, თუ რა დროისთვის არის ეს ფასი შესაბამისი;
  2. კონტრაგენტის არჩევის ველი, რომელმაც გამოაგზავნა მისი ფასების სია;
  3. ღილაკი, რომელიც საშუალებას გაძლევთ აირჩიოთ დასადგენი ფასების ტიპი;
  4. ცხრილის განყოფილება, რომელიც შეიძლება შეივსოს ატვირთული მონაცემებით.

ეს ფორმა ჩანს ნახ.6-ზე

სურ.6

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

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

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

ნახ.7

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

სურ.8

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

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

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

ნახ.9

დამუშავების შემდეგ:

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

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

წვრილმანი გადაცემის დამუშავების ვარიანტები

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

  • Microsoft ADODB-ის საშუალებით - საკმაოდ სწრაფი მეთოდი, რომელიც, როგორც წესი, გამოიყენება როგორც ფაილების, ასევე კლიენტ-სერვერის მონაცემთა ბაზის შენახვის ვარიანტებზე;
  • გადაღმა Microsoft-ის გამოყენება Office - მეთოდი, რომელიც ზოგჯერ ვერ ხერხდება SQL მონაცემთა ბაზებთან მუშაობისას, როგორც წესი, ის მუშაობს გარკვეულწილად ნელა ვიდრე პირველი მეთოდი და ასევე საჭიროა Office;
  • Libre Office-ის საშუალებით - წინა მეთოდისგან განსხვავებით, ის უფასოა, გარდა xls და xlsx ფორმატებისა, მას ასევე აქვს საკუთარი ცხრილების მხარდაჭერა, მაგრამ მოითხოვს დაინსტალირებული LibreOffice პაკეტიდა ატვირთული ფაილის გარკვეული მომზადება (ცხრილის პირველი სტრიქონი უნდა შეიცავდეს სვეტების სახელებს).

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

ADODB.Connection-ის საშუალებით

ზოგადად, ADO ნიშნავს ActiveX Data Object-ს და ემსახურება პროგრამის წვდომასხვადასხვა მონაცემთა ბაზაში. ყველაზე დიდი პრობლემა მესამე მხარის ფაილთან (მათ შორის Excel-ის) რაიმე კავშირის შექმნისას არის კავშირის სტრიქონის სწორად შედგენა.

Excel ფაილებისთვის სამი ვარიანტია:

კავშირის სიმებიანი პარამეტრები:

  • პროვაიდერი - აქ განისაზღვრება გამოყენებული დრაივერი;
  • მონაცემთა წყარო - განსაზღვრავს ფაილის სახელს, რომელსაც გავხსნით;
  • გაფართოებული თვისებები - აქ შეგიძლიათ მიუთითოთ, საჭიროა თუ არა ცხრილისთვის სათაურის ხაზი (HDR = YES მიუთითებს, რომ მონაცემები წაიკითხება პირველი სტრიქონიდან, HDR = NO - მეორედან), გაიხსნება თუ არა ფაილი მხოლოდ წაკითხვისთვის ( ReadOnly) და სხვა დამატებითი პარამეტრები.

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

სურ.13

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

IN ამ საქმეს"Sheet" პარამეტრი განსაზღვრავს Excel-ის სამუშაო წიგნის რომელ ფურცელთან უნდა ვიმუშაოთ.

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

Excel აპლიკაციის საშუალებით

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

ამ COM ობიექტს აქვს რამდენიმე შვილი პარამეტრი, მაგრამ ჩვენთვის მთავარი, ამოცანის ამჟამინდელ პირობებში, არის WorkBooks პარამეტრი (ნახ. 17).

წიგნის ინიციალიზაციის შემდეგ საჭიროა განისაზღვროს ფურცელი, საიდანაც წაიკითხება მონაცემები (სურ. 18).

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

რამდენიმე სიტყვა შესაძლო შეცდომების შესახებ

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

ADO-ს მეშვეობით მუშაობის შემთხვევაში (სურ.19);

სურ.19

  • აპლიკაციასთან მუშაობის შემთხვევაში (სურ. 20).

ბრინჯი. ოცი.

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

1C-ში არსებობს MS Excel ფაილებთან მუშაობის 2 გზა, COM ობიექტის და ჩაშენებული 1C ხელსაწყოების მეშვეობით ცხრილების დოკუმენტის ობიექტის გამოყენებით. მოდით განვიხილოთ ორივე ეს მეთოდი უფრო დეტალურად.

1. მუშაობა COM-ობიექტის მეშვეობით.

ეს მეთოდი მოითხოვს MS Excel-ის დაინსტალირებას, ხოლო თუ სერვერზე ფაილთან მუშაობთ, მაშინ სერვერზე უნდა იყოს დაინსტალირებული MS Excel, თუ კლიენტზე, მაშინ MS Excel ასევე საჭიროა კლიენტის მხარეს.

მაგალითი (სტატიის ბოლოს შეგიძლიათ იხილოთ ტექსტის სახით):

უნდა აღინიშნოს, რომ "Excel.Application" COM ობიექტის მიერ მოწოდებული ყველა ობიექტი, მეთოდი და თვისება არის MS Office პროგრამირების ენის VBA-ს ობიექტები, მეთოდები და თვისებები.

Შენიშვნა:

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

2. იმუშავეთ ელცხრილის დოკუმენტზე 1C.

1C ცხრილების დოკუმენტი მხარს უჭერს MS Excel ფორმატს ჩაწერისთვის მე-8 პლატფორმიდან დაწყებული, მაგრამ გახსნისთვის მხოლოდ პლატფორმიდან 8.3.6. უფრო მეტიც, გახსნისას ყველა ფურცელი იტვირთება ერთ ცხრილის დოკუმენტში. 8.3.10 ვერსიიდან დაწყებული, ჩატვირთვისას, სხვადასხვა ფურცლები იტვირთება როგორც სხვადასხვა ზონა.

ჩაწერის მაგალითი ძალიან მარტივია და დიდ ყურადღებას არ საჭიროებს:

თუმცა, აქ ჩვენ გვაქვს პრობლემა. Excel-ის სამუშაო წიგნში 1C-დან ჩაწერისას, ფურცლების სახელების ჩვენება ნაგულისხმევად გამორთულია.

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

ამ მცირე დამატების შემდეგ, ფურცლის ეტიკეტები გამოჩნდება MS Excel ფაილში.

MS Excel-ის კითხვა არც ისე მარტივი ამოცანაა, რადგან წაკითხვის მეთოდი ხელმისაწვდომია მხოლოდ სერვერზე ან სქელ კლიენტზე. ამისათვის ჩვენ უნდა გადავიტანოთ MS Excel ფაილი სერვერზე.

&კლიენტი

CreateDocument() პროცედურა

გამონაკლისი

მცდელობის დასასრული;

Book = Excel.WorkBooks.Add(); //შექმენით ახალი MS Excel სამუშაო წიგნი

Sheet = Book.WorkSheets.Add(); //ფურცლის დამატება

Sheet.Name = "მაგალითი 1C-დან"; //ფურცლის სახელის დაყენება

Sheet.Cells (1,1).Value = "(!LANG: მოდით შევქმნათ ფორმულა";!}

Sheet.Cells(2,1).მნიშვნელობა = 1;

Sheet.Cells(2,2).მნიშვნელობა = 2;

Sheet.Cells(2,3).ფორმულა = "=A2+B2";

Sheet.Cells(3,1).Value = CurrentDate();

Book.SaveAs("C:\1\Test.xlsx");

Book.Close();

დასრულების პროცედურა

&სერვერზე

GetLayoutServer() ფუნქცია

დააბრუნეთ FormAttributeToValue("ობიექტი").GetLayout("ტაბლონის ატვირთვა"); //ასე ვიღებთ გარე დამუშავების განლაგებას;

ბოლო ფუნქციები

&კლიენტი

პროცედურული სამუშაო ()

Excel = New COMObject ("Excel.Application");

გამონაკლისი

ჩვენება ("ექსელის კომპონენტის დაკავშირების წარუმატებელი მცდელობა. Excel შეიძლება არ იყოს დაინსტალირებული ამ კომპიუტერს!");

მცდელობის დასასრული;

განლაგება = GetLayoutServer();

Layout.Write(TemporaryFileName);

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

წიგნი = Excel.WorkBooks.Open(TempFileName);

SheetTemplate = Book.WorkSheets(1);

SheetTemplate.Cells (6,1).Value = "(!LANG:Date:";!}

SheetTemplate.Cells(6,2).Value = CurrentDate();

SheetTemplate.NumberFormat = "dd/mm/yy;@"; // მივცეთ თარიღის ფორმატი, ეს ფორმატი მიიღება MS Excel-ში მაკროს ჩაწერით

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // სვეტის გაჭიმვა თარიღის ზუსტად შესატყვისად

Book.SaveAs(FileName);

Book.Close();

დასრულების პროცედურა

&კლიენტი

დასრულების პროცედურა

&კლიენტი

პროცედურა WriteSpreadsheetDocument()

SpreadsheetDocument = New SpreadsheetDocument();

SpreadsheetDocument.Area("R1C1").Text = "MS Excel-ში ჩანაწერის მაგალითი 1C-დან";

SpreadDocument.Write("C:\1\Test2.xls",SpreadDocumentFileType.XLSX);

Excel = New COMObject ("Excel.Application");

Excel.WorkBooks.Open("C:\1\Test2.xls");

Excel.Visible = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0.6;

Excel.ActiveWorkbook.Save();

Excel.Application.Quit()

დასრულების პროცედურა

BinaryData = New BinaryData("C:\1\test2.xlsx");

მისამართი=PutToTempStorage(BinaryData,ThisForm.UniqueIdentifier);

SpreadsheetDocument = DownloadOnServer(Address);

SpreadsheetDocument.Show();

დასრულების პროცედურა

&სერვერზე

ფუნქცია LoadOnServer (მისამართი)

TempFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTempStorage(მისამართი);

FileData.Write(TemporaryFileName);

SpreadsheetDocument = New SpreadsheetDocument();

ელცხრილის დოკუმენტის დაბრუნება;

შესავალი.

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

ცხრილები 1C და Excel.

მოხერხებულობისთვის ბევრი მომხმარებელი ინახავს 1C ცხრილებს (დასაბეჭდი ფორმები) Excel ფორმატში (* .xls). ამის შემდეგ მიღებულ ფაილში კეთდება სხვადასხვა დაჯგუფება, დახარისხება, გამოთვლები და ა.შ. ეს გამოწვეულია იმით, რომ 1C ცხრილებში არ არის ისეთი უზარმაზარი ფუნქციონირება, როგორც Excel ცხრილებში. მაგრამ 1C 8.0 ვერსიაში არის სიახლეები, რომლებიც მაგიდებთან მუშაობას უფრო კომფორტულს ხდის.

1C ვებსაიტს (http://www.1c.ru/) აქვს სასარგებლო პროგრამა, რომელიც საშუალებას გაძლევთ გახსნათ 1C ცხრილები Excel-ში და შეინახოთ Excel-ის ფურცელი 1C ცხრილად. ეს სასარგებლოა, თუ 1C ცხრილი არ იყო შენახული Excel ფორმატში და 1C არ არის დაინსტალირებული კომპიუტერზე, სადაც უნდა გახსნათ ეს ცხრილი. დიახ, და მუდმივად გახსოვდეთ, რომ თქვენ უნდა შეინახოთ 1C ცხრილი Excel ფორმატში, არ იქნება საჭირო.

პროგრამის შესახებ სრული ინფორმაცია შეგიძლიათ იხილოთ აქ.
შეგიძლიათ ჩამოტვირთოთ პროგრამა აქ (zip archive 682 739 ბაიტი).

კომენტარი: Excel-ში ათობითი გამყოფი არის ","". ამიტომ, სანამ 1C ცხრილს შეინახავთ Excel ფორმატში, შეცვალეთ მასში სხვა გამყოფი (მაგალითად, ".") ","-ით. წინააღმდეგ შემთხვევაში, Excel ვერ შეასრულებს გამოთვლებს ამ რიცხვებით, ან ისინი საერთოდ არ გამოჩნდება რიცხვებად. მაგალითად, 1C ცხრილში "15.2" ნაჩვენები იქნება Excel-ში, როგორც "15 თებერვალი".

მონაცემთა მიღება Excel-დან.

1C-დან Excel-ზე წვდომა ხდება OLE-ის საშუალებით. მაგალითად, კოდი
მცდელობა
გამონაკლისი
Notify(შეცდომის აღწერა() +
);
Დაბრუნების;
მცდელობის დასასრული;
საშუალებას მოგვცემს "Excel" ცვლადის მეშვეობით შევიდეთ გაშვებული აპლიკაცია Excel. და შემდეგ უკვე შეგიძლიათ წვდომა წიგნზე (ფაილზე), ფურცელზე და უჯრედზე მონაცემებით. ქვემოთ მოცემულია კოდის მაგალითები.

წიგნის (ფაილის) გახსნა:
წიგნი = Excel. სამუშაო წიგნები. Open (PathToFile);
PathToFile არის სრული გზა Excel-ის სამუშაო წიგნის ფაილისკენ.

წიგნის ფურცლის არჩევა სამუშაოდ:
ან
ფურცელი = წიგნი. სამუშაო ფურცლები (SheetName);
SheetNumber არის წიგნის ფურცლის ნომერი, SheetName არის წიგნში არსებული ფურცლის სახელი.

ფურცლის უჯრედის მნიშვნელობის მიღება:
ღირებულება = ფურცელი. უჯრედები (LineNumber, ColumnNumber). ღირებულება;

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

მონაცემთა გამომავალი Excel-ში.

Excel-ში მონაცემების გამოსატანად (ატვირთად), თქვენ უნდა გახსნათ არსებული სამუშაო წიგნი ან შექმნათ ახალი და შეარჩიოთ სამუშაო ფურცელი მონაცემების გამოსატანად. არსებული წიგნის გახსნა აღწერილია ზემოთ, მაგრამ ახალი წიგნის შესაქმნელად, თქვენ უნდა გამოიყენოთ შემდეგი კოდი:
მცდელობა
Excel = CreateObject ("Excel.Application" );
გამონაკლისი
Notify(შეცდომის აღწერა() +
"Excel არ არის დაინსტალირებული ამ კომპიუტერზე!");
Დაბრუნების;
მცდელობის დასასრული;
წიგნი = Excel. სამუშაო წიგნები. add();

ვინაიდან Excel-ში წიგნის შექმნისას, ფურცლები ავტომატურად იქმნება (ინსტრუმენტები-> ოფციები-> ზოგადი-> ფურცლები ახალ წიგნში), თქვენ მხოლოდ უნდა აირჩიოთ ფურცელი, რომლითაც უნდა იმუშაოთ:
ფურცელი = წიგნი. სამუშაო ფურცლები (SheetNumber);
ან დაამატეთ წიგნს ახალი ფურცელი, საჭიროების შემთხვევაში:
ფურცელი = წიგნი. ფურცლები. add();
შემდეგი ნაბიჯი არის უჯრედის მნიშვნელობის დაყენება:
ფურცელი. უჯრედები (LineNumber, ColumnNumber). ღირებულება = ღირებულება ;
RowNumber, ColumnNumber - მწკრივის ნომერი და სვეტის ნომერი, რომლის გადაკვეთაზეც მდებარეობს უჯრედი.
და ბოლოს, თქვენ უნდა ჩაწეროთ შექმნილი წიგნი:
მცდელობა
Წიგნი . SaveAs (PathToFile);
გამონაკლისი
შეტყობინება (შეცდომის აღწერა ()
+ "ფაილი არ არის შენახული!");
Დაბრუნების;
მცდელობის დასასრული;
PathToFile - სრული გზა Excel-ის სამუშაო წიგნის ფაილამდე (სახელის ჩათვლით).
Მნიშვნელოვანი:გახსოვდეთ, რომ ფაილის სახელები არ უნდა შეიცავდეს \/:*? ">< |.

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

Excel = CreateObject ("Excel.Application" ); Excel აპლიკაციაზე წვდომის მოპოვება.
Excel. ხილული = ხილვადობა ; 0 - Excel არ ჩანს, 1 - ჩანს.
წიგნი = Excel. სამუშაო წიგნები. add(); ახალი სამუშაო წიგნის (ფაილი) Excel-ის შექმნა.
Წიგნი . SaveAs (ფაილის სახელი); Excel-ის სამუშაო წიგნის შენახვა.
ფურცელი = წიგნი. სამუშაო ფურცლები. add(); წიგნს ახალი ფურცლის დამატება.
წიგნი = Excel. სამუშაო წიგნები. გახსნა (ფაილის სახელი); არსებული სამუშაო წიგნის (ფაილი) Excel გახსნა.
ფურცელი = წიგნი. სამუშაო ფურცლები (SheetNumber); ფურცლის სამუშაო ფურცლად დაყენება numberSheetNumber-ით.
ფურცელი. სახელი = SheetName; სამუშაო ფურცლის დასახელება SheetName
ფურცელი. გვერდის დაყენება. მასშტაბირება = მასშტაბი; განსაზღვრავს Scale page ოფციას (10-დან 400-მდე).
ფურცელი. გვერდის დაყენება. ორიენტაცია = ორიენტაცია ; ორიენტაცია: 1 - პორტრეტი, 2 - პეიზაჟი.
ფურცელი. გვერდის დაყენება. LeftMargin = Excel. CentimetersToPoints (სანტიმეტრი); აყენებს მარცხენა საზღვარს (სანტიმეტრებში).
ფურცელი. გვერდის დაყენება. TopMargin = Excel. CentimetersToPoints (სანტიმეტრი); განსაზღვრავს ზედა ზღვარს (სანტიმეტრებში).
ფურცელი. გვერდის დაყენება. RightMargin = Excel. CentimetersToPoints (სანტიმეტრი); განსაზღვრავს მარჯვენა საზღვარს (სანტიმეტრებში).
ფურცელი. გვერდის დაყენება. BottomMargin = Excel. CentimetersToPoints (სანტიმეტრი); ადგენს ქვედა ზღვარს (სანტიმეტრებში).
ფურცელი. სვეტები (ColumnNumber) . ColumnWidth = სიგანე ; სვეტის სიგანის დაყენება.
ფურცელი. უჯრედები (LineNumber , ColumnNumber ) . ღირებულება = ღირებულება ; მონაცემთა უჯრედში შეყვანა.
ფურცელი. უჯრედები (LineNumber , ColumnNumber ) . შრიფტი. სახელი = FontName ; შრიფტის დაყენება უჯრედში.
ფურცელი. უჯრედები (LineNumber , ColumnNumber ) . შრიფტი. ზომა = FontSize; დააყენეთ შრიფტის ზომა უჯრედში.
ფურცელი. უჯრედები (LineNumber , ColumnNumber ) . შრიფტი. სქელი = თამამი; 1 - თამამი შრიფტი 0 - ნორმალური.
ფურცელი. უჯრედები (LineNumber , ColumnNumber ) . შრიფტი. დახრილი = დახრილი; 1 - ირიბი შრიფტი, 0 - ნორმალური.
ფურცელი. უჯრედები (LineNumber , ColumnNumber ) . შრიფტი. ხაზგასმული = ხაზგასმული; 2 - ხაზგასმული, 1 - არა.
ფურცელი. უჯრედები (LineNumber , ColumnNumber ) . NumberFormat = ფორმატი ; დააყენეთ უჯრედის მონაცემთა ფორმატი.
ფურცელი. უჯრედები (LineNumber , ColumnNumber ) . საზღვრები. Linestyle = LineType; უჯრედის საზღვრების დაყენება. 1 - თხელი მყარი.

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

  • დამწვრობა (< ИмяФайла>, < ТипФайлаТаблицы >) ფაილში მონაცემების ატვირთვა;
  • წაიკითხეთ (< ИмяФайла>, < СпособЧтенияЗначений >) ფაილიდან მონაცემების ჩასატვირთად.

ყურადღება!

Write() მეთოდი ხელმისაწვდომია როგორც კლიენტზე, ასევე სერვერზე. Read() მეთოდი ხელმისაწვდომია მხოლოდ სერვერის მხარეს. ეს უნდა გახსოვდეთ
კლიენტ-სერვერის ურთიერთქმედების დაგეგმვისას.

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

TabDoc . Write(FilePath, SpreadsheetDocumentFileType.XLSX);

Აქ TabDoc- გენერირებული ცხრილი, ფაილის გზა- ატვირთვის ფაილის სახელი, SpreadsheetDocumentFileType.XLSX- გენერირებული ფაილის ფორმატი. შემდეგი Excel ფორმატები მხარდაჭერილია:

  • XLS95 - Excel 95 ფორმატი;
  • XLS97 - Excel 97 ფორმატი;
  • XLSX არის Excel 2007 ფორმატი.

TabDoc = ახალი ცხრილების დოკუმენტი;
TabDoc . Read(PathToFile, WayToReadSpreadsheetDocumentValues.Value);

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

  • მნიშვნელობა;
  • ტექსტი.

გაცვლა OLE-ის საშუალებით

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

  • საბოლოო მომხმარებლის კომპიუტერზე, თუ გაცვლა ხდება კლიენტის მხარეს;
  • 1C: Enterprise სერვერის კომპიუტერზე, თუ გაცვლა ხდება სერვერის მხარეს.

მაგალითი გადმოტვირთვა:

// შექმენით COM ობიექტი
Excel = New COMObject ("Excel.Application");
// გამორთეთ გაფრთხილებები და კითხვები
Excel . displayalerts = false;
// ახალი წიგნის შექმნა
Წიგნი = Excel. სამუშაო წიგნები. add();
// პოზიციონირება პირველ ფურცელზე
ფურცელი = წიგნი. სამუშაო ფურცლები(1);

// ჩაწერეთ მნიშვნელობა უჯრედში
ფურცელი . უჯრედები (სტრიქონი, სვეტის ნომერი). მნიშვნელობა = CellValue;

// შეინახეთ ფაილი
Წიგნი . SaveAs (ფაილის სახელი);


Excel . Quit();
Excel = 0;

მაგალითები კითხვა:

// -- ვარიანტი 1 --

// შექმენით COM ობიექტი
Excel = New COMObject ("Excel.Application");
// გახსენით წიგნი
Წიგნი = Excel. სამუშაო წიგნები. გახსნა ( ფაილის გზა);

ფურცელი = წიგნი. სამუშაო ფურცლები(1);

// Დახურე წიგნი
Წიგნი . დახურვა (0);

// დახურეთ Excel და თავისუფალი მეხსიერება
Excel . Quit();
Excel = 0;

// —— ვარიანტი 2 ——

// გახსენით წიგნი
Წიგნი = GetCOMObject( ფაილის გზა);
// პოზიციონირება სასურველ ფურცელზე
ფურცელი = წიგნი. სამუშაო ფურცლები(1);

// წაიკითხეთ უჯრედის მნიშვნელობა, ჩვეულებრივ, აქ მდებარეობს უჯრედის შემოვლითი ციკლი
CellValue = Sheet. უჯრედები (სტრიქონი, სვეტის ნომერი). ღირებულება;

// Დახურე წიგნი
Წიგნი . განაცხადი. Qui t();

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

// -- ვარიანტი 1 --
რიგების რაოდენობა = ფურცელი. უჯრედები (1, 1). სპეციალური უჯრედები (11). მწკრივი;
RowNumber-ისთვის = 1 რიგების რაოდენობის მიხედვით
CellValue = Sheet. უჯრედები (სტრიქონი, სვეტის ნომერი). ღირებულება;
საბოლოო ციკლი;

// —— ვარიანტი 2 ——
LineNumber = 0 ;
ხოლო True Loop
LineNumber = LineNumber + 1 ;
CellValue = Sheet. უჯრედები (სტრიქონი, სვეტის ნომერი). ღირებულება;
თუ არ არის ValueFilled (CellValue) მერე
გაუქმება;
Დაასრულე თუ;
საბოლოო ციკლი;

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

TotalColumns = ფურცელი. უჯრედები (1, 1). სპეციალური უჯრედები (11). სვეტი;
TotalRows = ფურცელი. უჯრედები (1, 1). სპეციალური უჯრედები (11). მწკრივი;

რეგიონი = ფურცელი. დიაპაზონი(ფურცელი. უჯრედები(1, 1), სია. უჯრედები(სულ მწკრივები, სულ სვეტები));
მონაცემები = ფართობი. ღირებულება. განტვირთვა();

ქვემოთ მოცემულ ცხრილში მოცემულია ყველაზე მოთხოვნადი თვისებები და მეთოდები Excel-თან OLE-ით მუშაობისთვის:

მოქმედება Კოდი კომენტარი
აპლიკაციასთან მუშაობა
აპლიკაციის ფანჯრის ხილვადობის დაყენება Excel . ხილული= ყალბი;
გაფრთხილების ჩვენების რეჟიმის დაყენება (ჩვენება/არ ჩვენება) Excel . DisplayAlerts= ყალბი;
აპლიკაციის დახურვა Excel . Quit();
წიგნთან მუშაობა
შექმენით ახალი წიგნი Წიგნი = Excel. სამუშაო წიგნები. დამატება();
არსებული სამუშაო წიგნის გახსნა Წიგნი = Excel. სამუშაო წიგნები. გახსნა (ფაილის სახელი);
წიგნის შენახვა Წიგნი . SaveAs (ფაილის სახელი);
წიგნის დახურვა Წიგნი . დახურვა (0);
ფურცელთან მუშაობა
მიმდინარე ფურცლის დაყენება ფურცელი = წიგნი. სამუშაო ფურცლები (SheetNumber);
სახელის პარამეტრი ფურცელი . სახელი = სახელი;
დაცვის დაყენება ფურცელი . დაიცავი();
დაცვის მოხსნა ფურცელი . UnProtect();
გვერდის ორიენტაციის დაყენება ფურცელი . გვერდის დაყენება. ორიენტაცია = 2; 1 - პორტრეტი, 2 - პეიზაჟი
მარცხენა საზღვრის დაყენება ფურცელი . გვერდის დაყენება. LeftMargin = Excel. სანტიმეტრები წერტილი (სანტიმეტრი);
ზედა ლიმიტის დაყენება ფურცელი . გვერდის დაყენება. TopMargin = Excel. სანტიმეტრები წერტილი (სანტიმეტრი);
მარჯვენა საზღვრის დაყენება ფურცელი . გვერდის დაყენება. RightMargin = Excel. სანტიმეტრები წერტილი (სანტიმეტრი);
ქვედა ზღვრის დაყენება ფურცელი . გვერდის დაყენება. BottomMargin = Excel. სანტიმეტრები წერტილი (სანტიმეტრი);
მუშაობა რიგებთან, სვეტებთან, უჯრედებთან
სვეტის სიგანის დაყენება ფურცელი . Columns (ColumnNumber). ColumnWidth = სიგანე;
ხაზის ამოღება ფურცელი . რიგები (სტრიქონის ნომერი). წაშლა();
სვეტის წაშლა ფურცელი . Columns (ColumnNumber). წაშლა ();
უჯრედის წაშლა ფურცელი . უჯრედები (სტრიქონი, სვეტის ნომერი). წაშლა();
ღირებულების დაყენება ფურცელი . უჯრედები (სტრიქონი, სვეტის ნომერი). ღირებულება = ღირებულება;
უჯრედების შერწყმა ფურცელი . დიაპაზონი (ფურცელი. უჯრედები (სტრიქონის ნომერი, სვეტის ნომერი), ფურცელი. უჯრედები (სტრიქონი1, სვეტის ნომერი1)). შერწყმა();
შრიფტის ინსტალაცია ფურცელი . უჯრედები (სტრიქონი, სვეტის ნომერი). შრიფტი. სახელი = FontName;
შრიფტის ზომის დაყენება ფურცელი . უჯრედები (სტრიქონი, სვეტის ნომერი). შრიფტი. ზომა = FontSize;
თამამი შრიფტის პარამეტრი ფურცელი . უჯრედები (სტრიქონი, სვეტის ნომერი). შრიფტი. თამამი = 1 ; 1 - თამამი, 0 - ნორმალური
დახრილის დაყენება ფურცელი . უჯრედები (სტრიქონი, სვეტის ნომერი). შრიფტი. დახრილი = 1 ; 1 - დახრილი, 0 - ნორმალური
ხაზგასმული შრიფტის დაყენება ფურცელი . უჯრედები (სტრიქონი, სვეტის ნომერი). შრიფტი. ხაზი გაუსვით = 2 ; 2 - ხაზგასმული, 1 - არა

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

COMSafeArray-ის გამოყენებით

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

// შექმენით COMSafeArray
ArrayCom = ახალი COMSafeArray ("VT_Variant", TotalColumns, TotalRows);
// შეავსეთ COMSafeArray
ამისთვის Str = 0 სულ რიგები - 1 მარყუჟი
ამისთვის რაოდენობა = 0 ჯამური სვეტები - 1 ციკლი
ArrayCom . SetValue(Number, Str, Value);
საბოლოო ციკლი;
საბოლოო ციკლი;
// Excel ფურცლის ფართობის მნიშვნელობების მინიჭება COMSafeArray-დან
ფურცელი . დიაპაზონი (ფურცელი. უჯრედები (1 , 1 ), სია. უჯრედები (სულ მწკრივები, სულ სვეტები)). მნიშვნელობა = ArrayCom;

გაცვლა ADO-ს საშუალებით

Excel ფაილი, ADO-ს მეშვეობით გაცვლისას, არის მონაცემთა ბაზა, რომლის წვდომა შესაძლებელია SQL მოთხოვნების გამოყენებით. MS Excel-ის ინსტალაცია არ არის საჭირო, მაგრამ საჭიროა ODBC დრაივერი, რომლის მეშვეობითაც შესრულდება წვდომა. გამოყენებული ODBC დრაივერი განისაზღვრება ფაილთან კავშირის სტრიქონის მითითებით. ჩვეულებრივ, საჭირო დრაივერი უკვე დაინსტალირებულია კომპიუტერზე.

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

მაგალითი გადმოტვირთვა:


კავშირი = ახალი COMObject ("ADODB.Connection");


ნაერთი . ConnectionString="

|DataSource=" + ფაილის სახელი + ";
;
ნაერთი . open(); // გახსენით კავშირი

// შექმენით COM ობიექტი ბრძანებისთვის
Command = New COMObject ("ADODB.Command");
ბრძანება

// ბრძანების ტექსტის მინიჭება ცხრილის შესაქმნელად
ბრძანება . commandtext= "შექმენით ცხრილი [ფურცელი1] (სვეტის1 char(255), სვეტის2 თარიღი, სვეტი3 int, Column4 float)";
ბრძანება . execute(); // ბრძანების შესრულება

// ბრძანების ტექსტის მინიჭება ცხრილის მწკრივის დასამატებლად
ბრძანება . commandtext= "InSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) მნიშვნელობები ('abvgdeo', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // ბრძანების შესრულება

// ბრძანების წაშლა და კავშირის დახურვა
ბრძანება = განუსაზღვრელი;
ნაერთი . დახურვა();
კავშირი = განუსაზღვრელი;

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

// შექმენით COM ობიექტი წიგნთან მუშაობისთვის
Წიგნი = New COMObject("ADOX.Catalog");
Წიგნი . ActiveConnection = კავშირი;

// შექმენით COM ობიექტი ფურცელზე მონაცემთა სტრუქტურასთან მუშაობისთვის
ცხრილი = ახალი COMObject ("ADOX.Table");
მაგიდა . სახელი = "ფურცელი1" ;
მაგიდა . Სვეტები. Append("Column1" , 202 );
მაგიდა . Სვეტები. Append("Column2" , 7 );
მაგიდა . Სვეტები. Append("Column3" , 5 );
მაგიდა . Სვეტები. Append("Column4" , 5 );

// წიგნში ფურცლის შექმნა აღწერილი სტრუქტურით
Წიგნი . მაგიდები. დამატება (ცხრილი);
ცხრილი = განუსაზღვრელი;
წიგნი = განუსაზღვრელი;

ზემოთ მოყვანილ მაგალითში მეთოდში

მაგიდა . Სვეტები. მიმაგრება(„სვეტი1“, 202);

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

  • 5-adDouble;
  • 6 - სარეკლამო ვალუტა;
  • 7 - დამატების თარიღი;
  • 11 - adBoolean;
  • 202 - adVarWChar;
  • 203-adLongVarWChar.

მაგალითი კითხვა:

// შექმენით COM ობიექტი კავშირისთვის
კავშირი = ახალი COMObject ("ADODB.Connection");

// კავშირის სტრიქონის დაყენება
ნაერთი . ConnectionString="
|პროვაიდერი=Microsoft.ACE.OLEDB.12.0;
|DataSource=" + ფაილის სახელი + ";
|გაფართოებული თვისებები=""Excel 12.0 XML;HDR=YES"";";
ნაერთი . open(); // გახსენით კავშირი

// შექმენით COM ობიექტი შერჩევის მისაღებად
Selection = New COMObject ("ADODB.Recordset");
RequestText = "SELECT * FROM [Sheet1$]";

// მოთხოვნის შესრულება
ნიმუში . Open(QueryText, Connection);

// შერჩევის შედეგის გვერდის ავლით
სინჯის აღებისას. EOF() მარყუჟი
ColumnValue1 = შერჩევა. ველები. ელემენტი ("სვეტი1"). ღირებულება ; // მითითება სვეტის სახელით
Column2 მნიშვნელობა = შერჩევა. ველები. ელემენტი (0). ღირებულება; // ამოღება სვეტის ინდექსით
ნიმუში . MoveNext();
საბოლოო ციკლი;

ნიმუში . close();
ნიმუში = განუსაზღვრელი;
ნაერთი . close();
კავშირი = განუსაზღვრელი;

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

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

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

  • კავშირი;
  • ბრძანება;
  • ჩანაწერების ნაკრები;
  • ჩანაწერი;
  • ველები;
  • ნაკადი;
  • შეცდომები;
  • პარამეტრები;
  • თვისებები.

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

მონაცემების შესანახად 1C-დან Excel-ში, ყოველთვის არ არის მიზანშეწონილი პროგრამირებაზე მიმართვა. თუ Enterprise რეჟიმში მომხმარებელს შეუძლია ატვირთვისთვის საჭირო მონაცემების ჩვენება, მაშინ შესაძლებელია მათი შენახვა Excel-ში პროგრამირების გარეშე.

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

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

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

  1. შეიტანეთ მონაცემები ელცხრილში ბრძანების გამოყენებით მეტი ⇒ სიის ჩვენება...;
  2. შეინახეთ ცხრილის დოკუმენტი საჭირო ფორმატში.