Eksempler på programmering på 1s 8.2. Fil- og serverdatabase

Hvis du skriver i SI
Vær minst tre ganger halt
De sier om dette:
"Han er en kul programmerer!"
(Fidosh-sanger - "What is Suxxx and What is Rulezzz")

Forord

Grunnen til å skrive denne artikkelen var den negative holdningen fagfellesskap til den angitte plattformen og programmerere.

Som en programmerer som valgte 1C, anser jeg denne oppfatningen som ubegrunnet. 1C-plattformen er langt fra ideell, men etter min mening er det det beste, og viktigst av alt, et innenlandsk produkt!

Og enda mer er det utilstrekkelig å bedømme en programmerers evner etter språket han skriver.

I denne artikkelen vil jeg beskrive fordelene som jeg fant for meg selv i programmet. Artikkelen vil nesten vise seg å være en annonse, så her er en ansvarsfraskrivelse:

  • Jeg har ikke noe direkte forhold til 1C-selskapet;
  • Denne artikkelen er ikke bestilt og ble skrevet utelukkende på frivillig basis;
  • I noen tilfeller uttrykkes personlige meninger, som kanskje ikke er sammenfallende...;
  • Hele artikkelen, med unntak av prologen, er forfatterens, enhver tilfeldighet er en ulykke;
  • Vi vil snakke om 1C Enterprise 8.2-plattformen (for øyeblikket er versjon 8.3 gjeldende, men jeg har ikke studert den ennå - det er mye arbeid på 1C 8.2). Det meste av det som blir sagt gjelder imidlertid både for 8.3-plattformen og tidligere versjoner, og noe av det gjelder for versjon 7.7.
Så la oss komme i gang.

Hva snakker vi om?

Plattform 1C Enterprise 8 er:
  • Det fungerer i to versjoner - fil og server (tre-lenker) - hver har sine egne fordeler og ulemper;
  • Et uavhengig regnskapssystem som er enkelt å installere og konfigurere;
  • Et kraftig økosystem for programmerere med alle nødvendige objekter og verktøy;
  • Fint ergonomisk grensesnitt;
  • Relativt rimelig løsning for bedriften;
  • Franchisetaker nettverk, grunnopplæring;
  • En kraftig base av utvikling og kunnskap akkumulert gjennom årene;
  • Til tider en problematisk plattform for systemadministratorer;
  • Ikke den raskeste utførelsen av algoritmer (men ikke den tregeste) - dette er en hyllest til informasjonsinnholdet (i tilfelle feil er linjenummeret og innholdet angitt);
  • Det er ingen klasser i programmeringsspråket (arv, innkapsling, polymorfisme), ingen anonyme funksjoner og andre moderne funksjoner. Men for å løse de fleste problemer, er dette ikke nødvendig!
For å organisere regnskap er det ikke nok med én plattform. Plattformen er en slags «motor», en mellomledd mellom programmet og databasen. Programmer for denne "motoren" kalles konfigurasjoner. Konfigurasjonen beskriver strukturen til databasen i form av objekter, prosedyretekster lagret i separate moduler (det er mange moduler, både hvert objekt og systemet som helhet har dem, og det finnes også fellesmoduler). Plattformen representerer et abstraksjonsnivå der direkte anke er ikke nødvendig for en database, og lar deg også abstrahere fra operativsystem og databasetype.

Fil- og serverdatabase

Plattformen består av flere deler og kan operere i fil- eller serverversjon.

I filversjonen er hele databasen inneholdt i én fil (med utvidelsen "1cd") - plattformen er installert på hver datamaskin og leser/skriver direkte til databasen.

Fordeler med filalternativet - lav pris og enkel utplassering.

Ulemper - filstruktur "1cd" er stengt, nei enhetlig system, samhandle med databasen. Som et resultat er det vanskelig å bruke når stort nummer brukere (prøvd for 20+ brukere - det fungerer). I tillegg, hvis databasestørrelsen er omtrent 15 GB (eller mer), kan dynamiske oppdateringer mislykkes. Å løse slike feil er en vanskelig oppgave, og verktøyet for å reparere databasen reparerer ikke alltid effektivt, og noen ganger til og med ødelegger databasen.

Det finnes en løsning - først og fremst å sette opp daglige sikkerhetskopiering av databaser. I tillegg publiserer håndverkere ikke bare 1cd-filformatet, men har også utviklet verktøy for å jobbe med slike filer og en rekke metoder for å løse slike problemer.

I serverversjonen bruker plattformen for lagring av databasen en SQL-server (vanligvis MS SQL, men fra 8.2.14 - du kan bruke noen andre, for eksempel Firebird PostgreSQL, IBM DB2, Oracle Database), og selve plattformen bruker en tre-lags arkitektur:

Noe av koden kjøres på klienten, noe på serveren. I dette tilfellet er det bare serveren som samhandler med databasen. På samme tid, fra og med versjon 8.2, i tillegg til standard driftsmodus, som ble kalt "tykk klient" -modus, dukket det opp to nye driftsmoduser - "tynn klient" og "webklient"; "kontrollerte former" dukket også opp, utseende som er bygget i form av et abstrakt tre av elementer. Programmering for administrerte skjemaer og en trelagsarkitektur er vanskeligere, men dette lar deg overføre nesten hele belastningen til serveren (det vil si at du kan kjøpe en kraftig server og hundre av de billigste kontordatamaskinene).

Fordeler med plattformen: "tre-lags" - lastfordeling, åpenhet av databasen (offisielt frasier 1C seg ansvar for datakorrupsjon hvis endringer ble gjort i SQL-databasen på annen måte enn gjennom deres plattform eller server, men dette stopper få mennesker), mangel på restriksjoner.

Ulemper - pris: du må kjøpe separat klientlisenser for hver klientdatamaskin, separat - en lisens for 1C-serveren, separat en lisens for SQL-serveren, hvis du ikke bruker den gratis. Noen ganger oppstår det også vanskeligheter med driften av databasen. De løses mye raskere på grunn av tilgjengeligheten av data og tilgjengeligheten av eksterne verktøy for å jobbe med databasen. I tillegg bør du i dette tilfellet ta en sikkerhetskopi av databasen.

En vanlig fordel er allsidigheten til konfigurasjonskoden: med noen unntak vil en konfigurasjon utviklet for en fildatabase fungere på en serverdatabase, og omvendt. Et eksempel på et unntak er å overføre en mutbar verdi til serveren eller fra serveren til klienten (i filversjonen vil dette ikke forårsake unntak, men i klient-serverversjonen er det forbudt).

Et annet pluss: plattformen er veldig enkelt installert, noe sånt som dette: "Next-Next-Next-Ok", ingen finjustering eller installasjon av noen komponenter er nødvendig.

For serverversjonen er det noen flere innstillinger, men alt gjøres i installasjonsdialogen og krever ikke å skrive noe i separate filer. Det kan være vanskelig å installere en SQL-server, fordi... i dette tilfellet er det mange flere innstillinger (og for å finjustere det, må du studere ytterligere instruksjoner). Men dette gjelder ikke problemene med 1C-plattformen. Dessuten, hvis du for eksempel installerer en MS SQL-server med alle standardinnstillingene, vil 1C kunne jobbe med den.

Det er mer enn regnskap

Når det gjelder 1C-plattformen, presenteres den først og fremst som et program for regnskap. Dette er faktisk det mest populære bruksområdet til 1C-plattformen. Men 1C lever ikke av regnskap alene!
De som er kjent med plattformen sier at det er et regnskapssystem (regnskapsautomatisering). Dette er nærmere sannheten - det er mange konfigurasjoner, både fra 1C og fra tredjepartsutviklere. Noen er bare indirekte relatert til regnskap, noen er ikke relatert i det hele tatt.

Generelt er det mer riktig å forestille seg 1C-plattformen som et skall for objektmodellering av en database, grensesnitt og programmering i 1C-språket. Den eneste begrensningen er at det opprettes en egen database for hver konfigurasjon, og kun én (det er imidlertid mulig å koble til eksterne datakilder i tillegg, dvs. andre databaser, som en del av konfigurasjonen).

Økosystem for programmerere

La oss nå vurdere 1C-språket og plattformen fra en utviklers synspunkt:
Databaseobjektmodell. For det første jobber vi ikke direkte med databaser. Det er ikke nødvendig. For enkelhets skyld presenteres alle data i form av sammenkoblede objekter (kataloger, dokumenter, informasjonsregistre, akkumuleringsregistre, ...), og plattformen "trekker" automatisk disse dataene fra databasen.
For eksempel, forutsatt at variabelen «Nomenclature Element» inneholder en referanse til katalogelementet «Nomenclature», har «Nomenclature»-katalogen «Hovedleverandør»-attributtet, skriv «Directory.Counterparties», og «Counterparties»-katalogen har «Fullt navn»-attributt, deretter koden:

Nomenklaturelement Hovedleverandør
... vil føre til at 1C-plattformen, ved hjelp av interne mekanismer, finner en post i tabellen som tilsvarer katalogen "Motparter" etter identifikator fra "Hovedleverandør"-feltet til vareelementet og returnerer verdiene til feltet som tilsvarer til «Fullt navn»-feltet i objektmodellen til «Motparter»-katalogen.

Det kan være mange slike referanser - systemet kan håndtere det. Det eneste forbeholdet er at systemet ikke vet hvordan det skal optimere dereferanser, så du bør strebe etter å flytte dem utenfor alle slags løkker.

I tillegg til objekter som beskriver data, er det et stort antall systemobjekter - for en rekke funksjoner. Jeg vil fremheve noen av dem:

Verdibutikker
Array- et objekt som lagrer et sett med data, i motsetning til den klassiske ideen om matriser. Dette kan være data forskjellige typer(nummer, streng, lenke, annet objekt). Den har minimal funksjonalitet og brukes hovedsakelig som en midlertidig beholder for overføring av verdier mellom andre butikker.

Listeverdier- et objekt primært for å arbeide med brukergrensesnittet. I tillegg til data kan det for hvert element også inneholde en representasjon, et flaggattributt og et bilde (ikon). Den har også metodene "SelectElement()" og "MarkElements()" - når den kalles, får brukeren vist en grensesnittdialog (noe som er praktisk - det er ikke nødvendig å opprette denne dialogboksen i konfigurasjonen).

Struktur Og Korrespondanse- lagring av sammenkoblede verdier "KeyIValue". I strukturen er "Nøkkel" en streng som følger reglene for å navngi variabler i 1C (ingen mellomrom, starter ikke med et tall, består kun av bokstaver, tall og et understrek). Ifølge - "Nøkkel" er en hvilken som helst verdi. Det raskeste søket etter objekter er i samsvar (raskere enn i en matrise og en indeksert verditabell).

Verditabell- et veldig praktisk og ganske raskt objekt for lagring og behandling av data. Kolonner i verditabellen kan legges til og slettes, uavhengig av antall poster. I dette tilfellet går ikke dataene i radene tapt (eller bare dataene fra cellene som tilsvarer de slettede kolonnene blir slettet). Den har også "SelectRow()"-metoden, som kaller opp radvalgsdialogen. Det finnes indekser.

Verdienes tre- et objekt som representerer hierarkiske data. Inneholder kolonner; kolonnesettet er det samme for alle poster på alle nivåer. Å fjerne/legge til kolonner i verditreet er like enkelt som i verditabellen. Den har også "SelectRow()"-metoden.

Grensesnittobjekter og objekter for arbeid med ulike data TextDocument, SpreadsheetDocument, Nettleser, ReadFile, WriteFile, ReadZIPFile, WriteZIPFile, ReadXML, WriteXML, HTTPRequest og mange flere objekter, og konfiguratoren har innebygd hjelp for alt. Hensikten med de listede objektene fremgår tydelig av navnene deres, og alt dette er umiddelbart tilgjengelig på plattformen.

Separat skal det bemerkes at det er et "Metadata" -objekt - ved hjelp av hvilket du i et programmeringsspråk kan studere strukturen til dataene, samt hver lenke eller objekt for en katalog, et dokument, et diagram over regnskap osv. det er en metode "Metadata()" - gir en beskrivelse av denne oppslagsboken/dokumentet/kontoplanen/etc. i databasen (hvilke detaljer, tabelldeler er tilgjengelige, lengde på kode/nummer osv.). Det er ofte veldig praktisk.

Og vi bør også nevne objektene separat: "Query", "Query Constructor", "Query Builder", "Report Builder", "Data Composition Schema". Denne familien implementerer et sett med objekter for å jobbe med det kraftige 1C-spørringsspråket.

Spørrespråk. Spørringer i 1C brukes bare for å få et utvalg av data med praktisk utvalg, sortering og gruppering. Til en første tilnærming er dette "SELECT"-operatoren fra SQL oversatt til russisk, men 1C-spørringsspråket har også funksjonalitet som mangler i SQL, nemlig:

  • Arbeide med 1C-konfigurasjonsobjekter i stedet for SQL-tabeller;
  • Arbeide med lenker i stedet for SQL identifikatorfelt;
  • Støtte for dereferencing, lik hvordan det gjøres i kode;
  • Utvalg ved inkludering i en gruppe (for kataloger);
  • Hierarkiske totaler;
  • Midlertidige tabeller og nestede spørringer (VELG * FRA (VELG ...)));
  • Query Builder - praktisk, objektbasert, automatisk optimalisering av spørringsteksten for rask lesing, som kan analysere forespørselsteksten (parse forespørselsteksten og bygge en objektmodell fra den);
  • Rapportbyggeren er et tillegg til spørringsmekanismen, som legger til funksjonaliteten til automatisk formatering av resultater, samt fleksibel konfigurasjon av selve spørringen i «Enterprise»-modus (dvs. av brukeren). Som et resultat har en universell rapport dukket opp i standard 1C-plattformer, der brukeren kan konfigurere hvilke data og i hvilken rekkefølge han vil se hva som er i radene og hva som er i kolonnene, og selve rapporten genererer utdatatabellen ;
  • DCS (Data Composition System) er den neste modellen som inkorporerer funksjonaliteten til en universell rapport og supplerer den med noen funksjoner for behandling av resultater.

Programmeringsspråk
Når det gjelder syntaks, ligner 1C-språket "russisk Pascal", men skiller seg fra "Pascal" i mindre strenghet og fravær av noen konstruksjoner:

  • Det er ikke nødvendig å deklarere variabler - du kan initialisere dem direkte i modulteksten;
  • Det er ingen streng inntasting av variabler. Systemet har verdityper, men det er ingen strenge skriveregler for variabler. Variabelen som lagret lenken kan, etter et par linjer med kode, allerede lagre et tall eller en streng;
  • Du kan legge til variabler med verdier forskjellige typer, i dette tilfellet vil typen av resultatet være den samme som typen til den første variabelen, for eksempel:
    k = “25”+1; // k = “251”, ikke 26
  • Variabler med verdier av forskjellige typer kan sammenlignes for likhet eller ulikhet (men ikke for mer eller mindre, dette vil føre til et unntak) - naturlig nok er ikke slike variabler like;
  • Det er funksjoner og prosedyrer, det er tillatt å bruke rekursjon (med en begrensning på dybden av rekursjon);
  • Når du spesifiserer en funksjon eller prosedyre uten parametere, er det fortsatt nødvendig å angi tomme parenteser på slutten: like this();
  • Det er moduler: hver katalog og dokument har flere av dem, i tillegg har registre, rapporter og behandling og hvert skjema moduler, og også som en del av konfigurasjonen er det mulig å lage felles moduler;
  • Ingen klasser, arv, innkapsling, polymorfisme;
  • En funksjon kan ikke sendes som referanse, det er ingen anonyme funksjoner;
  • Det er ingen omvendt loop (for i:=5 ned til 1 do), men det er virkelig nødvendig når du sletter poster. Vi nøyer oss med en litt lengre oppføring gjennom «Bye»-syklusen.

Verktøy

  • 1C-plattformen har muligheten til å laste opp og laste ned en konfigurasjon, sammenligne en konfigurasjon med en annen konfigurasjon og delvis laste ned endringer;
  • Det er mulig å laste ned modultekster for deres batchbehandling og last tilbake til konfigurasjonen;
  • Hvis konfigurasjonen støttes (alle konfigurasjoner fra 1C støttes i utgangspunktet), kan du alltid foreta en sammenligning og se hva som ble endret av tredjepartsutviklere eller lokale spesialister;
  • Det er også mulig å laste opp/laste ned hele databasen (sammen med data);
  • Til teamarbeid Et konfigurasjonslager brukes over én konfigurasjon;
  • Det finnes også en rekke regler for å gjøre endringer i standardkonfigurasjoner. Det finnes til og med et dokument fra 1C som beskriver metoder og standarder for å endre standardkonfigurasjoner (og eventuelle andre).

Generelt inntrykk
1C-språket kombinerer klarheten til Pascal-språktekster med frivoliteten ved å jobbe med BASIC språkvariabler. Den mangler en rekke iboende funksjoner moderne språk programmering, men du kan klare deg uten dem. I tillegg har 1C-plattformen en kraftig søppeloppsamler, d.v.s. det er for eksempel ikke nødvendig å tømme tabeller etter bruk eller slette dem.

Grensesnitt 1C Enterprise 8.2

1C-selskapet ga spesiell oppmerksomhet til grensesnittet til programmet. Først av alt er dette fargepaletten. Hun er nydelig! Programvinduene er gjenkjennelige selv langveisfra, og etter mange års arbeid - de forårsaker ikke fiendtlige følelser, tvert imot - vil jeg at alle programmer skal være like kule.
Samtidig er stilen på plattformen veldig streng, uten dikkedarer eller andre dikkedarer. Samtidig er det veldig nyttige funksjoner, for eksempel å huske størrelsene på vinduer (størrelsene huskes bare når de endres av brukeren, og samtidig kan du alltid tilbakestille brukerinnstillingene - til standardstørrelser og posisjoner ved å trykke Alt+Shift+R).
8.2 Web-klientgrensesnittet forårsaker en rekke klager, men det ser ut til at 8.3-plattformen bringer med seg et nytt redesignet grensesnitt - "Taxi".

Priser, tilbud og etterspørsel, franchising

Den mest "deilige" fordelen med 1C-plattformen er prisen. Dette gjelder spesielt nå, under en krise. Tross alt er 1C helt vårt innenlandske produkt. Og den selges for våre tre. Slike løsninger fra en utenlandsk produsent vil koste mye penger. Og lisenser for 1C er ganske rimelige.

I tillegg har 1C en interessant lisensieringspolicy. Selve lisensene og konfigurasjonene kjøpes én gang. Samtidig kjøpes det lisenser for arbeidsplass og til serveren, men ikke til databasene, og ikke engang til forbindelsene, dvs. under én lisens kan den samme brukeren starte et ubegrenset antall 1C-sesjoner, og jobbe med et hvilket som helst antall databaser. Det samme gjelder konfigurasjoner: ved å kjøpe en lisens for en konfigurasjon kan en organisasjon bruke den til å lage et hvilket som helst antall databaser, dessuten er det offisielt tillatt å bruke deler av koden og objektene til denne konfigurasjonen når de utvikler sine egne konfigurasjoner (i; i dette tilfellet kan deres egne konfigurasjoner selges/overføres - med betingelsen om at For å bruke dem må du kjøpe en konfigurasjon fra 1C).

Etter dette engangskjøpet trenger du kun å abonnere på oppdateringer og betale for abonnementsfornyelse en gang i året, den såkalte. DET ER. Abonnementet er forresten veldig rimelig, omtrent det samme som to klientlisenser.

Totalt sett ser det hele veldig lønnsomt ut.

Den andre "velsmakende", men med en flue i salven, pluss, er tilstedeværelsen av ganske universelle konfigurasjoner fra 1C selv og fra partnere.

Om allsidighet

Begrepet "allsidighet" ble definert av én skole lærer ifølge NVP ved å bruke eksemplet med gassmasker: det er universelle som beskytter mot mange skadelige faktorer, men beskyttelsesgraden er gjennomsnittlig eller under gjennomsnittet, og det finnes også spesialiserte gassmasker som beskytter mot én støt, men med høy grad av beskyttelse. Til nå har jeg ikke kommet over en mer presis definisjon.
Og konfigurasjonene fra 1C er universelle. I praksis er det ingen oppgaver hvor de kan brukes fullt ut uten modifikasjoner. Likevel klarte 1C å lage et universelt sett med verktøy som dekker behovene til de fleste sektorer av moderne virksomhet.


Den tredje fordelen (og også med en flue i salven) er nettverket av franchisetakere og treningssentre, både for brukere og for nybegynnere programmerere og administratorer. God idé, men kvaliteten på implementeringen er veldig middelmådig. Imidlertid er utbredelsen og aggressiv markedsføring en av grunnene til den utbredte populariteten til 1C i vårt land (og dette er også grunnen til negativitet, misunnelse og hat).

En skje med tjære

Etter å ha beskrevet 1C i alle dens farger, ville det være urettferdig å ikke snakke om manglene, men de er der:

Ustabile utgivelser- Både i plattformen og i konfigurasjonene er det et stort antall feil og glitches. Og dette er i offisielle utgivelser. Før den offisielle versjonen utgis, utgis en "Evalueringsversjon". Det er også Tilbakemeldingå sende inn feilbeskrivelser slik at de kan godtas for retting. Men enten er ikke prøveversjonene spesielt populære, eller så har ikke 1C-selskapet selv tid til å behandle alle brevene innen utgivelsesdatoen, men det er et faktum. Hver gang du oppdaterer en plattform eller konfigurasjon, kan du snuble over de mest uventede "overraskelsene". 1C har allerede gjentatte ganger blitt bedt om å teste utviklingen mer grundig.

Franchisetaker (heretter referert til som franchisetakere). Ideelt sett burde dette, som planlagt, vært selskaper med kvalifiserte spesialister som kjente til de grunnleggende prinsippene for drift av konfigurasjoner og plattformer. De samme selskapene må selge plattformen, konfigurasjonen og støtten, litt "fullføre" universelle konfigurasjoner for å passe kundens krav (og til tider justere disse kravene), og prøve å minimalisere standardkonfigurasjonen. For ikke å komplisere fremtidige oppdateringer for mye. Men i virkeligheten er det motsatte sant.

Når du selger nye lisenser til en klient, mottar franchisetakere 50 % av kostnadene (minus inntektsskatt 13 % av disse 50 %). Samtidig trenger du ikke produsere noe selv, du trenger bare å overlevere nøklene til 1C til kjøperen.

Når de leverer tjenester, betaler ikke franchisetakerne noe til 1C-selskapet (bortsett fra medlemsavgifter), men de må betale den ansattes lønn. Staten må også bruke penger på skatt – Pensjonskassen og inntektsskatt.

Det viser seg at det er lønnsomt for både 1C og franchisetakere å selge lisenser og ulønnsomt for videre støtte. Samtidig, for at en klient skal kjøpe et program, må det i utgangspunktet være skreddersydd til hans behov. Og du må betale for arbeidet. Og her, for å spare penger, hentes studenter, lærlinger, ikke-spesialister inn, de kan få litt betalt, og noen ganger ikke betalt i det hele tatt, de trenger ikke engang å være registrert som ansatte (de vil jobbe uoffisielt , heldigvis er det noe å betale for). Resultatet er et stort antall salg med svært lav kvalitet. Forbedringer påvirker vanligvis viktige mekanismer og kompliserer fremtidige oppdateringer. Men på salgsstadiet er verken 1C eller franchisetakeren interessert i dette.

Jeg legger merke til at dette ikke er så mye de franske forretningsmennenes feil som 1C-selskapet. Med fokus på salg brydde hun seg ikke om støtte i det hele tatt (jeg snakker ikke om skoler nå, men om det faktum at det å gi støtte bør være fordelaktig for både franchisetakerselskapet selv og 1C).

Teknisk støtte. I forståelsen av 1C-selskapet er teknisk støtte å gi tilgang til "oppdatering"-delen for plattformen og konfigurasjoner, samt til informasjonsseksjoner som inneholder en beskrivelse av noen mekanismer og funksjoner ved 1C-drift. I tillegg, når du abonnerer, vil du motta en plate med spesifisert materiale. Det er også et forum (veldig magert sammenlignet med populære). Det er også mulighet for å sende e-post til 1C-selskapet - men ikke engang håp om at de vil svare på det (eller roboten vil svare "Brevet er sendt til utviklingsavdelingen." Når det gjelder utvikling, gir Yandex.Search og hjelpen innebygd i konfiguratoren mye større Brukerstøtte.

Epilog

Jeg byttet til 1C i 2008, og før det jobbet jeg i et selskap som utviklet sitt eget regnskapsprogram (Delphi 5, deretter Delphi 7). Først ble jeg kjent med 1C Enterprise 7.7-plattformen og ble slått av dens enkle rapportutvikling. Samtidig var det tydelig at rapporter ble generert mye lenger enn i tilsvarende mekanismer på Delphi, men regnskapsførerne var ikke spesielt bekymret for dette. Å vente noen minutter i stedet for noen sekunder er ikke noe problem. Tvert imot kan du male neglene der, drikke te eller diskutere siste nytt uten å stoppe fra jobb. Tross alt er de aller fleste regnskapsførere i disse dager kvinner.
Imidlertid var 7.7-grensesnittet svært begrenset, og settet med objekter var svært dårlig. Jeg lette etter alternativer. Ble kjent med eksterne komponenter, men før praktisk anvendelse de kom ikke pga sjefen bestemte at det var på tide for oss å bytte til 8.1 (ja, 8.2 fantes ikke ennå), og på denne plattformen fant jeg som programmerer alt jeg manglet før.
Foreløpig har jeg autoritet blant kolleger, samt kunder som kom til meg fra franchisetakere. De kommer nok aldri til å kontakte franskmennene igjen.


Generelt er jeg ganske fornøyd med å jobbe i 1C Enterprise 8-plattformen. Den er egnet for å løse de fleste regnskaps- og databaseproblemer.

Tagger: Legg til tagger

I virksomheten til enhver bedrift spiller riktig ledelse alltid en viktig rolle. etablert regnskap. Varer, penger, kontrakter, selskaper er tatt i betraktning -leverandører og selskaper -kunder, ansatte og mye mer – all denne informasjonen er viktig når virksomhetens arbeid for forsvarlig vurdering og planlegging av videre aktiviteter ness. I vår tid med informasjonsteknologi utføres selvfølgelig regnskap fra til
kraften til en datamaskin. Men for at dataregnskap skal være virkelig effektiv, én datamaskin er ikke nok, du trenger godt regnskap -analytisk program. Du kan føre poster i MS Excel-regneark, eller du kan i et spesialisert program designet for regnskap. Slikt om Det er skrevet mye, mer eller mindre effektivt. Spesielt sted blant dem
okkupere programvareprodukter selskapet "1C". Regnskapssystemet har vært ekstremt populært blant brukere i mange år. emne "1C:Enterprise 7.7". Fremgangen står imidlertid ikke stille innfødt - ny, 8 -Jeg er 1C:Enterprise-linjen, som i økende grad erstatter sin sin populære, men stadig mer utdaterte forgjenger. Har allerede endret seg tre versjoner av plattform 8 - 8.0, 8.1 og 8.2. Boken vår er dedikert til systemet "1C:Enterprise 8.2" er den nyeste og mest suksessrike versjonen av 8-linjen. x. Hva er "1C:Enterprise 8.2"? Dette er en moderne programvarepakke, kontrollere alle stadier av handelsomsetningen, fra produksjon eller mottak til var til lageret før det selges og bokføres. Hvori det er veldig viktig at 1C:Enterprise 8.2-systemet er åpent for modifikasjon og selvstendig utvikling, som lar deg oppnå stor fleksibilitet i organisasjonen for bedriftens regnskapssystem, siden de kan brukes som standard programvareløsninger fra selskapet "1C", og endre dem eller utvikle dem ny, skreddersydd for bedriftens spesifikasjoner.

Hva boken vil lære deg

Boken vil hjelpe leseren som bestemmer seg for å lære å programmere i systemet "1C:Enterprise", ta dine første skritt i dette spennende feltet. Co. hvor -da, da jeg selv ønsket å lære å programmere på 1C-språket, så overflod Det har ennå ikke vært noen bøker viet til dette systemet. Jeg søkte mye, rotet i mye litteratur rature, veldig ofte for kompleks for en nybegynner, generelt interessant formasjon ble hentet ut bit for bit, fra ulike kilder. Nå, når du skriver min egen bok, jeg prøver å gjøre den slik jeg lette etter når -da kanskje kanskje ikke for akademisk og uttømmende, men med vekt på klarhet, klarhet og praktiske eksempler - generelt ABC-ene for en nybegynner.

Etter å ha lest, vil leseren forstå de grunnleggende prinsippene for utvikling i systemet "1C:Enterprise 8.2", nemlig:
vil kunne installere 1C:Enterprise 8.2-systemet uavhengig og koble til Database;
bli kjent med syntaksen til programmeringsspråket 1C 8.2;
vil kunne endre og vedlikeholde 1C:Enterprise-konfigurasjoner;
bli kjent med datasammensetningssystemet og lære å utvikle rapporter;
lære å jobbe med en debugger;
bli kjent med det innebygde spørringsspråket;
lære å skrive eksterne rapporter og behandling;
bli kjent med administrasjonen av 1C-databasen, vil kunne tildele rettigheter selv brukerkontoer, opprette brukergrensesnitt, gjøre sikkerhetskopier Database.


Hvem er denne boken for?

Denne boken er for nybegynnere 1C -programmerere eller systembrukere "1C:Enterprise" som ønsker å utvide sin kunnskap om dette fantastiske system. Mest sannsynlig, for en erfaren 1C-programmerer er det lite men vel, selv om, som en oppslagsbok, et jukseark, en måte å organisere kunnskapen din på eller oppdatere å leve det som ble lært for lenge siden - hvem vet - kanskje det vil være nyttig for ham også.
Nettopp fordi nybegynnere skal lese denne boken, forsøkte forfatteren å presentere dine tanker klart og objektivt, umiddelbart gi eksempler på hva som ble sagt. jeg håper det opplæringsformen lar leseren raskt forstå de grunnleggende prinsippene utvikling og raskt begynne å øve. Boken inneholder et stort beløp antall illustrasjoner.


Hvordan bruke boken

Det er best å lese boken i rekkefølge, fra installasjonen beskrevet i kapittel1 .
I Kapittel 2de viktigste operatørene og språkkonstruksjonene til systemet presenteres "1C:Enterprise", deres praktiske verdi når du leser kapittelet er kanskje ikke det er tydelig, siden vi ganske enkelt viser resultatene av treningseksemplene på skjerm. Imidlertid allerede i kapittel 3vi vil møte direkte på konfigurasjonsobjektene walkie-talkies som kataloger, dokumenter og registre, og her er teorien innhentet V Kapittel 2, vil finne søknaden. Hvis leseren ikke planlegger å jobbe med språket forespørsler eller opprette rapporter, da kapittel 4han kan savne det, men han burde Husk at å lage rapporter er en av de vanligste oppgavene. Du kan også hoppe over kapittel5 , hvis leseren var fast overbevist om det han vil ikke måtte forholde seg til å tildele brukerrettigheter i systemet "1C: Enterprise". Imidlertid må programmereren kunne gjøre dette akkurat som han kan bruke være en feilsøker (se kapittel 6) .
Mitt råd til leseren: les alt materialet i boken sekvensielt. Tross alt er boka allerede var opprinnelig planlagt for å gi nybegynnerprogrammereren det mest nødvendige dempet. Det som er mindre viktig var allerede utelatt for ikke å rote og komplisere undervisningsmateriellet.
Jeg anbefaler også å lese en bok på en datamaskin med systemet installert "1C:Enterprise 8.2" og med en spesialtilkoblet konfigurasjon "for opplevelse tov", som du ikke har noe imot å ødelegge, analyser eksemplene gitt i praksis, lag de samme i treningskonfigurasjonen og se hvordan de fungerer. Eksperimenter og improviser mer. Hvis under analysen av eksemplet spørsmålet oppsto: "Hva vil skje hvis du ikke gjør det som i eksemplet, men slik?" - så gjør det og se hva som skjer. Eksempler markert "Hvordan gjøre det?"kan brukes som standard design for våre egne utviklinger.

Samizdat, 2012. - 750 s. Innhold:
Lekse
1. Innledning, regulatoriske spørsmål.
- systemarkitektur (logisk og fysisk)
- begrepene "Informasjonsbase" og "Konfigurasjon"
- hovedklasser av objekter
- opprette en ny tom database
- syntaks (eksempel): kataloger ansatte, kontraktører (hierarki) Leksjon 2.
- tegning - hva oppslagsboken består av (detaljer, skjema (og skjemamodul), layout, objektmodul)
- katalog Ansatte: Arbeid (boolesk), ElementForm, BeforeRecord() prosedyre - sjekke fødselsdatoposten
- en kort introduksjon til syntaksen (prosedyre, tilstand, kommentar, Rapport(), primitive typer String, Boolsk, Dato og grunnleggende handlinger med dem
- Managed Application Module (Velkommen) Leksjon 3.
- En katalog er en katalog med oppføringer
- hierarki av elementer og grupper og elementer (overordnede, ThisGroup-felt)
- MarkDeletion, Predefined (Referansemåleenheter med forhåndsdefinerte elementer)
- Eier (en-til-mange-forhold, kontraktskatalog)
- katalog Nomenklatur: hierarki, Tjeneste (boolsk), Måleenhet (Kataloger. Måleenheter, Verdi utfylt i stykker), salgspris (antall)
- Konstant organisasjonsnavn
- Implisitt typekonvertering (velkommen til leksjon 2) leksjon 4.
- arv av et tjenesteattributt fra en gruppe
- verditype Null og Udefinert
- FillProcessing() når du oppretter nye elementer, FillData, StandardProcessing
- Struktur, standard polstringskontrollmekanisme, FillCheck Processing()
- teori: arbeid med syntaksassistent, forskjeller og sammenhenger mellom konseptene DirectoryManager, DirectoryManager, DirectorySelection, DirectoryLink, DirectoryObject
- praksis: FindByAttributes(), Generell modul General Mechanisms.GetList of Birthday People()
DZ Legg til i gruppekatalogen og korriger mekanismen for å få en liste over bursdagsmennesker Leksjon 5.
- Form for Contractors katalogelementet, hovedelementer (gruppe, knapp, kommandoer), synliggjøring av skjemaet på klienten og på serveren
- rapport på listen over varer "Prisliste", layout, layoutparametere, områder, Format() Leksjon 6.
- Informasjonsregistre (ressurs, måling, frekvens, opptaksmodus), historikk over endringer
- Directory.Currencies
- Informasjonsregister.Valutakurser, nøkkelfelt, Latest Slice, GetLast(), Generelle mekanismer.GetCurrencyRates()
- Sammenstillingsdirektiver
- Valuta for gjensidig oppgjør i motparten
DZ-stillinger, bemanningslisteLeksjon 7.
- Lagre informasjon om egenskapene til et katalogelement
- Plan over typer kjennetegn: strukturer og skjema for bruk av kjennetegnsplanen
- Plan over typer egenskaper
- Directory.AdditionalPropertiesNomenclature
- Register over informasjon. Nomenklatur Eiendomsverdier
DZ-alternativerNomenklaturLeksjon 8.
- Dokumenter i 1C Enterprise-systemet (presentasjon, struktur, oppførsel)
- Dokument.kvittering (nummerering, bevegelser, logger)
- lage dokumentskjemaer, beregne beløpet
- Register over informasjon
- Motion Constructor, Processing(), Failure, Mode
- Dokument forbruksvarer, erstatning av salgspriser ved endring av nomenklaturleksjonen
9. Akkumulasjonsregistre
- register over akkumulering av gjenstående varer, kontering av mottaks- og utgiftsbilag i henhold til dette registeret.
- muligheter for å fjerne bevegelser
- teori om hva som skjer i akkumuleringsregistrene. Systemoppregning Type bevegelse Akkumulering
- akkumuleringsregistertabeller: Bevegelser, Saldoer
- resultatstyring
- Forespørsler: syntaks for forespørsel om beskrivelse
- Rapport om gjenværende produkt leksjon 10.
- Be om konsoll. spørringssyntaks
- Rapport om innkjøpte varer. Spørringsbygger med resultatbehandling
- Rapporter innkjøps-salgsforening. Mekanisme for å slå sammen tabeller i en spørring
- Slå sammen tabeller i en spørring. ISNULL Innkjøp-Salg_Tilkobling-rapport
- mekanisme for å generere ACS-rapporter, Konstruktør av datasammensetningsinnstillinger, utforming av felter Leksjon 11.
- Rapportelement gjenværende SKD, tabell, diagram, lagring av rapportalternativer
- listeskjemaer - også SKD, skjemainnstillinger, dynamisk liste
- utvalgsskjema for nomenklaturkatalogen, lenker til utvalgsparametere for attributter, overføring av en parameter til utvalgsskjemaet
- Behandle bokføringen() av ​​dokumentet Forbruksvarer, ta hensyn til varebalansen, vise en melding til brukeren Leksjon
12. Flytting av varer gjennom varehus
- katalog varehus, register over akkumulering av saldoer i varehus
- flytting av Kvitteringsdokumentet i henhold til BalancesInWarehouses-registeret
- dokumentskjema Kvittering (undermeny, grupper)
- WarehouseRemains-rapport (datasetttilkoblinger, beregnede felt)
- Forbruksvarer: lagersaldo, batchforespørselsmekanisme Leksjon
13. Grupperegnskap
- teori om metoder for regnskapsføring av varepartier LIFO, FIFO
- Batchmåling i Vareresterregisteret
- flytting etter partier av kvittering
- Erklæring om gjenværende varesendinger
- Gruppering av mengde og kostnad i ACS
- PO-RESULTATER, grupperingsnivåer
- Behandling av utgifter under hensyntagen til avskrivning per batch, omgå forespørselsresultat Leksjon
14. Sequences.Turn Akkumuleringsregister
- Sekvenskostnad for massevis av varer
- Feil salgsrapport, salgsakkumuleringsregister, UseVItotakh-eiendom
- gjennomføre utgifter i henhold til Salgsregisteret
- Rapporter som det skal
- Aggregater i akkumuleringsregistre Leksjon
15. Administrert grensesnitt
- Delsystemer, kommandogrensesnitt, bilder
- Funksjonelle alternativer, lager- og valutaregnskap, funksjonelle opsjonsparametere
- Roller, bruker, privilegert modul
- Tilpasse listen og dokumentskjemaet (gruppering av dokumenter, sider) Leksjon 16.
- Form for konstanter, Generelle kommandoer Regnskapsparametre, Kommando Skriv ut i forbruksvarer, vis dem, skriv ut faktura
- Gjensidige oppgjør, akkumuleringsregister, postering av dokumenter på det
- Rapport om gjensidig oppgjør, redigering av egendefinerte felt
- egenskaper til motparter (Plan of Types of Characteristics, Directory, Akkumulasjonsregister), deres bruk i rapporten, sette opp egenskaper i SKDUrok
17. Forretningsprosesser
- Utførers oppgaver, informasjonsregister Adressering
- Sesjonsparametere, øktmodul
- forretningsprosess Salg med betalingskontroll, rutekart leksjon 18.
- Distribuerte databaser, utveksling mellom dem, utvekslingsplan
- utgivelse og oppdatering av konfigurasjonen, opprettelse av et leveringssett
- oppdatering, avstøtte konfigurasjon Leksjon 19.
- Kontoplan, forhåndsdefinerte kontoer
- regnskapsregister Leder
- bilag DriftsKonto, kontering iht regnskapsregisteret
- liste over transaksjoner i listeform
- SALT-rapport, regnskapsregistertabeller Leksjon 20.
- Plan over typer av kjennetegn, forbindelse med kontoplanen, underkonto av forhåndsdefinerte kontoer
- bilag Kvittering, flytting iht regnskapsregisteret med underkonto
- Rapport om lagersaldo, parametere på subconto
- dokumentere ConsumablesLesson
21. Kvantitativt regnskap
- regnskapstegn Mengde i kontoplanen, ressursbalanse
- bevegelse etter mengde i dokumentet Kvittering, Utgifter
- ferdigstillelse av inventar- og materialrapporten, regnskapsregistertabell Leksjon 22.
- korrekt kostnadsberegning
- bytte formelement
- tilkobling av registerressursen med funksjonen for underkontoregnskap
- beregning av kostnad i forbruksmateriellLeksjon
23. Valutaregnskap
- katalog over valutaer, register over informasjon Valutakurser, konverteringsfunksjon fra valuta til valuta
- regnskapsattributt Valuta i kontoplanen, tilknytning til regnskapsregisteret
- bevegelse av kvitteringen i henhold til valutaregnskap
- rapport Analyse av valutabalanser leksjon
24. Avsluttende leksjon om regnskap. regnskap
- tegn på subconto regnskap OnlyRevolutions
- forskjell i regnskapsregistertabeller
- ProfitLesson rapport
25. Beregningsregistre. Planer for beregningstyper.
- Beregning av ansattes lønn + bonus.
- Dokumentere "innføring av vilkårlige periodiseringer".
- Plan over beregningstyper "Personeringer".
- "Beregn"-prosedyren i Generelle moduler, som er ansvarlig for å beregne bonuser
- Legg til. objekt (Directories.Employees"). Leksjon 26.
- Optimalisering av beregningsprosedyren ved å flytte forespørselen utenfor syklusen.
- Automatisering av periodiseringsvalg ved å legge til en parameter til periodiseringen i form av en overføring (fast eller prosentvis).
- Kalender over virkedager i form av et informasjonsregister (utfylling av kalenderen).
- Legge til periodiseringsberegninger per dag.
- Legge til en beregningsmetode avhengig av normen for dager til den faktiske indikatoren.
- Kostnader fra periodiseringer (fravær etc.).
- Rapport (Gantt-diagram)
- Rekord Storno

Ny side 2

Dette siste time fra serien "Learning 1C 8.2", publisert i gratisseksjonen. Fra neste gang vil publiseringen av leksjoner fortsette i . I gratisdelen kan noen ganger enkelte individuelle artikler om 1C 8.2 publiseres.

Vi har utforsket de funksjonelle alternativene. Men eksemplet vi laget i forrige leksjon har en betydelig ulempe: å slå på eller av grensesnittet brukes bare hvis vi går ut av programmet og logger på igjen. Upraktisk. Derfor vil vi i dag rette opp denne mangelen.

Så la oss først lage en form for konstanter*:

La oss nå gå ned til programmering. La oss åpne skjemaet for redigering og bytte til modulen*:

Først vil vi se en tom plass for å legge inn programtekst. Vi må opprette en behandler for "AfterWrite"*-hendelsen:

Vi vil bare sette inn én kommando i den: UpdateInterface()* :

Ikke glem å tildele tillatelser til skjemakonstantene:

La oss nå teste og sørge for at når vi endrer en konstant gjennom konstantskjemaet, blir grensesnittet vårt umiddelbart oppdatert:

Vær oppmerksom på at hvis du endrer konstanten gjennom alternativet "Prissetting etter pristyper", vil ikke oppdateringen skje. Grensesnittet vårt oppdateres umiddelbart kun i form av konstanter. Og gjennom "Prissetting etter pristyper" skjer oppdateringen fortsatt bare gjennom "logg ut og logg på igjen". Så nå kan vi ganske enkelt dumt utvide denne konstanten fra grensesnittet, og bare la skjemaet være igjen. Forresten, hvis vi ønsker det, kan vi lage flere former for konstanter, både for hver konstant separat, og en form for flere konstanter samtidig.

En av de mest populære i søkemotor er forespørselen "1C 8.2 program for dummies". Hva forårsaket denne interessen? La oss finne ut av det.

Hvorfor er det å lære 1C et problem for noen?

Til tross for all innsatsen til 1C-utviklerne, er de ganske vanskelige for en utrent bruker. Dette skyldes vanligvis kompleksiteten til fagområdet.

Hvordan kan du for eksempel forstå et regnskapsprogram uten å kunne regnskap? Det stemmer, ingen måte.

La oss vurdere de beste opplæringene i henhold til 1C Enterprise 8.2 og 8.3-programmene for dummies: materialer, videoer, leksjoner, bøker, lyd, opplæring.

Først av alt må du finne ut hva en "tekanne" trenger for å studere i 1C 8.3? Det er et stort utvalg av 1C-programmer som varierer betydelig. Eller kanskje du vil lære 1C-programmering? Enkelt!

Bøker om 1C-regnskap

Gratis videokurs om 1C Accounting

Det er et stort antall betalte videoopplæringer og instruksjoner om 1C-programmer på Internett, det er ikke vanskelig å finne dem. Det er mye vanskeligere å finne gratis materialer av høy kvalitet. La oss ta en titt på dem.

Vårt utvalg av videoer

Du kan se våre videoopplæringer for nybegynnere i 1C i en spesiell spilleliste på Youtube. Nødvendigvis abonner på vår YouTube-kanal , vi slipper jevnlig nye videoer!

Videokurs fra torrents

Hvis du vet hvordan du laster ned filer fra torrent-sporere, kan du enkelt finne mye nyttig informasjon.

Videokurs på youtube.com

Hvis du skriver "1C-regnskap" i søket på denne siden, vil du bli overrasket over mengden materiale på 1C-programmet for dummies.

Betalte kurs online/offline

Blant kursene og treningene kan jeg fremheve nettkursene 1C - profbuh8.ru. Ved å følge lenken kan du laste ned mer enn 200 videoleksjoner fra ProfBukh8-selskapet gratis for gjennomgang.

Offline-kurs inkluderer kurs fra 1C-selskapet selv (www.1c-uc3.ru) og kurs fra spesialistsenteret (www.specialist.ru)

Lager- og handelsregnskap i 1C Enterprise programmet

Lagerregnskap er vanligvis mye enklere for dødelige mennesker som deg og meg. Her trenger du ikke kjenne til kontoplaner, Talmuds som PBU 18/02 osv.

Lagerregnskap er ikke regulert på noen måte, metodene og måtene å vedlikeholde det på er ikke begrenset på noen måte.

Bøker om handel i 1C

1C:Enterprise 8. Ledelse av handelsoperasjoner i spørsmål og svar.

En utmerket bok som inneholder flere hundre saker fra det virkelige liv (eksempler) for å studere 1C-programmet. Denne boken passer både for nybegynnere i 1C-programmet og avanserte brukere. Boken ble utgitt for både programversjon 10.3 og 11 utgaver.

1 C Enterprise 8″. Konfigurasjon "Trade Management" utgave 11

Boken som følger med "" programmet er veldig nyttig og relevant materiale.

Gratis videokurs om 1C Trade Management

    • Nettstedet teachvideo.ru http://www.teachvideo.ru/catalog/24
    • Videokurs fra torrents
    • Kurs på youtube.com

Eksempel - video på YouTube, varer som kommer til lageret:

Betalt handelskurs

Betalte kurs for 1C-programvare lagerregnskap for nybegynnere og dummies er like:

  • Blant kursene og treningene kan jeg fremheve nettkurs - profbuh8.ru, her er en lenke til en prøvekjøring av kurset deres på 1C Commerce
  • Offline-kurs inkluderer kurs fra 1C-selskapet selv (www.1c-uc3.ru) og kurs fra spesialistsenteret (www.specialist.ru)

Programmering 1C 8 for dummies

Den mest interessante og vanskelige delen er for nybegynnere. Konfigurering av 1C 8.3 og 8.2 krever som regel ikke fordypning av fagområder - regnskap, økonomi, etc. derimot generell idé Må ha.

Bøker for nybegynnere programmerere

Et stort antall bøker har blitt skrevet for å lære programmering for dummies, men jeg anbefaler ikke å lese dem alle.

Tidligere vurderte jeg mest nyttige bøker for å lære programmering til nybegynnere, kan du gjøre deg kjent med dem på siden.

Videoopplæring for programmerere

I et nøtteskall:

  • gode gratiskurs er Pavel Chistov sine kurs;
  • Blant de betalte når det gjelder pris/kvalitetsforhold, kan vi fremheve kursene til selskapet "Fair Start" - ved å følge lenken kan du få mer enn 30 gratis demotimer. Det mest verdifulle med disse kursene er at lærerne ikke bare gir programmeringskunnskap, men også hjelper til med fremtidig ansettelse.