Čtení excelového souboru z 1s 8.3. Co je lepší - 1C nebo Excel? Možnosti zpracování přenosu DIY

V 1C existují 2 způsoby, jak pracovat se soubory MS Excel: prostřednictvím objektu COM a vestavěných nástrojů 1C pomocí objektu tabulkového dokumentu. Podívejme se na obě tyto metody podrobněji.

1. Projděte objekt COM.

Tato metoda vyžaduje nainstalovaný MS Excel, a pokud pracujete se souborem na serveru, pak musí být MS Excel nainstalován na serveru, pokud na klientovi, pak je MS Excel vyžadován i na straně klienta.

Příklad (v textové podobě si jej můžete prohlédnout na konci článku):

Je třeba poznamenat, že všechny objekty, metody a vlastnosti poskytované objektem COM "Excel.Application" jsou objekty, metody a vlastnosti VBA, programovacího jazyka MS Office.

Poznámka:

Někdy je potřeba pracovat s existující šablonou. Tuto šablonu pak musíme někam uložit, aby k ní měli přístup všichni potřební uživatelé. Existuje však jednodušší řešení, uložte šablonu jako binární layout.

2. Projděte si tabulkový dokument 1C.

Tabulkový dokument 1C podporuje formát MS Excel pro záznam počínaje platformou 8, ale pro otevření pouze od platformy 8.3.6. Po otevření se navíc všechny listy načtou do jednoho tabulkového dokumentu. Od verze 8.3.10 se při načítání načítají různé listy jako různé oblasti.

Příklad zadání je velmi jednoduchý a nevyžaduje zvláštní pozornost:

Zde však máme problém. Při nahrávání z 1C do sešitu aplikace Excel je zobrazení názvů listů ve výchozím nastavení zakázáno.

Tento problém lze vyřešit 2 způsoby, 1 - v samotné knize povolit v nastavení zobrazení listů (ne všichni uživatelé s tím budou souhlasit), 2 - provést to prostřednictvím objektu COM (opět potřebujeme nainstalovaný MS Excel ).

Po tomto malém přidání budou štítky listů viditelné v souboru MS Excel.

Čtení MS Excel není tak snadný úkol, protože metoda čtení je dostupná pouze na serveru nebo tlustém klientovi. K tomu potřebujeme přenést soubor MS Excel na server.

&OnClient

Postup CreateDocument()

Výjimka

EndPokus;

Kniha = Excel.WorkBooks.Add(); //Vytvořte nový sešit MS Excel

List = Book.WorkSheets.Add(); //Přidat list

List.Name = "Příklad z 1C"; //Nastavte název listu

Sheet.Cells(1,1).Value = "Pojďme vytvořit vzorec";!}

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

List.Cells(2,2).Hodnota = 2;

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

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

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

Book.Close();

EndProcedure

&Na serveru

Funkce GetLayoutServer()

Return FormAttributesValue("Object").GetLayout("TemplateForUpload"); //Tímto způsobem získáme rozložení externího zpracování;

EndFunction

&OnClient

Postup práce()

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

Výjimka

Report("Pokus o připojení komponenty Excel byl neúspěšný. Excel možná není na tomto počítači nainstalován!");

EndPokus;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

Máte dotaz nebo potřebujete pomoc od konzultanta?

Kniha = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

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

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

SheetTemplate.NumberFormat = "dd/mm/rr;@"; // Uveďte formát data, tento formát byl získán záznamem makra v MS Excel

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Roztáhněte sloupec tak, aby datum přesně sedělo

Book.SaveAs(FileName);

Book.Close();

EndProcedure

&OnClient

EndProcedure

&OnClient

Postup WriteTabularDocument()

TabularDocument = Nový TabularDocument();

TabularDocument.Area("R1C1").Text = "Příklad záznamu v MS Excel z 1C";

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

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

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

Excel.Visible = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0,6;

Excel.ActiveWorkbook.Save();

Excel.Application.Quit()

EndProcedure

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

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

TabularDocument = UploadOnServer(Address);

TabularDocument.Show();

EndProcedure

&Na serveru

Funkce UploadOnServer(Adresa)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Address);

FileData.Write(TemporaryFileName);

TabularDocument = Nový TabularDocument();

return TabularDocument;

Existují různé způsoby, jak otevřít soubor Excel v 1C a naopak. Začínající uživatelé budou preferovat jednodušší operace uložením dokumentu v jiném formátu nebo pomocí speciálních programů. Ale stojí za to věnovat trochu úsilí a naučit se pracovat se softwarovými nástroji pro prohlížení a zpracování dat z jednoho programu do druhého. Tyto základní programovací dovednosti vám pomohou vyhnout se rutinním úkolům v budoucnu.

Jak otevřít dokumenty Excel v 1C a naopak

Tabulkový editor Microsoft Excel je ve funkčnosti lepší než účetní softwarové produkty 1C. Uživatelé 1C proto dávají přednost provádění některých operací v tabulkovém editoru a poté vrátí data do účetního programu. A to není překvapivé, protože dříve bylo účetnictví mnoha společností prováděno výhradně pomocí programů společnosti Microsoft. Ale se současnou úrovní automatizace obchodních procesů podniků není možné opustit specializované programy. Pro navázání interakce mezi různými aplikacemi existují následující jednoduché způsoby:

    Když se musíte vypořádat se soubory softwarových produktů, které nemáte nainstalované na vašem aktuálním počítači, nejjednodušší je použít speciální aplikaci pro převod tabulek Excelu do formátu 1C a naopak. Lze jej nalézt na webových stránkách produktu 1C.

    Pokud má váš počítač 1C i Excel, můžete soubor ručně otevřít v jeho „nativní“ aplikaci a poté jej uložit ve formátu jiného programu. Tato možnost je obvykle dostupná při ukládání formuláře nebo rozvržení pro tisk.

    Uživatelé 1C 7.7 mohou upgradovat na verzi 1C 8, která má vylepšený editor tabulek.

Jak mohou 1C a Excel programově interagovat

Interakci mezi 1C a Excelem lze provádět na úrovni programu pomocí technologie OLE Automation vyvinuté společností Microsoft. Umožňuje vám přistupovat k objektům COM přímo z interpretů skriptů různých programů. Jednoduše řečeno, OLE umožňuje přenést kus práce z jednoho programu do druhého a poté práci vrátit do původní aplikace. To je přesně to, co účetní potřebují od tabulkového editoru Microsoftu.

Abyste mohli používat nástroje OLE, nemusíte být programátor. Přestože první seznámení s řádky kódu bude provázet chyby, kontrola pomůže je identifikovat a získané zkušenosti pomohou se jim v budoucnu vyhnout. Níže jsou uvedeny nejoblíbenější příkazy (nazývají se výpisy) pro práci s daty Excelu v účetních programech a naopak.

Jak otevřít soubor aplikace Excel v 1C programově

Pokud jsou tedy na vašem počítači nainstalovány oba programy, mezi kterými si chcete vyměňovat data, můžete interakci organizovat programově. Chcete-li to provést, musíte spustit obě aplikace a poté pomocí OLE vytvořit přístup z 1C do Excelu:

  • Výjimka

    Report(ErrorDescription() + "Excel není na tomto počítači nainstalován!");

  • Konec pokusu.

Přístup k editoru tabulek je nainstalován, nyní pomocí následujících příkazů musíte získat přístup:

    konkrétní dokument:

    • Kniha = Excel.WorkBooks.Open(FilePath)

    • List = Book.WorkSheets(SheetNumber);

  • včetně s konkrétním číslem listu:

    včetně s konkrétním názvem listu:

    • List = Book.WorkSheets(SheetName);

    • Hodnota = List.Cells(ŘádkovéČíslo,Číslo sloupce).Hodnota;

Chcete-li číst data z první stránky souboru, použijte následující výpisy:

    Excel = CreateObject("Excel.Application");

    Kniha = Excel.WorkBooks.Open(FilePath);

    List = Book.WorkSheets(1);

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

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

    Pro řádek = 1 podle smyčky TotalRows

    • Pro sloupec = 1 podle cyklu TotalColumns

      Hodnota = Zkratka(List.Cells(Radek,Sloupec).Hodnota);

      EndCycle;

    EndCycle;

Pamatujte, že cesta k souboru musí být zadána celá. Při ukládání názvu dokumentu nemůžete vložit znaky jako \, /, :, *, ?, ", >,< и |.

Jak otevřít soubor 1C prostřednictvím aplikace Excel programově

Chcete-li zaznamenávat data v Excelu, musíte:

    nebo otevřete existující dokument:

    • Kniha = Excel.WorkBooks.Open(Cesta k souboru) - analogicky s čtením souboru Excel z 1C;

    nebo přidat nový:

    • Sešit = Excel.WorkBooks.Add();

    V novém dokumentu můžete vytvořit nový list:

    • List = Book.Sheets.Add();

    a přidejte do buňky novou hodnotu:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Hodnota; (způsoby zápisu hodnot pomocí OLE jsou podrobně popsány na internetu).

  • Book.SaveAs(FilePath);

    Výjimka

    Report(ErrorDescription()+"Soubor nebyl uložen!");

    Konec pokusu.

Po dokončení práce s tabulkovým editorem ukončete pomocí speciálního příkazu (Excel.Application.Quit();). Tato metoda pomůže ušetřit prostředky počítače při další práci.

Nebezpečí při výměně dat mezi 1C a Excelem

1C a Excel byly vyvinuty různými společnostmi a používají různé způsoby zpracování dat. Proto při přenosu tabulek z jednoho programu do druhého pamatujte na následující úskalí:

    Různé oddělovače ve zlomkových číslech. Microsoft odděluje desetinná čísla čárkou. Při přenosu tabulek z účetního programu se proto nedivte hojnosti dat a dalším zmatkům. Prostě účetní program může v zápisu zlomků používat tečku, kterou tabulkový editor Microsoftu interpretuje jako oddělovač data a 15.5 se změní na 15. květen. Pro zpracování účetních dat v tabulkovém editoru bude nutné nahradit oddělovač čárkou.

    Při přenosu dat z Excelu do 1C se ty konstanty Excelu, které nejsou v účetním programu, mohou zobrazovat nesprávně. K jejich dešifrování je třeba přejít do nápovědy tabulkového editoru nebo do režimu ladění a zkontrolovat číselné vyjádření různých konstant.

Pokud potřebujete vyměnit velké množství dat nebo se nemůžete zbavit chyb, obraťte se s žádostí o pomoc na odborníky společnosti Setby. Pomůžeme vám vyřešit vaše problémy na úrovni programu a porozumět příkazům nezbytným pro vaši práci.

Tato metoda je jednoduchá. Jeho podstatou je, že objekt Tabulkový dokument má metody:

  • Zapsat (< ИмяФайла>, < ТипФайлаТаблицы >) nahrát data do souboru;
  • Číst (< ИмяФайла>, < СпособЧтенияЗначений >) pro načtení dat ze souboru.

Pozornost!

Metoda Write() je dostupná na klientovi i na serveru. Metoda Read() je dostupná pouze na straně serveru. Je potřeba si to zapamatovat
při plánování interakce klient-server.

Podívejme se na příklad uložení tabulkového dokumentu do souboru. Objekt TabularDocument je nutné jakkoli vytvořit a naplnit, a vykládání do souboru se provádí pouze jedním řádkem:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Tady TabDoc- vygenerovaný tabulkový dokument, Cesta k souboru— název souboru k nahrání, TabularDocumentFileType.XLSX— formát vytvořeného souboru. Podporovány jsou následující formáty aplikace Excel:

  • XLS95 - formát Excel 95;
  • XLS97 - formát Excel 97;
  • XLSX je formát Excelu 2007.

TabDoc = Nový tabulkový dokument;
TabDoc . Read(PathToFile, Method of ReadingTabularDocumentValues.Value);

Tady Cesta k souboru— cesta ke staženému souboru Excel. Metoda čtení hodnot tabulkového dokumentu.Value určuje, jak mají být interpretována data načtená ze zdrojového dokumentu. Dostupné možnosti:

  • Význam;
  • Text.

Výměna přes OLE

Výměna přes automatizační technologii OLE je možná nejběžnější možností pro programovou práci se soubory aplikace Excel. Umožňuje používat všechny funkce poskytované Excelem, ale je pomalejší ve srovnání s jinými metodami. Pro výměnu přes OLE je nutná instalace MS Excel:

  • Na počítači koncového uživatele, pokud k výměně dojde na straně klienta;
  • Na serveru 1C:Enterprise, pokud k výměně dojde na straně serveru.

Příklad vykládání:

// Vytvoří objekt COM
Excel = New COMObject("Excel.Application");
// Zakázat varování a otázky
Vynikat . DisplayAlerts = False;
// Vytvořte novou knihu
Rezervovat = Excel. Pracovní sešity. Přidat();
// Umístění na prvním listu
Prostěradlo = Kniha. Pracovní listy(1);

// Zápis hodnoty do buňky
Prostěradlo . Buňky (Číslo řádku, Číslo sloupce). Hodnota = CellValue;

// Uložte soubor
Rezervovat . SaveAs(FileName);


Vynikat . Přestat();
Excel = 0;

Příklady čtení:

// -- MOŽNOST 1 --

// Vytvoří objekt COM
Excel = New COMObject("Excel.Application");
// Otevřete knihu
Rezervovat = Excel. Pracovní sešity. OTEVŘENO( cesta k souboru);

Prostěradlo = Kniha. Pracovní listy(1);

// Zavírání knihy
Rezervovat . Close(0);

// Zavřete Excel a uvolněte paměť
Vynikat . Přestat();
Excel = 0;

// —— MOŽNOST 2 ——

// Otevřete knihu
Rezervovat = GetCOMObject( cesta k souboru);
// Umístění na požadovaný list
Prostěradlo = Kniha. Pracovní listy(1);

// Přečtěte si hodnotu buňky, obvykle se zde nachází smyčka procházení buňky
CellValue = List. Buňky (Číslo řádku, Číslo sloupce). Hodnota;

// Zavírání knihy
Rezervovat . Aplikace. Qui t();

Pro bypass Pro všechny dokončené řádky listu aplikace Excel můžete použít následující techniky:

// -- MOŽNOST 1 --
Počet řádků = list. Buňky (1, 1). SpecialCells(11). Řádek;
Pro číslo řádku = 1 podle počtu cyklů řádků
CellValue = List. Buňky (Číslo řádku, Číslo sloupce). Hodnota;
EndCycle;

// —— MOŽNOST 2 ——
Číslo řádku = 0 ;
Zatímco cyklus pravdy
ŘádkovéČíslo = ŘádkovéČíslo + 1 ;
CellValue = List. Buňky (Číslo řádku, Číslo sloupce). Hodnota;
Pokud NE ValueFilled(CellValue) Pak
Přerušit;
endIf;
EndCycle;

Místo postupného procházení všech řádků listu můžete vypsat všechna data do pole a pracovat s ním. Tento přístup bude rychlejší při čtení velkého množství dat:

TotalColumns = List. Buňky (1, 1). SpecialCells(11). Sloupec;
TotalRows = List. Buňky (1, 1). SpecialCells(11). Řádek;

Kraj = List. Rozsah(Sheet. Cells(1, 1), Sheet. Cells(TotalRows,TotalColumns));
Data = Region. Hodnota. Vyložit();

Níže uvedená tabulka ukazuje nejoblíbenější vlastnosti a metody pro práci s Excelem přes OLE:

Akce Kód Komentář
Práce s aplikací
Nastavení viditelnosti okna aplikace Vynikat . Viditelné= nepravda;
Nastavení režimu výstupu varování (zobrazit/nezobrazit) Vynikat . DisplayAlerts= nepravda;
Uzavření aplikace Vynikat . Přestat();
Práce s knihou
Vytvoření nové knihy Rezervovat = Excel. Pracovní sešity. Přidat();
Otevření existujícího sešitu Rezervovat = Excel. Pracovní sešity. Otevřít (Název souboru);
Ukládání knihy Rezervovat . Uložit jako (název souboru);
Zavírání knihy Rezervovat . Close(0);
Práce s listem
Nastavení aktuálního listu Prostěradlo = Kniha. WorkSheets(SheetNumber);
Nastavení názvu Prostěradlo . Jméno = Jméno;
Nastavení ochrany Prostěradlo . Chránit();
Odstranění ochrany Prostěradlo . UnProtect();
Nastavení orientace stránky Prostěradlo . Nastavení stránky. Orientace = 2; 1 - portrét, 2 - krajina
Nastavení levého okraje Prostěradlo . Nastavení stránky. Levý okraj = Excel. CentimetryToPoints(Centimetry);
Nastavení horní hranice Prostěradlo . Nastavení stránky. TopMargin = Excel. CentimetryToPoints(Centimetry);
Nastavení pravého okraje Prostěradlo . Nastavení stránky. RightMargin = Excel. CentimetryToPoints(Centimetry);
Nastavení spodní hranice Prostěradlo . Nastavení stránky. Dolní okraj = Excel. CentimetryToPoints(Centimetry);
Práce s řádky, sloupci, buňkami
Nastavení šířky sloupce Prostěradlo . Columns(ColumnNumber). ColumnWidth = šířka;
Smazat řádek Prostěradlo . Řádky (RowNumber). Vymazat();
Odstranění sloupce Prostěradlo . Columns(ColumnNumber). Vymazat();
Smazat buňku Prostěradlo . Buňky (Číslo řádku, Číslo sloupce). Vymazat();
Nastavení hodnoty Prostěradlo . Buňky (Číslo řádku, Číslo sloupce). Hodnota = Hodnota;
Sloučení buněk Prostěradlo . Rozsah(Sheet. Cells(RowNumber, ColumnNumber), Sheet. Cells(RowNumber1, ColumnNumber1)). Spojit();
Nastavení písma Prostěradlo . Buňky (Číslo řádku, Číslo sloupce). Písmo. Jméno = Název písma;
Nastavení velikosti písma Prostěradlo . Buňky (Číslo řádku, Číslo sloupce). Písmo. Velikost = Velikost písma;
Nastavení tučného písma Prostěradlo . Buňky (Číslo řádku, Číslo sloupce). Písmo. tučně = 1 ; 1 - tučné, 0 - normální
Nastavení kurzívy Prostěradlo . Buňky (Číslo řádku, Číslo sloupce). Písmo. kurzíva = 1 ; 1 - kurzíva, 0 - normální
Nastavení podtrženého písma Prostěradlo . Buňky (Číslo řádku, Číslo sloupce). Písmo. Zdůraznit = 2 ; 2 - podtrženo, 1 - ne

Chcete-li zjistit, kterou vlastnost je třeba změnit nebo kterou metodu volat, můžete použít makra Vynikat. Pokud zaznamenáte makro s požadovanými akcemi, můžete se pak podívat na kód VBA zaznamenaného makra.

Pomocí COMSafeArray

Při stahování velkého množství dat z 1C do Excelu můžete objekt použít ke zrychlení COMSafeArray. Podle definice z asistenta syntaxe je COMSafeArray obal objektu přes vícerozměrné pole SafeArray z COM. Umožňuje vytvářet a používat SafeArray pro výměnu dat mezi objekty COM. Jednoduše řečeno, je to pole hodnot, které lze použít k výměně mezi aplikacemi pomocí technologie OLE.

// Vytvoří COMSafeArray
ArrayCom = New COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// Vyplňte COMSafeArray
Pro Strana = 0 podle TotalLines - 1 cyklus
Pro Počet = 0 Celkem sloupců - 1 cyklus
ArrayCom . SetValue(Počet, Stránka, Hodnota);
EndCycle;
EndCycle;
// Přiřazení oblasti listu aplikace Excel k hodnotám z COMSafeArray
Prostěradlo . Rozsah(Sheet. Cells(1, 1), Sheet. Cells(TotalRows,TotalColumns)). Hodnota = ArrayCom;

Výměna přes ADO

Excelový soubor, když je vyměněn přes ADO, je databáze, ke které lze přistupovat pomocí SQL dotazů. Instalace MS Excel není nutná, ale musíte mít ODBC ovladač, se kterým bude zajištěn přístup. Použitý ovladač ODBC je určen zadáním připojovacího řetězce k souboru. Obvykle je požadovaný ovladač v počítači již nainstalován.

Výměna přes ADO je znatelně rychlejší než výměna přes OLE, ale při nahrávání nelze použít funkcionalitu Excelu pro návrh buněk, rozložení stránek, nastavení vzorců atd.

Příklad vykládání:


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


Sloučenina . ConnectionString = "

| Zdroj dat=" + Název souboru + ";
;
Sloučenina . OTEVŘENO(); // Otevřete připojení

// Vytvoří objekt COM pro příkaz
Příkaz = New COMObject("ADODB.Command");
tým

// Přiřazení textu příkazu k vytvoření tabulky
tým . CommandText = "CREATE TABLE [Sheet1] (Column1 char(255), Column2 date, Column3 int, Column4 float)";
tým . Vykonat(); // Spusťte příkaz

// Přiřazení textu příkazu k přidání řádku tabulky
tým . CommandText = "INSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) values ​​​​('abvwhere', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // Spusťte příkaz

// Odeberte příkaz a zavřete připojení
Příkaz = Nedefinováno;
Sloučenina . Zavřít();
Připojení = Nedefinováno;

Chcete-li vytvořit nový list a vytvořit jeho strukturu, můžete použít objekty ADOX.Katalog A ADOX.Tabulka. V tomto případě bude kód vypadat takto:

// Vytvoří objekt COM pro práci s knihou
Rezervovat = Nový COMObject("ADOX.Katalog");
Rezervovat . ActiveConnection = připojení;

// Vytvořte objekt COM pro práci s datovou strukturou na listu
Tabulka = New COMObject("ADOX.Table");
Stůl . Name = "List1" ;
Stůl . Sloupce. Append("Sloupec1", 202);
Stůl . Sloupce. Append("Sloupec2", 7);
Stůl . Sloupce. Append("Sloupec3", 5);
Stůl . Sloupce. Append("Sloupec4", 5);

// V sešitu vytvořte list s popsanou strukturou
Rezervovat . Tabulky. Append(Tabulka);
Tabulka = Nedefinováno;
Kniha = Nedefinováno;

Ve výše uvedeném příkladu v metodě

Stůl . Sloupce. Připojit("Sloupec 1", 202);

druhý parametr určuje typ sloupce. Parametr je volitelný, zde jsou některé hodnoty typu sloupce:

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

Příklad čtení:

// Vytvoří objekt COM pro připojení
Connection = New COMObject("ADODB.Connection");

// Nastavte připojovací řetězec
Sloučenina . ConnectionString = "
|Poskytovatel=Microsoft.ACE.OLEDB.12.0;
| Zdroj dat=" + Název souboru + ";
|Rozšířené vlastnosti=""Excel 12.0 XML;HDR=ANO"";";
Sloučenina . OTEVŘENO(); // Otevřete připojení

// Vytvořte objekt COM pro příjem výběru
Select = New COMObject("ADODB.Recordset");
Text požadavku = "VYBRAT * Z [Sheet1$]";

// Proveďte požadavek
Vzorek . Open(QueryText, Connection);

// Obejít ukázkový výsledek
Zatím bez výběru. EOF() smyčka
Hodnota sloupce1 = výběr. Pole. Položka("Sloupec1"). Hodnota ; // Přístup podle názvu sloupce
Column2Value = Výběr. Pole. Položka (0). Hodnota; // Přístup podle indexu sloupce
Vzorek . MoveNext();
EndCycle;

Vzorek . Zavřít();
Ukázka = Nedefinováno;
Sloučenina . Zavřít();
Připojení = Nedefinováno;

V připojovacím řetězci parametr HDR určuje, jak bude vnímán první řádek na listu. Možné možnosti:

  • ANO - první řádek je považován za názvy sloupců. K hodnotám lze přistupovat podle názvu a indexu sloupce.
  • NE - první řádek je považován za data. K hodnotám lze přistupovat pouze pomocí indexu sloupce.

Tyto příklady pokrývají pouze několik objektů ADO. Objektový model ADO se skládá z následujících objektů:

  • spojení;
  • Příkaz;
  • sada záznamů;
  • Záznam;
  • Pole;
  • Proud;
  • Chyby;
  • parametry;
  • Vlastnosti.

Nahrání bez programování

Chcete-li uložit data z 1C do Excelu, není vždy vhodné uchýlit se k programování. Pokud v režimu Enterprise může uživatel zobrazit data potřebná ke stažení, lze je uložit v Excelu bez programování.

Chcete-li uložit tabulkový dokument (například výsledek sestavy), můžete zavolat příkaz Uložit nebo Uložit jako… hlavní menu.

V okně, které se otevře, musíte vybrat adresář, název a formát uloženého souboru.

Chcete-li uložit data z dynamických seznamů (například seznam položek), musíte:

  1. Výstup dat do tabulkového dokumentu pomocí příkazu Více ⇒ Seznam...;
  2. Uložte dokument tabulky v požadovaném formátu.

Dost často při komunikaci s potenciálními klienty slýchávám, že jim tabulková funkcionalita z kancelářského balíku docela stačí a v programech 1C nevidí smysl. Toto řešení si totiž někteří lidé stále spojují pouze s programy pro účetní, což není pravda.

Excel je univerzální a sériově vyráběný produkt, s tím nemůžete polemizovat. Tento program může používat téměř každý, na rozdíl od vývoje 1C, který je zaměřen na úzké specialisty. Pomocí „zelených“ tabulek můžete volně implementovat potřebnou funkcionalitu, která bude pohodlná: zde je finanční model organizace se všemi vzájemnými vyrovnáními, manažerským účetnictvím, dokonce i regulovaným, velkým výběrem vizualizace dat, schopností samostatně rozšiřte možnosti programu pomocí různých doplňků - vše je ve vašich rukou, vše od začátku...

Je dobré, když své podnikání teprve rozjíždíte, postupně zohledňujete potřebné údaje v tabulce o vztazích s klienty, dodavateli, regulačními úřady, budujete si vlastní libovolnou strukturu, ale co dělat dál, když se databáze stává objemnou, a personál čísla v desítkách? Stále počítat podle vlastních parametrů? Jsem pro nezaměňování pohodlnosti se zvykem, který často narušuje systematizaci obchodu a tím i jeho optimalizaci.

Pro názornost si představme, jaké potřeby mohou nastat pro automatizaci účetnictví, například pro obchod:

1. Analýza tržeb za určité období.

Vedoucí obchodního oddělení může analyzovat prodejní data. Je důležité, aby porozuměl tomu, zda se plán plní, jak efektivní jsou jeho strategie, aby v případě neefektivity mohl práci včas upravit.

2. Skladové účetnictví.
Musím vysvětlovat, že pro výprodeje je také důležité rozumět dostupnosti zboží skladem, které zboží je možné rezervovat a které není skladem a co je potřeba objednat? Myslím, že zde je vše jasné.

3. Vedení databáze protistran.
I když majitel prodává jen to, co se dá koupit tady a teď, což je pro B2C sektor typické, tak má s dodavatelskou základnou trochu jiný vztah - smlouvy, primární... Představte si, jak je to pohodlné, když vše spojené s dodavatel je automaticky Zobrazuje se okamžitě v jedné databázi? Vedoucí skladu okamžitě vidí dostupnost zboží na skladě, další pracovník zodpovědný za doklady sleduje informace o jeho dostupnosti, zda jsou plněny všechny závazky ze smluvních vztahů, kdo komu a kolik dluží. A v případě nesrovnalostí můžete porovnat data za určité období a vygenerovat výsledek za méně než minutu.

4. Zisk organizace.
Generování výkazu zisku nebude obtížné, protože všechny údaje o výdajích a příjmech jsou již v databázi. Za předpokladu, že informace budou zadány včas, minimálně do požadovaného data. Základním faktorem je zde osobní odpovědnost uživatele.

Pokud nemáte mnoho klientů a dodavatelů, bude vám Excel opravdu vyhovovat, protože je dost času navrhnout si vlastní schémata v tabulce a vyplnit je a následně rozmístit dokumenty do různých složek v počítači: smlouvy, dodavatelé, klienti, klienti v okolí, klienti ve vývoji, klienti ke smazání – nekonečný a fascinující proces vytváření složek ve složce. A pokud je informací hodně, je vhodné vést záznamy o vaší databázi? Samozřejmě vždy existují výjimky, někdy existují organizace s velkým obratem, jejichž finanční data jsou vedena pouze v Excelu. Jak dlouho jim trvá výměna a kombinování dat mezi odděleními? Odpovím: hodně.

Nedokážu si představit, jak rychle najít ten, který potřebujete, ve velkém počtu dokumentů aplikace Excel organizovaných v libovolném systému. Například při dokládání podkladů pro požadavky od finančního úřadu. Jak bude účetní předkládat zprávy regulačním orgánům, když jsou všechny informace rozptýlené? Účetnictví lze samozřejmě zadat externě a některým majitelům firem může být bohužel jedno, jaké procesy daný specialista může mít, pokud vyrovnává zůstatky. Ale i kdyby ano, jak je organizován proces výměny dokumentů? Jak rychle externí zaměstnanec pochopí improvizovanou informační strukturu?

Nemohu říci totéž o 1C, protože všechny informace jsou strukturované a propojené:

    Jedna databáze pro vzdálené i stálé zaměstnance, ve které můžete pracovat se všemi standardizovanými i vlastními dokumenty;
    Hlášení regulačním orgánům se generuje na základě dat, která jsou již v programu zohledněna, není třeba otevírat mnoho souborů, kombinovat několik hodnot do jedné tabulky, abyste získali konečné výsledky.
„1C“ je v dobrém slova smyslu multitaskingový systém, který je zaměřen jak na typické účetní úkoly, tak na automatizaci všech organizačních procesů v závislosti na oblasti činnosti. Hlavní slovo zde má systém. Nikdo vám nebrání organizovat svůj podnikový systém v Excelu, ale proč znovu objevovat kolo, když existují řešení, která pokrývají téměř všechny potřeby optimalizace časových a finančních nákladů a pomáhají systematizovat vaši práci?

Na obranu Excelu

Pravděpodobně se vám zdálo, že jsem proti konstruování dat v „zelených“ tabulkách. Vůbec ne. Ve skutečnosti já sám často podnikám v Excelu: pokud potřebuji libovolné výpočty, pokud potřebuji segmentovat data podle klienta, provádím analýzy na základě parametrů, které nejsou v 1C - ano, to se stává - jdu do „ Excelu“. Jednoduše řečeno, v tabulkách dělám výpočty a nestandardní analýzy, ale pak stejně vše systematizuji v 1C.

A pak, k zobrazení stažených souborů z 1C budete stále potřebovat Excel, protože data v 1C jsou uložena v tabulkách. Máte pocit, že je to začarovaný kruh? Řeknu to jinak: „1C“ a „Excel“ jdou vedle sebe jako dva partneři, ale každý z nich má svůj vlastní účel, dobře se doplňují, ale nenahrazují se.

Pokud potřebujete systematizovat své záležitosti s ohledem na legislativní systém našeho státu, s ohledem na specifika a zaměření podnikání, zejména pokud jde o velké objemy informací, potřebujete 1C. Pokud potřebujete libovolné výpočty, budování strategie od nuly, vizualizaci nestandardních analytických dat, pak je vám Excel k dispozici. Mnohem pohodlnější je ale pracovat s těmito řešeními současně.


Jaký je konečný výsledek – „1C“ nebo „Excel“?

Na úplný začátek, pokud je otázka ohledně financí na automatizaci, ačkoliv základní programy 1C nestojí tolik peněz, použil bych Excel. Obrovským plusem je, že data ze „zelených“ tabulek lze načíst do 1C bez ztráty. Ale při škálování bych vám doporučil věnovat pozornost programům pro automatizaci obchodních procesů. Je jich mnoho a nemusí to být nutně 1C...

Přechod na „1C“ lze provést, když pochopíte, že potřebujete optimalizovat své zdroje, včetně automatizace problémů souvisejících se vztahy s klienty a dodavateli a s orgány dohledu. Obecně upravte své pracovní procesy tak, abyste zvýšili efektivitu podnikání, když zpracování informací zabere spoustu času a soubory Excelu už nebudou zvládat objem vstupních dat.

Ne každé „1C“ však pro vás může být vhodné, musíte vzít v úvahu různé faktory: specifika a rozsah podnikání, rozsah, potřeba každodenních úkolů, rutina, kterou je třeba minimalizovat. Vše je individuální. Pravda, jak jsem již řekl, je někde mezi „1C“ a „Excel“ - vzájemně se doplňuje.

To je asi vše. Ale pokud máte nějaké dotazy, kontaktujte nás, pokusíme se vám pomoci. Úspěšné obchodní procesy, kolegové!

Aplikace 1C je dlouhodobě nejoblíbenějším programem mezi účetními, plánovači, ekonomy a manažery. Má nejen rozmanité množství konfigurací pro různé typy činností, ale také lokalizaci do účetních standardů v několika zemích světa. Stále více podniků přechází na účetnictví v tomto programu. Postup ručního přenosu dat z jiných účetních programů do 1C je však poměrně dlouhý a nudný úkol, který zabere spoustu času. Pokud podnik vedl záznamy pomocí Excelu, pak lze proces přenosu výrazně zautomatizovat a zrychlit.

Přenos dat z Excelu do 1C je nutný nejen v počátečním období práce s tímto programem. Někdy je něco takového potřeba, když v průběhu činnosti potřebujete zadat nějaké seznamy uložené v tabulkovém sešitu. Například pokud potřebujete přenést ceníky nebo objednávky z internetového obchodu. Pokud jsou seznamy malé, můžete je zadat ručně, ale co když obsahují stovky položek? Chcete-li postup urychlit, můžete se uchýlit k některým dalším možnostem.

Téměř všechny typy dokumentů jsou vhodné pro automatické stahování:

  • Seznam nomenklatury;
  • Seznam protistran;
  • Seznam cen;
  • Seznam objednávek;
  • Informace o nákupech nebo prodejích atd.

Hned je třeba poznamenat, že 1C nemá vestavěné nástroje, které by vám umožnily přenášet data z Excelu. Pro tyto účely je potřeba připojit externí bootloader, což je soubor ve formátu epf.

Příprava dat

Budeme muset připravit data v samotné excelové tabulce.


Kromě těchto univerzálních akcí pro přípravu dat v knize Excel budete také muset uvést dokument do souladu s požadavky konkrétního zavaděče, který budeme používat, ale o tom budeme mluvit o něco níže.

Připojení externího bootloaderu

Připojte externí bootloader s rozšířením epf aplikaci 1C lze provést před i po přípravě souboru Excel. Hlavní věc je, že oba tyto přípravné problémy byly vyřešeny před zahájením procesu načítání.

Existuje několik externích nakladačů tabulek Excel pro 1C, které byly vytvořeny různými vývojáři. Budeme zvažovat příklad pomocí nástroje pro zpracování informací „Načítání dat z tabulkového dokumentu“ pro verzi 1C 8.3.


Jednou z hlavních databází, se kterou 1C pracuje, je seznam produktů a služeb. Pro popis postupu načítání z Excelu se proto zaměříme na příklad přenosu tohoto konkrétního typu dat.

  1. Vrátíme se do okna zpracování. Jelikož budeme načítat sortiment, měl by být přepínač v parametru v poloze "Adresář". Ve výchozím nastavení je však nainstalován tímto způsobem. Měli byste jej přepínat pouze tehdy, když se chystáte přenášet jiný typ dat: tabulkovou sekci nebo informační registr. Další na poli "Zobrazení adresáře" Klikněte na tlačítko s třemi tečkami. Otevře se rozevírací seznam. V něm bychom měli vybrat položku "Nomenklatura".
  2. Poté obsluha automaticky umístí pole, která program používá, do tohoto typu příručky. Hned je třeba poznamenat, že není vůbec nutné vyplňovat všechna pole.
  3. Nyní znovu otevřete přenosný dokument Excel. Pokud se název jeho sloupců liší od názvů polí adresáře 1C, která obsahují odpovídající, musíte tyto sloupce přejmenovat v aplikaci Excel tak, aby se názvy zcela shodovaly. Pokud tabulka obsahuje sloupce, pro které v adresáři nejsou žádné analogy, měly by být odstraněny. V našem případě jsou to tyto sloupce "Množství" A "Cena". Je třeba také dodat, že pořadí sloupců v dokumentu se musí striktně shodovat s pořadím uvedeným při zpracování. Pokud nemáte data pro některé sloupce, které jsou zobrazeny v loaderu, můžete tyto sloupce ponechat prázdné, ale číslování těch sloupců, kde jsou data, se musí shodovat. Pro pohodlí a rychlost úprav můžete pomocí speciální funkce Excelu rychle přesouvat sloupce na místech.

    Po dokončení těchto kroků klikněte na ikonu "Uložit", kterou představuje ikona znázorňující disketu v levém horním rohu okna. Poté soubor zavřete kliknutím na standardní tlačítko Zavřít.

  4. Vrátíme se do okna zpracování 1C. Klikněte na tlačítko "OTEVŘENO", která je zobrazena jako žlutá složka.
  5. Otevře se okno pro otevření souboru. Pojďme do adresáře, kde se nachází dokument Excel, který potřebujeme. Výchozí přepínač zobrazení souborů je nastaven na příponu mxl. Abychom mohli zobrazit soubor, který potřebujeme, musíme jej přesunout na pozici "List Excelu". Poté vyberte dokument, který chcete přenést, a klikněte na tlačítko "OTEVŘENO".
  6. Obsah se pak otevře v handleru. Chcete-li zkontrolovat, zda jsou údaje vyplněny správně, klikněte na tlačítko "Kontrola plnění".
  7. Jak vidíme, nástroj pro kontrolu výplně nám říká, že nebyly nalezeny žádné chyby.
  8. Nyní se přesuneme na záložku "Nastavení". V "Vyhledávací pole" Do řádku dáme zaškrtnutí, které bude jedinečné pro všechna jména zadaná v adresáři nomenklatury. Nejčastěji se k tomu používají pole "kód dodavatele" nebo "Název". To musí být provedeno tak, aby při přidávání nových položek do seznamu nedocházelo ke zdvojování údajů.
  9. Po zadání všech údajů a dokončení nastavení můžete přistoupit k přímému načtení informací do adresáře. Chcete-li to provést, klikněte na nápis "Načíst data".
  10. Probíhá proces stahování. Po jeho dokončení můžete přejít do referenční knihy položek a ujistit se, že tam byly přidány všechny potřebné údaje.

Dodrželi jsme postup pro přidávání dat do adresáře nomenklatury v programu 1C 8.3. U ostatních adresářů a dokumentů bude stahování probíhat podle stejného principu, ale s některými nuancemi, které může uživatel zjistit sám. Je třeba také poznamenat, že postup se může u různých zavaděčů třetích stran lišit, ale obecný přístup zůstává pro všechny stejný: nejprve procesor načte informace ze souboru do okna, kde se upravují, a teprve poté je přidá přímo do databáze 1C.