Windows.  Virus.  Bärbara datorer.  Internet.  Kontor.  Verktyg.  Förare

Att ladda en lista med produkter i produktkatalogen är en vanlig uppgift som kan dyka upp både i början av arbetet med 1C och senare. Det kan lösas på olika sätt. Jag föreslår en enkel metod att implementera - genom att ladda från ett kalkylarksdokument. Längs vägen kommer vi att titta på hur man skapar en katalogstruktur som är lätt att arbeta med, och sätter upp en hierarki med urval baserat på önskade produktegenskaper i 1c Trade Management 11.4 #UT11

Se videon - jag visar allt tydligt i 1C Enterprise!

Låt oss först titta på strukturen för Excel-filen. Var och en av dess kolumner motsvarar detaljerna i artikelreferensboken och den upprepar exakt den skapade mallen på den andra bearbetningsfliken. Det vill säga, totalt är detta de uppgifter som vi kommer att fylla i för varje enhet av varor. Värdet av artikeln i mitt exempel är nyckeln och måste fyllas i. Det har också unikt inga dubbletter. Namnet och namnet för utskrift duplicerar varandra, men kan vara olika om motsvarande kolumn är ifylld. Därefter kommer kolumnerna för tillverkaren och produktens utmärkande egenskaper. Jag skapar produktegenskaper i 1C med hjälp av ytterligare detaljer.

Nödvändiga inställningar. Du måste markera två rutor. Först, på fliken "Stamdata och administration", leta efter "Konfigurera basdata och sektioner", klicka på "Nomenklatur", "Redovisningssektioner" - aktivera "Många typer av nomenklatur".

För det andra, gå till fliken "NSI och administration", leta efter "Allmänna inställningar" och aktivera möjligheten att använda ytterligare detaljer och information.

Jag skapade strukturen för hela nomenklaturen i katalogen Typer of Nomenclature. Grupperingen av varor i nomenklaturkatalogen kommer att bero på denna katalog. Det är bekvämare än det brukade vara med grupper. Varje produkt har sina egna distinkta parametrar. Till exempel har datorfodral olika formfaktorer, och hårddiskar har också en "formfaktor"-parameter. Hur lägger man till detta i programmet? Låt oss öppna vilken typ av objekt som helst på fliken ytterligare detaljer. Detta bokmärke blir tillgängligt efter att motsvarande inställning har aktiverats. Här anger vi, för varje typ, de uppgifter som används för denna produkt. Till exempel, en hårddisk har en "gränssnitt" -parameter och har också en Form Factor-parameter, bara fall har sina egna och värdena i den är olika, inte samma som för diskar. Med hjälp av dessa ytterligare detaljer kan du ställa in ett filter som mycket snabbt kommer att välja önskade artiklar i listan över produkter. Filtret konfigureras genom att lägga till ytterligare detaljer.

Allt ska vara klart med inställningarna. Om inte, skriv, vi ska försöka reda ut det.

Öppna bearbetning och fortsätt till laddning. Den första fliken innehåller nedladdningsinställningar. På den andra skapas en mall för den valda typen av objekt på den sista, laddningsresultatet visas. Vi gör inställningarna, infogar den förberedda tabellen med produkter från Excel, klicka - ladda ner.

Hur man laddar produkter från EXCEL till 1C, hur man ställer in nomenklaturkatalogen.

  • Vid informationsutbyte mellan motparter (prislistor, avstämningsrapporter etc.);
  • För att underlätta operatörernas arbete i de fall där huvudredovisningen utförs i 1C, och en del av den utförs i Excel-tabeller;
  • När du fyller databasen för första gången.

För att utföra denna operation kan du använda både standardfunktionalitet, tillgänglig med ett abonnemang på informationstekniksupport (ITS), och oberoende skriftlig bearbetning, implementerad genom olika anslutningsalternativ. I vår artikel kommer vi att försöka analysera alla möjliga fall så fullständigt som möjligt och svara på de flesta av de befintliga frågorna om att ladda data från Excel till 1C.

Universell mekanism

På ITS-diskarna, såväl som på 1C-portalen, genom att gå till menyn "Teknologisk support" -> "Universella rapporter och bearbetning" finns motsvarande bearbetning i mappen "Ladda in data från ett kalkylarksdokument".

När du startar den öppnas formuläret (bild 1):

Som du kan se från formuläret låter det dig överföra information till följande konfigurationsobjekt:

  1. Katalog;
  2. Tabelldel av ett dokument eller uppslagsbok;
  3. Register över information.

Beroende på i vilken position omkopplaren är inställd ändras objektvalsfältet.

Behandlingstabellformuläret fylls i när den nedladdade filen öppnas.

Typisk bearbetning stöder nedladdningar från:

  • Utvecklad av specialister från 1C, filformatmxl;
  • Lisztxls sparade i formatetExcel 97-2003;
  • Textfiltxt;
  • Tabellerdbf.

Excel-filer av stor storlek kan ta ganska lång tid att ladda, så om det antas att dataladdning kan ske i flera steg eller du vet säkert att du kommer att behöva öppna en befintlig fil flera gånger, för att spara nerver och tid, det är bättre att spara informationen från den i mxl-format. Detta kan göras direkt från bearbetningsformuläret.

Det är viktigt att förstå att om det finns radgrupperingar, underrubriker och anteckningar i källfilen måste de tas bort manuellt.

Låt oss nu gå vidare till fliken "Inställningar" (Fig. 2):

Fig.2

Ganska ofta innehåller Excel-tabeller en rubrik med alla möjliga detaljer och data (namn på det utskrivna formuläret, uppgifter om motparten, datum och nummer på det inkommande dokumentet, kolumnnamn och så vidare för att förhindra att de behandlas av). programmet på formuläret, måste du ange i "Första raden i kalkylarksdokumentet" attribut den första raden med den överförda informationen

Efter att ha valt ett metadataobjekt som information ska skrivas in i, kommer den tabellformade delen av fliken "Inställningar" automatiskt att fyllas i med namn på detaljer, beskrivningar av deras typer och annan viktig information. Ett separat avsnitt bör ägnas åt övervägandet av kolumnerna i den tabellformade delen av fliken "Inställningar".

Kolumner "Inställningar"

Markering – genom att markera eller avmarkera en kryssruta på en rad avgörs om motsvarande attribut ska fyllas i.

Attributrepresentation – här skrivs synonymen (namnet) för metadataattributet, som det anges i konfiguratorn.

Sökfält - om du markerar det här fältet kommer bearbetningen att söka efter element med hjälp av motsvarande detaljer och, om det lyckas, ändra befintliga data en ytterligare funktion i detta fält är skydd mot dubbletter.

Beskrivning av typer – visar datatypen som ett visst metadataattribut har.

Startläge – erbjuder tre alternativ att välja mellan (bild 3):

Fig.3

  • Sök – en sökning kommer att utföras efter motsvarande element om det saknas, kan ett nytt skapas;
  • Set – ett visst värde är underordnat satt;
  • Beräkna – i det här fallet kommer resultatet av beräkningen av uttrycket som anges i kolumnen "Anslutningsvillkor/Uttryck för värde" att ställas in i fältet för det skapade elementet.

I det senare fallet öppnas formuläret genom att aktivera fältet Uttryck (Fig. 4).

Fig.4

Kolumnnummer är ett fält som används för att indikera vilken kolumn i Excel-tabellen som ska fyllas med data.

Standardvärde – ganska ofta uppstår en situation när den nedladdade filen inte innehåller all data som behövs för att spela in ett element, i detta fall kommer informationen i detta fält att fyllas i.

Länkvillkor/Uttryck för ett värde – vi har redan delvis berört detta fält när vi tittade på beräknade fält. Dessutom kan du ange vilket villkor som källdata ska synkroniseras med.

Detta är i princip all information som finns tillgänglig på fliken "Inställningar".

För att inte slösa bort mycket tid varje gång man laddar, skriver korrespondens och uttryck har utvecklarna gett möjligheten att spara konfigurationsalternativet till en fil med tillägget mxlz.

Du kan kontrollera att de överförda data är korrekta genom att klicka på knappen "Fyllningskontroll" (Fig. 1). Efter detta kan du starta nedladdningsprocessen. Du kommer att meddelas separat om framgångsrikt slutförande av proceduren eller ovanliga situationer.

Det finns en annan mekanism för att ladda data från Excel till förvaltnings- och handelsinformationsdatabaserna. Det är mindre universellt än ovanstående metod, men kräver inget ITS-abonnemang och ingår i standardleveransen.

Denna bearbetning finns på fliken "Inköp", i menyn "Tjänst", heter den "Ladda leverantörspriser från filer" (Fig. 5)

Fig.5

Behandlingsformuläret innehåller:

  1. Ett datumvalsfält som anger för vilken tid detta pris är relevant;
  2. Fält för val av motpart som skickat sin prislista;
  3. En knapp som låter dig välja vilken typ av priser som ska ställas in;
  4. En tabelldel som kan fyllas med nedladdade data.

Denna form kan ses i fig. 6

Fig. 6

Förklaringen överst i formuläret förklarar hur du använder den första fliken i formuläret.

Efter att ha valt en motpart (beroende på om han är leverantör, kommissionär eller säljare) kommer ytterligare kolumner för varje pristyp att bli tillgängliga i tabellen.

När du arbetar via webbgränssnittet kan vissa webbläsare kräva installation av ett webbläsartillägg (Fig. 7). Vi måste klicka på knappen "Starta installation" och starta om vår anslutning.

Fig. 7

Efter detta, med hjälp av klippbordet, kommer vi att kunna överföra information från en tabell till en annan. När kolumnerna vi behöver ("Artikel", "Namn", "Pris") är ifyllda klickar vi på knappen "Nästa" och går till den andra sidan (fig. 8).

Fig. 8

Programmet kommer automatiskt att söka efter matchningar i databasen och, om ingen hittas, erbjuda alternativ för att eliminera felet. Utseendet på den tabellformade delen kan styras med en omkopplare. Dessutom kan användaren självständigt jämföra elementen i den nedladdade filen med den information som finns tillgänglig i databasen.

  • Registrera allt;
  • Registrera endast de som har ändrats jämfört med de som redan finns i databasen.

I textfältet kan du ange en kommentar som kommer att registreras i dokumentet (bild 9):

Fig. 9

När bearbetningen är klar:

  • Motsvarande element kommer att skapas i katalogen "Supplier Nomenclature" (om det inte fanns);
  • Katalogelementet "Nomenklatur" kommer att associeras med det;
  • Dokumentet "Ställa artikelpriser" kommer att skapas och läggas upp och anger: leverantör, pristyp och datum för dataregistrering.

Bearbetningen "Ladda produkter från externa filer" fungerar på liknande sätt.

Bearbetningsalternativ för DIY-överföring

Det största problemet med att extrahera data från en Excel-fil är att 1C inte har en inbyggd entydig mekanism för att öppna den. Det finns flera alternativ för att ansluta Excel till 1C:

  • Genom Microsoft ADODB - en ganska snabb metod, som som regel är tillämplig för både fil- och klient-server-databaslagringsalternativ;
  • Genom att använda Microsoft Office - en metod som ibland misslyckas när man arbetar med SQL-databaser, fungerar den som regel något långsammare än den första metoden, och den kräver också att Office är installerat;
  • Via Libre Office - till skillnad från den tidigare metoden är den gratis, förutom xls- och xlsx-format stöder den även sina egna tabeller, men kräver det installerade LibreOffice-paketet och viss förberedelse av den nedladdade filen (den första raden i tabellen måste innehålla namnen på kolumnerna).

Låt oss ta en närmare titt på de olika metoderna och alternativen.

Via ADODB.Connection

I allmänhet står ADO för ActiveX Data Object och används för programmatisk åtkomst till olika databaser. Det största problemet när du skapar en anslutning till en tredjepartsfil (inklusive Excel) är att korrekt komponera anslutningssträngen.

För Excel-filer finns det tre alternativ:

Alternativ för anslutningssträng:

  • Provider – drivrutinen som används definieras här;
  • Datakälla – definierar namnet på filen som vi kommer att öppna;
  • Utökade egenskaper – här kan du ange om en rubrikrad behövs för tabellen (HDR = JA anger att data kommer att läsas från den första raden, HDR = NEJ - vad från den andra), om filen öppnas skrivskyddad (ReadOnly) och några andra ytterligare parametrar.

Efter att ha skapat en anslutningssträng kan vi ansluta till den nedladdade filen (Fig. 13)

Fig. 13

Nu kan vi använda en enkel begäran (Fig. 14) för att börja hämta information från den nedladdade filen.

I det här fallet bestämmer parametern "Sheet" vilket ark från Excel-arbetsboken vi kommer att arbeta med.

Uppsättningen poster som lagras i ett kalkylblad kan läsas med ett Recordset-objekt. I det här fallet kan den första posten på arket erhållas med parametern BOF (början av filen) och den sista EOF (slutet på filen).

Via Excel-applikation

Den största skillnaden från den tidigare metoden är att förutom databasdrivrutiner måste Excel installeras på datorn där anslutningen görs. Endast i det här fallet kan vi initiera applikationen för att läsa data från tabellen (Figur 16).

Detta COM-objekt har flera underordnade parametrar, men den viktigaste för oss, med tanke på de aktuella förhållandena för uppgiften, är WorkBooks-parametern (Fig. 17).

Efter initialisering av arbetsboken är det nödvändigt att bestämma arket från vilket data kommer att läsas (fig. 18).

Efter detta kan du gå igenom raderna och kolumnerna i tabellen för filen som öppnas.

Några ord om möjliga fel

Lejonparten av fel vid anslutning till en fil uppstår på grund av att filen redan är upptagen av en annan applikation. Det är bra om du kan se i aktivitetsfältet att Excel körs på datorn, men om du eller en annan användare öppnade det från extern bearbetning, kan detta endast visuellt bestämmas genom "Task Manager", så glöm inte att stänga anslutningen innan du slutför överföringsproceduren:

Vid arbete genom ADO (Fig. 19);

Fig. 19

  • Vid arbete med applikationen (bild 20).

Ris. 20.

Det är bäst att organisera anslutningen och proceduren för att slutföra arbete med data inom konstruktionen Attempt-Exception-EndAttempt, anropa en felbeskrivning i en exceptionell situation. Även om detta ibland saktar ner arbetet, gör det det mycket lättare att fastställa orsaken till felet och i slutändan hur man eliminerar det.

Videomaterial om ämnet:


Många som arbetar i 1C-programmet ställs inför behovet av att ladda data från ett Excel-kalkylblad till 1C. När användaren kan behöva en sådan nedladdning:
- en rapport genereras och sparas i Excel, bearbetade. De behandlade uppgifterna ska laddas in i 1C i form av ett dokument (förflyttning, retur till leverantören)
- det finns en lista över objekt som måste laddas in i katalogen. Listan över objekt finns i Excel
- alla andra uppgifter som behöver laddas in i tabelldelen av dokumentet, referensboken, informationsregistret
Nedan finns instruktioner för att ladda data från Excel till tabelldelen av dokumentet "Retur av varor från köparen".
Åtgärd 1. Förbereder dokumentet i vilket data ska laddas. Du måste skapa ett tomt dokument "Retur av varor från köparen" och skriva ner det.

Akt 2. Öppna extern bearbetning "Laddar data från ett kalkylarksdokument".

Akt 3. Under bearbetningen väljer du platsen där vi ska ladda data.

Akt 4. Konfigurera startalternativ. Gör allt som visas på bilden för att öva.

Åtgärd 5. Kopiera data från Excel till fliken "Spreadsheet Document" för bearbetning (som i figuren). Två knappar är markerade i rött: "Kontroll" av fyllning (visar fel, till exempel om måttenheten för den laddade artikeln är felaktigt angiven) och "Ladda" (utför lastning).

Ju färre parametrar du anger för uppladdning, desto mindre sannolikt finns det fel under uppladdningen, men desto mer data måste du manuellt korrigera i det uppladdade dokumentet.

Egentligen hon själv bearbetar dataladdning från Excel till 1C

Denna metod är enkel. Dess väsen är att föremålet Tabelldokument har metoder:

  • Skriva 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 kalkylarksdokument, PathToFile— 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 PathToFile— sökväg till den nedladdade Excel-filen. Metod för att läsa värden av ett tabelldokument.Value bestämmer hur data som läses från ett källdokument ska tolkas. Tillgängliga alternativ:

  • Menande;
  • Text.

Byt via OLE

Utbyte genom 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
Boka = Excel. Arbetsböcker. Tillägga();
// Position på första arket
Ark = Bok. Arbetsblad(1);

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

// Spara filen
Boka . SaveAs(Filnamn);


Excel . Sluta();
Excel = 0;

Exempel läsning:

// —— ALTERNATIV 1 ——

// Skapa ett COM-objekt
Excel = New COMObject("Excel.Application");
// Öppna en bok
Boka = Excel. Arbetsböcker. Öppna( PathKFile);

Ark = Bok. Arbetsblad(1);

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

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

// —— ALTERNATIV 2 ——

// Öppna en bok
Boka = GetCOMObject( PathKFile);
// 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
Boka . Ansökan. Qui t();

För gå förbi För alla ifyllda 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
Abortera;
endIf;
EndCycle;

Istället för att gå igenom alla rader på arket i tur och ordning 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. Lossa();

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

Handling Koda 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();
Jobbar med en bok
Skapar en ny bok Boka = Excel. Arbetsböcker. Tillägga();
Öppna en befintlig arbetsbok Boka = Excel. Arbetsböcker. Öppna(Filnamn);
Sparar en bok Boka . SaveAs(Filnamn);
Stänger boken Boka . 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 . Sidinställningar. Orientering = 2; 1 - stående, 2 - liggande
Ställer in den vänstra kanten Ark . Sidinställningar. Vänstermarginal = Excel. CentimetersToPoints(Centimeter);
Ställa in den övre gränsen Ark . Sidinställningar. TopMargin = Excel. CentimetersToPoints(Centimeter);
Ställer in rätt kant Ark . Sidinställningar. RightMargin = Excel. CentimetersToPoints(Centimeter);
Inställning av den nedre gränsen Ark . Sidinställningar. BottomMargin = Excel. CentimetersToPoints(Centimeter);
Arbeta med rader, kolumner, celler
Ställa in kolumnbredd Ark . Kolumner(KolumnNumber). ColumnWidth = Bredd;
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)). Slå ihop();
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. Betona = 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 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 ett objektomslag ö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);
// Fyll 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 . Öppna(); // Ö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 . Utföra(); // 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 . Nära();
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
Boka = New COMObject("ADOX.Catalog");
Boka . 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 med den beskrivna strukturen i arbetsboken
Boka . 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 . Öppna(); // Ö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 via kolumnnamn
Kolumn2Värde = Urval. Fält. Artikel(0). Värde; // Åtkomst via kolumnindex
Prov . MoveNext();
EndCycle;

Prov . Nära();
Sample = Odefinierat;
Förening . Nära();
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ömma;
  • Fel;
  • parametrar;
  • Egenskaper.

Ladda upp utan programmering

För att spara data från 1C till Excel är det inte alltid tillrådligt 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... huvudmenyn.

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 till ett kalkylarksdokument med kommandot Mer ⇒ Lista...;
  2. Spara kalkylarksdokumentet i önskat format.

I 1C 8.3 är det möjligt att massladda en lista från ett kalkylarksdokument, till exempel från en Excel-fil.

Vi använder extern bearbetning för lastning Laddar data från TabularDocument.epf för hanterade formulär (8.2 och 8.3), som kan laddas ner . Den är universell och bör vara lämplig för alla konfigurationer skrivna för en hanterad applikation.

  • Om du är en programmerare och vill utveckla "din egen" nedladdning från Excel, detaljerade instruktioner för;
  • Ett exempel på att ladda en prislista i 1C Trade Management finns på.

För att starta extern bearbetning måste du gå till menyn "Arkiv", sedan "Öppna" och välja denna bearbetning från katalogen där den sparades:

Bearbetning Laddar data från ett kalkylarksdokument 1C 8.3 (hanterade formulär)

Efter att bearbetningen har öppnats i 1C kan du börja arbeta med den. Först och främst måste vi bestämma var och vad vi ska ladda ner:

Jag vill ge ett exempel i katalogen "". Jag skapade en datafil i xls-format.

Bearbetning kan också ladda filer i följande format:

  • något annat format från vilket du kan kopiera data.

Så här ser Excel-filen med källdata ut, som vi laddar upp till referensboken "Nomenklatur":

Få 267 videolektioner på 1C gratis:

Jag skrev inte ner alla fält i katalogen, eftersom det räcker för att förstå principen för laddning. Dessutom räcker dessa data för att börja arbeta med dessa positioner.

Dessa positioner finns ännu inte i 1C informationsdatabasen, och vi kommer nu att ladda upp dem där.

Klicka på ikonen "Öppna" (anges i bilden som "Välj källa") och välj datafilen. Du kan använda enkel kopiering av information. Min exempelfil kan laddas ner. Data kommer att laddas in i bearbetning automatiskt. Låt oss nu kontrollera om vi har fyllt i våra uppgifter korrekt. För att göra detta, klicka på knappen "Fyllningskontroll".

Som ni ser har vi några fel! Vi kommer att eliminera det. Gå till fliken "Inställningar":

Innan jag korrigerar fel vill jag uppmärksamma er på en viktig detalj. Programmet vet initialt inte i vilket fält det ska leta efter ett katalogelement ifall det redan finns där. Så hon måste påpeka det. Jag föredrar att söka på kod eftersom det vanligtvis är unikt. Sätt en bock i kolumnen "Sökfält" på raden "Kod". Nu, om en post med en sådan kod hittas, kommer den att ersättas, annars kommer den att skapas.

Viktig! Om du inte anger ett sökfält kan dubbletter av objekt visas. Speciellt efter den andra nedladdningen av en liknande fil!

Låt oss nu se varför "Unity" svär på planen. Faktum är att måttenheter i 1C 8.3 lagras i en separat katalog, och bearbetning som standard letar efter denna enhet efter namn. Men i själva verket är ordet enhet skrivet i fältet "Fullständigt namn".

Tyvärr kan bearbetning bara söka efter "Namn" och "Kod" (för programmeraren är möjligheterna större). Om du uppmärksammar bilderna ovan kommer du att se att jag har en kod i kolumnen "Enhet". Och vid bearbetning måste du ange att sökningen ska utföras med kod. Dubbelklicka på kolumnen "Kommunikationsvillkor" mittemot "Enheter" och ändra den till "Kod".

Låt oss nu se vad de berättar om "Service" i listan över fel. Ännu en viktig anmärkning. Kolumnerna i filen måste placeras strikt i samma ordning som raderna i katalogfälten. Och för oss ligger "" längst ner och i filen efter kolumnen "Kommentar".

För att flytta raden "Artikeltyp" uppåt finns det blå pilar överst i formuläret. Använd "Upp"-pilen, höj den önskade linjen och placera den under "Kommentar".

Klicka på "Ladda data" och den här gången går allt felfritt:

Videohandledning om att ladda produkter till 1C från Excel-filer:



Om du upptäcker ett fel markerar du ett textstycke och trycker på Ctrl+Enter
DELA: