Adatok fogadása xls fájlból 1c. Miért nem elég a Microsoft Excel alapú automatizálás egy modern cég számára? Nyomtatott dokumentumok feltöltése

26.04.2020 Programok

Ez a módszer egyszerű. Lényege, hogy a tárgy TabularDocument módszerei vannak:

  • Írd le (< ИмяФайла>, < ТипФайлаТаблицы >) adatok fájlba feltöltése;
  • Olvas (< ИмяФайла>, < СпособЧтенияЗначений >) adatok betöltéséhez egy fájlból.

Figyelem!

A Write() metódus elérhető mind a kliensen, mind a szerveren. A Read() metódus csak a szerver oldalon érhető el. Ezt emlékezni kell
a kliens-szerver interakció tervezésekor.

Nézzünk egy példát a megtakarításra táblázatos dokumentum fájlhoz. A TabularDocument objektumot bármilyen módon létre kell hozni és kitölteni, ill kirakodás a fájlhoz csak egy sorral kell végrehajtani:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Itt TabDoc- generált táblázatos dokumentum, A fájl elérési útja- feltöltendő fájl neve, TabularDocumentFileType.XLSX— a létrehozott fájl formátuma. A következő Excel formátumok támogatottak:

  • XLS95- Excel formátum 95;
  • XLS97 - Excel 97 formátum;
  • Az XLSX egy Excel 2007 formátum.

TabDoc = Új táblázatos dokumentum;
TabDoc . Read(PathToFile, Method of ReadingTabularDocumentValues.Value);

Itt A fájl elérési útja— a letöltött Excel fájl elérési útja. A táblázatos dokumentum értékeinek beolvasásának módja. Érték meghatározza, hogy a forrásdokumentumból kiolvasott adatokat hogyan kell értelmezni. Elérhető opciók:

  • Jelentés;
  • Szöveg.

Csere OLE-n keresztül

Az OLE automatizálási technológián keresztüli csere talán a leggyakoribb lehetőség programmunka Excel fájlokkal. Lehetővé teszi az Excel által biztosított összes funkció használatát, de eltér lassú sebesség más módszerekkel összehasonlítva. Az OLE-n keresztüli cseréhez MS Excel telepítése szükséges:

  • A végfelhasználó számítógépén, ha a csere a kliens oldalon történik;
  • Az 1C:Enterprise szerver számítógépen, ha a csere a szerver oldalon történik.

Példa kirakodás:

// Hozzon létre egy COM objektumot
Excel = Új COMObject("Excel.Application");
// Figyelmeztetések és kérdések letiltása
Excel . DisplayAlerts = False;
// Hozzon létre egy új könyvet
Könyv = Excel. Munkafüzetek. Add();
// Pozíció az első lapon
Lap = Könyv. Munkalapok (1);

// Érték írása egy cellába
Lap . Cellák (Sorszám, Oszlopszám). Érték = CellValue;

// Mentse el a fájlt
Könyv . SaveAs(Fájlnév);


Excel . Kilépés();
Excel = 0;

Példák olvasás:

// -- 1.OPCIÓ --

// Hozzon létre egy COM objektumot
Excel = Új COMObject("Excel.Application");
// Nyiss ki egy könyvet
Könyv = Excel. Munkafüzetek. Nyisd ki( a fájl elérési útja );

Lap = Könyv. Munkalapok (1);

// A könyv bezárása
Könyv . Bezárás(0);

// Az Excel bezárása és a memória felszabadítása
Excel . Kilépés();
Excel = 0;

// —— 2. LEHETŐSÉG ——

// Nyiss ki egy könyvet
Könyv = GetCOMObject( a fájl elérési útja );
// Elhelyezés a megfelelő lapot
Lap = Könyv. Munkalapok (1);

// Olvassa el a cellaértéket, általában itt található a cella bejárási hurok
CellValue = Lap. Cellák (Sorszám, Oszlopszám). Érték;

// A könyv bezárása
Könyv . Alkalmazás. Qui t();

Mert kitérő Az Excel munkalap összes kitöltött sorához a következő technikákat használhatja:

// -- 1.OPCIÓ --
Sorok száma = Lap. Sejtek (1, 1). SpecialCells(11). Sor;
For RowNumber = 1 a sorok számával Ciklus
CellValue = Lap. Cellák (Sorszám, Oszlopszám). Érték;
EndCycle;

// —— 2. LEHETŐSÉG ——
Sorszám = 0 ;
Míg az Igazság Ciklus
Sorszám = Sorszám + 1 ;
CellValue = Lap. Cellák (Sorszám, Oszlopszám). Érték;
Ha NEM ValueFilled(CellValue) Akkor
Elvetél;
endIf;
EndCycle;

Ahelyett, hogy egymás után végigjárná a lap összes sorát, megteheti kiírja az összes adatot egy tömbbeés dolgozz vele. Ez a megközelítés gyorsabb lesz, ha nagy mennyiségű adatot olvas:

TotalColumns = Lap. Sejtek (1, 1). SpecialCells(11). Oszlop;
TotalRows = Levél. Sejtek (1, 1). SpecialCells(11). Sor;

Vidék = Levél. Tartomány(Lap. Cells(1, 1), Lap. Cells(Összes sor,Oszlopok összesen));
Adat = Régió. Érték. Kirak();

Az alábbi táblázat az Excel OLE-n keresztüli használatának legnépszerűbb tulajdonságait és módszereit mutatja be:

Akció Kód Egy komment
Munka az alkalmazással
Alkalmazásablak láthatóságának beállítása Excel . Látható= Hamis;
A figyelmeztető kimeneti mód beállítása (megjelenítés/nem kijelzés) Excel . Display Alerts= Hamis;
Az alkalmazás bezárása Excel . Kilépés();
Munka könyvvel
Új könyv készítése Könyv = Excel. Munkafüzetek. Hozzáadás();
Meglévő munkafüzet megnyitása Könyv = Excel. Munkafüzetek. Open(Fájlnév);
Könyv mentése Könyv . Mentés másként (Fájlnév);
A könyv bezárása Könyv . Bezárás(0);
Lappal dolgozni
Az aktuális lap beállítása Lap = Könyv. Munkalapok (SheetNumber);
A név beállítása Lap . Név = Név;
A védelem beállítása Lap . Védje();
Védelem eltávolítása Lap . Védelem megszüntetése();
Az oldal tájolásának beállítása Lap . Oldal beállítása. Tájolás = 2; 1 - álló, 2 - fekvő
A bal oldali szegély beállítása Lap . Oldal beállítása. LeftMargin = Excel. Centimeters To Points (centiméter);
A felső határ beállítása Lap . Oldal beállítása. TopMargin = Excel. Centimeters To Points (centiméter);
A megfelelő szegély beállítása Lap . Oldal beállítása. RightMargin = Excel. Centimeters To Points (centiméter);
Az alsó határ beállítása Lap . Oldal beállítása. BottomMargin = Excel. Centimeters To Points (centiméter);
Munka sorokkal, oszlopokkal, cellákkal
Oszlopszélesség beállítása Lap . Oszlopok(Oszlopszám). ColumnWidth = Szélesség;
Töröljön egy sort Lap . Sorok(RowNumber). Töröl();
Oszlop eltávolítása Lap . Oszlopok(Oszlopszám). Töröl();
Cella törlése Lap . Cellák (Sorszám, Oszlopszám). Töröl();
Az érték beállítása Lap . Cellák (Sorszám, Oszlopszám). Érték = Érték;
Cellák egyesítése Lap . Tartomány(Lap. Cellák(Sorszám, Oszlopszám), Lap. Cellák(Sorszám1, Oszlopszám1)). Összeolvad();
A betűtípus beállítása Lap . Cellák (Sorszám, Oszlopszám). Betűtípus. Név = FontName;
A betűméret beállítása Lap . Cellák (Sorszám, Oszlopszám). Betűtípus. Méret = Betűméret;
Félkövér betűtípus beállítása Lap . Cellák (Sorszám, Oszlopszám). Betűtípus. Bátor = 1 ; 1 — félkövér betűtípus, 0 — normál
Dőlt betűk beállítása Lap . Cellák (Sorszám, Oszlopszám). Betűtípus. Dőlt = 1 ; 1 - dőlt, 0 - normál
Az aláhúzott betűtípus beállítása Lap . Cellák (Sorszám, Oszlopszám). Betűtípus. Aláhúzás = 2 ; 2 - aláhúzva, 1 - nem

Annak érdekében, hogy megtudja, melyik tulajdonságot kell megváltoztatni, vagy melyik metódust kell meghívni, használhatja makrók Excel. Ha rögzít egy makrót a szükséges műveletekkel, akkor megtekintheti a rögzített makró VBA kódját.

COMSafeArray használata

Ha nagy mennyiségű adatot tölt le az 1C-ből az Excelbe, az objektumot felgyorsíthatja COMSafeArray. A szintaktikai asszisztens definíciója szerint a COMSafeArray egy objektumburkoló többdimenziós tömb SafeArray a COM-tól. Lehetővé teszi a SafeArray létrehozását és használatát a COM-objektumok közötti adatcseréhez. Egyszerűen fogalmazva, ez egy olyan értéktömb, amely az OLE technológiát használó alkalmazások közötti cserére használható.

// COMSafeArray létrehozása
ArrayCom = Új COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// Töltse ki a COMSafeArray-t
Mert Oldal = 0 TotalLines szerint - 1 ciklus
Mert Szám = 0 Összes oszlop – 1 ciklus
ArrayCom . SetValue(számlálás, oldal, érték);
EndCycle;
EndCycle;
// Hozzárendelés a lapterülethez Excel értékek a COMSafeArray-ből
Lap . Tartomány(Lap. Cells(1, 1), Lap. Cells(Összes sor,Oszlopok összesen)). Érték = ArrayCom;

Csere ADO-n keresztül

Az ADO-n keresztül cserélt Excel-fájl egy olyan adatbázis, amely SQL-lekérdezésekkel érhető el. Az MS Excel telepítése nem szükséges, de rendelkeznie kell egy ODBC illesztőprogrammal, amellyel a hozzáférés biztosított. A használt ODBC illesztőprogramot a fájl kapcsolati karakterláncának megadása határozza meg. Általában a szükséges illesztőprogram már telepítve van a számítógépen.

Az ADO-n keresztüli csere érezhetően gyorsabb, mint az OLE-n keresztüli csere, de feltöltéskor nem lehet Excel funkcionalitást használni cellák tervezésére, oldalak elrendezésére, képletek beállítására stb.

Példa kirakodás:


Kapcsolat = Új COMObject("ADODB.Kapcsolat");


Összetett . ConnectionString = "

|Adatforrás=" + Fájlnév + ";
;
Összetett . Nyisd ki(); // Kapcsolat megnyitása

// Hozzon létre egy COM objektumot a parancshoz
Parancs = Új COMObject("ADODB.Command");
Csapat

// Parancsszöveg hozzárendelése táblázat létrehozásához
Csapat . CommandText = "TÁBLÁZAT LÉTREHOZÁSA [1. lap] (1. oszlop char(255), 2. oszlop dátuma, 3. oszlop int, 4. oszlop lebegés)";
Csapat . Végrehajt(); // A parancs végrehajtása

// Parancsszöveg hozzárendelése táblázatsor hozzáadásához
Csapat . CommandText = "INSERT INTO [Sheet1] (1. oszlop, 2. oszlop, 3. oszlop, 4. oszlop) értékek ('abvwhere', '2017-08-11', '12345', '12345,6789')";
Command.Execute(); // A parancs végrehajtása

// Távolítsa el a parancsot, és zárja be a kapcsolatot
Parancs = Undefined;
Összetett . Bezárás();
Kapcsolat = Undefined;

Új lap létrehozásához és szerkezetének kialakításához használhat objektumokat ADOX.KatalógusÉs ADOX.Táblázat. Ebben az esetben a kód így fog kinézni:

// Hozzon létre egy COM objektumot a könyvvel való munkavégzéshez
Könyv = Új COMObject("ADOX.Katalógus");
Könyv . ActiveConnection = Kapcsolat;

// Hozzon létre egy COM-objektumot, amely a munkalap adatstruktúrájával működik
Táblázat = Új COMObject("ADOX.Tábla");
asztal . Név = "1. lap" ;
asztal . Oszlopok. Append("1. oszlop", 202);
asztal . Oszlopok. Append("2. oszlop", 7);
asztal . Oszlopok. Append("Oszlop3", 5);
asztal . Oszlopok. Append("4. oszlop", 5);

// Hozzon létre egy lapot a munkafüzetben a leírt szerkezettel
Könyv . Táblázatok. Append(Table);
Táblázat = Undefined;
Könyv = Undefined;

A fenti példában a módszerben

asztal . Oszlopok. Mellékel(„1. oszlop”, 202);

a második paraméter az oszlop típusát adja meg. A paraméter nem kötelező, itt van néhány oszloptípus érték:

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

Példa olvasás:

// Hozzon létre egy COM objektumot a kapcsolathoz
Kapcsolat = Új COMObject("ADODB.Kapcsolat");

// A kapcsolati karakterlánc beállítása
Összetett . ConnectionString = "
|Provider=Microsoft.ACE.OLEDB.12.0;
|Adatforrás=" + Fájlnév + ";
|Extended Properties=""Excel 12.0 XML;HDR=IGEN"";";
Összetett . Nyisd ki(); // Kapcsolat megnyitása

// Hozzon létre egy COM objektumot a kijelölés fogadásához
Select = New COMObject("ADODB.Recordset");
RequestText = "SELECT * FROM [Sheet1$]";

// Hajtsa végre a kérést
Minta . Open(QueryText, Connection);

// A minta eredményének megkerülése
Még nem válogatás. EOF() Hurok
1. oszlop értéke = Kijelölés. Mezők. Item ("1. oszlop"). Érték ; // Hozzáférés oszlopnév alapján
Column2Value = Kijelölés. Mezők. Item(0). Érték; // Hozzáférés oszlopindex alapján
Minta . MoveNext();
EndCycle;

Minta . Bezárás();
Minta = Undefined;
Összetett . Bezárás();
Kapcsolat = Undefined;

A kapcsolati karakterláncban a paraméter HDR meghatározza, hogy a lap első sora hogyan lesz érzékelve. Lehetséges opciók:

  • IGEN – az első sort oszlopnévként kezeli a rendszer. Az értékek névvel és oszlopindexszel érhetők el.
  • NEM – az első sort adatként kezeljük. Az értékek csak oszlopindex segítségével érhetők el.

Ezek a példák csak néhány ADO objektumot fednek le. Az ADO objektummodell a következő objektumokból áll:

  • kapcsolat;
  • Parancs;
  • rekordkészlet;
  • Rekord;
  • Mezők;
  • Folyam;
  • hibák;
  • paraméterek;
  • Tulajdonságok.

Feltöltés programozás nélkül

Az adatok 1C-ből Excelbe történő mentéséhez nem mindig tanácsos programozáshoz folyamodni. Ha Enterprise módban a felhasználó meg tudja jeleníteni a letöltéshez szükséges adatokat, akkor azokat programozás nélkül el lehet menteni Excelbe.

Táblázat-dokumentum (például egy jelentés eredményének) mentéséhez meghívhatja a parancsot Megment vagy Mentés másként… főmenü.

A megnyíló ablakban ki kell választani a mentett fájl könyvtárát, nevét és formátumát.

A dinamikus listákból (például elemek listájából) származó adatok mentéséhez a következőket kell tennie:

  1. Adatok kiírása egy táblázatkezelő dokumentumba a paranccsal Tovább ⇒ Lista...;
  2. Mentse el a táblázatkezelő dokumentumot a kívánt formátumban.

A potenciális ügyfelekkel való kommunikáció során gyakran hallom, hogy a tábla funkcionalitása irodai csomag, és nem látják értelmét az 1C programoknak. Mindez azért, mert egyesek még mindig társulnak ezt a döntést csak könyvelői programokkal, ami nem igaz.

Az Excel univerzális és sorozatgyártású termék, ezzel nem lehet vitatkozni. Szinte mindenki használhatja ezt a programot, ellentétben az 1C fejlesztésekkel, amelyek szűk szakembereket céloznak meg. A „zöld” táblázatok segítségével szabadon megvalósíthatja a szükséges funkcionalitást, ami kényelmes lesz: itt van a szervezet pénzügyi modellje minden kölcsönös elszámolással, vezetői számvitel, még szabályozott is, az adatok megjelenítésének nagy választéka, az önálló bővítse a program képességeit különféle kiegészítőkkel - minden az Ön kezében van, mindent a semmiből...

Jó, ha még csak most kezdi vállalkozását, fokozatosan figyelembe véve a táblázat szükséges adatait az ügyfelekkel, beszállítókkal, szabályozó hatóságokkal való kapcsolatokról, saját tetszőleges struktúrát épít ki, de mi a teendő, ha az adatbázis terjedelmessé válik és a létszám a tucatokban? Még mindig a saját paraméterei szerint számol? Én amellett vagyok, hogy ne keverjük össze a kényelmet a megszokással, ami gyakran megzavarja az üzlet rendszerezését, következésképpen annak optimalizálását.

Az érthetőség kedvéért képzeljük el, milyen igények merülhetnek fel a számvitel automatizálására, például a kereskedelemre:

1. Egy adott időszakon belüli eladások elemzése.

Az értékesítési részleg vezetője elemzi az értékesítési adatokat. Fontos, hogy megértse, hogy a terv megvalósul-e, mennyire hatékonyak a stratégiái, hogy eredménytelenség esetén időben kiigazíthassa a munkát.

2. Raktári könyvelés.
Kell-e magyarázni, hogy az értékesítésnél fontos megérteni a készleten lévő áruk elérhetőségét is, mely áruk foglalhatók le és melyek nincsenek raktáron és mit kell megrendelni? Szerintem itt minden világos.

3. A szerződő felek adatbázisának vezetése.
Még ha a tulajdonos a B2C szektorra jellemzően csak azt adja el, amit itt és most meg lehet venni, akkor is kicsit más a viszonya a beszállítói bázissal - szerződések, elsődleges... Képzeld el, milyen kényelmes, amikor minden, ami a szállító automatikusan Megjelenik azonnal egyetlen adatbázisban? A raktárvezető azonnal látja az áruk elérhetőségét a raktárban, egy másik, okmányokért felelős munkatárs figyeli a rendelkezésre állást, a szerződéses jogviszonyból eredő összes kötelezettség teljesítését, kinek és mennyivel tartozik. Eltérés esetén pedig egy bizonyos időszakra vonatkozó adatokat egyeztethet, így kevesebb mint egy perc alatt eredményt generál.

4. A szervezet nyeresége.
Az eredményjelentés elkészítése nem lesz nehéz, mivel a kiadásokra és bevételekre vonatkozó összes adat már megtalálható az adatbázisban. Feltéve, hogy az információkat időben, legalább a szükséges időpontig megadják. Az alapvető tényező itt a felhasználó személyes felelőssége.

Ha nincs sok ügyfele és beszállítója, akkor az Excel igazán megfelel Önnek, hiszen bőven van idő a táblázatban a saját diagramok megtervezésére és kitöltésére, majd a dokumentumok számítógép különböző mappáiba való szétosztására: szerződések, szállítók, kliensek, a környéken lévő ügyfelek, fejlesztés alatt álló kliensek, törölni kívánt kliensek – a mappák mappán belüli létrehozásának végtelen és lenyűgöző folyamata. És ha sok az információ, kényelmes-e nyomon követni az adatbázisát? Természetesen mindig vannak kivételek, néha vannak olyan nagy forgalmú szervezetek, amelyek pénzügyi adatait csak Excelben tárolják. Mennyi időbe telik az osztályok közötti adatcsere és egyesítés? Válaszolok: sokat.

Nem tudom elképzelni, hogyan lehet gyorsan megtalálni azt, amire szüksége van egy tetszőleges rendszerben rendezett nagyszámú Excel dokumentumban. Például az adóhivatal követelményeihez szükséges dokumentumok benyújtásakor. Hogyan nyújt be egy könyvelő jelentést a szabályozó hatóságoknak, ha az összes információ szétszórt? A könyvelés természetesen kiszervezhető, és néhány cégtulajdonost sajnos nem érdekel, hogy egy adott szakember milyen folyamatokat folytat, amíg egyensúlyba hozza az egyenlegeket. De ha igen, akkor hogyan szerveződik az iratcsere folyamata? Milyen gyorsan érti meg egy külső munkatárs a rögtönzött információs szerkezetet?

Nem mondhatom el ugyanezt az 1C-ről, mivel ott minden információ strukturált és összekapcsolt:

    Egyetlen adatbázis távoli és teljes munkaidős alkalmazottak számára, amelyben az összes szabványos és egyedi dokumentummal dolgozhat;
    A szabályozó hatóságok felé történő jelentéskészítés a programban már megjelenített adatok alapján történik; nem kell sok fájlt megnyitni, több értéket egy táblázatba kombinálni a végső eredmények eléréséhez.
Az „1C”, jó értelemben, egy multitasking rendszer, amely tevékenységi körtől függően a tipikus számviteli feladatokra és az összes szervezeti folyamat automatizálására irányul. A fő szó itt a rendszer. Senki sem akadályozza meg abban, hogy üzleti rendszerét Excelben szervezze, de miért találja fel újra a kereket, ha vannak olyan megoldások, amelyek az ideiglenes optimalizáláshoz szinte minden igényt kielégítenek, pénzügyi költségek, segíti a munka rendszerezését?

Az Excel védelmében

Valószínűleg úgy tűnt Önnek, hogy én ellenzem az adatok „zöld” táblázatokban való összeállítását. Egyáltalán nem. Valójában magam is gyakran intézek üzleti tevékenységet az Excelben: ha tetszőleges számításokra van szükségem, ha az adatokat kliensenként kell szegmentálnom, elemzést kell végeznem olyan paraméterek alapján, amelyek nem szerepelnek az 1C-ben - igen, ez megtörténik - az "Excel"-re lépek. Egyszerűen fogalmazva, táblázatokban számításokat és nem szabványos elemzéseket végzek, de akkor úgyis mindent 1C-ben rendszerezem.

Ezután az 1C-ből letöltött fájlok megtekintéséhez továbbra is szüksége lesz Excelre, mivel az 1C-ben lévő adatok táblázatokban vannak tárolva. Úgy érzi, ez egy ördögi kör? Másképp mondom: az „1C” és az „Excel” úgy járnak egymás mellett, mint két partner, de mindegyiknek megvan a maga célja, jól kiegészítik egymást, de nem helyettesítik egymást.

Ha rendszereznie kell ügyeit államunk jogszabályi rendszerének figyelembevételével, figyelembe véve az üzlet sajátosságait és fókuszát, különösen, ha nagy mennyiségű információról van szó, akkor szüksége van az 1C-re. Ha tetszőleges számításokra, a nulláról való stratégia felépítésére, a nem szabványos analitikai adatok megjelenítésére van szüksége, akkor az Excel az Ön szolgálatában áll. De sokkal kényelmesebb ezekkel a megoldásokkal egyidejűleg dolgozni.


Mi a végeredmény – „1C” vagy „Excel”?

Már az elején, ha a kérdés az automatizálás finanszírozásáról szól alapprogramok Az "1C" nem kerül olyan sokba nagy pénz, Excelt használnék. Hatalmas plusz, hogy a „zöld” táblák adatai veszteség nélkül betölthetők az 1C-be. De a méretezés során azt tanácsolom, hogy fordítson figyelmet az üzleti folyamatok automatizálására szolgáló programokra. Sok van belőlük, és nem feltétlenül 1C...

Az „1C”-re való átállás akkor hajtható végre, ha megérti, hogy optimalizálnia kell erőforrásait, beleértve az ügyfelekkel és beszállítókkal, valamint a felügyeleti hatóságokkal való kapcsolatokkal kapcsolatos kérdések automatizálását. Általában állítsa be a munkafolyamatait az üzleti hatékonyság növelése érdekében, amikor az információk feldolgozása sok időt vesz igénybe, és az Excel-fájlok már nem tudnak megbirkózni a bemeneti adatok mennyiségével.

Előfordulhat azonban, hogy nem minden „1C” megfelelő az Ön számára, számos tényezőt kell figyelembe vennie: az üzlet sajátosságait és terjedelmét, a méreteket, a napi feladatok szükségességét, a minimálisra csökkentendő rutint. Minden egyéni. Az igazság, ahogy már mondtam, valahol az „1C” és az „Excel” között van - kiegészíti egymást.

Valószínűleg ennyi. De ha kérdése van, forduljon hozzánk, megpróbálunk segíteni. Sikeres üzleti folyamatokat, kollégák!

Az 1C-ben kétféleképpen dolgozhat az MS Excel fájlokkal: egy COM-objektum és a beépített 1C-eszközök segítségével egy táblázatkezelő dokumentumobjektum segítségével. Nézzük meg mindkét módszert részletesebben.

1. Dolgozzon át egy COM objektumon.

Ehhez a módszerhez telepített MS Excel szükséges, és ha fájllal dolgozik a szerveren, akkor az MS Excelt telepíteni kell a szerverre, ha a kliensre, akkor a ügyfél oldal MS Excel is szükséges.

Példa (a cikk végén láthatja szöveges formában):

Megjegyzendő, hogy az "Excel.Application" COM objektum által biztosított összes objektum, metódus és tulajdonság a VBA, az MS Office programozási nyelv objektuma, metódusa és tulajdonsága.

Jegyzet:

Néha már dolgozni kell vele meglévő sablon. Ezután ezt a sablont el kell tárolnunk valahol, hogy minden szükséges felhasználó hozzáférhessen. Van azonban egy egyszerűbb megoldás is, mentse el a sablont bináris elrendezésként.

2. Dolgozzuk át az 1C táblázatos dokumentumot.

Az 1C táblázatkezelő dokumentum támogatja az MS Excel formátumot a 8-as platformtól kezdődő rögzítéshez, de csak a 8.3.6 platformtól kezdődő megnyitáshoz. Sőt, kinyitáskor az összes lapot egyetlen táblázatos dokumentumba tölti be. A 8.3.10-es verzió óta a betöltés során a különböző lapok különböző területként kerülnek betöltésre.

Egy példabejegyzés nagyon egyszerű, és nem igényel különösebb figyelmet:

Itt azonban van egy probléma. Amikor 1C-ből rögzít egy Excel-munkafüzetbe, a lapnevek megjelenítése alapértelmezés szerint le van tiltva.

Ezt a problémát kétféleképpen lehet megoldani: 1 - magában a könyvben engedélyezze a lapok megjelenítését a beállításokban (nem minden felhasználó vállalja ezt), 2 - tegye ezt egy COM objektumon keresztül (ismét telepíteni kell az MS Excelt ).

Ezt a kis kiegészítést követően a lapcímkék láthatóak lesznek az MS Excel fájlban.

Az MS Excel olvasása nem olyan egyszerű feladat, mivel az olvasási módszer csak a szerveren vagy vastag kliensen érhető el. Ehhez át kell vinnünk az MS Excel fájlt a szerverre.

&OnClient

Eljárás CreateDocument()

Kivétel

EndAttempt;

Könyv = Excel.WorkBooks.Add(); //Új MS Excel munkafüzet létrehozása

Lap = Book.WorkSheets.Add(); //Adj hozzá egy lapot

Sheet.Name = "Példa az 1C-ből"; //Állítsa be a lap nevét

Sheet.Cells(1,1).Value = " Hozzunk létre egy képletet";!}

Lap.Cellák(2,1).Érték = 1;

Lap.Cellák(2,2).Érték = 2;

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

Sheet.Cells(3,1).Érték = CurrentDate();

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

Book.Close();

Az eljárás vége

&A szerveren

GetLayoutServer() függvény

Return FormAttributesValue("Object").GetLayout("TemplateForUpload"); //Így kapjuk a külső feldolgozási elrendezést;

EndFunction

&OnClient

Eljárás Munka()

Excel = Új COMObject("Excel.Application");

Kivétel

Report("Sikertelen kísérlet az Excel összetevők csatlakoztatására. Talán Excel program nincs telepítve erre a számítógépre!");

EndAttempt;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

Kérdése van, vagy tanácsadó segítségére van szüksége?

Könyv = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

SheetTemplate.Cells(6,1).Value = "Dátum:";!}

Lapsablon.Cellák(6,2).Érték = CurrentDate();

SheetTemplate.NumberFormat = "nn/hh/éé;@"; // Adja meg a dátumformátumot, ezt a formátumot egy makró MS Excelben történő rögzítésével kaptuk

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Nyújtsa ki az oszlopot úgy, hogy a dátum pontosan illeszkedjen

Book.SaveAs(Fájlnév);

Book.Close();

Az eljárás vége

&OnClient

Az eljárás vége

&OnClient

Eljárás WriteTabularDocument()

TabularDocument = Új TabularDocument();

TabularDocument.Area("R1C1").Text = "Példa egy rekordra MS Excelben az 1C-ből";

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

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

Az eljárás vége

BinaryData = Új Bináris Adat("C:\1\test2.xlsx");

Cím=PlaceInTemporaryStorage(Bináris Adat,Ez az űrlap.Egyedi azonosító);

TabularDocument = UploadOnServer(Cím);

TabularDocument.Show();

Az eljárás vége

&A szerveren

Funkció UploadOnServer(cím)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Cím);

FileData.Write(IdeiglenesFileName);

TabularDocument = Új TabularDocument();

return TabularDocument;

Már jó ideje népszerű program Az 1C alkalmazás népszerűvé vált a könyvelők, tervezők, közgazdászok és vezetők körében. Nemcsak sokféle konfigurációval rendelkezik a különféle tevékenységekhez, hanem a számviteli szabványokhoz is lokalizálható a világ számos országában. Egyre több vállalkozás tér át könyvelésre ebben a programban. De az adatok más számviteli programokból az 1C-be történő kézi átvitelének eljárása meglehetősen hosszú és unalmas feladat, amely sok időt vesz igénybe. Ha a vállalkozás nyilvántartást vezetett Excel használatával, akkor az átviteli folyamat jelentősen automatizálható és felgyorsítható.

Az adatok átvitele az Excelből az 1C-be nem csak a programmal való munka kezdeti időszakában szükséges. Néha szükség van ilyesmire, amikor egy tevékenység során meg kell adnia néhány könyvben tárolt listát asztali processzor. Például, ha egy online áruházból árlistákat vagy rendeléseket kell átvinnie. Ha a listák kicsik, manuálisan is beírhatja őket, de mi van akkor, ha több száz elemet tartalmaznak? Az eljárás felgyorsítása érdekében további lehetőségeket is igénybe vehet.

Mert automatikus letöltés Szinte minden típusú dokumentum alkalmas:

  • A nómenklatúra listája;
  • A szerződő felek listája;
  • Árlista;
  • Megrendelések listája;
  • Információk a vásárlásokról vagy eladásokról stb.

Azonnal meg kell jegyezni, hogy az 1C nem rendelkezik beépített eszközökkel, amelyek lehetővé tennék az adatok átvitelét az Excelből. Ebből a célból külső rendszerbetöltőt kell csatlakoztatnia, amely egy formátumú fájl epf.

Adatok előkészítése

Az adatokat magában az Excel táblázatban kell elkészítenünk.


Az adatok Excel-könyvben való elkészítésére szolgáló univerzális műveletek mellett a dokumentumot az általunk használt konkrét betöltő követelményeinek is meg kell felelnie, de erről egy kicsit lejjebb fogunk beszélni.

Külső rendszerbetöltő csatlakoztatása

Csatlakoztasson egy külső rendszerbetöltőt kiterjesztéssel epf Az 1C alkalmazás az Excel fájl elkészítése előtt és után is elvégezhető. A lényeg az, hogy mindkét előkészítő probléma megoldódott a betöltési folyamat megkezdése előtt.

Számos külső Excel táblázatbetöltő létezik az 1C-hez, amelyeket különböző fejlesztők hoztak létre. Megvizsgálunk egy példát egy információfeldolgozási eszköz használatára „Adatok betöltése táblázatos dokumentumból” 1C 8.3 verzióhoz.


Az egyik fő adatbázis, amellyel az 1C dolgozik, a termékek és szolgáltatások listája. Ezért az Excelből történő betöltési eljárás leírásához az ilyen típusú adatok átvitelének példájára összpontosítunk.

  1. Visszatérünk a feldolgozási ablakhoz. Mivel a termékválasztékot fogjuk betölteni, a paraméterben lévő kapcsolónak a pozícióban kell lennie "Könyvtár". Alapértelmezés szerint azonban így van telepítve. Csak akkor váltson át, ha másik adattípust szeretne átvinni: táblázatos rész vagy információs nyilvántartás. Következő a mezőn "Könyvtár nézet" Kattintson az ellipszissel ellátott gombra. Megnyílik egy legördülő lista. Ebben ki kell választanunk az elemet "Elnevezéstan".
  2. Ezt követően a kezelő automatikusan elhelyezi a program által használt mezőket az ilyen típusú kézikönyvben. Azonnal meg kell jegyezni, hogy egyáltalán nem szükséges minden mezőt kitölteni.
  3. Most nyissa ki újra a hordozható készüléket Excel dokumentum. Ha oszlopainak neve eltér a megfelelőeket tartalmazó 1C címtármezők nevétől, akkor ezeket az oszlopokat át kell nevezni az Excelben, hogy a nevek teljesen megegyezzenek. Ha a táblázat olyan oszlopokat tartalmaz, amelyeknek nincs analógja a könyvtárban, akkor azokat törölni kell. Esetünkben ezek az oszlopok "Mennyiség"És "Ár". Azt is hozzá kell tenni, hogy a dokumentumban az oszlopok sorrendjének szigorúan meg kell egyeznie a feldolgozás során bemutatottal. Ha a betöltőben megjelenő oszlopok egy részéhez nincsenek adatok, akkor ezek az oszlopok üresen is hagyhatók, de azoknak az oszlopoknak a számozásának meg kell egyeznie, ahol van adat. A kényelem és a szerkesztés gyorsasága érdekében használhatja különleges lehetőség Excel az oszlopok gyors mozgatásához.

    A lépések végrehajtása után kattintson az ikonra "Megment", amelyet egy hajlékonylemezt ábrázoló ikon jelent az ablak bal felső sarkában. Ezután zárja be a fájlt a szabványos bezárás gombra kattintva.

  4. Visszatérünk az 1C feldolgozási ablakhoz. Kattintson a gombra "Nyisd ki", amely sárga mappaként jelenik meg.
  5. Megnyílik a fájl megnyitása ablak. Menjünk abba a könyvtárba, ahol a számunkra szükséges Excel dokumentum található. Az alapértelmezett fájlmegjelenítési kapcsoló kiterjesztésre van állítva mxl. Ahhoz, hogy megjelenítsük a szükséges fájlt, át kell helyeznünk a pozícióba « Excel lap» . Ezután válassza ki az átvinni kívánt dokumentumot, és kattintson a gombra "Nyisd ki".
  6. A tartalom ezután megnyílik a kezelőben. Az adatok helyes kitöltésének ellenőrzéséhez kattintson a gombra "Feltöltés ellenőrzése".
  7. Amint látjuk, a kitöltésvezérlő eszköz azt jelzi, hogy nem találtunk hibát.
  8. Most térjünk át a lapra "Beállítások". BAN BEN "Keresőmező" A sorban egy pipát teszünk, amely a nómenklatúra-könyvtárba beírt összes név esetében egyedi lesz. Az erre leggyakrabban használt mezők "Kereskedői kód" vagy "Név". Ezt azért kell megtenni, hogy új tételek listához adásakor az adatok ne duplikálódjanak.
  9. Az összes adat megadása és a beállítások elvégzése után folytathatja az információk közvetlen betöltését a könyvtárba. Ehhez kattintson a feliratra "Adat betöltés".
  10. A letöltési folyamat folyamatban van. Befejezése után léphet a cikk referenciakönyvébe, és győződjön meg arról, hogy az összes szükséges adatot hozzáadta.

Az 1C 8.3 programban az adatok nómenklatúra könyvtárához való hozzáadásának eljárását követtük. Más könyvtárak és dokumentumok letöltése ugyanazon elv szerint történik, de néhány olyan árnyalattal, amelyet a felhasználó önállóan kitalálhat. Azt is meg kell jegyezni, hogy az eljárás eltérő lehet a különböző harmadik féltől származó betöltők esetében, de az általános megközelítés minden esetben ugyanaz: először a processzor betölti az információkat a fájlból a szerkesztési ablakba, és csak ezután veszi fel azokat. közvetlenül az 1C adatbázisba.

Sok irodai dolgozónak gyakran 1C és Excel programokat kell használnia. Adatokat kell exportálniuk egyik alkalmazásból a másikba. Ma megnézzük, hogyan lehet 1C-ből Excelbe feltölteni.

Adatok feltöltése 1C-ből Excelbe

Adatok feltöltése 1C-től ig Microsoft Excel- egyszerű műveletekből álló folyamat. Ehhez elegendőek az ezekbe az alkalmazásokba épített eszközök. Az adatok exportálása többféleképpen lehetséges.

Nagy mennyiségű adat feltöltése

BAN BEN dokumentum megnyitása Kattintson a jobb gombbal, és válassza a „Lista” lehetőséget. Ezt követően az összes elem sima szövegként jelenik meg. Másolható és beilleszthető egy MS Excel dokumentumba, de jobb, ha megnyitja a "Fájl" menüt, és lépjen a "Mentés másként" szakaszba.

Már csak a fájlformátum kiválasztása és mentése van hátra.

Nyomtatott dokumentumok feltöltése


Hogyan lehet listát beszúrni egy Excel-munkafüzetbe

A lista átviteléhez használja a következő módszert:

  • Nyissa meg a kívánt listát az 1C programban. Ezután jobb gombbal kell kattintania az „Összes művelet”, majd a „Megjelenítési lista” elemre.


  • Megjelenik a lista megjelenítő shell. Az "Outputs to" mezőt "Táblázatdokumentum" értékre kell állítani.
  • Közvetlenül alatta kiválaszthatja az áthelyezni kívánt oszlopokat.


Tanács! Ebben az ablakban nem szabad semmit megváltoztatni, amikor a teljes dokumentum átvitelére készül.

  1. Mindezek után a felhasználó egy listát fog látni a képernyőn táblázat formájában. Ki kell jelölnie az összeset, és másolnia kell.
  2. Aztán létrejön új dokumentumot Excelben, és az adatokat a „CTRL + V” használatával illessze be.

Hozzon létre egy új Excel-munkafüzetet listával

Nem kell sokáig vesződnie, és azonnal ki kell adnia a listát az 1C-ből az Excelbe:

1. A lista létrejöttéig ugyanúgy járunk el, mint az előző módszernél. Ezután lépjen a menübe, nyissa meg a „Fájl” részt, és válassza a „Mentés másként” lehetőséget.



Következtetés

Most már számos módszert ismer a táblázat feltöltésére az 1C-ből az Excelbe. Az eljárás meglehetősen egyszerű, és minden felhasználó képes megbirkózni vele. A lényeg az, hogy alaposan tanulmányozzuk az utasításainkat, válasszuk ki a megfelelő módszert, és szigorúan tartsuk be az utasításokat. Az egyszerűség kedvéért nézze meg a beillesztett képernyőképeket.