Care este numele programului pentru excel în 1c. Care este mai bine - 1C sau Excel? Încărcați fără programare

Există diferite moduri de a deschide un fișier Excel în 1C și invers. Utilizatorii începători vor prefera operațiuni mai simple prin salvarea documentului într-un format diferit sau folosind programe speciale. Dar merită să depui puțin efort și să înveți cum să lucrezi cu instrumente software pentru a vizualiza și procesa datele de la un program la altul. Aceste abilități de programare de bază vă vor ajuta să evitați sarcinile de rutină în viitor.

Cum să deschideți documente Excel în 1C și invers

Editorul de foi de calcul Microsoft Excel este superior ca funcționalitate față de produsele software de contabilitate 1C. Prin urmare, utilizatorii 1C preferă să efectueze unele operații într-un editor de foi de calcul și apoi să returneze datele programului de contabilitate. Și acest lucru nu este surprinzător, deoarece anterior contabilitatea multor companii era efectuată exclusiv folosind programe Microsoft. Dar, odată cu nivelul actual de automatizare a proceselor de afaceri ale întreprinderilor, este imposibil să abandonați programele specializate. Pentru a stabili interacțiunea între diferite aplicații, există următoarele moduri simple:

    Când trebuie să vă ocupați de fișiere de produse software care nu sunt instalate pe computerul dvs. actual, cel mai simplu mod este să utilizați o aplicație specială pentru conversia tabelelor Excel în format 1C și invers. Poate fi găsit pe site-ul web al produsului 1C.

    Dacă computerul dvs. are atât 1C, cât și Excel, puteți deschide manual fișierul în aplicația sa „nativă” și apoi îl puteți salva în formatul altui program. Această opțiune este de obicei disponibilă atunci când salvați un formular sau un aspect imprimabil.

    Utilizatorii 1C 7.7 pot face upgrade la versiunea 1C 8, care are un editor de tabel îmbunătățit.

Cum pot interacționa 1C și Excel în mod programatic

Interacțiunea dintre 1C și Excel poate fi realizată la nivel de program folosind tehnologia OLE Automation dezvoltată de Microsoft. Vă permite să accesați obiecte COM direct de la interpreții de script ai diferitelor programe. Mai simplu spus, OLE vă permite să transferați o bucată de lucru de la un program la altul și apoi să returnați lucrarea la aplicația originală. Acesta este exact ceea ce au nevoie contabilii de la editorul de foi de calcul Microsoft.

Nu trebuie să fii programator pentru a utiliza instrumentele OLE. Deși prima cunoaștere a liniilor de cod va fi însoțită de erori, verificarea va ajuta la identificarea acestora, iar experiența dobândită va ajuta la evitarea lor în viitor. Mai jos sunt cele mai populare comenzi (se numesc liste) pentru lucrul cu datele Excel în programele de contabilitate și invers.

Cum să deschideți un fișier Excel în 1C în mod programatic

Deci, dacă pe computerul tău sunt instalate ambele programe, între care vrei să faci schimb de date, atunci poți organiza interacțiunea în mod programatic. Pentru a face acest lucru, trebuie să lansați ambele aplicații și apoi să utilizați OLE pentru a stabili accesul de la 1C la Excel:

  • Excepție

    Report(ErrorDescription() + "Excel nu este instalat pe acest computer!");

  • Sfârșitul încercării.

Accesul la editorul de tabel este instalat, acum folosind următoarele comenzi la care trebuie să obțineți acces:

    document specific:

    • Carte = Excel.WorkBooks.Open(FilePath)

    • Sheet = Book.WorkSheets(SheetNumber);

  • inclusiv cu un număr specific de fișă:

    inclusiv cu un nume de fișă specific:

    • Sheet = Book.WorkSheets(SheetName);

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

Pentru a citi datele de pe prima pagină a unui fișier, utilizați următoarele liste:

    Excel = CreateObject("Excel.Application");

    Carte = Excel.WorkBooks.Open(FilePath);

    Sheet = Book.WorkSheets(1);

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

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

    Pentru Row = 1 By TotalRows Loop

    • Pentru coloană = 1 prin ciclu total de coloane

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

      EndCycle;

    EndCycle;

Rețineți că calea către fișier trebuie specificată în întregime. Când salvați un nume de document, nu puteți include caractere precum \, /, :, *, ?, ", >,< и |.

Cum să deschideți un fișier 1C prin Excel în mod programatic

Pentru a înregistra date în Excel trebuie:

    sau deschideți un document existent:

    • Book = Excel.WorkBooks.Open(Path to File) - prin analogie cu citirea unui fișier Excel din 1C;

    sau adauga unul nou:

    • Caiet de lucru = Excel.WorkBooks.Add();

    Puteți crea o foaie nouă într-un document nou:

    • Sheet = Book.Sheets.Add();

    și adăugați o nouă valoare celulei:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Value; (metodele de scriere a valorilor folosind OLE sunt descrise în detaliu pe Internet).

  • Book.SaveAs(FilePath);

    Excepție

    Raport(ErorDescription()+"Fișierul nu a fost salvat!");

    Sfârșitul încercării.

Când terminați de lucrat cu editorul de foi de calcul, părăsiți folosind o comandă specială (Excel.Application.Quit();). Această metodă va ajuta la economisirea resurselor computerului în timpul lucrărilor ulterioare.

Pericole la schimbul de date între 1C și Excel

1C și Excel au fost dezvoltate de diferite companii și folosesc diferite moduri de manipulare a datelor. Prin urmare, atunci când transferați tabele de la un program la altul, amintiți-vă următoarele capcane:

    Diferiți separatori în numere fracționale. Microsoft separă numerele zecimale folosind o virgulă. Prin urmare, atunci când transferați tabele dintr-un program de contabilitate, nu fiți surprinși de abundența de date și alte confuzii. Doar că într-un program de contabilitate se poate folosi o perioadă în scrierea fracțiilor, pe care editorul de foi de calcul Microsoft le va interpreta ca un separator de dată, iar 15.5 se va transforma în 15 mai. Pentru a procesa datele contabile într-un editor de foi de calcul, separatorul va trebui înlocuit cu o virgulă.

    La transferul datelor din Excel în 1C, acele constante Excel care nu sunt în programul de contabilitate pot fi afișate incorect. Pentru a le descifra, trebuie să accesați Ajutorul editorului de foi de calcul sau în modul de depanare și să verificați expresia numerică a diferitelor constante.

Dacă trebuie să faceți schimb de cantități mari de date sau nu puteți scăpa de erori, contactați profesioniștii companiei Setby pentru ajutor. Vă vom ajuta să vă rezolvați problemele la nivel de program și să înțelegeți comenzile necesare pentru munca dvs.

Destul de des, atunci când comunic cu potențiali clienți, aud că funcționalitatea tabelului din pachetul Office este destul de suficientă pentru ei și nu văd rostul în programele 1C. Asta pentru ca unii oameni inca mai asociaza aceasta solutie doar cu programe pentru contabili, ceea ce nu este adevarat.

Excel este un produs universal și produs în masă, nu poți contrazice asta. Aproape toată lumea poate folosi acest program, spre deosebire de dezvoltările 1C, care se adresează specialiștilor restrânși. Folosind tabelele „verzi”, puteți implementa în mod liber funcționalitatea necesară, ceea ce va fi convenabil: iată modelul financiar al organizației cu toate decontările reciproce, contabilitatea de gestiune, chiar și cele reglementate, o selecție largă de vizualizare a datelor, capacitatea de a în mod independent extindeți capacitățile programului folosind diverse suplimente - totul este în mâinile dvs., totul de la zero...

Este bine dacă tocmai îți începi afacerea, luând treptat în considerare datele necesare din tabelul privind relațiile cu clienții, furnizorii, autoritățile de reglementare, construirea propriei structuri arbitrare, dar ce să faci în continuare când baza de date devine voluminoasă, iar personalul numere în zeci? Încă mai numărați conform propriilor parametri? Sunt pentru a nu confunda comoditatea cu obișnuința, care interferează adesea cu sistematizarea afacerii și, în consecință, cu optimizarea acesteia.

Pentru claritate, să ne imaginăm ce necesități pot apărea pentru automatizarea contabilității, de exemplu, pentru comerț:

1. Analiza vânzărilor într-o anumită perioadă.

Șeful departamentului de vânzări poate analiza datele vânzărilor. La urma urmei, este important pentru el să înțeleagă dacă planul este implementat, cât de eficiente sunt strategiile sale, astfel încât, în caz de ineficiență, să poată face ajustări în timp util la lucru.

2. Contabilitatea depozitului.
Trebuie să explic că pentru vânzări este important să înțelegem și disponibilitatea mărfurilor în stoc, ce bunuri pot fi rezervate și care sunt epuizate și ce trebuie comandat? Cred că totul este clar aici.

3. Mentinerea unei baze de date a contrapartidelor.
Chiar dacă proprietarul vinde doar ceea ce se poate cumpăra aici și acum, ceea ce este tipic pentru sectorul B2C, atunci el are o relație ușor diferită cu baza de furnizori - contracte, primar... Imaginează-ți cât de convenabil este când totul este legat de furnizorul este automat Este afișat imediat într-o singură bază de date? Managerul responsabil cu depozitul vede imediat disponibilitatea mărfurilor în depozit, un alt angajat responsabil cu documentele monitorizează informații despre disponibilitatea acestora, dacă toate obligațiile din relațiile contractuale sunt îndeplinite, cine datorează cui și cât. Iar în cazul unor discrepanțe, puteți reconcilia datele pentru o anumită perioadă, generând un rezultat în mai puțin de un minut.

4. Profitul organizației.
Generarea unui raport de profit nu va fi dificilă, deoarece toate datele despre cheltuieli și venituri sunt deja prezente în baza de date. Cu condiția ca informațiile să fie introduse în timp util, cel puțin până la data cerută. Factorul fundamental aici este responsabilitatea personală a utilizatorului.

Dacă nu ai mulți clienți și furnizori, Excel ți se va potrivi cu adevărat, deoarece există timp suficient pentru a-ți proiecta propriile diagrame în tabel și a le completa, urmat de distribuirea documentelor în diferite foldere de pe computer: contracte, furnizori, clienți, clienți din vecinătate, clienți în dezvoltare, clienți de șters – un proces nesfârșit și fascinant de creare a folderelor într-un folder. Și dacă există o mulțime de informații, este convenabil să ținem evidența bazei de date? Desigur, există întotdeauna și excepții uneori sunt organizații cu cifre de afaceri mari ale căror date financiare sunt păstrate doar în Excel. Cât timp le ia pentru a schimba și combina date între departamente? O sa raspund: mult.

Nu-mi pot imagina cum să găsești rapid ceea ce ai nevoie într-un număr mare de documente Excel organizate într-un sistem arbitrar. De exemplu, atunci când furnizați documente pentru cerințe de la biroul fiscal. Cum va prezenta un contabil rapoarte autorităților de reglementare atunci când toate informațiile sunt împrăștiate? Contabilitatea, desigur, poate fi externalizată și unii proprietari de afaceri, din păcate, s-ar putea să nu le pese de ce procese poate avea un anumit specialist atâta timp cât echilibrează soldurile. Dar chiar dacă da, atunci cum este organizat procesul de schimb de documente? Cât de repede va înțelege un angajat extern structura informațională improvizată?

Nu pot spune același lucru despre 1C, deoarece toate informațiile de acolo sunt structurate și interconectate:

    O bază de date unică atât pentru angajați la distanță, cât și pentru angajați full-time, în care puteți lucra cu toate documentele standardizate și personalizate;
    Raportarea către autoritățile de reglementare este generată pe baza datelor care sunt deja reflectate în program, nu este nevoie să deschideți mai multe fișiere, să combinați mai multe valori într-un singur tabel pentru a obține rezultatele finale.
„1C”, într-un sens bun, este un sistem multitasking care vizează atât sarcinile tipice de contabilitate, cât și automatizarea tuturor proceselor organizaționale, în funcție de domeniul de activitate. Cuvântul principal aici este sistem. Nimeni nu te împiedică să-ți organizezi sistemul de afaceri în Excel, dar de ce să reinventezi roata când există soluții care acoperă aproape toate nevoile de optimizare a timpului și a costurilor financiare, ajutând la sistematizarea muncii tale?

În apărarea Excel

Probabil vi s-a părut că sunt împotriva construcției de date în tabele „verzi”. Deloc. De fapt, eu însumi fac adesea ceva afaceri în Excel: dacă am nevoie de calcule arbitrare, dacă am nevoie să segmentez datele în funcție de client, efectuând analize pe baza parametrilor care nu sunt în 1C - da, asta se întâmplă - merg la „Excel”. Mai simplu spus, în tabele fac calcule și analize non-standard, dar apoi oricum sistematizez totul în 1C.

Și apoi, pentru a vizualiza fișierele descărcate din 1C, veți avea nevoie în continuare de Excel, deoarece datele din 1C sunt stocate în foi de calcul. Simți că acesta este un cerc vicios? O voi spune altfel: „1C” și „Excel” merg unul lângă altul ca doi parteneri, dar fiecare dintre ei are propriul său scop, se completează bine, dar nu se înlocuiesc.

Dacă trebuie să vă sistematizați treburile ținând cont de sistemul legislativ al statului nostru, ținând cont de specificul și focalizarea afacerii, mai ales când vine vorba de volume mari de informații, atunci aveți nevoie de 1C. Dacă aveți nevoie de calcule arbitrare, de a construi o strategie de la zero, de a vizualiza date de analiză non-standard, atunci Excel vă stă la dispoziție. Dar este mult mai convenabil să lucrezi cu aceste soluții simultan.


Care este rezultatul final – „1C” sau „Excel”?

La început, dacă întrebarea este despre finanțele pentru automatizare, deși programele de bază 1C nu costă atât de mulți bani, aș folosi Excel. Un avantaj uriaș este că datele din tabelele „verzi” pot fi încărcate în 1C fără pierderi. Dar pe măsură ce scalați, v-aș sfătui să acordați atenție programelor de automatizare a proceselor de afaceri. Sunt multe dintre ele și s-ar putea să nu fie neapărat 1C...

Tranziția la „1C” poate fi efectuată atunci când înțelegeți că trebuie să vă optimizați resursele, inclusiv automatizarea problemelor legate de relațiile cu clienții și furnizorii și cu autoritățile de supraveghere. În general, ajustați-vă procesele de lucru pentru a crește eficiența afacerii atunci când procesarea informațiilor va dura mult timp, iar fișierele Excel nu vor mai face față volumului de date de intrare.

Cu toate acestea, nu orice „1C” ți se potrivește, trebuie să ții cont de diverși factori: specificul și domeniul de aplicare al afacerii, amploarea, nevoia de sarcini zilnice, rutina care trebuie redusă la minimum. Totul este individual. Adevărul, așa cum am spus deja, este undeva între „1C” și „Excel” - se completează unul pe celălalt.

Probabil asta e tot. Dar dacă aveți întrebări, vă rugăm să ne contactați, vom încerca să vă ajutăm. Procese de afaceri de succes, colegi!

Această metodă este simplă. Esența sa este că obiectul TabularDocument are metode:

  • Scrie (< ИмяФайла>, < ТипФайлаТаблицы >) pentru a încărca date într-un fișier;
  • Citit (< ИмяФайла>, < СпособЧтенияЗначений >) pentru a încărca date dintr-un fișier.

Atenţie!

Metoda Write() este disponibilă atât pe client, cât și pe server. Metoda Read() este disponibilă numai pe partea serverului. Trebuie să ne amintim asta
atunci când planificați interacțiunea client-server.

Să ne uităm la un exemplu de salvare a unui document de foaie de calcul într-un fișier. Este necesar să creați și să umpleți obiectul TabularDocument în orice mod și descărcare la fișier se face doar cu o singură linie:

TabDoc . Scriere(FilePath, TabularDocumentFileType. XLSX);

Aici TabDoc- document foaie de calcul generat, Calea către fișier— numele fișierului de încărcat, TabularDocumentFileType.XLSX— formatul fișierului creat. Sunt acceptate următoarele formate Excel:

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

TabDoc = New TabularDocument;
TabDoc . Read(PathToFile, Metoda de citireTabularDocumentValues.Value);

Aici Calea către fișier— calea către fișierul Excel descărcat. Metoda de citire a valorilor unui document tabelar.Valoare determină modul în care ar trebui interpretate datele citite dintr-un document sursă. Optiuni Disponibile:

  • Sens;
  • Text.

Schimb prin OLE

Schimbul prin tehnologia de automatizare OLE este poate cea mai comună opțiune pentru lucrul programatic cu fișiere Excel. Vă permite să utilizați toate funcționalitățile oferite de Excel, dar este mai lent decât alte metode. Pentru a schimba prin OLE, este necesară instalarea MS Excel:

  • Pe computerul utilizatorului final, dacă schimbul are loc pe partea clientului;
  • Pe computerul server 1C:Enterprise, dacă schimbul are loc pe partea serverului.

Exemplu descărcare:

// Creați un obiect COM
Excel = New COMObject ("Excel.Application");
// Dezactivează avertismentele și întrebările
excela . DisplayAlerts = Fals;
// Creați o carte nouă
Carte = Excel. Cărți de lucru. Adăuga();
// Poziție pe prima foaie
Foaie = Carte. Fișe de lucru(1);

// Scrieți o valoare într-o celulă
Foaie . Celule (RowNumber, ColumnNumber). Valoare = CellValue;

// Salvați fișierul
Carte . Salvare ca(FileName);


excela . Părăsi();
Excel = 0;

Exemple citind:

// -- OPȚIUNEA 1 --

// Creați un obiect COM
Excel = New COMObject ("Excel.Application");
// Deschide o carte
Carte = Excel. Caiete de lucru. Deschis( Calea către fișier);

Foaie = Carte. Fișe de lucru(1);

// Închiderea cărții
Carte . Închidere(0);

// Închideți Excel și eliberați memorie
excela . Părăsi();
Excel = 0;

// —— OPȚIUNEA 2 ——

// Deschide o carte
Carte = GetCOMObject( Calea către fișier);
// Poziţionarea pe foaia dorită
Foaie = Carte. Fișe de lucru(1);

// Citiți valoarea celulei, de obicei bucla de traversare a celulei este localizată aici
CellValue = Foaie. Celule (RowNumber, ColumnNumber). Valoare;

// Închiderea cărții
Carte . Aplicație. Qui t();

Pentru ocolire Pentru toate rândurile completate ale foii de lucru Excel, puteți utiliza următoarele tehnici:

// -- OPȚIUNEA 1 --
Număr de rânduri = foaie. Celule (1, 1). SpecialCells(11). Rând;
Pentru RowNumber = 1 după ciclul numărului de rânduri
CellValue = Foaie. Celule (RowNumber, ColumnNumber). Valoare;
EndCycle;

// —— OPȚIUNEA 2 ——
RowNumber = 0 ;
În timp ce Ciclul Adevărului
RowNumber = RowNumber + 1 ;
CellValue = Foaie. Celule (RowNumber, ColumnNumber). Valoare;
Dacă NU este completată Valoare(ValoareCelulă) Apoi
Avorta;
endIf;
EndCycle;

În loc să parcurgeți secvențial toate rândurile foii, puteți aruncați toate datele într-o matriceși lucrează cu el. Această abordare va fi mai rapidă atunci când citiți o cantitate mare de date:

TotalColumns = Foaie. Celule (1, 1). SpecialCells(11). Coloană;
TotalRows = Frunza. Celule (1, 1). SpecialCells(11). Rând;

Regiune = Frunza. Interval(Sheet. Cells(1, 1), Sheet. Cells(TotalRows,TotalColumns));
Date = Regiunea. Valoare. Descărca();

Tabelul de mai jos prezintă cele mai populare proprietăți și metode de lucru cu Excel prin OLE:

Acțiune Cod Un comentariu
Lucrul cu aplicația
Setarea vizibilității ferestrei aplicației excela . Vizibil= fals;
Setarea modului de ieșire de avertizare (afișare/nu afișare) excela . Afișează Alerte= fals;
Închiderea aplicației excela . Părăsi();
Lucrul cu o carte
Crearea unei cărți noi Carte = Excel. Cărți de lucru. Adăuga();
Deschiderea unui registru de lucru existent Carte = Excel. Cărți de lucru. Deschide (Nume fișier);
Salvarea unei cărți Carte . Salvare ca (FileName);
Închiderea cărții Carte . Închidere(0);
Lucrul cu o foaie
Setarea foii curente Foaie = Carte. Foi de lucru (SheetNumber);
Setarea numelui Foaie . Nume = Nume;
Configurarea protecției Foaie . Proteja();
Îndepărtarea protecției Foaie . Dezprotejează();
Setarea orientării paginii Foaie . Configurare pagina. Orientare = 2; 1 - portret, 2 - peisaj
Setarea marginii din stânga Foaie . Configurare pagina. LeftMargin = Excel. CentimetersToPoints(Centimetri);
Stabilirea limitei superioare Foaie . Configurare pagina. TopMargin = Excel. CentimetersToPoints(Centimetri);
Setarea chenarului drept Foaie . Configurare pagina. RightMargin = Excel. CentimetersToPoints(Centimetri);
Setarea limitei inferioare Foaie . Configurare pagina. BottomMargin = Excel. CentimetersToPoints(Centimetri);
Lucrul cu rânduri, coloane, celule
Setarea lățimii coloanei Foaie . Coloane(ColumnNumber). ColumnWidth = Lățime;
Ștergeți o linie Foaie . Rânduri (RowNumber). Șterge();
Eliminarea unei coloane Foaie . Coloane(ColumnNumber). Șterge();
Șterge o celulă Foaie . Celule (RowNumber, ColumnNumber). Șterge();
Setarea valorii Foaie . Celule (RowNumber, ColumnNumber). Valoare = Valoare;
Unirea celulelor Foaie . Interval(Foaie. Celule(NumărRând, Număr Colană), Foaie. Celule(NumărRând1, NumărColoană1)). Combina();
Setarea fontului Foaie . Celule (RowNumber, ColumnNumber). Font. Nume = FontName;
Setarea dimensiunii fontului Foaie . Celule (RowNumber, ColumnNumber). Font. Dimensiune = Dimensiunea fontului;
Setarea fontului aldine Foaie . Celule (RowNumber, ColumnNumber). Font. Îndrăzneţ = 1 ; 1 - bold, 0 - normal
Setarea cursivelor Foaie . Celule (RowNumber, ColumnNumber). Font. Cursiv = 1 ; 1 - cursiv, 0 - normal
Setarea fontului subliniat Foaie . Celule (RowNumber, ColumnNumber). Font. Subliniați = 2 ; 2 - subliniat, 1 - nu

Pentru a afla ce proprietate trebuie schimbată sau ce metodă să apelați, puteți utiliza macro-uri Excela. Dacă înregistrați o macrocomandă cu acțiunile necesare, atunci puteți consulta codul VBA al macrocomenzii înregistrate.

Folosind COMSafeArray

Când descărcați cantități mari de date din 1C în Excel, puteți utiliza obiectul pentru a accelera COMSafeArray. Conform definiției din asistentul de sintaxă, COMSafeArray este un înveliș de obiecte peste o matrice multidimensională SafeArray de la COM. Vă permite să creați și să utilizați SafeArray pentru schimbul de date între obiectele COM. Mai simplu spus, este o serie de valori care pot fi folosite pentru a face schimb între aplicații care utilizează tehnologia OLE.

// Creați COMSafeArray
ArrayCom = New COMSafeArray ("VT_Variant", TotalColumns, TotalRows);
// Completați COMSafeArray
Pentru Pagina = 0 prin TotalLines - 1 ciclu
Pentru Număr = 0 total coloane - 1 ciclu
ArrayCom . SetValue(Număr, pagină, valoare);
EndCycle;
EndCycle;
// Atribuirea unei zone de foi de lucru Excel la valorile din COMSafeArray
Foaie . Interval (Foaie. Celule (1, 1), Foaie. Celule (TotalRânduri,TotalColumns)). Valoare = ArrayCom;

Schimb prin ADO

Un fișier Excel, atunci când este schimbat prin ADO, este o bază de date care poate fi accesată folosind interogări SQL. Instalarea MS Excel nu este necesară, dar trebuie să aveți un driver ODBC cu care va fi asigurat accesul. Driverul ODBC de utilizat este determinat prin specificarea șirului de conexiune la fișier. De obicei, driverul necesar este deja instalat pe computer.

Schimbul prin ADO este considerabil mai rapid decât schimbul prin OLE, dar la încărcare, nu este posibil să utilizați funcționalitatea Excel pentru proiectarea celulelor, aranjarea paginilor, setarea formulelor etc.

Exemplu descărcare:


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


Compus . ConnectionString = "

|Sursa de date=" + FileName + ";
;
Compus . Deschis(); // Deschide o conexiune

// Creați un obiect COM pentru comandă
Comanda = New COMObject("ADODB.Command");
Echipă

// Atribuirea textului comenzii pentru a crea un tabel
Echipă . CommandText = „CREATE TABLE [Sheet1] (Column1 char(255), Column2 date, Column3 int, Column4 float)”;
Echipă . A executa(); // Executați comanda

// Atribuirea textului de comandă pentru a adăuga un rând de tabel
Echipă . CommandText = „INSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) valori ('abvwhere', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // Executați comanda

// Eliminați comanda și închideți conexiunea
Comanda = nedefinit;
Compus . Închide();
Conexiune = nedefinit;

Pentru a crea o foaie nouă și a-i forma structura, puteți folosi obiecte ADOX.CatalogȘi ADOX.Tabel. În acest caz, codul va arăta astfel:

// Creați un obiect COM pentru lucrul cu cartea
Carte = New COMObject("ADOX.Catalog");
Carte . ActiveConnection = Conexiune;

// Creați un obiect COM pentru a lucra cu structura de date de pe foaie
Table = New COMObject("ADOX.Table");
Masa . Nume = "Sheet1" ;
Masa . Coloane. Append(„Coloana1”, 202);
Masa . Coloane. Append(„Coloana2”, 7);
Masa . Coloane. Append(„Coloana3”, 5);
Masa . Coloane. Append(„Coloana4”, 5);

// Creați o foaie cu structura descrisă în registrul de lucru
Carte . Mese. Adăugați(Tabel);
Tabel = nedefinit;
Carte = nedefinit;

În exemplul de mai sus, în metoda

Masa . Coloane. Adăuga(„Coloana 1”, 202);

al doilea parametru specifică tipul coloanei. Parametrul este opțional, iată câteva valori ale tipului de coloană:

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

Exemplu citind:

// Creați un obiect COM pentru conexiune
Conexiune = New COMObject("ADODB.Connection");

// Setați șirul de conexiune
Compus . ConnectionString = "
|Furnizor=Microsoft.ACE.OLEDB.12.0;
|Sursa de date=" + FileName + ";
|Extended Properties=""Excel 12.0 XML;HDR=YES"";";
Compus . Deschis(); // Deschide o conexiune

// Creați un obiect COM pentru a primi selecția
Select = New COMObject("ADODB.Recordset");
RequestText = „SELECTARE * DIN [Sheet1$]”;

// Execută cererea
Probă . Deschide (Text interogare, Conexiune);

// Ocoliți rezultatul eșantionului
Nu este încă o selecție. Bucla EOF().
Valoarea coloanei 1 = Selecție. Câmpuri. Item(„Coloana1”). Valoare ; // Acces după numele coloanei
Column2Value = Selecție. Câmpuri. Articol(0). Valoare; // Acces prin index de coloană
Probă . MoveNext();
EndCycle;

Probă . Închide();
Eșantion = nedefinit;
Compus . Închide();
Conexiune = nedefinit;

În șirul de conexiune parametrul HDR determină modul în care va fi percepută prima linie de pe foaie. Opțiuni posibile:

  • DA - prima linie este tratată ca nume de coloane. Valorile pot fi accesate după nume și index de coloană.
  • NU - prima linie este tratată ca date. Valorile pot fi accesate numai prin indexul coloanei.

Aceste exemple acoperă doar câteva obiecte ADO. Modelul obiect ADO constă din următoarele obiecte:

  • conexiune;
  • Comanda;
  • set de înregistrări;
  • Record;
  • Câmpuri;
  • Curent;
  • erori;
  • parametrii;
  • Proprietăți.

Încărcați fără programare

Pentru a salva datele din 1C în Excel, nu este întotdeauna recomandabil să recurgeți la programare. Dacă în modul Enterprise utilizatorul poate afișa datele necesare pentru descărcare, atunci acestea pot fi salvate în Excel fără programare.

Pentru a salva un document de foaie de calcul (de exemplu, rezultatul unui raport), puteți apela comanda Salvați sau Salvează ca… meniu principal.

În fereastra care se deschide, trebuie să selectați directorul, numele și formatul fișierului salvat.

Pentru a salva date din liste dinamice (de exemplu, o listă de articole), trebuie să:

  1. Ieșiți datele într-un document de foaie de calcul folosind comanda Mai multe ⇒ Lista...;
  2. Salvați documentul foaie de calcul în formatul necesar.

În 1C există 2 moduri de a lucra cu fișiere MS Excel: printr-un obiect COM și instrumente 1C încorporate folosind un obiect document foaie de calcul. Să ne uităm la ambele metode mai detaliat.

1. Lucrați printr-un obiect COM.

Această metodă necesită instalat MS Excel, iar dacă lucrați cu un fișier pe server, atunci MS Excel trebuie instalat pe server, dacă pe client, atunci MS Excel este necesar și pe partea clientului.

Exemplu (puteți vedea sub formă de text la sfârșitul articolului):

Trebuie remarcat faptul că toate obiectele, metodele și proprietățile furnizate de obiectul COM „Excel.Application” sunt obiecte, metode și proprietăți ale VBA, limbajul de programare MS Office.

Notă:

Uneori trebuie să lucrați cu un șablon existent. Apoi trebuie să stocăm acest șablon undeva, astfel încât toți utilizatorii necesari să aibă acces la el. Cu toate acestea, există o soluție mai simplă, salvați șablonul ca aspect binar.

2. Lucrați prin documentul tabelar 1C.

Documentul foaie de calcul 1C acceptă formatul MS Excel pentru înregistrare începând de la platforma 8, dar pentru deschidere doar începând de la platforma 8.3.6. În plus, atunci când sunt deschise, toate foile sunt încărcate într-un singur document foaie de calcul. Începând cu versiunea 8.3.10, la încărcare, diferite foi sunt încărcate ca zone diferite.

Un exemplu de intrare este foarte simplu și nu necesită o atenție specială:

Totuși, aici avem o problemă. Când înregistrați de la 1C într-un registru de lucru Excel, afișarea numelor foilor este dezactivată în mod implicit.

Această problemă poate fi rezolvată în 2 moduri, 1 - în registrul de lucru în sine, activați afișarea foilor în setări (nu toți utilizatorii vor fi de acord să facă acest lucru), 2 - faceți acest lucru printr-un obiect COM (avem din nou nevoie de MS Excel instalat ).

După această mică adăugare, etichetele foilor vor fi vizibile în fișierul MS Excel.

Citirea MS Excel nu este o sarcină atât de ușoară, deoarece metoda de citire este disponibilă doar pe server sau pe client gros. Pentru a face acest lucru, trebuie să transferăm fișierul MS Excel pe server.

&OnClient

Procedura CreateDocument()

Excepție

EndTempt;

Carte = Excel.WorkBooks.Add(); //Creează un nou registru de lucru MS Excel

Sheet = Book.WorkSheets.Add(); //Adăugați o foaie

Sheet.Name = "Exemplu de la 1C"; //Setați numele foii

Sheet.Cells(1,1).Value = "Să creăm o formulă";!}

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

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

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

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

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

Book.Close();

Sfârșitul procedurii

&Pe server

Funcția GetLayoutServer()

Returnează FormAttributesValue("Obiect").GetLayout("TemplateForUpload"); //Așa obținem aspectul de procesare externă;

EndFunction

&OnClient

Lucru de procedură()

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

Excepție

Raport ("O încercare de conectare a componentei Excel a eșuat. Este posibil ca Excel să nu fie instalat pe acest computer!");

EndTempt;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

Aveți o întrebare sau aveți nevoie de ajutor de la un consultant?

Carte = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

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

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

SheetTemplate.NumberFormat = "zz/ll/aa;@"; // Dați formatul datei, acest format a fost obținut prin înregistrarea unei macrocomenzi în MS Excel

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Întinde coloana astfel încât data să se potrivească exact

Book.SaveAs(FileName);

Book.Close();

Sfârșitul procedurii

&OnClient

Sfârșitul procedurii

&OnClient

Procedura WriteTabularDocument()

TabularDocument = Nou TabularDocument();

TabularDocument.Area("R1C1").Text = "Exemplu de înregistrare în MS Excel din 1C";

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

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

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

Excel.Vizibil = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0,6;

Excel.ActiveWorkbook.Save();

Excel.Application.Quit()

Sfârșitul procedurii

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

Adresă=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier) ​​​​;

TabularDocument = UploadOnServer(Adresa);

TabularDocument.Show();

Sfârșitul procedurii

&Pe server

Funcția UploadOnServer(Adresă)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Adresa);

FileData.Write(TemporaryFileName);

TabularDocument = Nou TabularDocument();

returnează TabularDocument;