Čitanje excel datoteke od 1s 8.3. Što je bolje - 1C ili Excel? Mogućnosti obrade DIY prijenosa

U 1C postoje 2 načina za rad s MS Excel datotekama: putem 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 s datotekom na poslužitelju, tada MS Excel mora biti instaliran na poslužitelju, ako na klijentu, onda je MS Excel potreban i 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 objekt "Excel.Application" objekti, metode i svojstva VBA, MS Office programskog jezika.

Bilješka:

Ponekad morate raditi s postojećim predloškom. Zatim trebamo negdje pohraniti ovaj predložak kako bi svi potrebni korisnici imali pristup njemu. Međutim, postoji jednostavnije rješenje, spremite predložak kao binarni izgled.

2. Rad s tabelarnim dokumentom 1C.

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

Primjer unosa je vrlo jednostavan i ne zahtijeva posebnu pozornost:

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

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

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

Čitanje MS Excela nije tako lak zadatak, jer je metoda čitanja dostupna samo na poslužitelju ili debelom klijentu. Da bismo to učinili, moramo prenijeti MS Excel datoteku na poslužitelj.

&NaKlijentu

Procedura CreateDocument()

Iznimka

EndAttempt;

Knjiga = Excel.Radne knjige.Dodaj(); //Stvorite novu MS Excel radnu knjigu

List = Knjiga.Radni Listovi.Dodaj(); //Dodajte list

Sheet.Name = "Primjer iz 1C"; //Postavite naziv lista

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

Sheet.Cells(2,1).Value = 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");

Knjiga.Zatvori();

EndProcedure

&Na poslužitelju

Funkcija GetLayoutServer()

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

EndFunction

&NaKlijentu

Rad na postupku()

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

Iznimka

Izvješće("Pokušaj povezivanja Excel komponente je bio neuspješan. Excel možda nije instaliran na ovom računalu!");

EndAttempt;

Izgled = GetLayoutServer();

Layout.Write(TemporaryFileName);

Imate pitanje ili trebate pomoć konzultanta?

Knjiga = Excel.RadneKnjige.Otvori(ImePrivremeneDatoteke);

SheetTemplate = Knjiga.Radni listovi(1);

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

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

SheetTemplate.NumberFormat = "dd/mm/yy;@"; // Dajte format datuma, ovaj format je dobiven snimanjem makronaredbe u MS Excelu

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Rastegni stupac tako da datum točno stane

Book.SaveAs(FileName);

Knjiga.Zatvori();

EndProcedure

&NaKlijentu

EndProcedure

&NaKlijentu

Procedura WriteTabularDocument()

TabličniDokument = Novi TabličniDokument();

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

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

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

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()

EndProcedure

BinarniPodaci = Novi BinarniPodaci("C:\1\test2.xlsx");

Adresa=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier)​;

TabularDocument = UploadOnServer(Adresa);

TabličniDokument.Prikaži();

EndProcedure

&Na poslužitelju

Funkcija UploadOnServer(Adresa)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Adresa);

FileData.Write(TemporaryFileName);

TabličniDokument = Novi TabličniDokument();

return TabularDocument;

Postoje različiti načini za otvaranje Excel datoteke u 1C i obrnuto. 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

Uređivač proračunskih tablica Microsoft Excel superiorniji je u funkcionalnosti od 1C računovodstvenih softverskih proizvoda. Stoga korisnici 1C radije izvode neke operacije u uređivaču proračunskih tablica, a zatim vraćaju podatke u računovodstveni program. I to ne čudi, jer se ranije računovodstvo mnogih tvrtki provodilo isključivo pomoću Microsoftovih programa. Ali s trenutnom razinom automatizacije poslovnih procesa poduzeća, nemoguće je napustiti specijalizirane programe. Za uspostavljanje interakcije između različitih aplikacija postoje sljedeći jednostavni načini:

    Kada se morate nositi s datotekama softverskih proizvoda koji nisu instalirani na vašem trenutnom računalu, najlakši je način koristiti posebnu aplikaciju za pretvaranje Excel tablica u 1C format i obrnuto. Može se pronaći na web stranici proizvoda 1C.

    Ako vaše računalo ima i 1C i Excel, možete ručno otvoriti datoteku u svojoj "nativnoj" aplikaciji, a zatim je spremiti u formatu drugog programa. Ova je opcija obično dostupna prilikom spremanja obrasca ili izgleda za ispis.

    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 Excela može se provesti na razini programa pomoću tehnologije OLE Automation koju je razvio Microsoft. Omogućuje vam pristup COM objektima izravno iz tumača skripti različitih programa. Jednostavno rečeno, OLE vam omogućuje prijenos dijela rada iz jednog programa u drugi, a zatim vraćanje posla u izvornu aplikaciju. To je upravo ono što računovođe trebaju od Microsoftovog uređivača proračunskih tablica.

Ne morate biti programer da biste koristili OLE alate. Iako će prvo upoznavanje s linijama koda biti popraćeno pogreškama, provjera će vam pomoći da ih identificirate, a stečeno iskustvo pomoći će vam da ih izbjegnete u budućnosti. Ispod su najpopularnije naredbe (nazivaju se listingi) za rad s Excel podacima u računovodstvenim programima i obrnuto.

Kako otvoriti Excel datoteku u 1C programski

Dakle, ako su na vašem računalu instalirana oba programa 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:

  • Iznimka

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

  • Kraj pokušaja.

Pristup uređivaču tablica je instaliran, sada pomoću sljedećih naredbi morate dobiti pristup:

    konkretan dokument:

    • Knjiga = Excel.WorkBooks.Open(FilePath)

    • List = Knjiga.Radni Listovi(Broj Lista);

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

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

    • List = Book.WorkSheets(SheetName);

    • Vrijednost = List.Ćelije(BrojReda,BrojStupca).Vrijednost;

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

    Excel = CreateObject("Excel.Application");

    Knjiga = Excel.WorkBooks.Open(FilePath);

    List = Knjiga.Radni listovi(1);

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

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

    Za red = 1 petljom TotalRows

    • Za stupac = 1 prema ciklusu TotalColumns

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

      EndCycle;

    EndCycle;

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

Kako otvoriti 1C datoteku kroz Excel programski

Za snimanje podataka u Excel morate:

    ili otvorite postojeći dokument:

    • Knjiga = Excel.WorkBooks.Open(Path to File) - po analogiji s čitanjem Excel datoteke iz 1C;

    ili dodajte novi:

    • Radna knjiga = Excel.Radne knjige.Dodaj();

    Možete stvoriti novi list u novom dokumentu:

    • List = Knjiga.Listovi.Dodaj();

    i dodajte novu vrijednost u ćeliju:

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

  • Book.SaveAs(FilePath);

    Iznimka

    Izvješće(ErrorDescription()+"Datoteka nije spremljena!");

    Kraj pokušaja.

Kada završite s radom u uređivaču proračunskih tablica, izađite pomoću posebne naredbe (Excel.Application.Quit();). Ova metoda pomoći će uštedjeti resurse računala tijekom daljnjeg rada.

Opasnosti pri razmjeni podataka između 1C i Excela

1C i Excel razvile su različite tvrtke i koriste različite načine rukovanja podacima. Stoga, prilikom prijenosa tablica iz jednog programa u drugi, zapamtite sljedeće zamke:

    Razni razdjelnici u razlomačkim brojevima. Microsoft odvaja decimalne brojeve zarezom. Stoga, prilikom prijenosa tablica iz računovodstvenog programa, nemojte se iznenaditi obiljem datuma i druge zabune. Samo što računovodstveni program može koristiti točku u zapisu razlomaka, što će Microsoftov uređivač proračunskih tablica protumačiti kao razdjelnik datuma, a 15.5 će se pretvoriti u 15. svibnja. Za obradu računovodstvenih podataka u uređivaču proračunskih tablica, razdjelnik će se morati zamijeniti zarezom.

    Prilikom prijenosa podataka iz Excela u 1C, one Excel konstante koje nisu u računovodstvenom programu mogu se prikazati netočno. Da biste ih dešifrirali, morate otići u pomoć za uređivač proračunskih tablica ili u način rada za otklanjanje pogrešaka i provjeriti numerički izraz raznih konstanti.

Ako trebate razmijeniti velike količine podataka ili se ne možete riješiti grešaka, obratite se za pomoć stručnjacima tvrtke Setby. Pomoći ćemo vam riješiti vaše probleme na programskoj razini i razumjeti naredbe potrebne za vaš rad.

Ova metoda je jednostavna. Njegova je bit u tome da objekt Tablični dokument ima metode:

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

Pažnja!

Metoda Write() dostupna je i na klijentu i na poslužitelju. Metoda Read() dostupna je samo na strani poslužitelja. Ovo treba zapamtiti
prilikom planiranja interakcije klijent-poslužitelj.

Pogledajmo primjer spremanja dokumenta proračunske tablice u datoteku. Potrebno je kreirati i ispuniti objekt TabularDocument na bilo koji način, i iskrcavanje u datoteku se vrši samo jednim redom:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Ovdje TabDoc- generirani tablični dokument, Put do datoteke— naziv datoteke za učitavanje, TabularDocumentFileType.XLSX— format stvorene datoteke. Podržani su sljedeći Excel formati:

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

TabDoc = Novi tabularni dokument;
TabDoc . Read(PathToFile, Method of ReadingTabularDocumentValues.Value);

Ovdje Put do datoteke— put do preuzete Excel datoteke. Metoda čitanja vrijednosti tabelarnog dokumenta. Vrijednost određuje kako treba interpretirati podatke pročitane iz izvornog dokumenta. Dostupne opcije:

  • Značenje;
  • Tekst.

Razmjena putem OLE

Razmjena putem tehnologije automatizacije OLE je možda najčešća opcija za programski rad s Excel datotekama. Omogućuje korištenje svih funkcija koje nudi Excel, ali je sporiji u usporedbi s drugim metodama. Za razmjenu putem OLE potrebna je instalacija MS Excela:

  • Na računalu krajnjeg korisnika, ako se razmjena odvija na strani klijenta;
  • Na poslužiteljskom računalu 1C:Enterprise, ako se razmjena odvija na strani poslužitelja.

Primjer iskrcavanje:

// Kreirajte COM objekt
Excel = Novi COMObject("Excel.Aplikacija");
// Onemogući upozorenja i pitanja
Excel . DisplayAlerts = False;
// Stvaranje nove knjige
Knjiga = Excel. Radne bilježnice. Dodati();
// Pozicija na prvom listu
List = Knjiga. Radni listovi(1);

// Upišite vrijednost u ćeliju
List . Ćelije (Broj reda, Broj stupca). Vrijednost = CellValue;

// Spremite datoteku
Knjiga . Spremi kao (naziv datoteke);


Excel . Prestati();
Excel = 0;

Primjeri čitanje:

// -- OPCIJA 1 --

// Kreirajte COM objekt
Excel = Novi COMObject("Excel.Aplikacija");
// Otvorite knjigu
Knjiga = Excel. Radne bilježnice. Otvoren( Put do datoteke );

List = Knjiga. Radni listovi(1);

// Zatvaranje knjige
Knjiga . Zatvori(0);

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

// —— OPCIJA 2 ——

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

// Očitajte vrijednost ćelije, obično se ovdje nalazi petlja obilaženja ćelije
CellValue = List. Ćelije (Broj reda, Broj stupca). Vrijednost;

// Zatvaranje knjige
Knjiga . Primjena. Qui t();

Za zaobići Za sve dovršene retke Excel radnog lista možete koristiti sljedeće tehnike:

// -- OPCIJA 1 --
Broj redaka = list. Ćelije(1 , 1 ). Posebne ćelije(11). Red;
Za broj redaka = 1 po broju redaka ciklus
CellValue = List. Ćelije (Broj reda, Broj stupca). Vrijednost;
EndCycle;

// —— OPCIJA 2 ——
BrojRetka = 0;
Dok je Ciklus istine
BrojReda = BrojReda + 1 ;
CellValue = List. Ćelije (Broj reda, Broj stupca). Vrijednost;
Ako NIJE ValueFilled(CellValue) Zatim
Prekid;
završi ako;
EndCycle;

Umjesto da uzastopno prelazite sve retke lista, možete ispisati sve podatke u polje i raditi s njim. Ovaj će pristup biti brži pri čitanju velike količine podataka:

TotalColumns = List. Ćelije(1 , 1 ). Posebne ćelije(11). Stupac;
TotalRows = List. Ćelije(1 , 1 ). Posebne ćelije(11). Red;

Regija = List. Raspon (list. ćelije (1, 1), list. ćelije (ukupno redaka, ukupno stupaca));
Podaci = Regija. Vrijednost. Istovariti();

Donja tablica prikazuje najpopularnija svojstva i metode za rad s Excelom putem OLE-a:

Akcijski Kodirati Komentar
Rad s aplikacijom
Postavljanje vidljivosti prozora aplikacije Excel . Vidljivo= Netočno;
Postavljanje načina izlaza upozorenja (prikaz/neprikaz) Excel . DisplayAlerts= Netočno;
Zatvaranje aplikacije Excel . Prestati();
Rad s knjigom
Stvaranje nove knjige Knjiga = Excel. Radne bilježnice. Dodati();
Otvaranje postojeće radne knjige Knjiga = Excel. Radne bilježnice. Otvori(naziv datoteke);
Spremanje knjige Knjiga . Spremi kao(naziv datoteke);
Zatvaranje knjige Knjiga . Zatvori(0);
Rad s listom
Postavljanje trenutnog lista List = Knjiga. Radni listovi (Broj lista);
Postavljanje imena List . Ime = Ime;
Postavljanje zaštite List . Zaštititi();
Uklanjanje zaštite List . Ukloni zaštitu();
Postavljanje orijentacije stranice List . Podešavanje stranice. Orijentacija = 2; 1 - portret, 2 - pejzaž
Postavljanje lijevog ruba List . Podešavanje stranice. Lijeva margina = Excel. Centimetri u točke (Centimetri);
Postavljanje gornje granice List . Podešavanje stranice. TopMargin = Excel. Centimetri u točke (Centimetri);
Postavljanje desne granice List . Podešavanje stranice. RightMargin = Excel. Centimetri u točke (Centimetri);
Postavljanje donje granice List . Podešavanje stranice. BottomMargin = Excel. Centimetri u točke (Centimetri);
Rad s redovima, stupcima, ćelijama
Postavljanje širine stupca List . Stupci(Broj stupca). ColumnWidth = Širina;
Brisanje retka List . Redovi (Broj reda). Izbrisati();
Uklanjanje stupca List . Stupci(Broj stupca). Izbrisati();
Izbriši ćeliju List . Ćelije (Broj reda, Broj stupca). Izbrisati();
Postavljanje vrijednosti List . Ćelije (Broj reda, Broj stupca). Vrijednost = Vrijednost;
Spajanje ćelija List . Raspon (list. Ćelije (Broj retka, Broj stupca), List. Ćelije (Broj retka1, Broj stupca1)). Sjediniti();
Postavljanje fonta List . Ćelije (Broj reda, Broj stupca). Font. Naziv = Naziv Fonta;
Postavljanje veličine fonta List . Ćelije (Broj reda, Broj stupca). Font. Veličina = Veličina fonta;
Postavljanje podebljanog fonta List . Ćelije (Broj reda, Broj stupca). Font. Podebljano = 1 ; 1 - podebljano, 0 - normalno
Postavljanje kurziva List . Ćelije (Broj reda, Broj stupca). Font. kurziv = 1 ; 1 - kurziv, 0 - normalno
Postavljanje podcrtanog fonta List . Ćelije (Broj reda, Broj stupca). Font. Naglasiti = 2 ; 2 - podcrtano, 1 - nije

Kako biste saznali koje svojstvo treba promijeniti ili koju metodu pozvati, možete koristiti makronaredbe Excel. Ako snimite makronaredbu sa potrebnim radnjama, tada možete pogledati VBA kod snimljene makronaredbe.

Korištenje COMSafeArray

Prilikom preuzimanja velike količine podataka iz 1C u Excel, možete koristiti objekt za ubrzanje COMSafeArray. Prema definiciji pomoćnika za sintaksu, COMSafeArray je omotač objekta preko višedimenzionalnog polja SafeArray od COM. Omogućuje stvaranje i korištenje SafeArray za razmjenu podataka između COM objekata. Jednostavno rečeno, to je niz vrijednosti koje se mogu koristiti za razmjenu između aplikacija pomoću OLE tehnologije.

// Kreiraj COMSafeArray
ArrayCom = New COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// Ispunite COMSafeArray
Za Stranica = 0 prema TotalLines - 1 ciklus
Za Broj = 0 Ukupno stupaca - 1 ciklus
ArrayKom . SetValue(Broj, Stranica, Vrijednost);
EndCycle;
EndCycle;
// Dodjeljivanje područja Excel radnog lista vrijednostima iz COMSafeArray
List . Raspon (list. ćelije (1, 1), list. ćelije (ukupno redaka, ukupno stupaca)). Vrijednost = ArrayCom;

Razmjena putem ADO

Excel datoteka, kada se razmjenjuje putem ADO-a, baza je podataka kojoj se može pristupiti pomoću SQL upita. Instalacija MS Excela nije potrebna, ali morate imati ODBC driver s kojim će se pristupiti. ODBC upravljački program koji se koristi određuje se određivanjem niza povezivanja s datotekom. Obično je potrebni upravljački program već instaliran na računalu.

Razmjena putem ADO-a osjetno je 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 iskrcavanje:


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


Spoj . ConnectionString = "

|Izvor podataka=" + Naziv datoteke + ";
;
Spoj . Otvoren(); // Otvaranje veze

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

// Dodjeljivanje teksta naredbe za izradu tablice
Tim . Tekst naredbe = "KREIRAJ TABLICU [Sheet1] (Stupac1 char(255), Stupac2 datum, Stupac3 int, Stupac4 float)";
Tim . Izvršiti(); // Izvrši naredbu

// Dodjeljivanje teksta naredbe za dodavanje reda tablice
Tim . Tekst naredbe = "INSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) values ​​​​('abvwhere', '8/11/2017', '12345', '12345,6789')";
Naredba.Izvrši(); // Izvrši naredbu

// Uklonite naredbu i zatvorite vezu
Naredba = Nedefinirano;
Spoj . Zatvoriti();
Veza = Nedefinirano;

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

// Kreirajte COM objekt za rad s knjigom
Knjiga = Novi COMObject("ADOX.Katalog");
Knjiga . ActiveConnection = Veza;

// Stvorite COM objekt za rad sa strukturom podataka na listu
Tablica = Novi COMObject("ADOX.Tablica");
Stol . Naziv = "Sheet1" ;
Stol . Stupci. Dodaj("Stupac1", 202);
Stol . Stupci. Dodaj("Stupac2", 7);
Stol . Stupci. Dodaj("Stupac3", 5);
Stol . Stupci. Dodaj("Stupac4", 5);

// Napravite list s opisanom strukturom u radnoj knjizi
Knjiga . Stolovi. Dodati (tablica);
Tablica = Nedefinirano;
Knjiga = Nedefinirano;

U gornjem primjeru, u metodi

Stol . Stupci. Dodati(“Kolona1”, 202);

drugi parametar specificira tip stupca. Parametar nije obavezan, evo nekih vrijednosti vrste stupca:

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

Primjer čitanje:

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

// Postavite niz veze
Spoj . ConnectionString = "
|Dobavljač=Microsoft.ACE.OLEDB.12.0;
|Izvor podataka=" + Naziv datoteke + ";
|Proširena svojstva=""Excel 12.0 XML;HDR=DA"";";
Spoj . Otvoren(); // Otvaranje veze

// Kreirajte COM objekt za primanje odabira
Odaberite = New COMObject("ADODB.Recordset");
Tekst zahtjeva = "SELECT * FROM [Sheet1$]";

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

// Zaobići rezultat uzorka
Još nema izbora. EOF() petlja
Vrijednost stupca1 = odabir. Polja. Stavka ("Stupac1"). Vrijednost ; // Pristup prema nazivu stupca
Stupac2Vrijednost = Odabir. Polja. Stavka(0). Vrijednost; // Pristup indeksom stupca
Uzorak . Pomakni dalje();
EndCycle;

Uzorak . Zatvoriti();
Uzorak = Nedefinirano;
Spoj . Zatvoriti();
Veza = Nedefinirano;

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

  • DA - prvi red se tretira kao naziv stupca. Vrijednostima se može pristupiti imenom i indeksom stupca.
  • NE - prvi red se tretira kao podatak. Vrijednostima se može pristupiti samo indeksom stupca.

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

  • veza;
  • Naredba;
  • skup zapisa;
  • Snimiti;
  • 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, tada se oni mogu spremiti u Excel bez programiranja.

Da biste spremili dokument proračunske tablice (na primjer, rezultat izvješća), možete pozvati naredbu Uštedjeti ili Spremi kao… glavni izbornik.

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

Da biste spremili podatke s dinamičkih popisa (na primjer, popis stavki), morate:

  1. Ispis podataka u dokument proračunske tablice pomoću naredbe Više ⇒ Popis...;
  2. Spremite dokument proračunske tablice u traženom formatu.

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

Excel je univerzalan i masovno proizveden proizvod, s tim se ne možete raspravljati. Gotovo svatko može koristiti ovaj program, za razliku od razvoja 1C koji je usmjeren na uske stručnjake. Koristeći "zelene" tablice, možete slobodno implementirati potrebnu funkcionalnost, što će biti zgodno: ovdje je financijski model organizacije sa svim međusobnim obračunima, upravljačko računovodstvo, čak i regulirano, veliki izbor vizualizacije podataka, mogućnost 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, postupno uzimajući u obzir potrebne podatke u tablici o odnosima s klijentima, dobavljačima, regulatornim tijelima, izgrađujući vlastitu proizvoljnu strukturu, ali što dalje kada baza podataka postane voluminozna, a osoblje brojevi u desecima? I dalje brojite prema vlastitim parametrima? Ja sam za to da se praktičnost ne miješa s navikom, koja često smeta sistematizaciji poslovanja, a time i njegovoj optimizaciji.

Radi jasnoće, zamislimo kakve potrebe mogu nastati za automatizacijom računovodstva, na primjer, za trgovinu:

1. Analiza prodaje u određenom razdoblju.

Voditelj odjela prodaje može analizirati podatke o prodaji. Za njega je važno razumjeti provodi li se plan, koliko su učinkovite njegove strategije, kako bi u slučaju neučinkovitosti mogao pravovremeno izvršiti prilagodbe u radu.

2. Skladišno računovodstvo.
Trebam li objašnjavati da je za rasprodaje također važno razumjeti dostupnost robe na skladištu, koja se roba može rezervirati, a koja nema na skladištu te što 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 nešto drugačiji odnos s bazom dobavljača - ugovori, primarno... Zamislite kako je to zgodno kada sve što je povezano s dobavljač se automatski prikazuje li se odmah u jednoj bazi podataka? Voditelj skladišta odmah vidi raspoloživost robe u skladištu, drugi djelatnik zadužen za dokumente prati podatke o raspoloživosti robe, ispunjavaju li se sve obveze iz ugovornih odnosa, tko je kome dužan i koliko. A u slučaju odstupanja, možete uskladiti podatke za određeno razdoblje, generirajući rezultat za manje od minute.

4. Dobit organizacije.
Generiranje izvješća o dobiti neće biti teško jer su svi podaci o rashodima i prihodima već prisutni u bazi podataka. Pod uvjetom da se podaci unesu na vrijeme, barem do traženog datuma. Osnovni čimbenik ovdje je osobna odgovornost korisnika.

Ako nemate puno klijenata i dobavljača, Excel će vam itekako odgovarati, jer imate dovoljno vremena da sami osmislite dijagrame u tablici i ispunite ih, a potom slijedi raspoređivanje dokumenata u razne mape na računalu: ugovori, dobavljači, klijenti, klijenti u susjedstvu, klijenti u razvoju, klijenti za brisanje – beskonačan i fascinantan proces stvaranja mapa unutar mape. A ako ima puno informacija, je li zgodno pratiti svoju bazu podataka? Naravno, uvijek postoje iznimke; ponekad postoje organizacije s velikim prometom čiji se financijski podaci vode samo u Excelu. Koliko im je vremena potrebno za razmjenu i objedinjavanje podataka između odjela? Odgovorit ću: puno.

Ne mogu zamisliti kako brzo pronaći onaj koji vam treba u velikom broju Excel dokumenata organiziranih u proizvoljan sustav. Na primjer, prilikom dostavljanja dokumenata za zahtjeve porezne uprave. Kako će računovođa podnijeti izvješća regulatornim tijelima kada su sve informacije razbacane? Računovodstvo se, naravno, može prepustiti vanjskim suradnicima, a neke vlasnike tvrtki, nažalost, možda nije briga koje procese određeni stručnjak može imati sve dok on uravnotežuje bilance. Ali čak i ako je tako, kako je onda organiziran proces razmjene dokumenata? Koliko će brzo vanjski zaposlenik razumjeti improviziranu informacijsku strukturu?

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

    Jedinstvena baza podataka za udaljene i stalne zaposlenike, u kojoj možete raditi sa svim standardiziranim i prilagođenim dokumentima;
    Izvješćivanje regulatornim tijelima generira se na temelju podataka koji su već prikazani u programu; nema potrebe za otvaranjem mnogih datoteka, kombiniranjem nekoliko vrijednosti u jednu tablicu za dobivanje konačnih rezultata.
"1C", na dobar način, višezadaćni je sustav koji je usmjeren i na tipične računovodstvene zadatke i na automatizaciju svih organizacijskih procesa, ovisno o području djelovanja. Ovdje glavnu riječ vodi sustav. Nitko vam ne brani da svoj poslovni sustav organizirate u Excelu, ali zašto izmišljati kotač kada postoje rješenja koja pokrivaju gotovo sve potrebe za optimizacijom vremena i financijskih troškova, pomažu u sistematizaciji vašeg rada?

U obranu Excela

Vjerojatno vam se činilo da sam protiv konstruiranja podataka u “zelenim” tablicama. Nikako. Zapravo, i sam često poslujem u Excelu: ako trebam proizvoljne izračune, ako trebam segmentirati podatke prema klijentu, provodeći analitiku na temelju parametara koji nisu u 1C - da, to se događa - idem na " Excel." Jednostavno rečeno, u tablicama radim izračune i nestandardne analize, ali svejedno sistematiziram sve u 1C.

A zatim, za pregled preuzetih datoteka iz 1C i dalje će vam trebati Excel, budući da su podaci u 1C pohranjeni u proračunskim tablicama. 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 sustav naše države, uzimajući u obzir specifičnosti i fokus poslovanja, posebno kada se radi o velikim količinama informacija, tada vam je potreban 1C. Ako su vam potrebni proizvoljni izračuni, izrada strategije od nule, vizualizacija nestandardnih analitičkih podataka, tada vam je Excel na usluzi. Ali puno je praktičnije raditi s tim rješenjima istovremeno.


Što je krajnji rezultat - "1C" ili "Excel"?

Na samom početku, ako se radi o financijama za automatizaciju, iako osnovni 1C programi ne koštaju toliko, ja bih koristio Excel. Veliki plus je što se podaci iz "zelenih" tablica mogu učitati u 1C bez gubitka. Ali kako budete skalirali, savjetovao bih vam da obratite pozornost 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 pitanja automatizacije vezana uz odnose s klijentima i dobavljačima te s nadzornim tijelima. Općenito, prilagodite svoje radne procese kako biste povećali poslovnu učinkovitost kada će vam obrada informacija oduzimati puno vremena, a Excel datoteke više neće nositi s količinom ulaznih podataka.

Međutim, nije svaki "1C" prikladan za vas; morate uzeti u obzir različite čimbenike: specifičnosti i opseg poslovanja, razmjere, 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 vjerojatno sve. Ali ako imate bilo kakvih pitanja, obratite nam se, pokušat ćemo vam pomoći. Uspješni poslovni procesi, kolege!

Aplikacija 1C dugo je bila najpopularniji program među računovođama, planerima, ekonomistima i menadžerima. Ne samo da ima raznolik niz konfiguracija za različite vrste aktivnosti, već i lokalizaciju prema računovodstvenim standardima u nekoliko zemalja diljem svijeta. Sve više poduzeća prelazi na računovodstvo u ovom programu. Ali postupak ručnog prijenosa podataka iz drugih računovodstvenih programa u 1C prilično je dug i dosadan zadatak koji oduzima puno vremena. Ako je poduzeće vodilo evidenciju koristeći Excel, tada se proces prijenosa može značajno automatizirati i ubrzati.

Prijenos podataka iz Excela u 1C potreban je ne samo tijekom početnog razdoblja rada s ovim programom. Ponekad postoji potreba za nečim takvim kada tijekom neke aktivnosti trebate unijeti neke popise pohranjene u knjizi proračunskih tablica. Na primjer, ako trebate prenijeti cjenike ili narudžbe iz online trgovine. Ako su popisi mali, možete ih unijeti ručno, ali što ako sadrže stotine stavki? Kako biste ubrzali postupak, možete pribjeći nekim dodatnim opcijama.

Gotovo sve vrste dokumenata prikladne su za automatsko preuzimanje:

  • Popis nomenklature;
  • Popis protustranaka;
  • Cjenik;
  • Popis narudžbi;
  • Informacije o kupnji ili prodaji itd.

Treba odmah napomenuti da 1C nema ugrađene alate koji bi vam omogućili prijenos podataka iz Excela. U tu svrhu morate spojiti vanjski bootloader, koji je datoteka u formatu epf.

Priprema podataka

Morat ćemo pripremiti podatke u samoj Excel tablici.


Osim ovih univerzalnih radnji za pripremu podataka u Excel knjizi, također ćete morati uskladiti dokument sa zahtjevima određenog utovarivača koji ćemo koristiti, ali o tome ćemo govoriti malo niže.

Spajanje vanjskog bootloadera

Spojite vanjski bootloader s proširenjem epf aplikacija 1C može se napraviti i prije i nakon pripreme Excel datoteke. Glavna stvar je da su oba ova pripremna pitanja riješena prije početka procesa utovara.

Postoji nekoliko vanjskih programa za učitavanje Excel tablica za 1C, koje su stvorili razni programeri. Razmotrit ćemo primjer korištenja alata za obradu informacija “Učitavanje podataka iz dokumenta proračunske tablice” za verziju 1C 8.3.


Jedna od glavnih baza podataka s kojima 1C radi je popis proizvoda i usluga. Stoga ćemo se za opis postupka učitavanja iz Excela usredotočiti na primjer prijenosa ove vrste podataka.

  1. Vraćamo se u prozor za obradu. Budući da ćemo učitati asortiman proizvoda, prekidač u parametru trebao bi biti u položaju "Imenik". Međutim, prema zadanim je postavkama instaliran na ovaj način. Trebate ga promijeniti samo kada ćete prenijeti drugu vrstu podataka: tablični dio ili registar informacija. Sljedeći na terenu "Prikaz imenika" Kliknite na gumb s elipsom na njemu. Otvara se padajući popis. U njemu bismo trebali odabrati stavku "Nomenklatura".
  2. Nakon toga rukovatelj automatski postavlja polja koja program koristi u ovu vrstu referentne knjige. Odmah treba napomenuti da uopće nije potrebno ispuniti sva polja.
  3. Sada ponovno otvorite prijenosni Excel dokument. Ako se naziv njegovih stupaca razlikuje od naziva polja imenika 1C koji sadrže odgovarajuće, tada morate preimenovati te stupce u Excelu tako da se nazivi potpuno podudaraju. Ako tablica sadrži stupce za koje nema analoga u imeniku, tada ih treba izbrisati. U našem slučaju to su stupci "Količina" I "Cijena". Također treba dodati da se redoslijed stupaca u dokumentu mora strogo podudarati s onim prikazanim u obradi. Ako nemate podatke za neke od stupaca koji se prikazuju u loaderu, tada ti stupci mogu ostati prazni, ali numeracija onih stupaca u kojima postoje podaci mora odgovarati. Za praktičnost i brzinu uređivanja možete koristiti posebnu značajku programa Excel za brzo premještanje stupaca na mjesta.

    Nakon što su ovi koraci dovršeni, kliknite na ikonu "Uštedjeti", što je predstavljeno ikonom koja prikazuje disketu u gornjem lijevom kutu prozora. Zatim zatvorite datoteku klikom na standardni gumb za zatvaranje.

  4. Vraćamo se u prozor za obradu 1C. Kliknite na gumb "Otvoren", koji je prikazan kao žuta mapa.
  5. Otvara se prozor za otvaranje datoteke. Idemo u direktorij gdje se nalazi Excel dokument koji nam je potreban. Zadani prekidač za prikaz datoteke postavljen je na ekstenziju mxl. Da bismo prikazali datoteku koja nam je potrebna, moramo je premjestiti na poziciju "Excel list". Nakon toga odaberite dokument koji želite prenijeti i kliknite na gumb "Otvoren".
  6. Sadržaj se tada otvara u rukovatelju. Kako biste provjerili jesu li podaci ispravno popunjeni, kliknite na gumb "Kontrola punjenja".
  7. Kao što vidimo, alat za kontrolu popunjavanja govori nam da nisu pronađene greške.
  8. Prijeđimo sada na karticu "Postavke". U "Polje za pretraživanje" Stavljamo kvačicu u redak koji će biti jedinstven za sva imena upisana u nomenklaturni imenik. Polja koja se za to najčešće koriste su "Šifra dobavljača" ili "Ime". To mora biti učinjeno tako da se prilikom dodavanja novih stavki na popis podaci ne dupliciraju.
  9. Nakon unosa svih podataka i dovršenih postavki, možete pristupiti izravnom učitavanju podataka u imenik. Da biste to učinili, kliknite na natpis "Učitaj podatke".
  10. Proces preuzimanja je u tijeku. Nakon njegovog završetka možete otići u referentnu knjigu predmeta i provjeriti jesu li tamo dodani svi potrebni podaci.

Slijedili smo postupak dodavanja podataka u imenik nomenklature u programu 1C 8.3. Za ostale direktorije i dokumente, preuzimanje će se provesti prema istom principu, ali s nekim nijansama koje korisnik može sam shvatiti. Također treba napomenuti da se postupak može razlikovati za različite učitavače trećih strana, ali opći pristup ostaje isti za sve: prvo procesor učitava informacije iz datoteke u prozor u kojem se uređuju, a tek onda ih dodaje izravno u bazu podataka 1C.