Kako se zove program za excel u 1c. Što je bolje - 1C ili Excel? Upload bez programiranja

Postoje različiti načini za otvaranje Excel datoteke u 1C i obrnuto. Korisnici početnici će preferirati jednostavnije operacije spremanjem dokumenta u drugom formatu ili korištenjem posebnih programa. Ali vrijedi uložiti malo truda i naučiti kako raditi sa softverskim alatima za pregled i obradu podataka iz jednog programa u drugi. Ove osnovne vještine programiranja pomoći će vam da izbjegnete rutinske zadatke u budućnosti.

Kako otvoriti Excel dokumente u 1C i obrnuto

Microsoft Excel uređivač tabela superiorniji je u funkcionalnosti u odnosu na 1C računovodstvene softverske proizvode. Stoga korisnici 1C radije obavljaju neke operacije u uređivaču proračunskih tablica, a zatim vraćaju podatke u računovodstveni program. I to nije iznenađujuće, jer se ranije računovodstvo mnogih kompanija obavljalo isključivo pomoću Microsoftovih programa. Ali sa trenutnim nivoom automatizacije poslovnih procesa preduzeća, nemoguće je napustiti specijalizovane programe. Da biste uspostavili interakciju između različitih aplikacija, postoje sljedeći jednostavni načini:

    Kada se morate baviti datotekama softverskih proizvoda koji nisu instalirani na vašem trenutnom računalu, najlakši način je korištenje posebne aplikacije za pretvaranje Excel tablica u 1C format i obrnuto. Može se naći na web stranici proizvoda 1C.

    Ako vaš računar ima i 1C i Excel, možete ručno otvoriti datoteku u njenoj "nativnoj" aplikaciji, a zatim je spremiti u formatu drugog programa. Obično je ova opcija dostupna kada spremate ispis ili izgled.

    Korisnici 1C 7.7 mogu nadograditi na verziju 1C 8, koja ima poboljšani uređivač tablica.

Kako 1C i Excel mogu programski komunicirati

Interakcija između 1C i Excel-a može se izvršiti na nivou programa pomoću tehnologije OLE Automation koju je razvio Microsoft. Omogućava vam da pristupite COM objektima direktno iz tumača skripti različitih programa. Jednostavno rečeno, OLE vam omogućava da prenesete dio posla iz jednog programa u drugi, a zatim vratite rad u originalnu aplikaciju. To je upravo ono što računovođama treba od Microsoftovog uređivača tabela.

Ne morate biti programer da biste koristili OLE alate. Iako će prvo upoznavanje sa linijama koda biti praćeno greškama, provjera će pomoći da se one identificiraju, a stečeno iskustvo će pomoći da se izbjegnu u budućnosti. Ispod su najpopularnije komande (one se zovu listing) za rad sa Excel podacima u računovodstvenim programima i obrnuto.

Kako programski otvoriti Excel datoteku u 1C

Dakle, ako su oba programa instalirana na vašem računalu, između kojih želite razmjenjivati ​​podatke, tada možete programski organizirati interakciju. Da biste to učinili, morate pokrenuti obje aplikacije, a zatim koristiti OLE za uspostavljanje pristupa iz 1C u Excel:

  • Izuzetak

    Report(ErrorDescription() + "Excel nije instaliran na ovom računaru!");

  • Kraj pokušaja.

Pristup uređivaču tablice je instaliran, sada koristeći sljedeće komande morate dobiti pristup:

    poseban dokument:

    • Knjiga = Excel.WorkBooks.Open(FilePath)

    • List = Knjiga.Radni listovi(Broj lista);

  • uključujući sa određenim brojem lista:

    uključujući sa određenim nazivom lista:

    • List = Book.WorkSheets(Naziv lista);

    • Vrijednost = Sheet.Cells(RowNumber, ColumnNumber).Value;

Za čitanje podataka s prve stranice datoteke koristite sljedeće liste:

    Excel = CreateObject("Excel.Application");

    Knjiga = Excel.WorkBooks.Open(FilePath);

    List = Knjiga.Radni listovi(1);

    Total Columns = Sheet.Cells(1,1).SpecialCells(11).Column;

    Ukupni redovi = Sheet.Cells(1,1).SpecialCells(11).Row;

    Za red = 1 po petlji TotalRows

    • Za stupac = 1 po ciklusu TotalColumns

      Vrijednost = Abbr(Sheet.Cells(Row, Column).Value);

      EndCycle;

    EndCycle;

Zapamtite, putanja do datoteke mora biti navedena u potpunosti. Kada spremate naziv dokumenta, ne možete uključiti znakove kao što su \, /, :, *, ?, ", >,< и |.

Kako programski otvoriti 1C datoteku kroz Excel

Za snimanje podataka u Excel morate:

    ili otvorite postojeći dokument:

    • Knjiga = Excel.WorkBooks.Open(Putanja do datoteke) - po analogiji sa čitanjem Excel datoteke iz 1C;

    ili dodajte novi:

    • Radna sveska = Excel.WorkBooks.Add();

    Možete kreirati novi list u novom dokumentu:

    • List = Book.Sheets.Add();

    i dodajte novu vrijednost u ćeliju:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Vrijednost; (metode za pisanje vrijednosti pomoću OLE detaljno su opisane na Internetu).

  • Book.SaveAs(FilePath);

    Izuzetak

    Report(ErrorDescription()+"Datoteka nije sačuvana!");

    Kraj pokušaja.

Kada završite rad sa uređivačem proračunskih tablica, izađite pomoću posebne naredbe (Excel.Application.Quit();). Ova metoda će pomoći u uštedi računarskih resursa tokom daljeg rada.

Opasnosti pri razmjeni podataka između 1C i Excela

1C i Excel su razvile različite kompanije i koriste različite načine rukovanja podacima. Stoga, kada prenosite tablice iz jednog programa u drugi, zapamtite sljedeće zamke:

    Razni separatori u razlomcima. Microsoft odvaja decimalne brojeve pomoću zareza. Stoga, kada prenosite tabele iz računovodstvenog programa, nemojte biti iznenađeni obiljem datuma i drugim zabunama. Samo što se u računovodstvenom programu može koristiti tačka u pisanju razlomaka, što će Microsoftov uređivač tabela protumačiti kao separator datuma, a 15.5 će se pretvoriti u 15. maj. Za obradu računovodstvenih podataka u uređivaču proračunskih tablica, separator će morati biti zamijenjen zarezom.

    Prilikom prijenosa podataka iz Excela u 1C, one Excel konstante koje nisu u računovodstvenom programu mogu se pogrešno prikazati. Da biste ih dešifrirali, trebate otići u pomoć za uređivač proračunskih tablica ili u mod za otklanjanje grešaka i provjeriti numeričke izraze različitih konstanti.

Ako trebate razmjenjivati ​​velike količine podataka ili se ne možete riješiti grešaka, obratite se za pomoć profesionalcima kompanije Setby. Pomoći ćemo vam da riješite svoje probleme na nivou programa i shvatite komande potrebne za vaš rad.

Često u komunikaciji s potencijalnim klijentima čujem da im je funkcionalnost tablice iz uredskog paketa sasvim dovoljna, a oni ne vide smisao u 1C programima. To je zato što neki ljudi još uvijek povezuju ovo rješenje samo sa programima za računovođe, što nije istina.

Excel je univerzalan i masovno proizveden proizvod, s tim se ne možete raspravljati. Gotovo svi mogu koristiti ovaj program, za razliku od razvoja 1C, koji su namijenjeni uskim stručnjacima. Koristeći „zelene“ tabele, možete slobodno implementirati potrebnu funkcionalnost, koja će biti zgodna: ovdje je finansijski model organizacije sa svim međusobnim obračunima, upravljačkim računovodstvom, čak i reguliranim, velikim izborom vizualizacije podataka, mogućnošću samostalnog proširite mogućnosti programa pomoću raznih dodataka - sve je u vašim rukama, sve od nule...

Dobro je ako tek započinjete svoj posao, postepeno uzimajući u obzir potrebne podatke u tabeli o odnosima sa klijentima, dobavljačima, regulatornim tijelima, izgrađujete vlastitu proizvoljnu strukturu, ali šta dalje kada baza podataka postane obimna i broj zaposlenih u desetinama? Još uvijek računate prema vlastitim parametrima? Ja sam za to da se udobnost ne brka sa navikom, koja često ometa sistematizaciju poslovanja, a samim tim i njegovu optimizaciju.

Radi jasnoće, zamislimo koje se potrebe mogu pojaviti za automatizaciju računovodstva, na primjer, za trgovinu:

1. Analiza prodaje u određenom periodu.

Rukovodilac odjela prodaje može analizirati podatke o prodaji. Za njega je važno da shvati da li se plan sprovodi, koliko su njegove strategije efikasne, kako bi u slučaju neefikasnosti mogao na vrijeme izvršiti prilagodbu u radu.

2. Računovodstvo skladišta.
Trebam li objasniti da je za prodaju također važno razumjeti dostupnost robe na zalihama, koja roba se može rezervisati, a koja nema na lageru i šta je potrebno naručiti? Mislim da je tu sve jasno.

3. Održavanje baze podataka o ugovornim stranama.
Čak i ako vlasnik prodaje samo ono što se može kupiti ovdje i sada, što je tipično za B2C sektor, onda ima malo drugačiji odnos sa bazom dobavljača - ugovori, primarni... Zamislite kako je zgodno kada je sve povezano sa dobavljač je automatski Da li se odmah prikazuje u jednoj bazi podataka? Rukovodilac skladišta odmah vidi raspoloživost robe u magacinu, drugi službenik zadužen za dokumentaciju prati podatke o njihovoj dostupnosti, da li se ispunjavaju sve obaveze iz ugovornih odnosa, ko kome i koliko duguje. A u slučaju neslaganja, možete uskladiti podatke za određeni period, generirajući rezultat za manje od minute.

4. Dobit organizacije.
Izrada izvještaja o dobiti neće biti teška, jer se svi podaci o rashodima i prihodima već nalaze u bazi podataka. Pod uslovom da se podaci unesu blagovremeno, najmanje do traženog datuma. Osnovni faktor ovdje je lična odgovornost korisnika.

Ako nemate mnogo klijenata i dobavljača, Excel će vam zaista odgovarati, jer ima dovoljno vremena da osmislite vlastite dijagrame u tabeli i popunite ih, nakon čega slijedi distribucija dokumenata u razne mape na računaru: ugovori, dobavljači, klijenti, klijenti u komšiluku, klijenti u razvoju, klijenti za brisanje – beskrajan i fascinantan proces kreiranja fascikli unutar fascikle. A ako ima puno informacija, da li je zgodno pratiti svoju bazu podataka? Naravno, uvijek postoje izuzeci, ponekad postoje organizacije sa velikim prometom čiji se finansijski podaci vode samo u Excel-u. Koliko im je vremena potrebno za razmjenu i kombinovanje podataka između odjeljenja? Odgovoriću: mnogo.

Ne mogu zamisliti kako brzo pronaći onaj koji vam je potreban u velikom broju Excel dokumenata organiziranih u proizvoljnom sistemu. Na primjer, prilikom dostavljanja dokumenata za zahtjeve iz porezne uprave. Kako će računovođa podnositi izvještaje regulatornim tijelima kada su sve informacije razbacane? Računovodstvo se, naravno, može povjeriti vanjskim izvršiteljima i nekim vlasnicima poduzeća, nažalost, možda neće biti stalo do procesa koji određeni stručnjak može imati sve dok balansira. Ali čak i ako jeste, kako je onda organiziran proces razmjene dokumenata? Koliko brzo će vanjski zaposlenik razumjeti improviziranu informacijsku strukturu?

Ne mogu reći isto za 1C, jer su sve informacije strukturirane i međusobno povezane:

    Jedinstvena baza podataka za udaljene i stalno zaposlene, u kojoj možete raditi sa svim standardiziranim i prilagođenim dokumentima;
    Izvještavanje regulatornim tijelima se generira na osnovu podataka koji se već odražavaju u programu; nema potrebe za otvaranjem mnogo datoteka, kombinovanjem nekoliko vrijednosti u jednu tabelu da bi se dobili konačni rezultati.
„1C“, na dobar način, je multitasking sistem koji je usmjeren kako na tipične računovodstvene zadatke, tako i na automatizaciju svih organizacionih procesa, ovisno o području djelatnosti. Glavna riječ ovdje je sistem. Niko vas ne brani da organizujete svoj poslovni sistem u Excel-u, ali zašto ponovo izmišljati točak kada postoje rešenja koja pokrivaju gotovo sve potrebe za optimizacijom vremenskih i finansijskih troškova, pomažući u sistematizaciji vašeg rada?

U odbranu Excela

Vjerovatno vam se činilo da sam protiv konstruiranja podataka u „zelenim“ tabelama. Ne sve. Zapravo, i sam često radim neke poslove u Excel-u: ako mi trebaju proizvoljni proračuni, ako trebam segmentirati podatke po klijentima, provođenje analize na osnovu parametara koji nisu u 1C - da, to se dešava - idem u "Excel". Jednostavno rečeno, u tabelama radim proračune i nestandardne analize, ali onda svejedno sistematizujem u 1C.

A zatim, za pregled preuzetih datoteka iz 1C i dalje će vam trebati Excel, jer se podaci u 1C pohranjuju u proračunske tablice. Osjećate li da je ovo začarani krug? Reći ću drugačije: „1C“ i „Excel“ idu jedan pored drugog kao dva partnera, ali svaki od njih ima svoju svrhu, dobro se nadopunjuju, ali ne zamjenjuju.

Ako trebate sistematizirati svoje poslove uzimajući u obzir zakonodavni sistem naše države, uzimajući u obzir specifičnosti i fokus poslovanja, posebno kada su u pitanju velike količine informacija, onda vam je potreban 1C. Ako su vam potrebni proizvoljni proračuni, izgradnja strategije od nule, vizualizacija nestandardnih analitičkih podataka, onda vam Excel stoji na usluzi. Ali mnogo je zgodnije raditi s ovim rješenjima istovremeno.


Šta je krajnji rezultat – “1C” ili “Excel”?

Na samom početku, ako se radi o finansijama za automatizaciju, iako osnovni 1C programi ne koštaju toliko novca, koristio bih Excel. Veliki plus je što se podaci iz „zelenih“ tabela mogu učitati u 1C bez gubitka. Ali, kako skalirate, savjetovao bih vam da obratite pažnju na programe za automatizaciju poslovnih procesa. Ima ih mnogo, a ne mora nužno biti 1C...

Prijelaz na “1C” može se izvršiti kada shvatite da trebate optimizirati svoje resurse, uključujući automatizaciju pitanja vezanih za odnose s klijentima i dobavljačima, te s nadzornim tijelima. Općenito, prilagodite svoje radne procese kako biste povećali poslovnu efikasnost kada će vam obrada informacija oduzeti mnogo vremena, a Excel datoteke se više neće nositi sa količinom ulaznih podataka.

Međutim, nije svaki "1C" možda prikladan za vas; morate uzeti u obzir različite faktore: specifičnosti i obim poslovanja, obim, potrebu za svakodnevnim zadacima, rutinu koju treba svesti na minimum. Sve je individualno. Istina je, kao što sam već rekao, negdje između “1C” i “Excel” - međusobno se nadopunjuju.

To je vjerovatno sve. Ali ako imate bilo kakvih pitanja, kontaktirajte nas, mi ćemo pokušati da vam pomognemo. Uspješni poslovni procesi, kolege!

Ova metoda je jednostavna. Njegova suština je da objekat TabularDocument ima metode:

  • Zapiši (< ИмяФайла>, < ТипФайлаТаблицы >) za upload podataka u datoteku;
  • Čitaj (< ИмяФайла>, < СпособЧтенияЗначений >) za učitavanje podataka iz datoteke.

Pažnja!

Metoda Write() dostupna je i na klijentu i na serveru. Metoda Read() dostupna je samo na strani servera. Treba zapamtiti ovo
prilikom planiranja interakcije klijent-server.

Pogledajmo primjer spremanja dokumenta proračunske tablice u datoteku. Potrebno je kreirati i popuniti objekat TabularDocument na bilo koji način, i istovar na fajl se radi samo sa jednom linijom:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Evo TabDoc- generirani tabelarni dokument, Put do datoteke— naziv datoteke za otpremanje, TabularDocumentFileType.XLSX— format kreirane datoteke. Podržani su sljedeći Excel formati:

  • XLS95 - Excel 95 format;
  • XLS97 - Excel 97 format;
  • XLSX je Excel 2007 format.

TabDoc = Novi TabularDocument;
TabDoc . Read(PathToFile, Metoda čitanjaTabularDocumentValues.Value);

Evo Put do datoteke— putanja do preuzete Excel datoteke. Metoda čitanja vrijednosti tabelarnog dokumenta.Vrijednost određuje kako treba tumačiti podatke pročitane iz izvornog dokumenta. Dostupne opcije:

  • Značenje;
  • Tekst.

Razmjena putem OLE

Razmjena putem OLE automatizacijske tehnologije je možda najčešća opcija za programski rad s Excel datotekama. Omogućava vam da koristite sve funkcije koje pruža Excel, ali je sporiji u odnosu na druge metode. Za zamjenu putem OLE-a potrebna je instalacija MS Excel-a:

  • Na računaru krajnjeg korisnika, ako se razmjena dogodi na strani klijenta;
  • Na serverskom računaru 1C:Enterprise, ako se razmjena dogodi na strani servera.

Primjer istovar:

// Kreiranje COM objekta
Excel = Novi COMObject("Excel.Application");
// Onemogući upozorenja i pitanja
Excel . DisplayAlerts = False;
// Kreirajte novu knjigu
Book = Excel. Radne sveske. Dodati();
// Položaj na prvom listu
List = Knjiga. Radni listovi(1);

// Upisuje vrijednost u ćeliju
List . Ćelije (broj reda, broj kolone). Vrijednost = CellValue;

// Sačuvajte datoteku
Book . Sačuvaj kao (ime datoteke);


Excel . Quit();
Excel = 0;

Primjeri čitanje:

// -- OPCIJA 1 --

// Kreiranje COM objekta
Excel = Novi COMObject("Excel.Application");
// Otvorite knjigu
Book = Excel. Radne sveske. Otvori( Put do datoteke );

List = Knjiga. Radni listovi(1);

// Zatvaranje knjige
Book . Zatvori(0);

// Zatvorite Excel i oslobodite memoriju
Excel . Quit();
Excel = 0;

// —— OPCIJA 2 ——

// Otvorite knjigu
Book = GetCOMObject( Put do datoteke );
// Pozicioniranje na željeni list
List = Knjiga. Radni listovi(1);

// Pročitajte vrijednost ćelije, obično se ovdje nalazi petlja obilaska ćelije
CellValue = List. Ćelije (broj reda, broj kolone). vrijednost;

// Zatvaranje knjige
Book . Aplikacija. Qui t();

Za zaobići Za sve popunjene redove Excel radnog lista možete koristiti sljedeće tehnike:

// -- OPCIJA 1 --
Broj redova = list. Ćelije(1, 1). Specijalne ćelije(11). Red;
Za Broj reda = 1 po broju redova ciklusa
CellValue = List. Ćelije (broj reda, broj kolone). Vrijednost;
EndCycle;

// —— OPCIJA 2 ——
Broj reda = 0;
Dok je ciklus istine
Broj reda = Broj reda + 1;
CellValue = List. Ćelije (broj reda, broj kolone). vrijednost;
Ako NIJE ValueFilled(CellValue) Onda
Prekini;
endIf;
EndCycle;

Umjesto da uzastopno prelazite sve redove lista, možete dump sve podatke u niz i raditi sa njim. Ovaj pristup će biti brži kada čitate veliku količinu podataka:

Total Columns = List. Ćelije(1, 1). Specijalne ćelije(11). Kolona;
TotalRows = List. Ćelije(1, 1). Specijalne ćelije(11). Red;

Region = List. Opseg(list. Ćelije(1, 1), List. Ćelije(Ukupno redova,Ukupno kolona));
Podaci = Region. Vrijednost. Istovariti();

Tabela u nastavku prikazuje najpopularnija svojstva i metode za rad s Excelom putem OLE-a:

Akcija Kod Komentar
Rad sa aplikacijom
Postavljanje vidljivosti prozora aplikacije Excel . Vidljivo= False;
Podešavanje načina izlaza upozorenja (prikaz/ne prikaz) Excel . DisplayAlerts= False;
Zatvaranje aplikacije Excel . Quit();
Rad sa knjigom
Kreiranje nove knjige Book = Excel. Radne sveske. Dodati();
Otvaranje postojeće radne sveske Book = Excel. Radne sveske. Otvori (ime datoteke);
Čuvanje knjige Book . Sačuvaj kao (ime datoteke);
Zatvaranje knjige Book . Zatvori(0);
Rad sa listom
Postavljanje trenutnog lista List = Knjiga. Radni listovi(Broj lista);
Postavljanje imena List . Ime = Ime;
Postavljanje zaštite List . Zaštiti();
Uklanjanje zaštite List . UnProtect();
Podešavanje orijentacije stranice List . Postavljanje stranice. Orijentacija = 2; 1 - portret, 2 - pejzaž
Postavljanje lijeve granice List . Postavljanje stranice. Lijeva margina = Excel. CentimetersToPoints(Centimetri);
Postavljanje gornje granice List . Postavljanje stranice. TopMargin = Excel. CentimetersToPoints(Centimetri);
Postavljanje desne granice List . Postavljanje stranice. Desna margina = Excel. CentimetersToPoints(Centimetri);
Postavljanje donje granice List . Postavljanje stranice. BottomMargin = Excel. CentimetersToPoints(Centimetri);
Rad sa redovima, kolonama, ćelijama
Podešavanje širine kolone List . Kolone (Broj kolone). ColumnWidth = Širina;
Izbrišite liniju List . Redovi (Broj reda). Izbriši();
Uklanjanje kolone List . Kolone (Broj kolone). Delete();
Izbrišite ćeliju List . Ćelije (broj reda, broj kolone). Izbriši();
Postavljanje vrijednosti List . Ćelije (broj reda, broj kolone). Vrijednost = Vrijednost;
Spajanje ćelija List . Opseg(Liste. Ćelije(Broj reda, Broj kolone), List. Ćelije(Broj reda1, Broj kolone1)). Spoji();
Postavljanje fonta List . Ćelije (broj reda, broj kolone). Font. Ime = Ime fonta;
Podešavanje veličine fonta List . Ćelije (broj reda, broj kolone). Font. Veličina = Veličina fonta;
Postavljanje podebljanog fonta List . Ćelije (broj reda, broj kolone). Font. Bold = 1 ; 1 - podebljano, 0 - normalno
Postavljanje kurziva List . Ćelije (broj reda, broj kolone). Font. Kurziv = 1 ; 1 - kurziv, 0 - normalno
Postavljanje podvučenog fonta List . Ćelije (broj reda, broj kolone). Font. Podvući = 2 ; 2 - podvučeno, 1 - ne

Da biste saznali koje svojstvo treba promijeniti ili koju metodu pozvati, možete koristiti macros Excel. Ako snimite makro sa potrebnim radnjama, tada možete pogledati VBA kod snimljenog makroa.

Korištenje COMSafeArray

Prilikom preuzimanja velikih količina podataka iz 1C u Excel, možete koristiti objekt za ubrzanje COMSafeArray. Prema definiciji sintaksnog asistenta, COMSafeArray je omotač objekta preko višedimenzionalnog niza SafeArray od COM. Omogućava vam da kreirate i koristite SafeArray za razmjenu podataka između COM objekata. Jednostavno rečeno, to je niz vrijednosti koje se mogu koristiti za razmjenu između aplikacija koje koriste OLE tehnologiju.

// Kreiraj COMSafeArray
ArrayCom = Novi COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// Popuni COMSafeArray
Za Stranica = 0 Po TotalLines - 1 ciklus
Za Broj = 0 Ukupno kolona - 1 ciklus
ArrayCom . SetValue(broj, stranica, vrijednost);
EndCycle;
EndCycle;
// Dodjeljivanje područja Excel radnog lista vrijednostima iz COMSafeArray
List . Raspon(list. Ćelije(1, 1), List. Ćelije(Ukupno redova,Ukupno kolona)). Vrijednost = ArrayCom;

Razmjena putem ADO-a

Excel datoteka, kada se razmjenjuje putem ADO-a, je baza podataka kojoj se može pristupiti pomoću SQL upita. Instalacija MS Excel-a nije potrebna, ali morate imati ODBC drajver sa kojim će biti omogućen pristup. Korišteni ODBC drajver se određuje specificiranjem niza povezivanja na datoteku. Obično je potreban drajver već instaliran na računaru.

Razmjena putem ADO-a je primjetno brža od razmjene putem OLE-a, ali prilikom učitavanja nije moguće koristiti Excel funkcionalnost za dizajniranje ćelija, postavljanje stranica, postavljanje formula itd.

Primjer istovar:


Connection = New COMObject("ADODB.Connection");


Compound . ConnectionString = "

|Izvor podataka=" + Ime datoteke + ";
;
Compound . Open(); // Otvaranje veze

// Kreirajte COM objekt za naredbu
Naredba = Novi COMObject("ADODB.Command");
Tim

// Dodjela teksta naredbe za kreiranje tablice
Tim . CommandText = "KREIRAJ TABELU [Sheet1] (Kolona1 znak (255), Kolona2 datum, Stupac3 int, Kolona4 float)";
Tim . Izvrši(); // Izvrši naredbu

// Dodjela teksta naredbe za dodavanje reda tablice
Tim . CommandText = "INSERT INTO [Sheet1] (kolona1, stupac2, stupac3, stupac4) vrijednosti ('abvwhere', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // Izvrši naredbu

// Uklonite naredbu i zatvorite vezu
Naredba = Nedefinirano;
Compound . Zatvori();
Veza = Nedefinirano;

Da biste kreirali novi list i formirali njegovu strukturu, možete koristiti objekte ADOX.Catalog I ADOX.Table. U ovom slučaju, kod će izgledati ovako:

// Kreirajte COM objekat za rad sa knjigom
Book = Novi COMObject("ADOX.Catalog");
Book . ActiveConnection = Veza;

// Kreirajte COM objekt za rad sa strukturom podataka na listu
Tabela = Novi COMObject("ADOX.Table");
Table . Ime = "List1" ;
Table . Kolone. Dodati("Kolona1", 202);
Table . Kolone. Dodati("Kolona2", 7);
Table . Kolone. Dodati("Kolona3", 5);
Table . Kolone. Dodati("Kolona4", 5);

// Kreirajte list s opisanom strukturom u radnoj knjizi
Book . Stolovi. Dodati (Tabela);
Tabela = Nedefinirano;
Knjiga = Nedefinirano;

U gornjem primjeru, u metodi

Table . Kolone. Dodati(“Kolona 1”, 202);

drugi parametar specificira tip stupca. Parametar je opcionalan, evo nekih vrijednosti tipa stupca:

  • 5 - adDouble;
  • 6 - adCurrency;
  • 7 - adDate;
  • 11 - adBoolean;
  • 202 - adVarWChar;
  • 203 - adLongVarWChar.

Primjer čitanje:

// Kreirajte COM objekt za vezu
Connection = New COMObject("ADODB.Connection");

// Postavljanje niza veze
Compound . ConnectionString = "
|Provider=Microsoft.ACE.OLEDB.12.0;
|Izvor podataka=" + Ime datoteke + ";
|Extended Properties=""Excel 12.0 XML;HDR=DA"";";
Compound . Open(); // Otvaranje veze

// Kreirajte COM objekt za primanje odabira
Odaberite = Novi COMObject("ADODB.Recordset");
RequestText = "ODABIR * IZ [Sheet1$]";

// Izvršimo zahtjev
Uzorak . Otvori (Tekst upita, Veza);

// Zaobići rezultat uzorka
Još nije odabran. EOF() petlja
Vrijednost stupca 1 = Izbor. Polja. Stavka("Kolona1"). Vrijednost ; // Pristup po imenu kolone
Column2Value = Izbor. Polja. Stavka(0). vrijednost; // Pristup po indeksu stupca
Uzorak . MoveNext();
EndCycle;

Uzorak . Zatvori();
Uzorak = Nedefinirano;
Compound . Zatvori();
Veza = Nedefinisano;

U nizu veze parametar HDR određuje kako će se percipirati prvi red na listu. Moguće opcije:

  • DA - prvi red se tretira kao naziv kolona. Vrijednostima se može pristupiti po imenu i indeksu stupca.
  • NE - prvi red se tretira kao podatak. Vrijednostima se može pristupiti samo putem indeksa stupca.

Ovi primjeri pokrivaju samo nekoliko ADO objekata. ADO objektni model se sastoji od sljedećih objekata:

  • veza;
  • Command;
  • recordset;
  • Record;
  • Polja;
  • Potok;
  • Greške;
  • parametri;
  • Svojstva.

Upload bez programiranja

Da biste spremili podatke iz 1C u Excel, nije uvijek preporučljivo pribjeći programiranju. Ako u Enterprise modu korisnik može prikazati podatke potrebne za preuzimanje, oni se mogu spremiti u Excel bez programiranja.

Da biste sačuvali dokument tabele (na primer, rezultat izveštaja), možete pozvati naredbu Sačuvaj ili Sačuvaj kao… glavni meni.

U prozoru koji se otvori potrebno je odabrati direktorij, naziv i format spremljene datoteke.

Da biste sačuvali podatke iz dinamičkih lista (na primjer, listu stavki), morate:

  1. Iznesite podatke u tabelarni dokument pomoću naredbe Više ⇒ Lista...;
  2. Sačuvajte tabelarni dokument u potrebnom formatu.

U 1C postoje 2 načina rada sa MS Excel datotekama: preko COM objekta i ugrađenih 1C alata pomoću objekta dokumenta proračunske tablice. Pogledajmo obje ove metode detaljnije.

1. Radite kroz COM objekt.

Ova metoda zahtijeva instaliran MS Excel, a ako radite sa fajlom na serveru, onda MS Excel mora biti instaliran na serveru, ako je na klijentu, onda je potreban i MS Excel na strani klijenta.

Primjer (možete ga vidjeti u tekstualnom obliku na kraju članka):

Treba napomenuti da su svi objekti, metode i svojstva koje pruža COM objekat "Excel.Application" objekti, metode i svojstva VBA, programskog jezika MS Office.

Bilješka:

Ponekad je potrebno da radite sa postojećim šablonom. Zatim trebamo pohraniti ovaj predložak negdje tako da svi potrebni korisnici imaju pristup njemu. Međutim, postoji jednostavnije rješenje, sačuvati predložak kao binarni izgled.

2. Radite kroz tabelarni dokument 1C.

1C tabelarni dokument podržava MS Excel format za snimanje počevši od platforme 8, ali za otvaranje samo počevši od platforme 8.3.6. Štaviše, kada se otvore, svi listovi se učitavaju u jedan tabelarni dokument. Od verzije 8.3.10, prilikom učitavanja, različiti listovi se učitavaju kao različita područja.

Primjer unosa je vrlo jednostavan i ne zahtijeva posebnu pažnju:

Međutim, ovdje imamo problem. Kada snimate iz 1C u radnoj svesci Excel, prikaz naziva listova je onemogućen prema zadanim postavkama.

Ovaj problem se može riješiti na 2 načina, 1 - u samoj knjizi, omogućite prikaz listova u postavkama (neće svi korisnici pristati na to), 2 - to uradite preko COM objekta (opet nam treba instaliran MS Excel ).

Nakon ovog malog dodatka, oznake listova će biti vidljive u MS Excel datoteci.

Čitanje MS Excel-a nije tako lak zadatak, jer je metoda čitanja dostupna samo na serveru ili debelom klijentu. Da bismo to uradili, moramo prenijeti MS Excel datoteku na server.

&OnClient

Procedura CreateDocument()

Izuzetak

EndAttempt;

Knjiga = Excel.WorkBooks.Add(); //Kreirajte novu MS Excel radnu knjigu

List = Book.WorkSheets.Add(); //Dodaj list

Sheet.Name = "Primjer iz 1C"; //Podesite ime lista

Sheet.Cells(1,1).Value = " Kreirajmo formulu";!}

Sheet.Cells(2,1).Vrijednost = 1;

Sheet.Cells(2,2).Value = 2;

Sheet.Cells(2,3).Formula = "=A2+B2";

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

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

Book.Close();

Kraj procedure

&Na serveru

Funkcija GetLayoutServer()

Vrati FormAttributesValue("Object").GetLayout("TemplateForUpload"); //Na ovaj način dobijamo izgled eksterne obrade;

EndFunction

&OnClient

Procedura Rad()

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

Izuzetak

Report("Pokušaj povezivanja Excel komponente je bio neuspešan. Excel možda nije instaliran na ovom računaru!");

EndAttempt;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

Imate li pitanja ili vam je potrebna pomoć konsultanta?

Knjiga = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

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

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

SheetTemplate.NumberFormat = "dd/mm/yy;@"; // Dajte format datuma, ovaj format je dobijen snimanjem makroa u MS Excel

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Proširite kolonu tako da datum tačno odgovara

Book.SaveAs(FileName);

Book.Close();

Kraj procedure

&OnClient

Kraj procedure

&OnClient

Procedura WriteTabularDocument()

TabularDocument = Novi TabularDocument();

TabularDocument.Area("R1C1").Text = "Primjer zapisa u MS Excel-u iz 1C";

TabularDocument.Write("C:\1\Test2.xls",TabularDocumentFileType.XLSX);

Excel = Novi 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()

Kraj procedure

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

Adresa=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier);

TabularDocument = UploadOnServer(Adresa);

TabularDocument.Show();

Kraj procedure

&Na serveru

Funkcija UploadOnServer(Adresa)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Adresa);

FileData.Write(TemporaryFileName);

TabularDocument = Novi TabularDocument();

return TabularDocument;