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

Hvis du skriver i SI
Vær mindst tre gange halt
De siger om dette:
"Han er en sej programmør!"
(Fidosh-sange - "What is Suxxx and What is Rulezzz")

Forord

Grunden til at skrive denne artikel var den negative holdning fagligt fællesskab til den angivne platform og programmører.

Som programmør, der valgte 1C, anser jeg denne udtalelse for ubegrundet. 1C-platformen er langt fra ideel, men efter min mening er det det bedste, og vigtigst af alt, et indenlandsk produkt!

Og endnu mere er det utilstrækkeligt at bedømme en programmørs evner ud fra det sprog, han skriver på.

I denne artikel vil jeg beskrive de fordele, som jeg fandt for mig selv i programmet. Artiklen vil vise sig at være næsten en annonce, så her er en ansvarsfraskrivelse:

  • Jeg har ikke noget direkte forhold til 1C-virksomheden;
  • Denne artikel er ikke bestilt og er udelukkende skrevet på frivillig basis;
  • I nogle tilfælde udtrykkes personlige meninger, som måske ikke er sammenfaldende...;
  • Hele artiklen, med undtagelse af prologen, er forfatterens, enhver tilfældighed er en ulykke;
  • Vi vil tale om 1C Enterprise 8.2-platformen (i øjeblikket er version 8.3 aktuel, men jeg har ikke studeret den endnu - der er meget arbejde på 1C 8.2). Det meste af det, der bliver sagt, gælder dog både for 8.3-platformen og tidligere versioner, og noget af det gælder for version 7.7.
Så lad os komme i gang.

Hvad taler vi om?

Platform 1C Enterprise 8 er:
  • Det fungerer i to versioner - fil og server (tre-links) - hver har sine egne fordele og ulemper;
  • Et uafhængigt regnskabssystem, der er nemt at installere og konfigurere;
  • Et kraftfuldt økosystem for programmører med alle de nødvendige objekter og værktøjer;
  • God ergonomisk grænseflade;
  • Relativt billig løsning til erhvervslivet;
  • Franchisetager netværk, grunduddannelse;
  • En stærk base af udvikling og viden, der er akkumuleret gennem årene;
  • Til tider en problematisk platform for systemadministratorer;
  • Ikke den hurtigste udførelse af algoritmer (selvom ikke den langsomste) - dette er en hyldest til informationsindholdet (i tilfælde af fejl er linjenummeret og dets indhold angivet);
  • Der er ingen klasser i programmeringssproget (arv, indkapsling, polymorfi), ingen anonyme funktioner og andre moderne funktioner. Men for at løse de fleste problemer er dette ikke nødvendigt!
For at organisere regnskabet er én platform ikke nok. Platformen er en slags "motor", et mellemled mellem programmet og databasen. Programmer til denne "motor" kaldes konfigurationer. Konfigurationen beskriver strukturen af ​​databasen i form af objekter, proceduretekster gemt i separate moduler (der er mange moduler, både hvert objekt og systemet som helhed har dem, og der er også fælles moduler). Platformen repræsenterer et abstraktionsniveau, hvor direkte appel er ikke påkrævet til en database, og giver dig også mulighed for at abstrahere fra operativ system og databasetype.

Fil- og serverdatabase

Platformen består af flere dele og kan fungere i fil- eller serverversion.

I filversionen er hele databasen indeholdt i én fil (med filtypenavnet "1cd") - platformen er installeret på hver computer og læser/skriver direkte til databasen.

Fordele ved filindstillingen - lav pris og nem implementering.

Ulemper - filstruktur "1cd" er lukket, nej samlet system, interagerer med databasen. Som følge heraf er det svært at bruge hvornår stort antal brugere (prøvet for 20+ brugere - det virker). Derudover, når databasestørrelsen er ca. 15 GB (eller mere), kan dynamiske opdateringer mislykkes. At løse sådanne fejl er en vanskelig opgave, og værktøjet til at reparere databasen reparerer ikke altid effektivt, og nogle gange ødelægger det endda databasen.

Der er en løsning - først og fremmest opsætning af daglige database backups. Derudover udgiver håndværkere ikke kun 1cd-filformatet, men har også udviklet værktøjer til at arbejde med sådanne filer og en række metoder til at løse sådanne problemer.

I serverversionen bruger platformen til lagring af databasen en SQL-server (normalt MS SQL, men fra 8.2.14 - du kan bruge nogle andre, for eksempel Firebird PostgreSQL, IBM DB2, Oracle Database), og selve platformen bruger en tre-lags arkitektur:

Noget af koden udføres på klienten, noget på serveren. I dette tilfælde er det kun serveren, der interagerer med databasen. På samme tid, fra version 8.2, ud over standarddriftstilstanden, som blev kaldt "tyk klient" -tilstand, dukkede to nye driftstilstande op - "tynd klient" og "webklient"; "kontrollerede former" dukkede også op, udseende som er bygget i form af et abstrakt træ af elementer. Programmering til administrerede formularer og en tre-lags arkitektur er vanskeligere, men dette giver dig mulighed for at overføre næsten hele belastningen til serveren (det vil sige, du kan købe en kraftfuld server og hundrede af de billigste kontorcomputere).

Fordele ved platformen: "tre-lags" - belastningsfordeling, åbenhed af databasen (officielt afviser 1C ansvaret for enhver datakorruption, hvis der blev foretaget ændringer i SQL-databasen på anden måde end via deres platform eller server, men dette stopper få mennesker), mangel på restriktioner.

Ulemper - pris: du skal købe separat klientlicenser til hver klientcomputer, separat - en licens til 1C-serveren, separat en licens til SQL-serveren, hvis du ikke bruger den gratis. Nogle gange opstår der også vanskeligheder i driften af ​​databasen. De løses meget hurtigere på grund af tilgængeligheden af ​​data og tilgængeligheden af ​​eksterne værktøjer til at arbejde med databasen. Derudover bør du i dette tilfælde lave en sikkerhedskopi af databasen.

En fælles fordel er konfigurationskodens alsidighed: med nogle undtagelser vil en konfiguration udviklet til en fildatabase fungere på en serverdatabase og omvendt. Et eksempel på en undtagelse er at overføre en mutbar værdi til serveren eller fra serveren til klienten (i filversionen vil dette ikke forårsage undtagelser, men i klient-serverversionen er det forbudt).

Et andet plus: platformen er installeret meget simpelt, noget i stil med dette: "Next-Next-Next-Ok", ingen finjustering eller installation af komponenter er påkrævet.

Til serverversionen er der et par indstillinger mere, men alt gøres i installationsdialogen og kræver ikke at skrive noget i separate filer. Det kan være lidt svært at installere en SQL-server, fordi... i dette tilfælde er der mange flere indstillinger (og for at finjustere det skal du studere yderligere instruktioner). Men det gælder ikke problemerne med 1C-platformen. Desuden, hvis du installerer for eksempel en MS SQL-server med alle standardindstillingerne, så vil 1C være i stand til at arbejde med den.

Det er mere end regnskab

Når det kommer til 1C platformen, præsenteres den først og fremmest som et program til regnskab. Dette er faktisk det mest populære brugsområde for 1C-platformen. Men 1C lever ikke af regnskab alene!
De, der kender til platformen, siger, at det er et regnskabssystem (regnskabsautomatisering). Dette er tættere på sandheden - der er mange konfigurationer, både fra 1C og fra tredjepartsudviklere. Nogle er kun indirekte relateret til regnskab, nogle er slet ikke relateret.

Generelt er det mere korrekt at forestille sig 1C-platformen som en skal til objektmodellering af en database, interface og programmering i 1C-sproget. Den eneste begrænsning er, at der for hver konfiguration oprettes dens egen database, og kun én (det er dog muligt yderligere at forbinde eksterne datakilder, dvs. andre databaser, som en del af konfigurationen).

Økosystem for programmører

Lad os nu overveje 1C-sproget og -platformen fra en udviklers synspunkt:
Database objektmodel. For det første arbejder vi ikke direkte med databaser. Det er ikke nødvendigt. For nemheds skyld præsenteres alle data i form af sammenkoblede objekter (mapper, dokumenter, informationsregistre, akkumuleringsregistre, ...), og platformen "trækker" automatisk disse data fra databasen.
For eksempel, forudsat at variablen "Nomenclature Element" indeholder en reference til bibliotekselementet "Nomenclature", har "Nomenclature"-biblioteket "Hovedleverandør"-attributten af ​​typen "Directory.Counterparties" og "Counterparties"-biblioteket har attributten "Fuldt navn" og derefter koden:

Nomenklaturelement. Fuldt navn
... vil få 1C-platformen til, ved hjælp af interne mekanismer, at finde en post i tabellen svarende til mappen "Modparter" efter identifikator fra feltet "Hovedleverandør" for varen og returnere værdierne af feltet svarende til feltet "Fuldt navn" i objektmodellen i biblioteket "Modparter".

Der kan være mange sådanne dereferencer - systemet kan håndtere det. Den eneste advarsel er, at systemet ikke ved, hvordan man optimerer dereferencer, så du bør stræbe efter at flytte dem uden for alle slags loops.

Ud over objekter, der beskriver data, er der et stort antal systemobjekter - til en række forskellige funktioner. Jeg vil fremhæve nogle af dem:

Værdi butikker
Array- et objekt, der gemmer et sæt data, i modsætning til den klassiske idé om arrays. Dette kan være data forskellige typer(nummer, streng, link, andet objekt). Den har minimal funktionalitet og bruges hovedsageligt som en midlertidig beholder til at overføre værdier mellem andre butikker.

Listeværdier- et objekt primært til at arbejde med brugergrænsefladen. Ud over data kan det for hvert element også indeholde en repræsentation, en flagattribut og et billede (ikon). Den har også metoderne "SelectElement()" og "MarkElements()" - når den kaldes, får brugeren vist en grænsefladedialog (hvilket er praktisk - det er ikke nødvendigt at oprette denne dialog i konfigurationen).

Struktur Og Korrespondance- lagring af parrede værdier "KeyIValue". I strukturen er "Nøgle" en streng, der følger reglerne for navngivning af variable i 1C (ingen mellemrum, starter ikke med et tal, består kun af bogstaver, tal og en understregning). Ifølge - "Nøgle" er enhver værdi. Den hurtigste søgning efter objekter er i overensstemmelse (hurtigere end i en matrix og en indekseret tabel med værdier).

Værdioversigt- et meget praktisk og ret hurtigt objekt til lagring og behandling af data. Kolonner i værditabellen kan tilføjes og slettes, uanset antallet af poster. I dette tilfælde går dataene i rækkerne ikke tabt (eller kun dataene fra cellerne, der svarer til de slettede kolonner, slettes). Den har også metoden "SelectRow()", som kalder rækkevalgsdialogen. Der er indekser.

Værdiernes træ- et objekt, der repræsenterer hierarkiske data. Indeholder kolonner. Sættet af kolonner er det samme for alle poster på alle niveauer. At fjerne/tilføje kolonner i værditræet er lige så nemt som i værditabellen. Den har også metoden "SelectRow()".

Grænsefladeobjekter og objekter til arbejde med forskellige data TextDocument, SpreadsheetDocument, Webbrowser, ReadFile, WriteFile, ReadZIPFile, WriteZIPFile, ReadXML, WriteXML, HTTPRequest og mange flere objekter, og konfiguratoren har indbygget hjælp til alt. Formålet med de listede objekter fremgår tydeligt af deres navne, og alt dette er umiddelbart tilgængeligt på platformen.

Separat skal det bemærkes, at der er et "Metadata" objekt - ved hjælp af hvilket du i et programmeringssprog kan studere strukturen af ​​dataene såvel som hvert link eller objekt for en mappe, et dokument, et diagram over regnskaber mv. der er en metode "Metadata()" - giver en beskrivelse af denne opslagsbog/dokument/kontoplan/osv. i databasen (hvilke detaljer, tabeldele er tilgængelige, længde på kode/nummer osv.). Det er ofte meget praktisk.

Og vi bør også separat nævne objekterne: "Query", "Query Constructor", "Query Builder", "Report Builder", "Data Composition Schema". Denne familie implementerer et sæt objekter til at arbejde med det kraftfulde 1C-forespørgselssprog.

Forespørgselssprog. Forespørgsler i 1C bruges kun til at opnå et udsnit af data med praktisk udvælgelse, sortering og gruppering. Til en første tilnærmelse er dette "SELECT"-operatoren fra SQL oversat til russisk, men 1C-forespørgselssproget har også funktionalitet, der mangler i SQL, nemlig:

  • Arbejde med 1C-konfigurationsobjekter i stedet for SQL-tabeller;
  • Arbejde med links i stedet for SQL identifikator felter;
  • Understøttelse af dereferencing, svarende til hvordan det gøres i kode;
  • Udvælgelse ved optagelse i en gruppe (til telefonbøger);
  • Hierarkiske totaler;
  • Midlertidige tabeller og indlejrede forespørgsler (SELECT * FROM (SELECT ...)));
  • Query Builder - praktisk, objektbaseret, automatisk optimering af forespørgselsteksten til hurtig læsning, som kan parse anmodningsteksten (parse anmodningsteksten og bygge en objektmodel ud fra den);
  • Rapportbyggeren er en tilføjelse til forespørgselsmekanismen, som tilføjer funktionaliteten til automatisk formatering af resultater, samt fleksibel konfiguration af selve forespørgslen i "Enterprise"-tilstand (dvs. af brugeren). Som et resultat er der dukket en universel rapport op i standard 1C platforme, hvor brugeren kan konfigurere hvilke data og i hvilken rækkefølge han vil se, hvad der er i rækkerne og hvad der er i kolonnerne, og selve rapporten genererer outputtabellen ;
  • DCS (Data Composition System) er den næste model, der inkorporerer funktionaliteten af ​​en universel rapport og supplerer den med nogle funktioner til behandling af resultater.

Programmeringssprog
Med hensyn til syntaks ligner 1C-sproget "russisk Pascal", men adskiller sig fra "Pascal" i mindre strenghed og fraværet af nogle konstruktioner:

  • Der er ingen grund til at deklarere variabler - du kan initialisere dem direkte i modulteksten;
  • Der er ingen streng indtastning af variabler. Systemet har værdityper, men der er ingen strenge indtastningsregler for variabler. Variablen, der lagrede linket, kan efter et par linjer kode allerede lagre et tal eller en streng;
  • Du kan tilføje variabler med værdier forskellige typer, i dette tilfælde vil typen af ​​resultatet være den samme som typen af ​​den første variabel, for eksempel:
    k = "25"+1; // k = "251", ikke 26
  • Variabler med værdier af forskellige typer kan sammenlignes for lighed eller ulighed (men ikke for mere eller mindre, dette vil forårsage en undtagelse) - naturligvis er sådanne variabler ikke ens;
  • Der er funktioner og procedurer, det er tilladt at bruge rekursion (med en begrænsning på dybden af ​​rekursion);
  • Når du angiver en funktion eller procedure uden parametre, er det stadig nødvendigt at angive tomme parenteser i slutningen: like this();
  • Der er moduler: hvert bibliotek og dokument har flere af dem, derudover registre, rapporter og behandling og hver formular har moduler, og også som en del af konfigurationen er det muligt at oprette fælles moduler;
  • Ingen klasser, arv, indkapsling, polymorfi;
  • En funktion kan ikke videregives som reference, der er ingen anonyme funktioner;
  • Der er ingen omvendt loop (for i:=5 ned til 1 do), men det er virkelig nødvendigt, når du sletter poster. Vi nøjes med en lidt længere indgang gennem "Bye"-cyklussen.

Værktøjer

  • 1C-platformen har mulighed for at uploade og downloade en konfiguration, sammenligne en konfiguration med en anden konfiguration og delvist downloade ændringer;
  • Det er muligt at downloade modultekster til deres batchbehandling og indlæs tilbage i konfigurationen;
  • Hvis konfigurationen understøttes (alle konfigurationer fra 1C understøttes oprindeligt), så kan du altid foretage en sammenligning og se, hvad der er blevet ændret af tredjepartsudviklere eller lokale specialister;
  • Det er også muligt at uploade/downloade hele databasen (sammen med data);
  • Til samarbejde Et konfigurationslager bruges over én konfiguration;
  • Der er også en række regler for at lave ændringer i standardkonfigurationer. Der er endda et dokument fra 1C, der beskriver metoder og standarder til at ændre standardkonfigurationer (og eventuelle andre).

Generelt indtryk
1C-sproget kombinerer klarheden i Pascal-sprogtekster med letsindigheden ved at arbejde med BASIC sprogvariabler. Den mangler en række iboende funktioner moderne sprog programmering, men du kan undvære dem. Derudover har 1C platformen en kraftig skraldeopsamler, dvs. det er f.eks. ikke nødvendigt at rydde tabeller efter brug eller slette dem.

Interface 1C Enterprise 8.2

1C-virksomheden var særlig opmærksom på grænsefladen af ​​sit program. Først og fremmest er dette farvepaletten. Hun er smuk! Programvinduerne kan genkendes selv langvejs fra, og over mange års arbejde fremkalder de ikke fjendtlige følelser, tværtimod vil jeg have, at alle programmer skal være lige så fede.
Samtidig er platformens stil meget streng, uden dikkedarer eller andre dikkedarer. Samtidig er der meget nyttige funktioner, for eksempel at huske størrelsen af ​​vinduer (størrelserne huskes kun, når de ændres af brugeren, og samtidig kan du altid nulstille brugerindstillingerne - til standardstørrelser og -positioner ved at trykke på Alt+Shift+R).
8.2-webklientgrænsefladen forårsager en række klager, men det ser ud til, at 8.3-platformen bringer en ny redesignet grænseflade med sig - "Taxi".

Priser, udbud og efterspørgsel, franchising

Den mest "lækre" fordel ved 1C platformen er dens pris. Dette gælder især nu, under en krise. 1C er jo fuldstændig vores indenlandske produkt. Og den sælges til vores træ. Sådanne løsninger fra en udenlandsk producent vil koste mange penge. Og licenser til 1C er ganske rimelige.

Derudover har 1C en interessant licenspolitik. Selve licenserne og konfigurationerne købes én gang. Samtidig købes licenser til arbejdsplads og til serveren, men ikke til databaserne, og ikke engang til forbindelserne, dvs. under én licens kan den samme bruger starte et ubegrænset antal 1C-sessioner og arbejde med et vilkårligt antal databaser. Det samme gælder for konfigurationer: ved at købe en licens til en konfiguration kan en organisation bruge den til at oprette et hvilket som helst antal databaser, og det er desuden officielt tilladt at bruge dele af koden og objekterne til denne konfiguration, når de udvikler deres egne konfigurationer (i; i dette tilfælde kan deres egne konfigurationer sælges/overføres - med den betingelse, at For at bruge dem skal du købe en konfiguration fra 1C).

Efter dette engangskøb skal du kun abonnere på opdateringer og betale for abonnementsfornyelse én gang om året, det såkaldte. ITS. Abonnementet er i øvrigt meget billigt, omtrent det samme som to klientlicenser.

Alt i alt ser det meget rentabelt ud.

Den anden "velsmagende", men med en flue i salven, plus, er tilstedeværelsen af ​​ret universelle konfigurationer fra 1C selv og fra partnere.

Om alsidighed

Begrebet "alsidighed" blev defineret af én skole lærer ifølge NVP ved at bruge eksemplet med gasmasker: der er universelle, der beskytter mod mange skadelige faktorer, men beskyttelsesgraden er gennemsnitlig eller under middel, og der findes også specialiserede gasmasker, der beskytter mod én påvirkning, men med en høj grad af beskyttelse. Indtil nu er jeg ikke stødt på en mere præcis definition.
Og konfigurationerne fra 1C er universelle. I praksis er der ingen opgaver, hvor de kunne bruges fuldt ud uden ændringer. Ikke desto mindre lykkedes det 1C at skabe et universelt sæt værktøjer, der dækker behovene i de fleste sektorer af moderne virksomhed.


Den tredje fordel (og også med en flue i salven) er netværket af franchisetagere og træningscentre, både for brugere og for nybegyndere programmører og administratorer. God ide, men kvaliteten af ​​dens implementering er meget middelmådig. Imidlertid er udbredelsen og aggressiv markedsføring en af ​​årsagerne til den udbredte popularitet af 1C i vores land (og dette er også årsagen til negativitet, misundelse og had).

En ske tjære

Efter at have beskrevet 1C i alle dens farver, ville det være uretfærdigt ikke at tale om dets mangler, men de er der:

Ustabile udgivelser- både i platformen og i konfigurationerne er der et stort antal fejl og glitches. Og dette er i officielle udgivelser. Før den officielle version frigives, frigives en "Evalueringsversion". Der er også Feedback at indsende fejlbeskrivelser, så de kan accepteres til rettelse. Men enten er prøveversionerne ikke særligt populære, eller også har 1C-virksomheden ikke selv tid til at behandle alle brevene inden udgivelsesdatoen, men det er en kendsgerning. Hver gang du opdaterer en platform eller konfiguration, kan du falde over de mest uventede "overraskelser". 1C er allerede gentagne gange blevet opfordret til at teste sin udvikling mere grundigt.

Franchisetager (i det følgende benævnt franchisetagere). Ideelt set skulle disse som planlagt have været virksomheder med kvalificerede specialister, der kendte de grundlæggende principper for drift af konfigurationer og platforme. De samme virksomheder ville være nødt til at sælge platformen, konfigurationen og supporten, lidt "afslutte" universelle konfigurationer, så de passer til kundens krav (og til tider justere disse krav), og forsøge minimalt at ændre standardkonfigurationen. For ikke at komplicere fremtidige opdateringer for meget. Men i virkeligheden er det modsatte sandt.

Ved salg af nye licenser til en kunde modtager franchisetagere 50 % af deres omkostninger (minus indkomstskat 13% af disse 50%. Samtidig skal du ikke selv producere noget, du skal blot aflevere nøglerne til 1C til køberen.

Ved levering af tjenester betaler franchisetagere ikke 1C-virksomheden noget (bortset fra medlemsgebyrer), men de skal betale medarbejderens løn. Staten skal også bruge penge på skat - Pensionskassen og indkomstskat.

Det viser sig, at det er rentabelt for både 1C og franchisetagere at sælge licenser og urentabelt for yderligere support. Samtidig, for at en kunde kan købe et program, skal det i første omgang være skræddersyet til hans krav. Og du skal betale for arbejdet. Og her, for at spare penge, hentes elever, lærlinge, ikke-specialister ind, de kan betales lidt og nogle gange slet ikke betales, de behøver ikke engang at være registreret som personale (de vil arbejde uofficielt , heldigvis er der noget at betale for). Resultatet er et stort antal salg med meget lav kvalitet. Forbedringer påvirker normalt vigtige mekanismer og komplicerer fremtidige opdateringer. Men på salgsstadiet er hverken 1C eller franchisetageren interesseret i dette.

Jeg bemærker, at dette ikke så meget er de franske forretningsmænds skyld, men 1C-virksomhedens skyld. Med fokus på salg var hun slet ikke ligeglad med support (jeg taler nu ikke om skoler, men om det faktum, at det at yde support skulle være gavnligt for både franchisetagervirksomheden selv og 1C).

Teknisk support. I forståelsen af ​​1C-virksomheden er teknisk support levering af adgang til "opdateringssektionen" for platformen og konfigurationer, samt til informationssektioner, der indeholder en beskrivelse af nogle mekanismer og funktioner i 1C-drift. Derudover vil du, når du abonnerer, modtage en disk med de angivne materialer. Der er også et forum (meget sparsomt i forhold til populære). Der er også mulighed for at sende e-mail til 1C-virksomheden - men ikke engang i håb om, at de vil svare på det (eller robotten vil svare "Brevet er sendt til udviklingsafdelingen." Med hensyn til udvikling giver Yandex.Search og den indbyggede hjælp i konfiguratoren meget større support.

Epilog

Jeg skiftede til 1C i 2008, og før det arbejdede jeg i en virksomhed, der udviklede sit eget regnskabsprogram (Delphi 5, derefter Delphi 7). Først stiftede jeg bekendtskab med 1C Enterprise 7.7-platformen og blev slået af dens lette rapportudvikling. Samtidig var det tydeligt, at rapporter blev genereret meget længere end i lignende mekanismer på Delphi, men det var revisorerne ikke særligt bekymrede over. Det er ikke noget problem at vente et par minutter i stedet for et par sekunder. Tværtimod kan du male dine negle der, drikke te eller diskutere sidste nyhed uden at stoppe fra arbejde. Langt de fleste revisorer i disse dage er trods alt kvinder.
7.7-grænsefladen var dog meget begrænset, og sæt af objekter var meget dårlig. Jeg ledte efter alternativer. Blev bekendt med eksterne komponenter, men før praktisk ansøgning de kom ikke pga chefen besluttede, at det var på tide, at vi skiftede til 8.1 (ja, 8.2 fandtes ikke endnu), og i denne platform fandt jeg som programmør alt, hvad jeg manglede før.
I øjeblikket har jeg autoritet blandt kolleger, såvel som kunder, der kom til mig fra franchisetagere. De vil formentlig aldrig kontakte franskmændene igen.


Generelt er jeg ret tilfreds med at arbejde i 1C Enterprise 8 platformen. Det er velegnet til at løse de fleste regnskabs- og databaseproblemer.

Tags: Tilføj tags

I enhver virksomheds aktiviteter spiller korrekt ledelse altid en vigtig rolle. etableret regnskab. Der tages hensyn til varer, penge, kontrakter, virksomheder -leverandører og virksomheder -kunder, medarbejdere og meget mere - alle disse oplysninger er vigtige hvornår virksomhedens arbejde for korrekt vurdering og planlægning af videre aktiviteter ness. I vores informationsteknologiske tidsalder udføres regnskabet naturligvis fra til
en computers kraft. Men for at computerregnskab skal være rigtigt effektiv, én computer er ikke nok, du har brug for et godt regnskab -analytisk program. Du kan føre optegnelser i MS Excel-regneark, eller du kan i et specialiseret program designet til regnskab. Sådan om Der er skrevet meget, mere eller mindre effektivt. Særligt sted blandt dem
besætte software produkter firma "1C". Regnskabssystemet har været ekstremt populært blandt brugerne i mange år. emne "1C:Enterprise 7.7". Fremskridtet står dog ikke stille; indfødt - ny, 8 -Jeg er 1C:Enterprise-linjen, som i stigende grad erstatter sin dens populære, men stadig mere forældede forgænger. Har allerede ændret sig tre versioner af Platform 8 - 8.0, 8.1 og 8.2. Vores bog er dedikeret til systemet "1C:Enterprise 8.2" er den seneste og mest succesrige version af 8-linjen. x. Hvad er "1C:Enterprise 8.2"? Dette er en moderne softwarepakke, kontrollere alle stadier af handelens omsætning, fra produktion eller modtagelse til var til lageret, før det sælges og bogføres gennem bøgerne. Hvori det er meget vigtigt, at 1C:Enterprise 8.2-systemet er åbent for modifikation og selvstændig udvikling, som giver dig mulighed for at opnå stor fleksibilitet i organisationen tioner af virksomhedens regnskabssystem, da de kan bruges som standard softwareløsninger fra virksomheden "1C", og modificere dem eller udvikle dem ny, skræddersyet til virksomhedens særlige forhold.

Hvad bogen vil lære dig

Bogen vil hjælpe den læser, der beslutter sig for at lære at programmere i systemet "1C:Enterprise", tag dine første skridt i dette spændende felt. Co. hvor -dengang, da jeg selv ville lære at programmere i 1C-sproget, sådan en overflod Der har endnu ikke været nogen bøger om dette system. Jeg søgte meget, rodede i en masse litteratur rature, meget ofte for kompleks for en begynder, generelt interessant formationen blev udvundet bid for bid, fra forskellige kilder. Nu, når du skriver min egen bog, jeg prøver at gøre den, som jeg ledte efter dengang -så måske måske ikke for akademisk og udtømmende, men med vægt på klarhed, klarhed og praktiske eksempler - generelt ABC'erne for en begynder.

Efter læsning vil læseren forstå de grundlæggende principper for udvikling i systemet "1C:Enterprise 8.2", nemlig:
vil være i stand til selvstændigt at installere 1C:Enterprise 8.2-systemet og tilslutte Database;
stifte bekendtskab med syntaksen for programmeringssproget 1C 8.2;
vil være i stand til at ændre og vedligeholde 1C:Enterprise-konfigurationer;
stifte bekendtskab med datasammensætningssystemet og lære at udvikle rapporter;
lære at arbejde med en debugger;
stifte bekendtskab med det indbyggede forespørgselssprog;
lære at skrive eksterne rapporter og behandling;
stifte bekendtskab med administrationen af ​​1C-databasen, vil selv kunne tildele rettigheder brugerkonti, oprette brugergrænseflader, gør sikkerhedskopier Database.


Hvem er denne bog til?

Denne bog er for begyndere 1C -programmører eller systembrugere "1C:Enterprise", der ønsker at udvide deres viden om dette vidunderlige system. For en erfaren 1C-programmør er der højst sandsynligt lidt men godt, selvom, som en opslagsbog, et snydeark, en måde at organisere din viden på eller genopfriske at leve, hvad der er lært for længe siden - hvem ved - måske vil det også være nyttigt for ham.
Netop fordi begyndere vil læse denne bog, forsøgte forfatteren at præsentere dine tanker klart og objektivt, straks give eksempler på, hvad der blev sagt. det håber jeg træningsformen vil give læseren mulighed for hurtigt at forstå de grundlæggende principper udvikling og hurtigt komme i gang med at øve sig. Bogen indeholder en stor mængde antal illustrationer.


Sådan bruger du bogen

Det er bedst at læse bogen i rækkefølge, begyndende med installationen beskrevet i kapitel1 .
I kapitel 2systemets hovedoperatører og sprogkonstruktioner præsenteres "1C:Enterprise", er deres praktiske værdi, når du læser kapitlet, muligvis ikke er tydeligt, da vi blot viser resultaterne af træningseksemplerne på skærmen. Dog allerede i kapitel 3vi støder direkte på config-objekterne walkie-talkies såsom vejvisere, dokumenter og registre, og her opnåede teorien V kapitel 2, vil finde sin ansøgning. Hvis læseren ikke planlægger at arbejde med sproget forespørgsler eller oprette rapporter, så kapitel 4han savner det måske, men det burde han Husk, at oprettelse af rapporter er en af ​​de mest almindelige opgaver. Du kan også springe over kapitel5 , hvis læseren var fast overbevist om det han skal ikke beskæftige sig med at tildele brugerrettigheder i systemet "1C:Enterprise". Programmøren skal dog være i stand til at gøre dette ligesom han kan bruge være en debugger (se kapitel 6) .
Mit råd til læseren: læs alt materialet i bogen fortløbende. Det er bogen jo allerede var oprindeligt planlagt til at give nybegynderen programmør det mest nødvendige svag. Hvad der er mindre vigtigt var allerede udeladt for ikke at rode og komplicere undervisningsmaterialet.
Jeg anbefaler også at læse en bog på en computer med systemet installeret "1C:Enterprise 8.2" og med en specielt tilsluttet konfiguration "for oplevelse tov", som du ikke har noget imod at ødelægge, analyser eksemplerne givet i praksis, opret de samme i din træningskonfiguration og se, hvordan de fungerer. Eksperimenter og improviser mere. Hvis under analysen af ​​eksemplet spørgsmålet opstod: "Hvad vil der ske, hvis du ikke gør det som i eksemplet, men sådan?" - så gør det og se hvad der sker. Eksempler markeret "Hvordan gør man det?"kan bruges som standard design til vores egen udvikling.

Samizdat, 2012. - 750 s. Indhold:
Lektie
1. Indledning, regulatoriske spørgsmål.
- systemarkitektur (logisk og fysisk)
- begreberne "Informationsbase" og "Konfiguration"
- hovedklasser af objekter
- oprettelse af en ny tom database
- syntaks (eksempel): mapper Medarbejdere, Entreprenører (hierarki) Lektion 2.
- tegning - hvad opslagsbogen består af (detaljer, form (og formularmodul), layout, objektmodul)
- bibliotek Medarbejdere: Arbejder (Boolean), ElementForm, procedure BeforeRecord() - kontrol af fødselsdato-posten
- en kort introduktion til syntaksen (procedure, betingelse, kommentar, Rapport(), primitive typer String, Boolean, Date og grundlæggende handlinger med dem
- administreret applikationsmodul (hilsen) Lektion 3.
- En telefonbog er en adressebog med poster
- hierarki af elementer og grupper og elementer (overordnede, ThisGroup felter)
- MarkDeletion, Predefined (referencemåleenheder med foruddefinerede elementer)
- Ejer (en-til-mange forhold, kontraktoversigt)
- bibliotek Nomenklatur: hierarki, service (boolesk), måleenhed (kataloger. måleenheder, værdi udfyldt i stykker), salgspris (antal)
- Konstant organisationsnavn
- Implicit typekonvertering (velkommen til lektion 2) lektion 4.
- nedarvning af en service-attribut fra en gruppe
- værditype Null og Udefineret
- FillProcessing() ved oprettelse af nye elementer, FillData, StandardProcessing
- Struktur, standard polstringskontrolmekanisme, FillCheck Processing()
- teori: arbejde med syntaksassistent, forskelle og sammenhænge mellem begreberne DirectoryManager, DirectoryManager, DirectorySelection, DirectoryLink, DirectoryObject
- praksis: FindByAttributes(), Generelt modul General Mechanisms.GetList of Birthday People()
DZ Føj til gruppebiblioteket og ret mekanismen til at få en liste over fødselsdagspersoner Lektion 5.
- Form af Contractors directory-elementet, hovedelementer (gruppe, knap, kommandoer), formularens synlighed på klienten og på serveren
- rapport om listen over varer "Prisliste", layout, layoutparametre, områder, Format() Lektion 6.
- Informationsregistre (ressource, måling, frekvens, optagetilstand), historik over ændringer
- Directory. Valutaer
- Informationsregister. Valutakurser, nøglefelter, Seneste udsnit, GetLast(), generelle mekanismer.GetCurrencyRates()
- Kompileringsdirektiver
- Valuta for gensidig afregning i modparten
DZ-stillinger, bemandingslisteLektion 7.
- Lagring af information om egenskaberne for et bibliotekselement
- Plan over typer af karakteristika: strukturer og skema for brug af planen for typer af karakteristika
- Plan over typer af egenskaber
- Directory.AdditionalPropertiesNomenclature
- Register over oplysninger. Nomenklatur Ejendomsværdier
DZ OptionsNomenklatur Lektion 8.
- Dokumenter i 1C Enterprise-systemet (præsentation, struktur, adfærd)
- Dokument.Kvittering (nummerering, bevægelser, logfiler)
- oprettelse af dokumentformularer, beregning af beløb
- Register over oplysninger
- Motion Constructor, Processing(), Failure, Mode
- Dokument forbrugsvarer, erstatning af salgspriser ved ændring af nomenklaturlektion
9. Akkumuleringsregistre
- register over akkumulering af restvarer, bogføring af modtagelses- og udgiftsbilag i henhold til dette register.
- muligheder for at fjerne bevægelser
- teori om hvad der sker i akkumuleringsregistrene. Systemopregning Type bevægelse Akkumulering
- akkumuleringsregistertabeller: bevægelser, balancer
- resultatstyring
- Anmodninger: syntaks for anmodning om beskrivelse
- Rapport om resterende produkt lektion 10.
- Anmod om konsol. forespørgselssyntaks
- Indberetning om indkøbte varer. Forespørgselsbygger med resultatbehandling
- Rapportér Indkøbs-Salgsforening. Mekanisme til at samle tabeller i en forespørgsel
- Sammenføjning af tabeller i en forespørgsel. ISNULL Indkøb-Salg_Forbindelse-rapport
- mekanisme til generering af ACS-rapporter, Konstruktør af datasammensætningsindstillinger, design af felter Lektion 11.
- Rapporter Vare Resterende SKD, tabel, diagram, lagring af rapportmuligheder
- listeformularer - også SKD, formularindstillinger, dynamisk liste
- udvælgelsesformular til nomenklaturfortegnelsen, links til udvælgelsesparametre for attributter, overførsel af en parameter til udvælgelsesformularen
- Behandling() af dokumentet Forbrugsvarer, under hensyntagen til varebalancen, viser en besked til brugeren Lektion
12. Flytning af varer gennem lagre
- fortegnelse Varehuse, register over akkumulering af saldi i varehuse
- flytning af kvitteringsdokumentet i henhold til BalancesInWarehouses registeret
- dokumentformular Kvittering (undermenu, grupper)
- WarehouseRemains-rapport (datasætforbindelser, beregnede felter)
- Forbrugsvarer: lagersaldi, batchanmodningsmekanisme Lektion
13. Batchregnskab
- teori om metoder til bogføring af varepartier LIFO, FIFO
- Batchmåling i Vareresterregisteret
- flytning efter modtagelsespartier
- Opgørelse over resterende vareforsendelser
- Gruppering af mængde og omkostninger i ACS
- PO-RESULTATER, grupperingsniveauer
- Behandling af Udgifter under hensyntagen til afskrivning efter batch, Omgåelse af anmodningsresultatet Lektion
14. Sequences.Turn Akkumuleringsregister
- Sekvensomkostninger for masser af varer
- Forkert salgsrapport, salgsakkumuleringsregister, UseVItotakh-ejendom
- afholdelse af udgifter i henhold til salgsregisteret
- Rapportér som det skal
- Aggregater i akkumuleringsregistre Lektion
15. Administreret grænseflade
- Undersystemer, kommandogrænseflade, billeder
- Funktionelle optioner, Lager- og Valutaregnskab, Funktionelle optioner
- Roller, Bruger, Privilegeret modul
- Tilpasning af listen og dokumentformularen (gruppering af dokumenter, sider) Lektion 16.
- Form for konstanter, Generelle kommando Regnskabsparametre, Kommando Udskriv i forbrugsvarer, vis dem, udskriv faktura
- Gensidige afregninger, akkumulationsregister, bogføring af dokumenter på det
- Rapport om gensidige bosættelser, redigering af brugerdefinerede felter
- karakteristika for modparter (Plan of Types of Characteristics, Directory, Akkumuleringsregister), deres anvendelse i rapporten, opsætning af karakteristika i SKDUrok
17. Forretningsprocesser
- Udførers opgaver, informationsregister Adressering
- Sessionsparametre, sessionsmodul
- forretningsproces Salg med betalingskontrol, rutekort lektion 18.
- Distribuerede databaser, udveksling mellem dem, udvekslingsplan
- frigivelse og opdatering af konfigurationen, oprettelse af et leveringssæt
- opdatering, de-support af konfiguration Lektion 19.
- Kontoplan, foruddefinerede konti
- Regnskabsregister Ledelse
- bilag DriftKonto, bogføring iht. regnskabsregisteret
- liste over transaktioner i listeform
- SALT-rapport, regnskabsregistertabeller Lektion 20.
- Plan over typer af kendetegn, forbindelse med kontoplanen, underkonti af foruddefinerede konti
- bilag Kvittering, flytning iht. regnskabsregisteret med underkonto
- Lagersaldorapport, parametre på subconto
- dokumentere ConsumablesLesson
21. Kvantitativt regnskab
- regnskabstegn Mængde i kontoplanen, ressourcebalance
- bevægelse efter mængde i dokumentet Modtagelse, Udgift
- færdiggørelse af inventar- og materialerapporten, regnskabsregistertabel Lektion 22.
- korrekt omkostningsberegning
- skifte formelement
- forbindelse af registerressourcen med underkontoregnskabsfunktionen
- beregning af omkostninger i forbrugsvarerLektion
23. Valutaregnskab
- bibliotek over valutaer, register over oplysninger Valutakurser, konverteringsfunktion fra valuta til valuta
- regnskabsattribut Valuta i kontoplanen, tilknytning til regnskabsregisteret
- bevægelse af kvitteringen i henhold til valutaregnskab
- rapport Analyse af valutabalancer lektion
24. Afsluttende lektion om regnskab. regnskab
- tegn på underkontoregnskab OnlyRevolutions
- forskel i regnskabsregistertabeller
- ProfitLektionsrapport
25. Beregningsregistre. Planer for beregningstyper.
- Beregning af medarbejderes løn + bonus.
- Dokument "indføring af vilkårlige periodiseringer".
- Plan over beregningstyper "Perioder".
- "Beregn"-proceduren i Generelle moduler, som er ansvarlig for beregning af bonusser
- Tilføje. objekt (Directories.Employees"). Lektion 26.
- Optimering af beregningsproceduren ved at flytte anmodningen uden for cyklussen.
- Automatisering af periodiseringsvalg ved at tilføje en parameter til periodiseringen i form af en overførsel (fast eller procentvis).
- Arbejdsdagskalender i form af et informationsregister (Udfyldning af kalenderen).
- Tilføjelse af periodiseringsberegninger efter dag.
- Tilføjelse af en beregningsmetode afhængigt af normen for dage til den faktiske indikator.
- Omkostninger fra periodisering (fravær mv.).
- Rapport (Gantt-diagram)
- Storno indgang

Ny side 2

Det her sidste lektion fra serien "Learning 1C 8.2", udgivet i den gratis sektion. Fra næste gang vil udgivelsen af ​​lektioner fortsætte i . I den gratis sektion kan nogle enkelte individuelle artikler om 1C 8.2 publiceres.

Vi har undersøgt de funktionelle muligheder. Men eksemplet, vi lavede i sidste lektion, har en væsentlig ulempe: at tænde eller slukke for grænsefladen anvendes kun, hvis vi afslutter programmet og logger ind igen. Upraktisk. Derfor vil vi i dag rette op på denne mangel.

Så lad os først skabe en form for konstanter*:

Lad os nu komme ned til programmering. Lad os åbne formularen til redigering og skifte til modulet*:

Først vil vi se en tom plads til indtastning af programtekst. Vi skal oprette en handler for "AfterWrite"* begivenheden:

Vi vil kun indsætte én kommando i den: UpdateInterface()* :

Glem ikke at tildele tilladelser til formularkonstanterne:

Lad os nu teste og sikre os, at når vi ændrer en konstant gennem konstantformen, bliver vores grænseflade straks opdateret:

Bemærk venligst, at hvis du ændrer konstanten gennem "Prissætning efter pristyper", vil opdateringen ikke finde sted. Vores grænseflade opdateres umiddelbart kun gennem form af konstanter. Og gennem "Prissætning efter pristyper" sker opdateringen stadig kun gennem "log ud og log ind igen". Så nu kan vi simpelthen dumt udvide denne konstant fra grænsefladen og kun efterlade formen. Forresten, hvis vi ønsker det, kan vi skabe flere former for konstanter, både for hver konstant separat, og en form for flere konstanter på én gang.

En af de mest populære i søgemaskine er anmodningen "1C 8.2 program for dummies". Hvad forårsagede denne interesse? Lad os finde ud af det.

Hvorfor er det et problem for nogle at lære 1C?

På trods af alle anstrengelserne fra 1C-udviklerne er de ret vanskelige for en utrænet bruger. Dette skyldes normalt emneområdets kompleksitet.

Hvordan kan du for eksempel forstå et regnskabsprogram uden at kunne regnskab? Det er rigtigt, ingen måde.

Lad os overveje de bedste tutorials i henhold til 1C Enterprise 8.2 og 8.3 programmerne for dummies: materialer, videoer, lektioner, bøger, lyd, træninger.

Først og fremmest skal du finde ud af, hvad præcis en "tepotte" skal studere i 1C 8.3? Der er et stort udvalg af 1C-programmer, der adskiller sig markant. Eller vil du måske lære 1C programmering? Let!

Bøger om 1C regnskab

Gratis videokurser om 1C Accounting

Der er et stort antal af højkvalitets betalte video-tutorials og instruktioner om 1C-programmer på internettet at finde dem er ikke svært. Det er meget sværere at finde gratis materialer af høj kvalitet. Lad os tage et kig på dem.

Vores udvalg af videoer

Du kan se vores videotutorials for begyndere i 1C i en særlig afspilningsliste på Youtube. Nødvendigvis abonner på vores YouTube-kanal , vi udgiver løbende nye videoer!

Video-kurser fra torrents

Hvis du ved, hvordan du downloader filer fra torrent-trackere, kan du nemt finde en masse nyttig information.

Videokurser på youtube.com

Hvis du indtaster "1C-regnskab" i søgningen på denne side, vil du blive overrasket over mængden af ​​materiale på 1C-programmet for dummies.

Betalte kurser online/offline

Blandt kurserne og træningerne kan jeg fremhæve onlinekurserne 1C - profbuh8.ru. Ved at følge linket kan du downloade mere end 200 videolektioner fra ProfBukh8-virksomheden gratis til gennemgang.

Offlinekurser inkluderer kurser fra selve 1C-virksomheden (www.1c-uc3.ru) og kurser fra Specialistcenteret (www.specialist.ru)

Lager- og handelsregnskab i 1C Enterprise programmet

Lagerregnskab er normalt meget enklere for almindelige dødelige som dig og mig. Her behøver du ikke kende til kontoplaner, Talmuds som PBU 18/02 osv.

Lagerregnskab er ikke reguleret på nogen måde, metoderne og måderne at vedligeholde det på er på ingen måde begrænset.

Bøger om handel i 1C

1C:Enterprise 8. Ledelse af handelsoperationer i spørgsmål og svar.

En fremragende bog, der indeholder flere hundrede cases fra det virkelige liv (eksempler) til at studere 1C-programmet. Denne bog er velegnet til både begyndere i 1C-programmet og avancerede brugere. Bogen blev udgivet til både programversion 10.3 og 11 udgaver.

1 C Enterprise 8″. Konfiguration "Trade Management" udgave 11

Bogen, der følger med programmet "" er meget nyttigt og relevant materiale.

Gratis videokurser om 1C Trade management

    • Hjemmeside teachvideo.ru http://www.teachvideo.ru/catalog/24
    • Video-kurser fra torrents
    • Kurser på youtube.com

Eksempel - video på YouTube, varer, der ankommer til lageret:

Betalt handelskurser

Betalte kurser til 1C-software lagerregnskab for begyndere og dummies er ens:

  • Blandt kurserne og træningerne kan jeg fremhæve online kurser - profbuh8.ru, her er et link til en prøvetur af deres kursus om 1C Commerce
  • Offlinekurser inkluderer kurser fra 1C-virksomheden selv (www.1c-uc3.ru) og kurser fra Specialistcenteret (www.specialist.ru)

Programmering 1C 8 til dummies

Den mest interessante og svære del er for begyndere. Konfiguration af 1C 8.3 og 8.2 kræver som udgangspunkt ikke en dybdegående undersøgelse af fagområder - regnskab, økonomi mv. Imidlertid generel idé Må have.

Bøger for begyndere programmører

Et stort antal bøger er blevet skrevet for at lære programmering til dummies, men jeg anbefaler ikke at læse dem alle.

Tidligere overvejede jeg mest nyttige bøger for at lære programmering til begyndere, kan du sætte dig ind i dem på siden.

Videotræning for programmører

I en nøddeskal:

  • gode gratis kurser er Pavel Chistovs kurser;
  • Blandt de betalte i forhold til pris/kvalitetsforhold kan vi fremhæve kurserne i virksomheden "Fair Start" - ved at bruge linket kan du få mere end 30 gratis demo-lektioner. Det mest værdifulde ved disse kurser er, at lærerne ikke kun giver programmeringsviden, men også hjælper med fremtidig beskæftigelse.