Opprette en excel-fil fra 1s 8.3. Hva er bedre - 1C eller Excel? Har du spørsmål eller trenger hjelp fra en konsulent?

1C-applikasjonen har lenge vært det mest populære programmet blant regnskapsførere, planleggere, økonomer og ledere. Ikke bare har den et mangfoldig antall konfigurasjoner for forskjellige typer aktiviteter, men også lokalisering til regnskapsstandarder i flere land rundt om i verden. Flere og flere virksomheter går over til regnskap i dette programmet. Men prosedyren for å manuelt overføre data fra andre regnskapsprogrammer til 1C er en ganske lang og kjedelig oppgave som tar mye tid. Hvis bedriften førte journaler ved hjelp av Excel, kan overføringsprosessen bli betydelig automatisert og akselerert.

Overføring av data fra Excel til 1C kreves ikke bare i den første perioden med å jobbe med dette programmet. Noen ganger er det behov for noe slikt når du i løpet av aktiviteten må legge inn noen lister som er lagret i regnearkboken. For eksempel hvis du skal overføre prislister eller bestillinger fra en nettbutikk. Hvis listene er små, kan du legge dem inn manuelt, men hva om de inneholder hundrevis av elementer? For å fremskynde prosedyren, kan du ty til noen tilleggsalternativer.

Til automatisk nedlasting Nesten alle typer dokumenter er egnet:

  • Liste over nomenklatur;
  • Liste over motparter;
  • Liste over priser;
  • Liste over bestillinger;
  • Informasjon om kjøp eller salg mv.

Det skal bemerkes med en gang at 1C ikke har innebygde verktøy som lar deg overføre data fra Excel. For disse formålene må du koble til en ekstern bootloader, som er en fil i formatet epf.

Dataforberedelse

Vi må forberede dataene i selve Excel-tabellen.


I tillegg til disse universelle handlingene for å forberede data i en Excel-bok, må du også bringe dokumentet i samsvar med kravene til den spesifikke lasteren vi skal bruke, men vi vil snakke om dette litt lavere.

Koble til en ekstern bootloader

Koble til en ekstern bootloader med utvidelse epf applikasjon 1C kan gjøres både før og etter klargjøring av Excel-filen. Det viktigste er at ved begynnelsen av nedlastingsprosessen begge disse forberedende øyeblikk ble løst.

Det er flere eksterne Excel-tabelllastere for 1C, som ble laget av forskjellige utviklere. Vi vil vurdere et eksempel på bruk av et verktøy for å behandle informasjon "Laster data fra regnearkdokument» for versjon 1C 8.3.


En av hoveddatabasene som 1C jobber med er en liste over produkter og tjenester. Derfor, for å beskrive innlastingsprosedyren fra Excel, vil vi fokusere på eksemplet med å overføre denne spesielle typen data.

  1. Vi går tilbake til behandlingsvinduet. Siden vi skal laste inn produktutvalget, bør bryteren i parameteren være i posisjon "Katalog". Den er imidlertid installert på denne måten som standard. Du bør bare bytte den når du skal overføre en annen type data: en tabelldel eller et informasjonsregister. Neste i feltet "Katalogvisning" Klikk på knappen med ellipsen på. En rullegardinliste åpnes. I den bør vi velge varen "Nomenklatur".
  2. Etter dette plasserer behandleren automatisk feltene som programmet bruker i denne typen oppslagsverk. Det skal bemerkes med en gang at det slett ikke er nødvendig å fylle ut alle feltene.
  3. Åpne nå den bærbare enheten igjen Excel-dokument. Hvis navnet på kolonnene avviker fra navnene på 1C-katalogfeltene som inneholder de tilsvarende, må du gi nytt navn til disse kolonnene i Excel slik at navnene stemmer helt overens. Hvis tabellen inneholder kolonner som det ikke er noen analoger for i katalogen, bør de slettes. I vårt tilfelle er disse kolonnene "Mengde" Og "Pris". Det skal også legges til at rekkefølgen på kolonnene i dokumentet må være strengt sammenfallende med den som presenteres i behandlingen. Hvis du ikke har data for noen av kolonnene som vises i lasteren, kan disse kolonnene stå tomme, men nummereringen av de kolonnene der det er data må stemme overens. For enkelhets skyld og rask redigering kan du bruke en spesiell Excel-funksjon for raskt å flytte kolonner på steder.

    Etter at disse trinnene er fullført, klikker du på ikonet "Lagre", som er representert av et ikon som viser en diskett i øvre venstre hjørne av vinduet. Lukk deretter filen ved å klikke på standard lukkeknappen.

  4. Vi går tilbake til 1C-behandlingsvinduet. Klikk på knappen "Åpen", som vises som en gul mappe.
  5. Filåpningsvinduet åpnes. La oss gå til katalogen der Excel-dokumentet vi trenger er plassert. Standard filvisningsbryter er satt til utvidelse mxl. For å vise filen vi trenger, må vi flytte den til posisjonen « Excel ark» . Deretter velger du dokumentet som skal overføres og klikker på knappen "Åpen".
  6. Innholdet åpnes deretter i behandleren. For å kontrollere at dataene er riktig utfylt, klikk på knappen "Fyllekontroll".
  7. Som vi kan se, forteller fyllingskontrollverktøyet oss at ingen feil ble funnet.
  8. La oss nå gå til fanen "Innstillinger". I "Søkefelt" Vi setter en hake i linjen som vil være unik for alle navn som er lagt inn i nomenklaturkatalogen. Feltene som oftest brukes til dette er "Leverandørkoden" eller "Navn". Dette må gjøres slik at når du legger til nye elementer i listen, blir dataene ikke duplisert.
  9. Etter at alle data er lagt inn og innstillingene er fullført, kan du fortsette å laste informasjonen direkte inn i katalogen. For å gjøre dette, klikk på inskripsjonen "Last inn data".
  10. Nedlastingsprosessen pågår. Etter at den er fullført, kan du gå til varereferanseboken og forsikre deg om at alle nødvendige data er lagt til der.

Vi fulgte prosedyren for å legge til data til nomenklaturkatalogen i 1C 8.3-programmet. For andre kataloger og dokumenter vil nedlastingen utføres etter samme prinsipp, men med noen nyanser som brukeren kan finne ut på egen hånd. Det skal også bemerkes at prosedyren kan variere for forskjellige tredjepartslastere, men den generelle tilnærmingen forblir den samme for alle: først laster prosessoren informasjon fra filen inn i vinduet der den redigeres, og først da legges den til. direkte til 1C-databasen.

I 1C er det 2 måter å jobbe med MS Excel-filer på: gjennom et COM-objekt og innebygde 1C-verktøy ved å bruke et regneark-dokumentobjekt. La oss se på begge disse metodene mer detaljert.

1. Arbeid gjennom et COM-objekt.

Denne metoden krever installert MS Excel, og hvis du jobber med en fil på serveren, så må MS Excel installeres på serveren, hvis på klienten, så kreves MS Excel også på klientsiden.

Eksempel (du kan se det i tekstform på slutten av artikkelen):

Det skal bemerkes at alle objekter, metoder og egenskaper levert av COM-objektet "Excel.Application" er objekter, metoder og egenskaper til VBA, MS Office-programmeringsspråket.

Merk:

Noen ganger må du jobbe med en eksisterende mal. Da må vi lagre denne malen et sted slik at alle nødvendige brukere har tilgang til den. Det finnes imidlertid en enklere løsning, lagre malen som en binær layout.

2. Arbeid gjennom tabelldokument 1C.

1C-regnearkdokumentet støtter MS Excel-formatet for opptak fra plattform 8, men for åpning kun fra plattform 8.3.6. Dessuten, når de åpnes, blir alle arkene lastet inn i ett regnearkdokument. Siden versjon 8.3.10, ved lasting, blir forskjellige ark lastet inn som forskjellige områder.

Et eksempeloppføring er veldig enkelt og krever ikke spesiell oppmerksomhet:

Men her har vi et problem. Når du tar opp fra 1C i en Excel-arbeidsbok, er visningen av arknavn deaktivert som standard.

Dette problemet kan løses på 2 måter, 1 - i selve boken, aktiver visning av ark i innstillingene (ikke alle brukere vil godta å gjøre dette), 2 - gjør dette gjennom et COM-objekt (vi trenger igjen MS Excel installert ).

Etter dette lille tillegget vil arketiketter være synlige i MS Excel-filen.

Å lese MS Excel er ikke en lett oppgave, siden lesemetoden kun er tilgjengelig på serveren eller den tykke klienten. For å gjøre dette må vi overføre MS Excel-filen til serveren.

&På klient

Prosedyre CreateDocument()

Unntak

Sluttforsøk;

Book = Excel.WorkBooks.Add(); //Opprett en ny MS Excel-arbeidsbok

Ark = Book.WorkSheets.Add(); //Legg til et ark

Sheet.Name = "Eksempel fra 1C"; //Angi arknavnet

Sheet.Cells(1,1).Value = "La oss lage en formel";!}

Ark.Cells(2,1).Verdi = 1;

Ark.Cells(2,2).Verdi = 2;

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

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

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

Book.Close();

Slutt på prosedyre

&På server

Funksjon GetLayoutServer()

Return FormAttributesValue("Objekt").GetLayout("TemplateForUpload"); //På denne måten får vi det eksterne prosesseringsoppsettet;

EndFunction

&På klient

Prosedyrearbeid()

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

Unntak

Report("Mislykket forsøk på å koble til Excel-komponenter. Kanskje Excel-program er ikke installert på denne datamaskinen!");

Sluttforsøk;

Layout = GetLayoutServer();

Layout.Write(TemporaryFileName);

Har du spørsmål eller trenger hjelp fra en konsulent?

Bok = Excel.WorkBooks.Open(TemporaryFileName);

SheetTemplate = Book.WorkSheets(1);

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

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

SheetTemplate.NumberFormat = "dd/mm/åå;@"; // Gi datoformatet, dette formatet ble oppnådd ved å ta opp en makro i MS Excel

SheetTemplate.Columns("B:B").EntireColumn.AutoFit; // Strekk kolonnen slik at datoen passer nøyaktig

Book.SaveAs(Filnavn);

Book.Close();

Slutt på prosedyre

&På klient

Slutt på prosedyre

&På klient

Prosedyre WriteTabularDocument()

TabularDocument = Nytt TabularDocument();

TabularDocument.Area("R1C1").Text = "Eksempel på en post i MS Excel fra 1C";

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

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

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

Excel.Synlig = 0;

Excel.ActiveWindow.DisplayWorkbookTabs = 1;

Excel.ActiveWindow.TabRatio = 0,6;

Excel.ActiveWorkbook.Save();

Excel.Application.Quit()

Slutt på prosedyre

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

Address=PlaceInTemporaryStorage(BinaryData,ThisForm.UniqueIdentifier);

TabularDocument = Last opp PåServer(Adresse);

TabularDocument.Show();

Slutt på prosedyre

&På server

Funksjon Last opp PåServer(adresse)

TemporaryFileName = GetTemporaryFileName("xlsx");

FileData = GetFromTemporaryStorage(Adresse);

FileData.Write(TemporaryFileName);

TabularDocument = Nytt TabularDocument();

returner TabularDocument;

  • Ved utveksling av informasjon mellom motparter (prislister, avstemmingsrapporter osv.);
  • For å lette arbeidet til operatører i tilfeller der hovedregnskapet utføres i 1C, og noe av det utføres i Excel-tabeller;
  • Når du fyller databasen for første gang.

For å utføre denne operasjonen kan du bruke både standardfunksjonalitet, tilgjengelig med et abonnement på informasjonsteknologistøtte (ITS), og uavhengig skriftlig behandling, implementert gjennom ulike tilkoblingsalternativer. I artikkelen vår vil vi prøve å analysere alle mulige tilfeller så fullstendig som mulig og svare på de fleste av de eksisterende spørsmålene angående lasting av data fra Excel til 1C.

Universell mekanisme

På ITS-diskene, så vel som på 1C-portalen, ved å gå til "Teknologisk støtte" -> "Universelle rapporter og behandling"-menyen, er den tilsvarende behandlingen plassert i mappen "Laster data fra et regnearkdokument".

Når du starter den, åpnes skjemaet (fig. 1):

Som du kan se fra skjemaet, lar det deg overføre informasjon til følgende konfigurasjonsobjekter:

  1. Katalog;
  2. Borddel dokument eller oppslagsbok;
  3. Register over opplysninger.

Avhengig av posisjonen som bryteren er satt i, endres objektvalgfeltet.

Behandlingstabellskjemaet fylles ut når den nedlastede filen åpnes.

Typisk behandling støtter nedlastinger fra:

  • Utviklet av spesialister fra 1C, filformatmxl;
  • Lisztxls lagret i formatetExcel 97-2003;
  • Tekstfiltekst;
  • Tabellerdbf.

Excel-filer av stor størrelse kan ta ganske lang tid å laste, så hvis det antas at datainnlasting kan skje i flere stadier eller du vet sikkert at du må åpne en eksisterende fil flere ganger, for å spare nerver og tid, det er bedre å lagre informasjonen fra den i mxl-format. Dette kan gjøres direkte fra behandlingsskjemaet.

Det er viktig å forstå at hvis det er linjegrupperinger, underoverskrifter og merknader i kildefilen, må de fjernes manuelt.

La oss nå gå videre til "Innstillinger"-fanen (fig. 2):

Fig.2

Ganske ofte inneholder Excel-tabeller en overskrift med alle slags detaljer og data (navn trykt skjema, detaljer om motparten, dato og nummer på det innkommende dokumentet, kolonnenavn osv.), for å utelukke behandlingen av dem i programmet på skjemaet, i «Første linje i et regnearkdokument»-attributtet, må du angi første linje med den overførte informasjonen

Etter å ha valgt et metadataobjekt som informasjonen skal registreres i, vil den tabellformede delen av fanen "Innstillinger" automatisk fylles ut med navn på detaljer, beskrivelser av deres typer og annet viktig informasjon. En egen del bør vies til vurderingen av kolonnene i den tabellformede delen av fanen "Innstillinger".

Kolonnene "Innstillinger"

Merking – ved å krysse av eller fjerne merket for en avkrysningsboks på en linje, avgjøres det om det tilsvarende attributtet skal fylles ut.

Attributrepresentasjon – her skrives synonymet (navnet) til metadataattributtet, slik det er spesifisert i konfiguratoren.

Søkefelt - hvis du merker av for dette feltet, vil behandlingen søke etter elementer ved hjelp av de tilsvarende detaljene og, hvis vellykket, endre eksisterende data; en tilleggsfunksjon til dette feltet er beskyttelse mot duplikater.

Beskrivelse av typer – viser datatypen som et bestemt metadataattributt har.

Oppstartsmodus – tilbyr tre alternativer å velge mellom (fig. 3):

Fig.3

  • Søk – et søk vil bli utført etter det tilsvarende elementet; hvis det mangler, kan et nytt opprettes;
  • Sett – en viss verdi er underordnet satt;
  • Beregn – i dette tilfellet vil resultatet av å beregne uttrykket som er spesifisert i kolonnen "Tilkoblingsbetingelse/Uttrykk for verdi" settes i feltet til det opprettede elementet.

I sistnevnte tilfelle vil aktivering av feltet Uttrykk åpne skjemaet (fig. 4).

Fig.4

Kolonnenummer er et felt som brukes til å angi hvilken kolonne i Excel-tabellen som skal fylles med data.

Standardverdi - ganske ofte oppstår en situasjon når den nedlastede filen ikke inneholder alle dataene som er nødvendige for å registrere et element; i dette tilfellet vil informasjonen i dette feltet fylles ut.

Koblingsbetingelse/Uttrykk for en verdi – vi har allerede delvis berørt dette feltet da vi så på beregnede felt, i tillegg kan du spesifisere betingelsen som kildedataene skal synkroniseres med.

Dette er i prinsippet all informasjonen som er tilgjengelig på fanen "Innstillinger".

For ikke å kaste bort mye tid hver gang du laster, skriver korrespondanse og uttrykk, har utviklerne gitt muligheten til å lagre konfigurasjonsalternativet til en fil med mxlz-utvidelsen.

Du kan kontrollere riktigheten til de overførte dataene ved å klikke på "Fyllingskontroll"-knappen (fig. 1). Etter dette kan du starte nedlastingsprosessen. Du vil bli varslet separat om vellykket gjennomføring av prosedyren eller uvanlige situasjoner.

For å laste data fra Excel til informasjonsdatabaser"Management and Trade" det er en annen mekanisme. Den er mindre universell enn metoden ovenfor, men krever ikke ITS-abonnement og er inkludert i standardleveransen.

Denne behandlingen finner du på fanen "Kjøp", i menyen "Tjeneste", heter den "Lasting av leverandørpriser fra filer" (fig. 5)

Fig.5

Behandlingsskjemaet inneholder:

  1. Et datovalgfelt som vil indikere for hvilket tidspunkt denne prisen er gyldig;
  2. Felt for å velge motparten som sendte sin prisliste;
  3. En knapp som lar deg velge hvilken type priser som skal settes;
  4. En tabelldel som kan fylles med nedlastede data.

Denne formen kan sees i fig. 6

Fig.6

Forklaringen øverst i skjemaet forklarer hvordan du bruker den første fanen i skjemaet.

Etter å ha valgt en motpart (avhengig av om han er leverandør, kommisjonær eller selger), vil ytterligere kolonner for hver pristype bli tilgjengelig i tabellen.

Når du arbeider gjennom nettgrensesnittet, kan enkelte nettlesere kreve installasjon av et nettlesertillegg (fig. 7). Vi må klikke på "Start installasjon"-knappen og starte tilkoblingen på nytt.

Fig.7

Etter dette, ved hjelp av utklippstavlen, vil vi kunne overføre informasjon fra en tabell til en annen. Når kolonnene vi trenger («Artikkel», «Navn», «Pris») er fylt ut, klikker vi på «Neste»-knappen og går til den andre siden (fig. 8).

Fig.8

Programmet vil automatisk søke etter treff i databasen og, hvis ingen blir funnet, tilby alternativer for å eliminere feilen. Utseende Tabelldelen kan styres ved hjelp av en bryter. I tillegg kan brukeren uavhengig sammenligne elementene i den nedlastede filen med dataene som er tilgjengelige i databasen.

  • Registrer alt;
  • Registrer kun de som er endret i forhold til de som allerede er i databasen.

I tekstfeltet kan du skrive inn en kommentar som vil bli registrert i dokumentet (fig. 9):

Fig.9

Etter at behandlingen er fullført:

  • Det tilsvarende elementet vil bli opprettet i "Supplier Nomenclature"-katalogen (hvis det ikke fantes);
  • Katalogelementet "Nomenklatur" vil være knyttet til det;
  • Dokumentet "Angi varepriser" vil bli opprettet og bokført, med angivelse av: leverandør, pristype og dato for dataregistrering.

Behandlingen "Laste produkter fra eksterne filer" fungerer på lignende måte.

Behandlingsalternativer for DIY-overføring

Hovedproblemet med å trekke ut data fra en Excel-fil er at 1C ikke har en innebygd entydig mekanisme for å åpne den. Det er flere alternativer for å koble Excel til 1C:

  • Via Microsoft ADODB – nok rask måte, som som regel gjelder for både fil- og klient-server-databaselagringsalternativer;
  • Gjennom Microsoft bruker Office er en metode som noen ganger feiler når du arbeider med SQL-databaser; som regel fungerer den noe tregere enn den første metoden, og den krever også Office installert;
  • Via Libre Office - i motsetning til den forrige metoden er den gratis, i tillegg til xls- og xlsx-formater støtter den også egne tabeller, men krever den installerte LibreOffice-pakken og litt forberedelse av den nedlastede filen (den første linjen i tabellen må inneholde navnene på kolonnene).

La oss ta en nærmere titt ulike måter og alternativer.

Via ADODB.Connection

Generelt står ADO for ActiveX Data Object og brukes for programmatisk tilgang til ulike databaser. Det største problemet når du oppretter en tilkobling til en tredjepartsfil (inkludert Excel) er å komponere tilkoblingsstrengen på riktig måte.

For Excel-filer er det tre alternativer:

Alternativer for tilkoblingsstreng:

  • Leverandør – driveren som brukes er definert her;
  • Datakilde – definerer navnet på filen som vi skal åpne;
  • Utvidede egenskaper – her kan du spesifisere om en overskriftslinje er nødvendig for tabellen (HDR = JA indikerer at dataene skal leses fra den første linjen, HDR = NEI - hva fra den andre), om filen åpnes skrivebeskyttet (skrivebeskyttet) og noen andre tilleggsparametere.

Etter å ha opprettet en tilkoblingsstreng, kan vi koble til den nedlastede filen (fig. 13)

Fig.13

Nå kan vi bruke en enkel forespørsel (fig. 14) for å begynne å hente informasjon fra den nedlastede filen.

I dette tilfellet bestemmer parameteren "Ark" hvilket ark fra Excel-arbeidsboken vi skal jobbe med.

Settet med poster som er lagret i et regneark kan leses ved hjelp av et Recordset-objekt. I dette tilfellet kan den første posten av arket oppnås med BOF-parameteren (begynnelsen av filen), og den siste EOF (slutten av filen).

Via Excel-applikasjon

Hovedforskjellen fra den forrige metoden er at i tillegg til databasedrivere, må Excel være installert på datamaskinen der tilkoblingen er opprettet. Bare i dette tilfellet kan vi initialisere applikasjonen til å lese data fra tabellen (fig. 16).

Dette COM-objektet har flere underordnede parametere, men den viktigste for oss, gitt de nåværende betingelsene for oppgaven, er WorkBooks-parameteren (fig. 17).

Etter initialisering av arbeidsboken, er det nødvendig å bestemme arket som data skal leses fra (fig. 18).

Etter dette kan du gå gjennom radene og kolonnene i tabellen for filen som åpnes.

Noen få ord om mulige feil

Brorparten av feil ved tilkobling til en fil oppstår på grunn av at filen allerede er okkupert av en annen applikasjon. Det er bra hvis du kan se på oppgavelinjen at Excel kjører på datamaskinen, men hvis du eller en annen bruker åpnet den fra ekstern behandling, kan dette kun bestemmes visuelt gjennom "Oppgavebehandling", så ikke glem å lukke forbindelsen før du fullfører overføringsprosedyren:

Ved arbeid gjennom ADO (fig. 19);

Fig.19

  • Ved arbeid med applikasjonen (fig. 20).

Ris. 20.

Det er best å organisere tilkoblingen og prosedyren for å fullføre arbeid med data innenfor Attempt-Exception-EndAttempt-konstruksjonen, ved å kalle en feilbeskrivelse i en eksepsjonell situasjon. Selv om dette noen ganger bremser arbeidet, gjør det det mye lettere å finne årsaken til feilen og til slutt hvordan man kan eliminere den.




Topp