Läser en excel-fil från 1s 8.3. Vilket är bättre - 1C eller Excel? Bearbetningsalternativ för DIY-överföring

I 1C finns det två sätt att arbeta med MS Excel-filer: genom ett COM-objekt och inbyggda 1C-verktyg med hjälp av ett kalkylarksdokumentobjekt. Låt oss titta på båda dessa metoder mer i detalj.

1. Arbeta igenom ett COM-objekt.

Denna metod kräver installerat MS Excel, och om du arbetar med en fil på servern måste MS Excel installeras på servern, om på klienten så krävs MS Excel även på klientsidan.

Exempel (du kan se det i textform i slutet av artikeln):

Det bör noteras att alla objekt, metoder och egenskaper som tillhandahålls av COM-objektet "Excel.Application" är objekt, metoder och egenskaper för VBA, MS Office-programmeringsspråket.

Notera:

Ibland behöver du arbeta med en befintlig mall. Sedan måste vi lagra den här mallen någonstans så att alla nödvändiga användare har tillgång till den. Det finns dock en enklare lösning, spara mallen som en binär layout.

2. Arbeta igenom tabelldokument 1C.

Kalkylarksdokumentet 1C stöder MS Excel-formatet för inspelning från plattform 8, men för öppning endast från plattform 8.3.6. Dessutom, när de öppnas, laddas alla ark i ett kalkylarksdokument. Sedan version 8.3.10, vid laddning, laddas olika ark som olika områden.

Ett exempelinlägg är mycket enkelt och kräver ingen särskild uppmärksamhet:

Men här har vi ett problem. När du spelar in från 1C i en Excel-arbetsbok är visningen av arknamn inaktiverad som standard.

Detta problem kan lösas på två sätt, 1 - i själva arbetsboken, aktivera visning av ark i inställningarna (inte alla användare kommer att acceptera att göra detta), 2 - gör detta genom ett COM-objekt (vi behöver återigen MS Excel installerat ).

Efter detta lilla tillägg kommer arketiketter att synas i MS Excel-filen.

Att läsa MS Excel är inte så lätt, eftersom läsmetoden bara är tillgänglig på servern eller den tjocka klienten. För att göra detta måste vi överföra MS Excel-filen till servern.

&OnClient

Procedur CreateDocument()

Undantag

Slutförsök;

Bok = Excel.WorkBooks.Add(); //Skapa en ny MS Excel-arbetsbok

Sheet = Book.WorkSheets.Add(); //Lägg till ett ark

Sheet.Name = "Exempel från 1C"; //Ange arknamnet

Sheet.Cells(1,1).Value = "Låt oss skapa en formel";!}

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

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

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

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

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

Book.Close();

Slut på förfarandet

&På server

Funktion GetLayoutServer()

Return FormAttributesValue("Objekt").GetLayout("TemplateForUpload"); //På detta sätt får vi den externa bearbetningslayouten;

EndFunction

&OnClient

Procedurarbete()

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

Undantag

Report("Ett försök att ansluta Excel-komponenten misslyckades. Excel kanske inte är installerat på den här datorn!");

Slutförsök;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

Har du en fråga eller behöver hjälp av en konsult?

Bok = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

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

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

SheetTemplate.NumberFormat = "dd/mm/åå;@"; // Ange datumformat, detta format erhölls genom att spela in ett makro i MS Excel

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Sträck ut kolumnen så att datumet passar exakt

Book.SaveAs(Filnamn);

Book.Close();

Slut på förfarandet

&OnClient

Slut på förfarandet

&OnClient

Procedur WriteTabularDocument()

TabularDocument = New TabularDocument();

TabularDocument.Area("R1C1").Text = "Exempel på en post i MS Excel från 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()

Slut på förfarandet

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

Address=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier);

TabularDocument = UploadOnServer(Address);

TabularDocument.Show();

Slut på förfarandet

&På server

Funktion UploadOnServer(adress)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Address);

FileData.Write(TemporaryFileName);

TabularDocument = New TabularDocument();

returnera TabularDocument;

Det finns olika sätt att öppna en Excel-fil i 1C och vice versa. Nybörjare föredrar enklare operationer genom att spara dokumentet i ett annat format eller använda speciella program. Men det är värt att lägga ner lite ansträngning och lära sig hur man arbetar med mjukvaruverktyg för att visa och bearbeta data från ett program till ett annat. Dessa grundläggande programmeringsfärdigheter hjälper dig att undvika rutinuppgifter i framtiden.

Hur man öppnar Excel-dokument i 1C och vice versa

Microsoft Excel-kalkylarksredigeraren är överlägsen i funktionalitet jämfört med 1C-produkter för bokföringsprogram. Därför föredrar 1C-användare att utföra vissa operationer i en kalkylbladsredigerare och sedan returnera data till redovisningsprogrammet. Och detta är inte förvånande, för tidigare utfördes redovisningen av många företag uteslutande med hjälp av Microsoft-program. Men med den nuvarande nivån av automatisering av företags affärsprocesser är det omöjligt att överge specialiserade program. För att etablera interaktion mellan olika applikationer finns det följande enkla sätt:

    När du har att göra med filer av mjukvaruprodukter som inte är installerade på din nuvarande dator är det enklaste sättet att använda en speciell applikation för att konvertera Excel-tabeller till 1C-format och vice versa. Den finns på 1C-produktwebbplatsen.

    Om din dator har både 1C och Excel kan du manuellt öppna filen i dess "inhemska" applikation och sedan spara den i formatet av ett annat program. Vanligtvis är det här alternativet tillgängligt när du sparar en utskrivbar layout eller layout.

    Användare av 1C 7.7 kan uppgradera till version 1C 8, som har en förbättrad tabellredigerare.

Hur 1C och Excel kan interagera programmatiskt

Interaktion mellan 1C och Excel kan utföras på programnivå med hjälp av OLE Automation-teknik utvecklad av Microsoft. Det låter dig komma åt COM-objekt direkt från skripttolkare av olika program. Enkelt uttryckt låter OLE dig överföra ett arbete från ett program till ett annat, och sedan återställa verket till den ursprungliga applikationen. Detta är precis vad revisorer behöver från Microsofts kalkylbladsredigerare.

Du behöver inte vara programmerare för att använda OLE-verktyg. Även om den första bekantskapen med kodrader kommer att åtföljas av fel, kommer kontroll att hjälpa till att identifiera dem, och erfarenheten kommer att hjälpa till att undvika dem i framtiden. Nedan finns de mest populära kommandona (de kallas listor) för att arbeta med Excel-data i redovisningsprogram och vice versa.

Hur man öppnar en Excel-fil i 1C programmatiskt

Så om båda programmen är installerade på din dator, mellan vilka du vill utbyta data, kan du organisera interaktionen programmatiskt. För att göra detta måste du starta båda programmen och sedan använda OLE för att etablera åtkomst från 1C till Excel:

  • Undantag

    Report(ErrorDescription() + "Excel är inte installerat på den här datorn!");

  • Slut på försök.

Åtkomst till tabellredigeraren är installerad, nu använder du följande kommandon som du behöver få tillgång till:

    specifikt dokument:

    • Bok = Excel.WorkBooks.Open(FilePath)

    • Sheet = Book.WorkSheets(SheetNumber);

  • inklusive med ett specifikt bladnummer:

    inklusive med ett specifikt arknamn:

    • Sheet = Book.WorkSheets(SheetName);

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

För att läsa data från första sidan i en fil, använd följande listor:

    Excel = CreateObject("Excel.Application");

    Bok = Excel.WorkBooks.Open(FilePath);

    Sheet = Book.WorkSheets(1);

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

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

    För rad = 1 av TotalRows loop

    • För kolumn = 1 efter totalkolumncykel

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

      EndCycle;

    EndCycle;

Kom ihåg att sökvägen till filen måste anges i sin helhet. När du sparar ett dokumentnamn kan du inte inkludera tecken som \, /, :, *, ?, ", >,< и |.

Hur man öppnar en 1C-fil via Excel programmatiskt

För att registrera data i Excel måste du:

    eller öppna ett befintligt dokument:

    • Book = Excel.WorkBooks.Open(Path to File) - analogt med att läsa en Excel-fil från 1C;

    eller lägg till en ny:

    • Workbook = Excel.WorkBooks.Add();

    Du kan skapa ett nytt ark i ett nytt dokument:

    • Sheet = Book.Sheets.Add();

    och lägg till ett nytt värde i cellen:

    • Sheet.Cells(RowNumber, ColumnNumber).Value = Value; (metoder för att skriva värden med OLE beskrivs i detalj på Internet).

  • Book.SaveAs(FilePath);

    Undantag

    Report(ErrorDescription()+"Filen har inte sparats!");

    Slut på försök.

När du har arbetat klart med kalkylarksredigeraren avslutar du med specialkommandot (Excel.Application.Quit();). Denna metod hjälper till att spara datorresurser under fortsatt arbete.

Faror vid utbyte av data mellan 1C och Excel

1C och Excel har utvecklats av olika företag och använder olika sätt att hantera data. Därför, när du överför tabeller från ett program till ett annat, kom ihåg följande fallgropar:

    Olika separatorer i bråktal. Microsoft separerar decimaltal med kommatecken. Därför, när du överför tabeller från ett redovisningsprogram, bli inte förvånad över överflöd av datum och annan förvirring. Det är bara det att i ett redovisningsprogram kan en period användas för att skriva bråk, som Microsofts kalkylbladsredigerare kommer att tolka som en datumavgränsare, och 15.5 kommer att förvandlas till 15 maj. För att bearbeta redovisningsdata i en kalkylbladsredigerare måste avgränsaren ersättas med ett kommatecken.

    Vid överföring av data från Excel till 1C kan de Excel-konstanter som inte finns i redovisningsprogrammet visas felaktigt. För att dechiffrera dem måste du gå till hjälpen för kalkylbladsredigeraren eller in i felsökningsläge och kontrollera det numeriska uttrycket för olika konstanter.

Om du behöver utbyta stora mängder data eller inte kan bli av med fel, kontakta Setby-företagets professionella för hjälp. Vi hjälper dig att lösa dina problem på programnivå och förstå de kommandon som krävs för ditt arbete.

Denna metod är enkel. Dess väsen är att objektet Tabelldokument har metoder:

  • Skriv ner (< ИмяФайла>, < ТипФайлаТаблицы >) för att ladda upp data till en fil;
  • Läsa (< ИмяФайла>, < СпособЧтенияЗначений >) för att ladda data från en fil.

Uppmärksamhet!

Metoden Write() är tillgänglig på både klienten och servern. Metoden Read() är endast tillgänglig på serversidan. Måste komma ihåg detta
när du planerar klient-server-interaktion.

Låt oss titta på ett exempel på hur du sparar ett kalkylarksdokument till en fil. Det är nödvändigt att skapa och fylla TabularDocument-objektet på något sätt, och avlastning till filen görs med bara en rad:

TabDoc . Write(FilePath, TabularDocumentFileType. XLSX);

Här TabDoc- genererat kalkylbladsdokument, Sökvägen till filen— namnet på filen som ska laddas upp, TabularDocumentFileType.XLSX— formatet på den skapade filen. Följande Excel-format stöds:

  • XLS95 - Excel 95-format;
  • XLS97 - Excel 97-format;
  • XLSX är ett Excel 2007-format.

TabDoc = Nytt TabularDocument;
TabDoc . Read(PathToFile, Method of ReadingTabularDocumentValues.Value);

Här Sökvägen till filen— sökväg till den nedladdade Excel-filen. Metod för att läsa värden för ett tabelldokument.Value bestämmer hur data som läses från ett källdokument ska tolkas. Tillgängliga val:

  • Menande;
  • Text.

Byt via OLE

Utbyte via OLE automationsteknik är kanske det vanligaste alternativet för att programmatiskt arbeta med Excel-filer. Det låter dig använda all funktionalitet som tillhandahålls av Excel, men är långsammare jämfört med andra metoder. För att utbyta via OLE krävs MS Excel-installation:

  • På slutanvändarens dator, om utbytet sker på klientsidan;
  • På 1C:Enterprise-serverdatorn, om utbytet sker på serversidan.

Exempel avlastning:

// Skapa ett COM-objekt
Excel = New COMObject("Excel.Application");
// Inaktivera varningar och frågor
Excel . DisplayAlerts = False;
// Skapa en ny bok
bok = Excel. Arbetsböcker. Lägg till();
// Position på första arket
Ark = Bok. Arbetsblad(1);

// Skriv ett värde till en cell
Ark . Celler (RadNumber, KolumnNumber). Value = CellValue;

// Spara filen
bok . SaveAs(Filnamn);


Excel . Sluta med();
Excel = 0;

Exempel läsning:

// -- ALTERNATIV 1 --

// Skapa ett COM-objekt
Excel = New COMObject("Excel.Application");
// Öppna en bok
bok = Excel. Arbetsböcker. Öppen( Sökvägen till filen );

Ark = Bok. Arbetsblad(1);

// Stänger boken
bok . Stäng(0);

// Stäng Excel och frigör minne
Excel . Sluta med();
Excel = 0;

// —— ALTERNATIV 2 ——

// Öppna en bok
bok = GetCOMObject( Sökvägen till filen );
// Positionering på önskat ark
Ark = Bok. Arbetsblad(1);

// Läs cellvärdet, vanligtvis finns cellgenomgångsslingan här
CellValue = Ark. Celler (RadNumber, KolumnNumber). Värde;

// Stänger boken
bok . Ansökan. Qui t();

För gå förbi För alla färdiga rader i Excel-kalkylbladet kan du använda följande tekniker:

// -- ALTERNATIV 1 --
Antal rader = Ark. Celler (1, 1). SpecialCells(11). Rad;
För radnummer = 1 efter antal rader cykel
CellValue = Ark. Celler (RadNumber, KolumnNumber). Värde;
EndCycle;

// —— ALTERNATIV 2 ——
RadNumber = 0 ;
Medan sanningscykeln
RowNumber = RowNumber + 1 ;
CellValue = Ark. Celler (RadNumber, KolumnNumber). Värde;
Om INTE ValueFilled(CellValue) Sedan
Avbryta;
endIf;
EndCycle;

Istället för att sekventiellt gå igenom alla rader i kalkylbladet kan du dumpa all data i en array och jobba med honom. Detta tillvägagångssätt kommer att vara snabbare när du läser en stor mängd data:

TotalColumns = Ark. Celler (1, 1). SpecialCells(11). Kolumn;
Totalt rader = Löv. Celler (1, 1). SpecialCells(11). Rad;

Område = Löv. Range(Sheet. Cells(1, 1), Sheet. Cells(TotalRows,TotalColumns));
Data = Region. Värde. Lasta av();

Tabellen nedan visar de mest populära egenskaperna och metoderna för att arbeta med Excel via OLE:

Handling Koda En kommentar
Arbetar med applikationen
Ställa in programfönstrets synlighet Excel . Synlig= Falskt;
Ställa in varningsläge (display/ej display) Excel . DisplayAlerts= Falskt;
Stänger ansökan Excel . Sluta med();
Jobbar med en bok
Skapar en ny bok bok = Excel. Arbetsböcker. Lägg till();
Öppna en befintlig arbetsbok bok = Excel. Arbetsböcker. Öppna (Filnamn);
Sparar en bok bok . SaveAs(Filnamn);
Stänger boken bok . Stäng(0);
Arbeta med ett ark
Ställa in det aktuella arket Ark = Bok. Arbetsblad(SheetNumber);
Ställer in namnet Ark . Namn = Namn;
Sätta upp skydd Ark . Skydda();
Ta bort skydd Ark . Avskydda();
Ställa in sidriktningen Ark . Utskriftsformat. Orientering = 2; 1 - stående, 2 - liggande
Ställer in den vänstra kanten Ark . Utskriftsformat. Vänstermarginal = Excel. CentimetersToPoints(Centimeter);
Ställa in den övre gränsen Ark . Utskriftsformat. TopMargin = Excel. CentimetersToPoints(Centimeter);
Ställer in rätt kant Ark . Utskriftsformat. RightMargin = Excel. CentimetersToPoints(Centimeter);
Inställning av den nedre gränsen Ark . Utskriftsformat. BottomMargin = Excel. CentimetersToPoints(Centimeter);
Arbeta med rader, kolumner, celler
Ställa in kolumnbredd Ark . Kolumner(KolumnNumber). ColumnWidth = Width;
Ta bort en rad Ark . Rader(RadNumber). Radera();
Ta bort en kolumn Ark . Kolumner(KolumnNumber). Radera();
Ta bort en cell Ark . Celler (RadNumber, KolumnNumber). Radera();
Ställa in värdet Ark . Celler (RadNumber, KolumnNumber). Värde = Värde;
Slår ihop celler Ark . Range(Sheet. Cells(RowNumber, ColumnNumber), Sheet. Cells(RowNumber1, ColumnNumber1)). Sammanfoga();
Ställa in typsnittet Ark . Celler (RadNumber, KolumnNumber). Font. Namn = FontName;
Ställa in teckenstorlek Ark . Celler (RadNumber, KolumnNumber). Font. Storlek = Teckenstorlek;
Ställa in fetstil Ark . Celler (RadNumber, KolumnNumber). Font. Djärv = 1 ; 1 - fetstil, 0 - normal
Inställning av kursiv stil Ark . Celler (RadNumber, KolumnNumber). Font. Kursiv = 1 ; 1 - kursiv, 0 - normal
Ställa in det understrukna teckensnittet Ark . Celler (RadNumber, KolumnNumber). Font. Understrykning = 2 ; 2 - understruken, 1 - inte

För att ta reda på vilken fastighet som behöver ändras eller vilken metod som ska anropas kan du använda dig av makron Excel. Om du spelar in ett makro med de nödvändiga åtgärderna kan du titta på VBA-koden för det inspelade makrot.

Använder COMSafeArray

När du laddar ner stora mängder data från 1C till Excel kan du använda objektet för att snabba upp COMSafeArray. Enligt definitionen från syntaxassistenten är COMSafeArray en objektomslutning över en flerdimensionell array SafeArray från COM. Låter dig skapa och använda SafeArray för att utbyta data mellan COM-objekt. Enkelt uttryckt är det en rad värden som kan användas för att utbyta mellan applikationer som använder OLE-teknik.

// Skapa COMSafeArray
ArrayCom = New COMSafeArray("VT_Variant" , TotalColumns, TotalRows);
// Fyller COMSafeArray
För Sida = 0 av TotalLines - 1 cykel
För Antal = 0 totalt kolumner - 1 cykel
ArrayCom . SetValue(Antal, Sida, Värde);
EndCycle;
EndCycle;
// Tilldela ett Excel-kalkylbladsområde till värden från COMSafeArray
Ark . Range(Sheet. Cells(1, 1), Sheet. Cells(TotalRows,TotalColumns)). Värde = ArrayCom;

Byt via ADO

En Excel-fil, när den utbyts via ADO, är en databas som kan nås med hjälp av SQL-frågor. Installation av MS Excel krävs inte, men du måste ha en ODBC-drivrutin som du får tillgång till. Vilken ODBC-drivrutin som används bestäms genom att ange anslutningssträngen till filen. Vanligtvis är den nödvändiga drivrutinen redan installerad på datorn.

Utbyte via ADO går märkbart snabbare än utbyte via OLE, men vid uppladdning går det inte att använda Excel-funktionalitet för att designa celler, lägga ut sidor, sätta formler osv.

Exempel avlastning:


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


Förening . ConnectionString = "

|Datakälla=" + Filnamn + ";
;
Förening . Öppen(); // Öppna en anslutning

// Skapa ett COM-objekt för kommandot
Kommando = Nytt COMObject("ADODB.Command");
Team

// Tilldela kommandotext för att skapa en tabell
Team . CommandText = "SKAPA TABELL [Sheet1] (kolumn1 char(255), kolumn2 datum, kolumn3 int, kolumn4 flytande)";
Team . Kör(); // Kör kommandot

// Tilldela kommandotext för att lägga till en tabellrad
Team . CommandText = "INSERT INTO [Sheet1] (Column1, Column2, Column3, Column4) värden ('abvwhere', '8/11/2017', '12345', '12345,6789')";
Command.Execute(); // Kör kommandot

// Ta bort kommandot och stäng anslutningen
Kommando = Odefinierat;
Förening . Stänga();
Anslutning = Odefinierad;

För att skapa ett nytt ark och forma dess struktur kan du använda objekt ADOX.Catalog Och ADOX.Table. I det här fallet kommer koden att se ut så här:

// Skapa ett COM-objekt för att arbeta med boken
bok = New COMObject("ADOX.Catalog");
bok . ActiveConnection = Anslutning;

// Skapa ett COM-objekt för att arbeta med datastrukturen på arket
Tabell = New COMObject("ADOX.Table");
Tabell . Namn = "Sheet1" ;
Tabell . Kolumner. Append("Kolumn1", 202);
Tabell . Kolumner. Append("Kolumn2", 7);
Tabell . Kolumner. Append("Kolumn3", 5);
Tabell . Kolumner. Append("Kolumn4" , 5 );

// Skapa ett ark i arbetsboken med den beskrivna strukturen
bok . Tabeller. Append(Tabell);
Tabell = Odefinierad;
Bok = Odefinierat;

I exemplet ovan, i metoden

Tabell . Kolumner. Bifoga("Kolumn1", 202);

den andra parametern anger kolumntypen. Parametern är valfri, här är några kolumntypvärden:

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

Exempel läsning:

// Skapa ett COM-objekt för anslutningen
Connection = New COMObject("ADODB.Connection");

// Ställ in anslutningssträngen
Förening . ConnectionString = "
|Provider=Microsoft.ACE.OLEDB.12.0;
|Datakälla=" + Filnamn + ";
|Utökade egenskaper=""Excel 12.0 XML;HDR=JA"";";
Förening . Öppen(); // Öppna en anslutning

// Skapa ett COM-objekt för att ta emot urvalet
Välj = New COMObject("ADODB.Recordset");
RequestText = "VÄLJ * FRÅN [Sheet1$]";

// Utför begäran
Prov . Open(QueryText, Connection);

// Förbigå provresultatet
Inte ett urval ännu. EOF() Slinga
Kolumn1 värde = Urval. Fält. Objekt("Kolumn1"). Värde ; // Åtkomst genom kolumnnamn
Kolumn2Värde = Urval. Fält. Artikel(0). Värde; // Åtkomst via kolumnindex
Prov . MoveNext();
EndCycle;

Prov . Stänga();
Sample = Odefinierat;
Förening . Stänga();
Anslutning = Odefinierad;

I anslutningssträngen parametern HDR bestämmer hur den första raden på arket kommer att uppfattas. Möjliga alternativ:

  • JA - den första raden behandlas som kolumnnamn. Värden kan nås med namn och kolumnindex.
  • NEJ - den första raden behandlas som data. Värden kan endast nås via kolumnindex.

Dessa exempel täcker endast ett fåtal ADO-objekt. ADO-objektmodellen består av följande objekt:

  • förbindelse;
  • Kommando;
  • rekorduppsättning;
  • Spela in;
  • Fält;
  • Ström;
  • Fel;
  • parametrar;
  • Egenskaper.

Ladda upp utan programmering

För att spara data från 1C till Excel är det inte alltid lämpligt att tillgripa programmering. Om användaren i Enterprise-läge kan visa de data som krävs för nedladdning, kan de sparas i Excel utan programmering.

För att spara ett kalkylarksdokument (till exempel resultatet av en rapport) kan du anropa kommandot Spara eller Spara som… huvudmeny.

I fönstret som öppnas måste du välja katalog, namn och format för den sparade filen.

För att spara data från dynamiska listor (till exempel en lista med objekt) måste du:

  1. Mata ut data i ett kalkylark med kommandot Mer ⇒ Lista...;
  2. Spara kalkylarksdokumentet i önskat format.

Ganska ofta, när jag kommunicerar med potentiella kunder, hör jag att tabellfunktionaliteten från kontorspaketet är tillräckligt för dem, och de ser inte poängen med 1C-program. Detta beror på att vissa människor fortfarande associerar denna lösning endast med program för revisorer, vilket inte är sant.

Excel är en universell och massproducerad produkt, det kan du inte argumentera mot. Nästan alla kan använda detta program, till skillnad från 1C-utvecklingar, som riktar sig till smala specialister. Med hjälp av "gröna" tabeller kan du fritt implementera den nödvändiga funktionaliteten, vilket kommer att vara bekvämt: här är den ekonomiska modellen för organisationen med alla ömsesidiga uppgörelser, förvaltningsredovisning, även reglerade, ett stort urval av datavisualisering, förmågan att självständigt utöka programmets möjligheter med olika tillägg - allt är i dina händer, allt från början...

Det är bra om du precis har startat ditt företag, gradvis tar hänsyn till de nödvändiga uppgifterna i tabellen om relationer med kunder, leverantörer, tillsynsmyndigheter, bygger din egen godtyckliga struktur, men vad du ska göra härnäst när databasen blir omfattande, och personalen siffror i dussintal? Räkna fortfarande enligt dina egna parametrar? Jag är för att inte blanda ihop bekvämlighet med vana, som ofta stör systematiseringen av verksamheten och följaktligen dess optimering.

För tydlighetens skull, låt oss föreställa oss vilka behov som kan uppstå för redovisningsautomatisering, till exempel för handel:

1. Analys av försäljning inom en viss period.

Chefen för försäljningsavdelningen kan analysera försäljningsdata. Det är viktigt för honom att förstå om planen genomförs, hur effektiva hans strategier är, så att han i händelse av ineffektivitet kan göra snabba justeringar av arbetet.

2. Lagerbokföring.
Behöver jag förklara att det för försäljning också är viktigt att förstå tillgången på varor i lager, vilka varor som kan reserveras och vilka som är slut och vad som behöver beställas? Jag tror att allt är klart här.

3. Upprätthålla en databas över motparter.
Även om ägaren bara säljer det som kan köpas här och nu, vilket är typiskt för B2C-sektorn, så har han ett lite annorlunda förhållande till leverantörsbasen - kontrakt, primär... Föreställ dig hur bekvämt det är när allt kopplat till leverantör är automatiskt Visas den omedelbart i en enda databas? Den ansvariga för lagret ser omedelbart tillgången på varor i lagret, en annan anställd som är ansvarig för dokument övervakar information om deras tillgänglighet, om alla skyldigheter enligt avtalsförhållanden uppfylls, vem är skyldig vem och hur mycket. Och i händelse av avvikelser kan du stämma av data för en viss period, vilket genererar ett resultat på mindre än en minut.

4. Organisationens vinst.
Att generera en vinstrapport kommer inte att vara svårt, eftersom all information om utgifter och inkomster redan finns i databasen. Förutsatt att informationen läggs in i tid, åtminstone senast det datum som krävs. Den grundläggande faktorn här är användarens personliga ansvar.

Om du inte har många kunder och leverantörer kommer Excel verkligen att passa dig, eftersom det finns gott om tid att designa dina egna diagram i tabellen och fylla i dem, följt av att distribuera dokument i olika mappar på datorn: kontrakt, leverantörer, klienter, klienter i grannskapet, klienter under utveckling, klienter som ska raderas – en oändlig och fascinerande process att skapa mappar i en mapp. Och om det finns mycket information, är det praktiskt att hålla reda på din databas? Naturligtvis finns det alltid undantag, ibland finns det organisationer med stor omsättning vars ekonomiska data endast upprätthålls i Excel. Hur lång tid tar det för dem att utbyta och kombinera data mellan avdelningar? Jag kommer att svara: mycket.

Jag kan inte föreställa mig hur man snabbt hittar den du behöver i ett stort antal Excel-dokument organiserade i ett godtyckligt system. Till exempel vid tillhandahållande av handlingar för krav från skatteverket. Hur kommer en revisor att lämna rapporter till tillsynsmyndigheter när all information är spridd? Bokföring kan naturligtvis läggas ut på entreprenad och vissa företagare kanske tyvärr inte bryr sig om vilka processer en given specialist kan ha så länge han balanserar saldona. Men även om så är fallet, hur organiseras då processen för dokumentutbyte? Hur snabbt kommer en extern anställd att förstå den improviserade informationsstrukturen?

Jag kan inte säga detsamma om 1C, eftersom all information där är strukturerad och sammankopplad:

    En enda databas för både distans- och heltidsanställda, där du kan arbeta med alla standardiserade och anpassade dokument;
    Rapportering till tillsynsmyndigheter genereras på basis av data som redan återspeglas i programmet, det finns inget behov av att öppna många filer, kombinera flera värden i en tabell för att få slutliga resultat.
”1C”, på ett bra sätt, är ett multitasking-system som syftar både till typiska redovisningsuppgifter och till att automatisera alla organisatoriska processer, beroende på verksamhetsområde. Huvudordet här är system. Ingen hindrar dig från att organisera ditt affärssystem i Excel, men varför återuppfinna hjulet när det finns lösningar som täcker nästan alla behov av att optimera tid och ekonomiska kostnader, och hjälper till att systematisera ditt arbete?

Till försvar för Excel

Det verkade förmodligen för dig att jag är emot att konstruera data i "gröna" tabeller. Inte alls. Faktum är att jag själv ofta gör en del affärer i Excel: om jag behöver godtyckliga beräkningar, om jag behöver segmentera data efter klient, utföra analyser baserade på parametrar som inte finns i 1C - ja, detta händer - går jag till " Excel." Enkelt uttryckt, i tabeller gör jag beräkningar och icke-standardiserade analyser, men sedan systematiserar jag allt i 1C i alla fall.

Och sedan, för att se nedladdade filer från 1C behöver du fortfarande Excel, eftersom data i 1C lagras i kalkylblad. Känner du att det här är en ond cirkel? Jag säger det annorlunda: "1C" och "Excel" går sida vid sida som två partners, men var och en av dem har sitt eget syfte, de kompletterar varandra väl, men ersätter inte varandra.

Om du behöver systematisera dina angelägenheter med hänsyn till lagstiftningssystemet i vår stat, med hänsyn till verksamhetens särdrag och fokus, särskilt när det gäller stora mängder information, behöver du 1C. Om du behöver godtyckliga beräkningar, bygga en strategi från grunden, visualisera icke-standardiserade analysdata, då är Excel till din tjänst. Men det är mycket bekvämare att arbeta med dessa lösningar samtidigt.


Vad blir slutresultatet - "1C" eller "Excel"?

I början, om frågan handlar om ekonomi för automatisering, även om grundläggande 1C-program inte kostar så mycket pengar, skulle jag använda Excel. Ett stort plus är att data från "gröna" tabeller kan laddas in i 1C utan förlust. Men när du skalar skulle jag råda dig att vara uppmärksam på program för att automatisera affärsprocesser. Det finns många av dem, och det kanske inte nödvändigtvis är 1C...

Övergången till "1C" kan utföras när du förstår att du behöver optimera dina resurser, inklusive automatisering av frågor relaterade till relationer med kunder och leverantörer och med tillsynsmyndigheter. I allmänhet, justera dina arbetsprocesser för att öka verksamhetens effektivitet när bearbetning av information kommer att ta mycket tid och Excel-filer inte längre kommer att klara av mängden indata.

Men inte alla "1C" är lämpliga för dig, du behöver ta hänsyn till olika faktorer: verksamhetens särdrag och omfattning, omfattningen, behovet av dagliga uppgifter, rutinen som måste minimeras. Allt är individuellt. Sanningen, som jag redan sa, är någonstans mellan "1C" och "Excel" - den kompletterar varandra.

Det är nog allt. Men om du har några frågor, vänligen kontakta oss, vi ska försöka hjälpa dig. Framgångsrika affärsprocesser, kollegor!

1C-applikationen har länge varit det mest populära programmet bland revisorer, planerare, ekonomer och chefer. Den har inte bara ett varierat antal konfigurationer för olika typer av aktiviteter, utan även lokalisering till redovisningsstandarder i flera länder runt om i världen. Fler och fler företag går över till redovisning i detta program. Men proceduren för att manuellt överföra data från andra redovisningsprogram till 1C är en ganska lång och tråkig uppgift som tar mycket tid. Om företaget förde register med hjälp av Excel, kan överföringsprocessen automatiseras och påskyndas avsevärt.

Att överföra data från Excel till 1C krävs inte bara under den inledande perioden av att arbeta med detta program. Ibland finns det behov av något sådant när man under aktiviteten behöver lägga in några listor som finns lagrade i kalkylboken. Till exempel om du behöver föra över prislistor eller beställningar från en webbutik. Om listorna är små kan du ange dem manuellt, men vad händer om de innehåller hundratals föremål? För att påskynda proceduren kan du tillgripa några ytterligare alternativ.

Nästan alla typer av dokument är lämpliga för automatisk nedladdning:

  • Förteckning över nomenklatur;
  • Lista över motparter;
  • Lista över priser;
  • Lista över beställningar;
  • Information om köp eller försäljning m.m.

Det bör genast noteras att 1C inte har inbyggda verktyg som gör att du kan överföra data från Excel. För dessa ändamål måste du ansluta en extern bootloader, som är en fil i formatet epf.

Dataförberedelse

Vi kommer att behöva förbereda data i själva Excel-tabellen.


Förutom dessa universella åtgärder för att förbereda data i en Excel-bok, måste du också föra dokumentet i överensstämmelse med kraven för den specifika laddaren som vi kommer att använda, men vi kommer att prata om detta lite senare.

Ansluta en extern bootloader

Anslut en extern bootloader med tillägg epf applikation 1C kan göras både före och efter förberedelse av Excel-filen. Huvudsaken är att båda dessa förberedande frågor har lösts innan laddningsprocessen påbörjas.

Det finns flera externa Excel-tabellladdare för 1C, som skapats av olika utvecklare. Vi kommer att överväga ett exempel med hjälp av ett verktyg för att bearbeta information "Ladda in data från ett kalkylarksdokument" för version 1C 8.3.


En av de viktigaste databaserna som 1C arbetar med är en lista över produkter och tjänster. Därför, för att beskriva laddningsproceduren från Excel, kommer vi att fokusera på exemplet med överföring av denna speciella typ av data.

  1. Vi återgår till bearbetningsfönstret. Eftersom vi kommer att ladda produktsortimentet bör omkopplaren i parametern vara i läge "Katalog". Det är dock installerat på detta sätt som standard. Du bör endast byta den när du ska överföra en annan typ av data: en tabelldel eller ett informationsregister. Nästa i fältet "Katalogvy" Klicka på knappen med ellipsen på den. En rullgardinslista öppnas. I den bör vi välja objektet "Nomenklatur".
  2. Efter detta placerar hanteraren automatiskt de fält som programmet använder i denna typ av referensbok. Det bör genast noteras att det inte alls är nödvändigt att fylla i alla fält.
  3. Öppna nu det bärbara Excel-dokumentet igen. Om namnet på dess kolumner skiljer sig från namnen på 1C-katalogfälten som innehåller motsvarande, måste du byta namn på dessa kolumner i Excel så att namnen matchar helt. Om tabellen innehåller kolumner för vilka det inte finns några analoger i katalogen, bör de tas bort. I vårt fall är dessa kolumner "Kvantitet" Och "Pris". Det bör också tilläggas att ordningen på kolumnerna i dokumentet strikt måste överensstämma med den som presenteras i behandlingen. Om du inte har data för några av kolumnerna som visas i laddaren kan dessa kolumner lämnas tomma, men numreringen av de kolumner där det finns data måste matcha. För bekvämlighet och snabb redigering kan du använda en speciell Excel-funktion för att snabbt flytta kolumner på platser.

    När dessa steg har slutförts klickar du på ikonen "Spara", som representeras av en ikon som visar en diskett i det övre vänstra hörnet av fönstret. Stäng sedan filen genom att klicka på standardknappen för stängning.

  4. Vi återgår till 1C-bearbetningsfönstret. Klicka på knappen "Öppen", som visas som en gul mapp.
  5. Fönstret för filöppning öppnas. Låt oss gå till katalogen där Excel-dokumentet vi behöver finns. Standardinställningen för filvisning är inställd på förlängning mxl. För att visa filen vi behöver måste vi flytta den till positionen "Exelblad". Välj sedan dokumentet som ska överföras och klicka på knappen "Öppen".
  6. Innehållet öppnas sedan i hanteraren. För att kontrollera att uppgifterna är korrekt ifyllda, klicka på knappen "Fyllningskontroll".
  7. Som vi kan se berättar fyllningskontrollverktyget oss att inga fel hittades.
  8. Låt oss nu gå till fliken "Inställningar". I "Sökfält" Vi sätter en bock i raden som kommer att vara unik för alla namn som anges i nomenklaturkatalogen. De fält som oftast används för detta är "Leverantörskoder" eller "Namn". Detta måste göras så att data inte dupliceras när du lägger till nya objekt i listan.
  9. Efter att alla uppgifter har matats in och inställningarna har gjorts kan du fortsätta att ladda informationen direkt i katalogen. För att göra detta, klicka på inskriptionen "Ladda data".
  10. Nedladdningsprocessen pågår. Efter att den är klar kan du gå till artikelreferensboken och se till att all nödvändig information har lagts till där.

Vi följde proceduren för att lägga till data till nomenklaturkatalogen i 1C 8.3-programmet. För andra kataloger och dokument kommer nedladdningen att utföras enligt samma princip, men med några nyanser som användaren kan ta reda på på egen hand. Det bör också noteras att proceduren kan skilja sig åt för olika laddare från tredje part, men det allmänna tillvägagångssättet förblir detsamma för alla: först laddar processorn information från filen till fönstret där den redigeras, och först sedan läggs den till. direkt till 1C-databasen.