Lekcije 1c Enterprise 8.3 programiranje. Osnove programiranja v okolju 1C: Enterprise. Splošna načela programiranja

Faze usposabljanja v šoli programiranja (ali kako postati programer 1C iz nič)

Torej ste se odločili postati programer 1C.

Opazil sem, da med ljudmi, ki se prijavijo na moje tečaje, prevladujejo naslednje skupine:

1) Strokovnjaki, ki so prisiljeni podpirati 1C kot del svoje glavne službe. V bistvu je to seveda sistemski skrbniki.

2) Precej izkušeni uporabniki 1C, za katere je učenje programiranja naravna stopnja razvoja na njihovem področju. Običajno so takšni ljudje dobro seznanjeni z enim od predmetnih področij. To so izvajalci in svetovalci ter glavne računovodje. V svojem poklicu so dosegli že tako raven, da začenjajo obvladovati sorodne.

3) Že izkušeni programerji v drugih jezikih, ki so se pred kratkim preselili v 1C. Takšni ljudje že imajo precej dobro algoritemsko usposabljanje in izkušnje s programiranjem.

Toda kje začeti? Kam in kako najbolje usmeriti svoja prizadevanja? Zmeda na tej stopnji je povsem razumljiva.

Na internetu lahko najdete toliko različnih informacij, da se vam kar zvrti v glavi. Zato študent pogosto začne obvladovati poklic z uporabo razpršenih člankov, ki jih slučajno najde na internetu.

Izkazalo se je, da se obvladovanje metapodatkov zgodi pred samozavestnimi veščinami notranjega jezika 1C (napaka večine, če ne vseh programskih tečajev 1C, ki so na voljo na internetu). Ali pa razvijalec začetnik takoj poskuša napisati precej zapletene programe, ne da bi za seboj imel celo osnovno algoritemsko usposabljanje.

Posledično se študent znajde pred problemi, ki so z njegovega vidika popolnoma nerešljivi, in to samo zato, ker se je lotil študija predmeta z napačnega konca, v napačnem vrstnem redu.

V nadaljevanju podrobno opisujem faze učenja, skozi katere gredo dijaki na moji šoli.

Preberite spodaj opisane faze usposabljanja in sami poiščite tisto, od katere se bomo skupaj z vami začeli premikati proti cilju.

Faze usposabljanja:

1. Študij osnov notranjega programskega jezika 1C 8.

Tukaj začnemo, če ste popolnoma neizkušen razvijalec ali še niste programirali v nobenem drugem jeziku.

Na tej stopnji je presežen prag za vstop v programiranje, ki je lahko za ljudi, ki še niso programirali, precej visok.

Že neštetokrat opozarjam razvijalce začetnike: ne hitite z ustvarjanjem novih predmetov v konfiguratorju! Vse, kar se na hitro naredi z miško, se hitro obvlada. Vendar tukaj ne morate začeti. Začnite s samimi osnovami - učenjem internega jezika 1C 8 -.

2. Izvajanje naprednih vaj o poznavanju internega programskega jezika 1C 8.

Osnove so osnove, vendar nič ne more nadomestiti izkušenj dela z jezikom, pridobljenih s samostojnim delom, premagovanjem težav in reševanjem realnih problemov.

Za te namene se uporablja blok zanimivih vaj, posebej izbranih po naraščajoči kompleksnosti. Izvajanje teh vaj vpliva na skoraj vse dele notranjega jezika 1C 8.

Ta stopnja usposabljanja je primerna kot izhodišče, če že imate izkušnje s pisanjem programov v drugih programskih jezikih - .

3. Preučevanje jezika poizvedb 1C 8.

Naslednja stopnja usposabljanja razvijalcev je preučevanje poizvedb.

To je nujna stopnja, saj sodobna realnost narekuje, da mora vsak prejem poverilnic v 1C potekati prek zahtev. Objektna tehnologija - samo za spreminjanje podatkov. Ponovno je to posledica arhitekture odjemalec-strežnik in spletne usmerjenosti.

4. Izvajanje naprednih vaj o poznavanju jezika poizvedb v 1C 8.

Osnove so osnovne, a če se želite naučiti pisati poizvedbe, jih morate napisati.

In tukaj je idealen blok zanimivih vaj, posebej izbranih po naraščajoči kompleksnosti. Izpolnjevanje teh vaj vpliva na skoraj vse razdelke jezika poizvedb v 1C 8.

Ta stopnja usposabljanja je primerna kot izhodišče, če že imate izkušnje s pisanjem poizvedb v 1C ali SQL.

5. Izdelava poročil in obdelava za sistem 1C:Enterprise 8.

Zdaj, ko so preostali koraki za nami, lahko preidemo na zabavni del.

Končno je v vaši moči, da napišete program, ki lahko spremeni bazo podatkov, pomaga izpolniti dokument in ustvari nove imenike. Takšni dodatki v 1c se imenujejo obdelava.

No, po obdelavi lahko prevzamete poročila 1C - programe, ki izberejo obstoječe podatke, jih analizirajo in predstavijo v uporabniku prijazni obliki.

Za razvoj poročil z uporabo sistema za sestavljanje podatkov.

6. Izpopolnitev obstoječih konfiguracij.

Na tej stopnji se začne delo s konfiguracijskimi metapodatki: ustvarjanje dokumentov, imenikov, registrov in drugih podobnih nalog.

Spreminjanje konfiguracije je težaven del razvoja 1C. In spreminjanje konfiguracije, ki upošteva naknadno posodabljanje in vzdrževanje baze ter nadaljnji razvoj funkcionalnosti, je zelo težka naloga, ki jo le redki zmorejo.

Le redki dosežejo to stopnjo, še manj razvijalcev 1C pa jo resnično potrebuje pri svojem delu. Ker je 80% izboljšav za 1C mogoče in bi moralo biti narejeno brez spreminjanja same konfiguracije. V ta namen se uporabljajo zunanja poročila in obdelave.

In če sem v primeru takšnih operativnih računovodskih podatkovnih baz, kot je »Trade Management«, naklonjen spreminjanju same baze podatkov in celo odstranitvi iz podpore, potem je v primeru računovodstva nujno, da ne spreminjate baze podatkov sam do zadnje minute, še bolj pa ga ne odstranite iz podpore. To je posledica zelo pogostih sprememb zakonodaje in posledično nenehnih posodobitev 1C. Če zbirka podatkov ni bila spremenjena neposredno, bodo vse posodobitve dokončane samodejno z udarcem. Če je prišlo do sprememb, bo moral programer vsakokrat ročno izvesti posodobitve, kar ni samo zamudno, ampak tudi polno vnosa napak v bazo podatkov.

Če pišeš v SI
Bodite hromi vsaj trikrat
O tem pravijo:
"On je kul programer!"
(Fidosh pesmi - "Kaj je Suxxx in kaj je Rulezzz")

Predgovor

Razlog za pisanje tega članka je bil negativen odnos strokovne javnosti do te platforme in programerjev.

Kot programer, ki je izbral 1C, menim, da je to mnenje neutemeljeno. Platforma 1C še zdaleč ni idealna, vendar je po mojem mnenju najboljši in kar je najpomembneje domači izdelek!

Še več, neustrezno je ocenjevati programerjeve sposobnosti po jeziku, v katerem piše.

V tem članku bom opisal prednosti, ki sem jih sam našel v programu. Izkazalo se bo, da je članek skoraj reklama, zato je tukaj izjava o omejitvi odgovornosti:

  • Nimam neposrednega odnosa s podjetjem 1C;
  • Ta članek ni naročen in je bil napisan izključno prostovoljno;
  • V nekaterih primerih so izražena osebna mnenja, ki se morda ne ujemajo...;
  • Celoten članek, razen prologa, je avtorjev, vsako naključje je nesreča;
  • Govorili bomo o platformi 1C Enterprise 8.2 (trenutno je aktualna različica 8.3, vendar je še nisem preučeval - na 1C 8.2 je veliko dela). Vendar večina povedanega velja tako za platformo 8.3 kot za starejše različice, nekaj pa velja za različico 7.7.
Pa začnimo.

O čem govorimo?

Platforma 1C Enterprise 8 je:
  • Deluje v dveh različicah - datotečna in strežniška (tripovezavna) - vsaka ima svoje prednosti in slabosti;
  • Neodvisen računovodski sistem, ki ga je enostavno namestiti in konfigurirati;
  • Zmogljiv ekosistem za programerje z vsemi potrebnimi predmeti in orodji;
  • Lep ergonomski vmesnik;
  • Relativno poceni rešitev za podjetja;
  • Mreža franšizojemalcev, začetno usposabljanje;
  • Močna baza razvoja in znanja, nabranega skozi leta;
  • Včasih problematična platforma za sistemske skrbnike;
  • Ne najhitrejša izvedba algoritmov (čeprav ne najpočasnejša) - to je poklon vsebini informacij (v primeru napak sta navedena številka vrstice in njena vsebina);
  • Ni razredov v programskem jeziku (dedovanje, enkapsulacija, polimorfizem), ni anonimnih funkcij in drugih sodobnih funkcij. Toda za rešitev večine težav to ni potrebno!
Za organizacijo računovodstva ena platforma ni dovolj. Platforma je nekakšen »motor«, vmesni člen med programom in bazo podatkov. Programi za ta "motor" se imenujejo konfiguracije. Konfiguracija opisuje strukturo baze podatkov v obliki objektov, besedil postopkov, shranjenih v ločenih modulih (modulov je veliko, ima jih tako vsak objekt kot sistem kot celota, obstajajo pa tudi skupni moduli). Platforma zagotavlja raven abstrakcije, pri kateri ni potreben neposreden dostop do baze podatkov, omogoča pa tudi abstrakcijo iz operacijskega sistema in vrste baze podatkov.

Podatkovna baza datotek in strežnikov

Platforma je sestavljena iz več delov in lahko deluje v datotečni ali strežniški različici.

V datotečni različici je celotna baza podatkov v eni datoteki (s pripono “1cd”) – platforma je nameščena na vsakem računalniku in neposredno bere/piše v bazo.

Prednosti možnosti datoteke so nizka cena in enostavna namestitev.

Slabosti - struktura datoteke "1cd" je zaprta, ni enotnega sistema, ki bi sodeloval z bazo podatkov. Posledično ga je težko uporabljati z velikim številom uporabnikov (preizkusil sem ga za 20+ uporabnikov - lahko deluje). Poleg tega lahko dinamične posodobitve ne uspejo, če je velikost baze podatkov približno 15 GB (ali več). Odpravljanje takšnih okvar je težka naloga, pripomoček za popravilo baze podatkov pa ne popravi vedno učinkovito, včasih pa celo ohromi bazo.

Rešitev obstaja - najprej nastavitev dnevnih varnostnih kopij baze podatkov. Poleg tega obrtniki ne samo objavljajo format datoteke 1cd, ampak so razvili tudi pripomočke za delo s takšnimi datotekami in številne metode za reševanje takšnih težav.

V strežniški različici platforma za shranjevanje podatkovne baze uporablja SQL strežnik (običajno MS SQL, vendar od 8.2.14 naprej - lahko uporabite tudi nekatere druge, npr. Firebird PostgreSQL, IBM DB2, Oracle Database) in samo platformo uporablja trinivojsko arhitekturo:

Nekaj ​​kode se izvede na odjemalcu, nekaj na strežniku. V tem primeru samo strežnik komunicira z bazo podatkov. Hkrati sta se od različice 8.2 poleg standardnega načina delovanja, ki se je imenoval način »debelega odjemalca«, pojavila dva nova načina delovanja - »tanek odjemalec« in »spletni odjemalec«; pojavile so se tudi »nadzorovane forme«, katerih pojavnost je zgrajena v obliki abstraktnega drevesa elementov. Programiranje za upravljane obrazce in trinivojsko arhitekturo je težje, vendar vam omogoča, da skoraj celotno obremenitev prenesete na strežnik (to pomeni, da lahko kupite en močan strežnik in sto najcenejših pisarniških računalnikov).

Prednosti platforme: »tristopenjska« - porazdelitev obremenitve, odprtost baze (uradno 1C zavrača odgovornost za kakršno koli poškodbo podatkov, če so bile spremembe v bazi SQL izvedene drugače kot prek njihove platforme ali strežnika, vendar to malo ljudi ustavi), pomanjkanje omejitev.

Slabosti - cena: odjemalske licence boste morali kupiti posebej za vsak odjemalski računalnik, posebej - eno licenco za strežnik 1C, posebej licenco za SQL strežnik, če ne uporabljate brezplačne. Prav tako se včasih pojavijo težave pri delovanju baze podatkov. Rešujejo se veliko hitreje zaradi razpoložljivosti podatkov in razpoložljivosti zunanjih orodij za delo z bazo podatkov. Poleg tega bi morali v tem primeru narediti varnostno kopijo baze podatkov.

Skupna prednost je vsestranskost konfiguracijske kode: z nekaterimi izjemami bo konfiguracija, razvita za datotečno bazo podatkov, delovala na strežniški bazi podatkov in obratno. Primer izjeme je posredovanje spremenljive vrednosti strežniku ali s strežnika odjemalcu (v datotečni različici to ne bo povzročilo izjem, v različici odjemalec-strežnik pa je prepovedano).

Še en plus: platforma je nameščena zelo preprosto, nekako takole: »Naprej-Naprej-Naprej-Ok«, fina nastavitev ali namestitev kakršnih koli komponent ni potrebna.

Za strežniško različico je na voljo še nekaj nastavitev, vendar se vse naredi v namestitvenem pogovornem oknu in ne zahteva pisanja ničesar v ločene datoteke. Namestitev strežnika SQL je lahko nekoliko težavna, ker ... v tem primeru je veliko več nastavitev (in za natančno nastavitev morate preučiti dodatna navodila). Vendar to ne velja za težave platforme 1C. Poleg tega, če namestite na primer strežnik MS SQL z vsemi privzetimi nastavitvami, bo 1C lahko delal z njim.

Je več kot računovodstvo

Ko gre za platformo 1C, je predstavljena predvsem kot računovodski program. Dejansko je to najbolj priljubljeno področje uporabe platforme 1C. Toda 1C ne živi samo od računovodstva!
Poznavalci platforme pravijo, da gre za računovodski (avtomatizirani) sistem. To je bližje resnici - obstaja veliko konfiguracij, tako od 1C kot od razvijalcev tretjih oseb. Nekateri so le posredno povezani z računovodstvom, nekateri sploh niso povezani.

Na splošno je pravilneje predstavljati platformo 1C kot lupino za objektno modeliranje baze podatkov, vmesnika in programiranja v jeziku 1C. Edina omejitev je, da se za vsako konfiguracijo ustvari lastna baza podatkov in samo ena (možna pa je dodatna povezava zunanjih podatkovnih virov, tj. drugih baz podatkov, v sklopu konfiguracije).

Ekosistem za programerje

Razmislimo zdaj o jeziku in platformi 1C z vidika razvijalca:
Objektni model baze podatkov. Prvič, ne delamo neposredno z bazami podatkov. Ni potrebno. Za naše udobje so vsi podatki predstavljeni v obliki medsebojno povezanih objektov (imenikov, dokumentov, informacijskih registrov, akumulacijskih registrov, ...), platforma pa te podatke samodejno »potegne« iz baze.
Na primer, če spremenljivka »Element nomenklature« vsebuje sklic na element imenika »Nomenklatura«, ima imenik »Nomenklatura« atribut »Glavni dobavitelj«, tip »Imenik.Nasprotne stranke«, imenik »Nasprotne stranke« pa ima Atribut »Polno ime«, nato koda:

Nomenklaturni element. Polno ime
... bo povzročil, da bo platforma 1C z uporabo notranjih mehanizmov poiskala zapis v tabeli, ki ustreza imeniku »Nasprotne stranke«, po identifikatorju iz polja »Glavni dobavitelj« postavke postavke in vrnila vrednosti polja, ki ustreza v polje »Polno ime« v objektnem modelu imenika »Nasprotne stranke«.

Takih dereferenc je lahko veliko - sistem to zmore. Edino opozorilo je, da sistem ne zna optimizirati dereferenc, zato bi si morali prizadevati, da bi jih premaknili izven vseh vrst zank.

Poleg objektov, ki opisujejo podatke, obstaja ogromno sistemskih objektov – za najrazličnejše funkcije. Izpostavil bom nekatere izmed njih:

Zaloge vrednosti
Array- objekt, ki shranjuje nabor podatkov, v nasprotju s klasično idejo nizov. To so lahko podatki različnih vrst (število, niz, povezava, drug objekt). Ima minimalno funkcionalnost in se uporablja predvsem kot začasni vsebnik za prenos vrednosti med drugimi trgovinami.

ListValues- predmet predvsem za delo z uporabniškim vmesnikom. Poleg podatkov lahko za vsak element vsebuje tudi predstavitev, atribut zastave in sliko (ikono). Ima tudi metodi “SelectElement()” in “MarkElements()” - ob klicu se uporabniku prikaže pogovorno okno vmesnika (kar je priročno - tega pogovornega okna ni treba ustvariti v konfiguraciji).

Struktura in Dopisovanje- shranjevanje seznanjenih vrednosti "KeyIValue". V strukturi je »Ključ« niz, ki sledi pravilom za poimenovanje spremenljivk v 1C (brez presledkov, se ne začne s številko, sestavljen je samo iz črk, številk in podčrtaja). Glede na - "Ključ" je katera koli vrednost. Najhitrejše iskanje objektov je skladno (hitreje kot v matriki in indeksirani tabeli vrednosti).

Tabela vrednosti- zelo priročen in precej hiter objekt za shranjevanje in obdelavo podatkov. Stolpce v tabeli vrednosti lahko dodajate in brišete, ne glede na število zapisov. V tem primeru se podatki v vrsticah ne izgubijo (oz. se izbrišejo le podatki iz celic, ki ustrezajo izbrisanim stolpcem). Ima tudi metodo »SelectRow()«, ki pokliče pogovorno okno za izbiro vrstice. Obstajajo indeksi.

Drevo vrednot- objekt, ki predstavlja hierarhične podatke. Vsebuje stolpce; nabor stolpcev je enak za vse zapise na vseh ravneh. Odstranjevanje/dodajanje stolpcev v drevesu vrednosti je prav tako enostavno kot v tabeli vrednosti. Ima tudi metodo »SelectRow()«.

Vmesniški objekti in objekti za delo z različnimi podatki TextDocument, SpreadsheetDocument, spletni brskalnik, ReadFile, WriteFile, ReadZIPFile, WriteZIPFile, ReadXML, WriteXML, HTTPRequest in še veliko drugih predmetov, konfigurator pa ima za vse vgrajeno pomoč. Namen naštetih objektov je razviden iz njihovih imen in vse to je takoj dostopno v platformi.

Ločeno je treba opozoriti, da obstaja objekt »Metapodatki« - s pomočjo katerega lahko v programskem jeziku preučujete strukturo podatkov, pa tudi vsako povezavo ali predmet za imenik, dokument, grafikon ali računi itd. obstaja metoda »Metapodatki()« - zagotavlja opis te referenčne knjige/dokumenta/kontnega načrta/itd. v bazi (katere podrobnosti, tabelarični deli so na voljo, dolžina kode/številke itd.). Pogosto je zelo priročno.

Ločeno moramo omeniti tudi objekte: »Poizvedba«, »Konstruktor poizvedb«, »Gradnik poizvedb«, »Gradnik poročil«, »Shema sestave podatkov«. Ta družina implementira nabor objektov za delo z zmogljivim jezikom poizvedb 1C.

Poizvedbeni jezik. Poizvedbe v 1C se uporabljajo samo za pridobitev vzorca podatkov s priročno izbiro, razvrščanjem in združevanjem. V prvem približku je to operator "SELECT" iz SQL, preveden v ruščino, vendar ima jezik poizvedb 1C tudi funkcionalnost, ki manjka v SQL, in sicer:

  • Delo s konfiguracijskimi objekti 1C namesto tabel SQL;
  • Delo s povezavami namesto s polji identifikatorja SQL;
  • Podpora za dereferenciranje, podobno kot se izvaja v kodi;
  • Izbor z vključitvijo v skupino (za imenike);
  • Hierarhične vsote;
  • Začasne tabele in ugnezdene poizvedbe (SELECT * FROM (SELECT ...)));
  • Graditelj poizvedb je priročen, na objektu temelječ, samodejno optimiziran tekst poizvedbe za hitro branje, ki lahko razčleni besedilo poizvedbe (razčleni besedilo poizvedbe in iz njega zgradi objektni model);
  • Graditelj poročil je dodatek k poizvedovalnemu mehanizmu, ki doda funkcionalnost samodejnega oblikovanja rezultatov, kot tudi prilagodljivo konfiguracijo same poizvedbe v “Enterprise” načinu (tj. s strani uporabnika). Posledično se je v standardnih platformah 1C pojavilo univerzalno poročilo, v katerem lahko uporabnik konfigurira, katere podatke in v kakšnem vrstnem redu želi videti, kaj je v vrsticah in kaj v stolpcih, poročilo pa samo ustvari izhodno tabelo ;
  • DCS (Data Composition System) je naslednji model, ki vključuje funkcionalnost univerzalnega poročila in ga dopolnjuje z nekaterimi funkcijami za obdelavo rezultatov.

Programski jezik
Glede sintakse je jezik 1C podoben "ruskemu Pascalu", vendar se od "Pascala" razlikuje po manj strogosti in odsotnosti nekaterih konstrukcij:

  • Spremenljivk ni treba deklarirati - inicializirate jih lahko neposredno v besedilu modula;
  • Ni strogega tipiziranja spremenljivk. Sistem ima tipe vrednosti, vendar ni strogih pravil tipkanja za spremenljivke. Spremenljivka, ki je shranila povezavo, lahko po nekaj vrsticah kode že shrani številko ali niz;
  • Dodate lahko spremenljivke z vrednostmi različnih vrst, vrsta rezultata pa bo enaka vrsti prve spremenljivke, na primer:
    k = “25”+1; // k = “251”, ne 26
  • Spremenljivke z vrednostmi različnih vrst je mogoče primerjati za enakost ali neenakost (vendar ne za več ali manj, to bo povzročilo izjemo) - seveda takšne spremenljivke niso enake;
  • Obstajajo funkcije in postopki, dovoljena je uporaba rekurzije (z omejitvijo globine rekurzije);
  • Ko podajate funkcijo ali proceduro brez parametrov, je še vedno treba navesti prazne oklepaje na koncu: like this();
  • Obstajajo moduli: vsak imenik in dokument jih ima več, poleg tega imajo module registri, poročila in obdelave ter vsak obrazec, v okviru konfiguracije pa je možno izdelati tudi skupne module;
  • Brez razredov, dedovanja, enkapsulacije, polimorfizma;
  • Funkcije ni mogoče posredovati kot referenco, anonimnih funkcij ni;
  • Ni povratne zanke (za i:=5 downto 1 do), vendar je res potrebna pri brisanju zapisov. Zadovoljimo se z nekoliko daljšim vstopom skozi cikel “Adijo”.

Orodja

  • Platforma 1C ima možnost nalaganja in prenosa konfiguracije, primerjave konfiguracije z drugo konfiguracijo in delnega prenosa sprememb;
  • Možno je prenesti besedila modulov za paketno obdelavo in jih naložiti nazaj v konfiguracijo;
  • Če je konfiguracija podprta (sprva so podprte vse konfiguracije iz 1C), lahko vedno naredite primerjavo in vidite, kaj so spremenili razvijalci tretjih oseb ali lokalni strokovnjaki;
  • Možno je tudi naložiti/prenesti celotno bazo (skupaj s podatki);
  • Za skupno delo na eni konfiguraciji se uporablja konfiguracijski repozitorij;
  • Obstajajo tudi številna pravila za spreminjanje standardnih konfiguracij; obstaja celo dokument iz 1C, ki opisuje metode in standarde za spreminjanje standardnih konfiguracij (in vseh drugih).

Splošni vtis
Jezik 1C združuje jasnost besedil v jeziku Pascal z lahkotnostjo dela s spremenljivkami jezika BASIC. Manjka mu vrsta funkcij, ki so značilne za sodobne programske jezike, vendar lahko brez njih. Poleg tega ima platforma 1C močan zbiralnik smeti, tj. tabel po uporabi ni treba na primer čistiti ali brisati.

Vmesnik 1C Enterprise 8.2

Podjetje 1C je posebno pozornost namenilo vmesniku svojega programa. Najprej je to barvna paleta. Čudovita je! Programska okna so prepoznavna že od daleč in po dolgih letih dela - ne povzročajo sovražnih občutkov, nasprotno - želim, da so vsi programi enako kul.
Hkrati je slog platforme zelo strog, brez naborkov ali drugih naborkov. Hkrati obstajajo zelo uporabne funkcije, na primer pomnjenje velikosti oken (velikosti se zapomnijo le, ko jih uporabnik spremeni, hkrati pa lahko vedno ponastavite uporabniške nastavitve - na privzete velikosti in položaje s pritiskom na Alt+Shift+R).
Vmesnik spletnega odjemalca 8.2 povzroča številne pritožbe, vendar se zdi, da platforma 8.3 prinaša nov preoblikovan vmesnik - "Taxi".

Cene, ponudba in povpraševanje, franšizing

Najbolj "okusna" prednost platforme 1C je njena cena. To še posebej velja zdaj, v času krize. Navsezadnje je 1C popolnoma naš, domači izdelek. In se prodaja za naše lesene. Takšne rešitve tujega proizvajalca bodo stale veliko denarja. In licence za 1C so povsem razumne.

Poleg tega ima 1C zanimivo licenčno politiko. Same licence in konfiguracije se kupijo enkrat. Hkrati se kupujejo licence za delovno postajo in strežnik, ne pa tudi za baze podatkov in tudi ne za povezave, t.j. pod eno licenco lahko isti uporabnik zažene neomejeno število sej 1C in dela s poljubnim številom baz podatkov. Enako velja za konfiguracije: z nakupom ene licence za konfiguracijo lahko organizacija z njo ustvari poljubno število baz podatkov, poleg tega je uradno dovoljena uporaba delov kode in objektov te konfiguracije pri razvoju lastnih konfiguracij (v v tem primeru je mogoče prodati/prenesti lastne konfiguracije - s pogojem, da morate za njihovo uporabo kupiti konfiguracijo pri 1C).

Po tem enkratnem nakupu se morate le še naročiti na posodobitve in enkrat letno plačati podaljšanje naročnine, t.i. ITS. Mimogrede, naročnina je zelo poceni, približno enako kot dve odjemalski licenci.

Na splošno je vse to videti zelo donosno.

Drugi "okusen", vendar z muho v mazilu, poleg tega je prisotnost dokaj univerzalnih konfiguracij od samega 1C in od partnerjev.

O vsestranskosti

Koncept »vsestranskosti« je na NVP opredelil učitelj na šoli na primeru plinskih mask: obstajajo univerzalne, ki ščitijo pred številnimi škodljivimi dejavniki, vendar je stopnja zaščite povprečna ali podpovprečna, obstajajo pa tudi specializirane plinske maske. ki ščitijo pred enkratnim udarcem, vendar z visoko stopnjo zaščite. Do zdaj še nisem zasledil natančnejše definicije.
In konfiguracije iz 1C so univerzalne. V praksi ni nalog, kjer bi jih lahko v celoti uporabili brez sprememb. Kljub temu je 1C uspelo ustvariti univerzalni nabor orodij, ki pokriva potrebe večine sektorjev sodobnega poslovanja.


Tretja prednost (in tudi z muho v glavi) je mreža franšizijev in izobraževalnih centrov, tako za uporabnike kot za programerje in skrbnike začetnike. Dobra ideja, vendar zelo povprečna kakovost njene izvedbe. Vendar pa je razširjenost in agresivno trženje eden od razlogov za široko priljubljenost 1C pri nas (in to je tudi razlog za negativnost, zavist in sovraštvo).

Žlico katrana

Ko smo 1C opisali v vseh njegovih barvah, bi bilo nepošteno ne govoriti o njegovih pomanjkljivostih, vendar so:

Nestabilne izdaje- tako v platformi kot v konfiguracijah je ogromno napak in napak. In to je v uradnih izdajah. Preden se izda uradna različica, se izda "Ocenjevalna različica". Obstajajo tudi povratne informacije za predložitev opisov napak, tako da so sprejeti za popravek. Vendar bodisi poskusne različice niso posebej priljubljene ali pa podjetje 1C samo nima časa za obdelavo vseh črk do datuma izdaje, vendar je dejstvo. Vsakič, ko posodobite platformo ali konfiguracijo, lahko naletite na najbolj nepričakovana "presenečenja". 1C je bil že večkrat pozvan, naj temeljiteje preizkusi svoj razvoj.

Franšizojemalec (v nadaljevanju franšizojemalec). V idealnem primeru, kot je bilo načrtovano, bi to morala biti podjetja z usposobljenimi strokovnjaki, ki bi poznali osnovne principe delovanja konfiguracij in platform. Ta ista podjetja bi morala prodati platformo, konfiguracijo in podporo, nekoliko "dodelati" univerzalne konfiguracije, da bi ustrezale zahtevam naročnika (in včasih prilagoditi te zahteve), poskušati minimalno spremeniti standardno konfiguracijo. Da ne bi preveč komplicirali pri prihodnjih posodobitvah. Toda v resnici je ravno nasprotno.

Pri prodaji novih licenc stranki prejemniki franšize prejmejo 50 % njihovih stroškov (minus davek na dobiček v višini 13 % od teh 50 %). Hkrati vam ni treba ničesar izdelati sami, le ključe 1C morate predati kupcu.

Pri opravljanju storitev franšizojemalci podjetju 1C ne plačajo ničesar (razen članarine), vendar morajo plačati plačo zaposlenega. Država mora porabiti denar tudi za davke - pokojninski sklad in dohodnino.

Izkazalo se je, da je tako za 1C kot za franšizojemalce donosno prodajati licence in nedonosno za nadaljnjo podporo. Hkrati pa mora biti naročnik, da lahko kupi program, že na začetku prilagojen njegovim zahtevam. Toda delo je treba plačati. In tu se zaradi varčevanja pripeljejo študenti, vajenci, nestrokovnjaki, lahko so plačani malo, včasih pa sploh ne, sploh jim ni treba biti prijavljeni kot kader (delali bodo neuradno). , na srečo je treba nekaj plačati). Rezultat je ogromno število prodaj z zelo nizko kakovostjo. Izboljšave običajno vplivajo na pomembne mehanizme in zapletejo prihodnje posodobitve. Toda v fazi prodaje to ne zanima niti 1C niti franšizojemalec.

Opažam, da to ni toliko krivda francoskih poslovnežev kot podjetja 1C. Ko se je osredotočila na prodajo, ji sploh ni bilo mar za podporo (zdaj ne govorim o šolah, ampak o tem, da bi morala biti podpora koristna tako za samo franšizno podjetje kot za 1C).

Tehnična podpora. V razumevanju podjetja 1C je tehnična podpora zagotavljanje dostopa do razdelka »posodobitev« za platformo in konfiguracije ter do informacijskih razdelkov, ki vsebujejo opis nekaterih mehanizmov in funkcij delovanja 1C. Poleg tega, ko se naročite, prejmete disk z navedenimi materiali. Obstaja tudi forum (zelo skromen v primerjavi s priljubljenimi). Obstaja tudi možnost, da pošljete e-pošto podjetju 1C - vendar brez upanja, da bodo nanj odgovorili (ali bo robot odgovoril: "Pismo je bilo poslano v razvojni oddelek." Kar zadeva razvoj, Yandex.Search in pomoč, ki je vgrajena v konfigurator, zagotavlja veliko večjo podporo.

Epilog

Na 1C sem prešel leta 2008, pred tem pa sem delal v podjetju, ki je razvijalo svoj računovodski program (Delphi 5, nato Delphi 7). Najprej sem se seznanil s platformo 1C Enterprise 7.7 in bil presenečen nad enostavnostjo razvoja poročil. Hkrati je bilo jasno, da se poročila generirajo veliko dlje kot v podobnih mehanizmih na Delphiju, vendar računovodje to ni posebej skrbelo. Čakanje nekaj minut namesto nekaj sekund ni problem. Nasprotno, tam si lahko nalakirate nohte, pijete čaj ali razpravljate o najnovejših novicah, ne da bi se ustavili pri delu. Navsezadnje je danes velika večina računovodij žensk.
Vendar je bil vmesnik 7.7 zelo omejen, nabor predmetov pa zelo slab. Iskal sem alternative. Z zunanjimi komponentami sem se seznanil, do praktične uporabe pa nisem prišel, ker... šef se je odločil, da je čas, da preidemo na 8.1 (ja, 8.2 še ni bilo) in v tej platformi sem kot programer našel vse, kar sem prej pogrešal.
Trenutno imam avtoriteto med sodelavci, pa tudi med strankami, ki so k meni prišle od franšizijev. Verjetno ne bodo nikoli več stopili v stik s Francozi.


Na splošno sem zelo zadovoljen z delom v platformi 1C Enterprise 8. Primeren je za reševanje večine računovodskih in podatkovnih težav.

Oznake: dodajte oznake

Vsem, ki se želite ukvarjati s programiranjem, želimo razložiti nekaj preprostih stvari, ki niso omenjene v vseh programskih učbenikih, vendar bi morali to vedeti tisti, ki želijo obvladati programiranje v jeziku 1C iz nič.

1. Programski jezik je najprej jezik.

Preden se začnete učiti jezika, se psihično pripravite na dejstvo, da ta proces ni hiter. Tako, da si lahko konkretno predstavljate, kaj je učenje programskega jezika – je skoraj isto kot učenje tujega jezika. Vsi se v šoli učijo tujega jezika in vsi ga odlično razumejo; ni dovolj le naučiti se prevoda besed iz tujega v materni jezik v slovarju. Na primer, stavek "znam angleško" lahko izgovori oseba, ki zna: brati besedilo v angleščini, prevajati, sestaviti stavek brez napak, se ustno izražati. Prevajanje tujih besed brez sposobnosti pravilnega sestavljanja stavka (branja sintakse programskega jezika) zagotovo ne pomeni znanja tujega jezika. Zato Lekcija 1 - obravnavajte učenje programskega jezika enako kot bi obravnavali učenje tujega jezika s ciljem, da ga popolnoma obvladate.

2. Vadite.

Zagotovo ste že slišali, kako so nekateri ljudje, ki dobro poznajo tuj jezik, le-tega postopoma pozabili, ne da bi ga uporabljali. Ko ste preučili osnove programiranja na 1C, vsak dan vadite pri izvajanju preprostih nalog, da ne izgubite prej pridobljenega znanja in postopoma prevzamete bolj zapletene naloge. Izboljšajte svoje sposobnosti.

Vsak posel gre bolje, če obstaja motivacija.Za vas veščine programiranja dolgoročno pomenijo denarno nagrado, dobro službo, lahek socialni dvig itd. Ni skrivnost, da je programski izdelek 1C Enterprise zelo priljubljen na postsovjetskem prostoru. Od desetih podjetij jih osem uporablja program 1C za evidentiranje poslovanja. V skladu s tem potrebujejo skrbnika ali programerja 1C, ki bi vzdrževal in izpopolnjeval program. Seveda tak trg potrebuje strokovnjake 1C. Včasih so podjetja pripravljena zaposliti ne zelo visokokvalificiranega delavca s programerskimi veščinami za dostojno plačilo s pogojem samoizpopolnjevanja. In tudi če ne želite delati za komercialno podjetje ali franšizo, bo dobro usposobljen programer lahko našel delo na samostojnih izmenjavah ali izvajal projekte po meri. Na splošno programer 1C ne bo ostal brez dela.

Z uvodnim delom v osnove programiranja končali smo. Preostali del gradiva bo namenjen obvladovanju osnov jezikovne kode 1C. Morda bodo nekateri deli opisani preveč na kratko, vendar namen tega gradiva ni popolnoma potopiti bralca v sintakso jezika, temveč najprej seznaniti strokovnjake z arhitekturo jezika 1C, da bi oblikovali določeno okostje ( baza) v glavi uporabnika, na kateri bo obešeno vse znanje v prihodnosti.

V tem članku bom podal pet delovnih nasvetov za začetnike programerjev 1C, ki vam bodo pomagali hitro vstopiti v poklic.

V referenčnih informacijah lahko hitro in učinkovito spoznate metode, lastnosti in dogodke vseh predmetov 1C. V platformi 1C obstajata dve vrsti potrdil. Pravzaprav sama pomoč, pot: Pomoč – Vsebina pomoči.

In tudi sintaktični pomočnik

Pomočnik za sintakso vam omogoča hiter dostop do opisa določenega predmeta z uporabo zavihkov »Kazalo« in »Iskanje«. Če na primer v zavihek »Indeks« vnesemo besedo »matrika«, se v indeksu takoj prikažejo vse možne možnosti, kjer se beseda »matrika« lahko uporabi v vgrajenem jeziku.

Če kliknemo eno besedo (na primer Array), potem se nam v primeru več istoimenskih objektov, lastnosti in metod ponudi seznam za izbiro.

Z izbiro tistega, kar potrebujete, boste prejeli vse informacije o predmetu zanimanja. V tem primeru smo prejeli informacijo o univerzalni zbirki vrednosti objekta - matrike.

Upoštevajte, da v referenčnih informacijah zelo pogosto obstajajo primeri kode, kjer se uporablja opisani predmet.

Več o uporabi pomoči: video vadnica

Mnogi programerji začetniki 1C zanemarjajo ta mehanizem platforme 1C. Ampak zaman! Z delom z razhroščevanjem lahko razumete, kako deluje ta ali ona koda in katere vrednosti vrne ta ali ona funkcija.

Da bi razhroščevanje delovalo, samo nastavite prekinitveno točko in zaženite razhroščevalnik z gumbom »Začni razhroščevanje« (tipka F5).

Da se program ustavi na prelomni točki, morate v uporabniškem načinu v 1C: Enterprise izvesti dejanja, ki bodo privedla do izvajanja kode, kjer je nastavljena prelomna točka. Na zgornji sliki smo nastavili prekinitveno točko v postopku ProcessingProcedure dokumentnega modula »Določanje cen«. Če v uporabniškem načinu zaženemo katerikoli dokument »Nastavitev cen«, se sproži prelomna točka.

Po tem lahko uporabite Tableau ali uporabite »Izračunaj izraz ...«, da ugotovite vrednosti določene spremenljivke.

Navadite se na delo s kontekstnimi namigi in predlogami že od samega začetka. Tako boste občutno pospešili svoje programiranje in ne boste izgubljali časa z razmišljanjem o pravilnosti zapisa določene funkcije (postopka, metode itd.).

Kontekstne namige lahko omogočite v parametrih (pot: Orodja – Možnosti), na podzavihku »Kontekstna pomoč« zavihka »Moduli«.

S pomočjo kontekstualnih namigov lahko ugotovite, katere parametre ima določen postopek ali funkcija.

In tudi ugotovite, katere metode in lastnosti ima lahko določen predmet

Kontekstualni opis orodja se prikaže, ko s tipkovnice vnesete piko, oklepaj ali enako (odvisno od nastavitev parametrov), pa tudi po pritisku kombinacije tipk Ctrl + preslednica (preslednica)

Prav tako ne zanemarite predlog kod. Več o tem, kako delati z njimi, si lahko preberete v članku:

Jasno je, da bodo mnogi programski guruji začeli pljuvati strupeno slino iz tega nasveta, vendar bo za mnoge začetnike programerjev 1C uporaba standardnih konstruktorjev v začetni fazi pomagala hitro obvladati določene algoritme dela (na primer risanje dokumenta, izpolnjevanje na podlagi itd.).

V platformi 1C obstaja več vrst konstruktorjev.

Pri dokumentih lahko prikličete oblikovalca za premike, vnos na podlago in tisk.

In zadnji, nič manj pomemben nasvet za programerje začetnike 1C je, da se naučijo brati kodo drugih ljudi. Da, zapleteno je, nerazumljivo in težko, a če že od samega začetka poskušate razumeti kodo nekoga drugega, vam bo ta veščina v prihodnosti zelo koristna. Tudi branje kode nekoga drugega vam lahko pove, kako pravilno uporabiti ta ali oni predmet ali kako delati s katero koli funkcijo (postopkom).

Na primer, želite videti, kako neka obstoječa konfiguracija uporablja metodo registra informacij. Če želite to narediti, morate izvesti globalno iskanje po konfiguraciji

V obrazec za globalno iskanje vnesete ime, ki ga iščete

Če je iskana beseda v konfiguraciji (zlasti v modulih), bo pot do te besede prikazana v rezultatih iskanja

Iz rezultatov iskanja se lahko pomaknete do želenega modula in vidite, kako se uporablja metoda (postopek, funkcija) ali predmet, ki ga iščete.

Tako se lahko hitro naučite uporabljati nekatere standardne metode dela z določenimi predmeti.

Včasih se zdi, da je učenje programskega jezika v 1C zapleteno in težko. Pravzaprav je programiranje v 1C preprosto. Moje knjige vam bodo pomagale enostavno in hitro obvladati programiranje v 1C: in "Osnove razvoja v 1C: Taxi"

Ta knjiga je primerna za tiste, ki so že začeli programirati in imajo določene težave s to temo ter za tiste, ki že dolgo programirajo, vendar še nikoli niso delali z upravljanimi obrazci 1C.

  1. Brez zapletenih strokovnih izrazov;
  2. Več kot 600 strani praktičnega gradiva;
  3. Vsak primer spremlja risba (posnetek zaslona);
  4. Knjigo pošljemo po elektronski pošti v formatu PDF. Lahko se odpre na kateri koli napravi!

Promocijska koda za 15% popust - 48PVXHeYu


Če vam je ta lekcija pomagala rešiti kakršno koli težavo, vam je bila všeč ali koristna, potem lahko podprete moj projekt tako, da donirate poljubni znesek:

Plačate lahko ročno:

Yandex.Money - 410012882996301
Spletni denar - R955262494655

Pridružite se mojim skupinam.

Orodje podpira več kot 20 programskih jezikov in ga je mogoče integrirati v večino priljubljenih urejevalnikov kode. Algoritem - primer...


  • Kaj so učili na univerzi v 5 letih!

    Starejši programski vloger pokaže svojo diplomo in ocenjevalni list ter se poskuša spomniti predmetov, učiteljev in ugodnosti. Več kot 8000 preživetih ur...


  • Google v ruščini: zakaj je podjetje prevedlo Android v jezik ruskih razvijalcev

    Direktorica razvoja Androida Stephanie Cuthberson napoveduje Kotlin kot enega od uradnih jezikov za OS, 2017 Vir: Google je naredil Kotlin ...

  • Programski jeziki, ki so jih razvili ruski in sovjetski programerji

    Kotlin Kotlin je statično tipiziran programski jezik, ki deluje na vrhu JVM in ga je razvil JetBrains.…


  • Youtube kanali z lekcijami programiranja

    ITVDN Technostream Mail.Ru Group Gosha Dudar loftblog Howdy Ho™ - Preprosto o svetu IT! Kirill Antonov Byte++ Ivan Booravoi splincode wd Web…


  • Ocena RedMonk: TypeScript in Kotlin sta najhitreje rastoča programska jezika

    Glede na novo poročilo RedMonka imata TypeScript in Kotlin najboljše stopnje rasti na podlagi parametrov, kot sta uporaba in obresti iz...

  • Google je Kotlin imenoval za glavni programski jezik za razvoj aplikacij na Androidu

    Google je na konferenci za razvijalce I/O 2019 napovedal, da bo programski jezik Kotlin zdaj prednostna naloga razvoja ... Kako do milijonov z odprto kodo: od Red Hata do Nginxa

    Vir Odprta koda je iz hobija nekonformističnih romantikov postala običajno orodje za služenje denarja. Novi pristopi...