Programozási nyelv tanulása 1s 8.3. A programozás alapjai az „1c: Enterprise

OROSZORSZÁG OKTATÁSI ÉS TUDOMÁNYOS MINISZTÉRIUMA

Szövetségi állami költségvetés oktatási

felsőoktatási intézmény

"PENZA ÁLLAMI EGYETEM"

A. E. Khokhlov

A programozás alapjai az "1c: Enterprise" környezetben

Penza, 2016

UDC 631.3 (075)

R e c e n s e n t:

"Alkalmazott Informatika" Tanszék vezetője

Penza Állami Technológiai Akadémia,

Egyetemi tanár Remontov A.P.

Khokhlov A. E.

X86 A programozás alapjai az 1C-ben: Vállalati környezetben: Tankönyv / A. E. Khokhlov, E. M. Golobokova, Yu.V. Teryakova – Penza: Penz Kiadó. állapot un-ta, 2015. - 144 p.

Az oktatóanyag segítségével elsajátíthatja az alkalmazásmegoldások fejlesztésének és módosításának technikáit az „1C: Enterprise 8.3” platformon. A valós alkalmazásmegoldás létrehozásának példája bemutatja a különféle rendszerobjektumok felépítését, célját és felhasználási módjait. Az eljárások a beépített nyelven vannak megadva, beleértve a lekérdezési nyelvet használókat is.

UDC 631.3 (075)

© Khokhlov A.E., 2016

© Penza State University kiadója, 2016

2.1. Az „1C: Enterprise 8” programrendszer összetétele 7

2.2. Konfigurációs szerkezet 9

2.3. Az "1C: Enterprise" szoftverrendszer felépítése 12

3. Az „1C: Enterprise” platform objektummodellje 18

7. Nyilvántartások 75

Bevezetés

Az "1C: Enterprise 8" programrendszert a vállalkozások, szervezetek és magánszemélyek tevékenységének automatizálására tervezték. A rendszer rugalmas technológiai platformra épül, melynek képességei sokféle üzleti alkalmazás létrehozását és módosítását teszik lehetővé.

Az 1C:Enterprise rendszer fő jellemzője a konfigurálhatósága. Technológiai platform Az „1C: Enterprise” olyan mechanizmusok összessége, amelyek a tárgyterületen belüli különféle típusú objektumok manipulálására szolgálnak. Az objektumok egy meghatározott halmazát, az információtömbök szerkezetét, az információfeldolgozó algoritmusokat egy adott határozza meg konfigurációt . A konfigurációval együtt az 1C:Enterprise platform használatra kész szoftvertermékként működik, amely bizonyos típusú vállalkozásokat és megoldandó feladatosztályokat céloz meg.

A rendszer működése két folyamatra oszlik:

    konfiguráció (a tartománymodell leírása a rendszer által biztosított eszközökkel),

    végrehajtás (a tárgykör adatfeldolgozása).

A konfigurációs folyamat viszont több részre oszlik:

    a konfigurációs struktúra "vizuális" létrehozása (konfigurációs objektumok, például könyvtárak, dokumentumok stb.),

    tárgyak párbeszédes formáinak felállítása,

    objektumok, formák viselkedésének sajátosságainak meghatározása (a konfiguráció bizonyos helyeire rendszernyelvi kód írása),

    felületek, felhasználói jogok (szerepek) készletek létrehozása.

A rendszer a végrehajtás során már a konfigurációs szakaszban leírt konkrét fogalmakkal működik (áru- és szervezetjegyzékek, számlák stb.).

Az oktatóanyag példát mutat be a konfiguráció fejlesztésére a 2014.03.06. kiadás platformján (oktatási verzió).

Az oktatási verzió vagy a programozás tanítására szolgáló verzió letölthető a http://online.1c.ru/catalog/free/learning.php webhelyről

A programozás megtanulásához 1C 8.3-ra van szükségünk (nem alacsonyabb, mint 8.3.4.482).

Ha telepítve van az 1C 8.3-as verziója, használja azt. Ha nem, töltse le és telepítse az oktatási verziót, amelyet az 1C kifejezetten oktatási célokra ad ki.

Feladat Ml. Töltse le és telepítse az 1C 8.3 oktatási verziót.

Végrehajtási utasítás:

  • 1. Csomagolja ki a linkről letöltött archívumot egy külön mappába az asztalon:
  • 1.1. letöltési link a dropboxból (Nsl változat) https://www.dropbox.eom/s/t69xyrrhsdugfzf/lC_Predprijatie_8.3_uchebnaja_versija.zip?dl=l
  • 1.2. letöltési link a Mail.ru oldalról (2. opció) https://cloud.mail.ru/public/59a9a532864d/lC_Predprijatie_8.3_uchebnaja_versija.zip
  • 2. Futtassa a "setup.exe" fájlt.
  • 3. Kattintson a Tovább, Tovább, Telepítés gombra.
  • 4. Várja meg, amíg a telepítés befejeződik.

Az 1. feladat elvégzése után a következő parancsikonnak kell megjelennie az asztalon (1. ábra):

Vállalat ( oktatási változat)

Rizs. egy. Indítsa el az 1C:Enterprise parancsikont

Első program

A programozóknál már hagyománnyá vált – tanulással új nyelv, az első dolog, amit ráírnak, az egy program, ami kiírja a képernyőre a „Hello, World!” kifejezést.

Tegyük meg, hogy a számítógép megjelenítse ezt a kifejezést oroszul: "Hello, World!".

2. számú feladat.Írjon egy programot az 1C 8.3-ban, amely indításkor megjeleníti a „Hello, World!” kifejezést.

Végrehajtási utasítás:

  • 1. Indítsa el az "1C:Enterprise" parancsikont az asztalon.
  • 2. Megnyílt előtted az 1C bázisok listája (2. ábra). Amint látja, üres. Hozzunk létre egy edzőbázist, amelyben programozni fogunk. Kattintson a gombra "Hozzáadás".
  • 3. Válasszon ki egy elemet és nyomja meg a gombot "További"(3. ábra).
  • 9 SCH Add hozzá az infobase/gr>tpy X-et

Rizs. 3.

4. Válasszon ki egy elemet ..." (4. ábra), majd nyomja meg a gombot "További".


Rizs. 4.

5. Az adatbázis nevéhez írja be: "Kiképzés"(5. ábra), majd nyomja meg a gombot "További".


Rizs. öt.

6. Adjon meg egy üres mappát alapkönyvtárként (in ez az eset ez az „Oktatás” mappa a dokumentumaimban (6. ábra)). Nyomja meg a "Tovább" gombot.


Rizs. 6.

7. Adjon meg egy hitelesítési beállítást "Automatikus kiválasztás", indítási mód "kövér kliens". A C:Enterprise 1-es verziójaként ne adjon meg semmit, kattintson a "Befejezés" gombra (7. ábra).


Rizs. 7.

8. Amint látja, végre megjelent a listában az első bázis, amit mi magunk készítettünk (8. ábra)! Kezdjük el írni a kódot. Kattintson a gombra "Konfigurátor".

Rizs. 8.

9. A megnyíló ablakban válassza ki a menüből a lehetőséget "Konfiguráció" bekezdés "Nyissa meg a konfigurációt"(9. ábra).

Konfigurátor (oktatási verzió) - Konfigurátor

Rizs. 9. Menüpont kiválasztása "Konfiguráció megnyitása"

10. A bal oldalon megnyíló panelen kattintson a jobb gombbal a ikonra ""Konfiguráció"és válassza ki a listából ""Felügyelt alkalmazásmodul megnyitása"(10. ábra).

Konfiguráció

Akciók» f / | X i 4

© *? Általános _For KrnSіamiЁ!.

Konfiguráció

^ Nyissa meg a felügyelt alkalmazás modult. Nyissa meg a munkamenet modult

Rizs. 10. A "Felügyelt alkalmazásmodul megnyitása" kiválasztása

11. Megnyílt egy ablak a szerkesztővel (11. ábra). Ide írhatsz szöveget! Vele fogunk dolgozni a jövőben.

Rizs. tizenegy. Felügyelt alkalmazásmodul

12. Írja át a következő szöveget ebben az ablakban (12. ábra):

Show("Hello World!");


13. Elkészült az első programunk kódja. Futtassuk a végrehajtáshoz. A menün keresztül Hibakeresés" "Hibakeresés indítása"(vagy az /'i billentyűt) (13. ábra).

Ді Konfigurátor (oktatási verzió) - Konfiguráció

i fájl Szöveg szerkesztése Konfiguráció Hibakeresés Alg4nstring»«e Service Windows Help

10 sZІїХ *

én be & d t? ©»i a a i //

[koifiguradoya*

Akciók?

KoiFigure

$ O# Általános 8? Konstansok 1111 Hivatkozások ® C] Dokumentumok

Dokumentum folyóiratok (..) Re

Konfigurátor (oktató verzió)

L A szerkesztett konfiguráció eltér az adatbázis konfigurációjától. Adatbázis konfiguráció frissítése?

....................

Rizs. 13. A program elindítása végrehajtásra

14. Igennel válaszolunk a kérdésre.

15. Egy-két másodperc múlva elindul az 1C, és az alábbi ablakban megjelenik a „Hello, World!” felirat. Amit szerettünk volna, azt elértük a számítógéptől, az első programunk bevált (14. ábra).

Üzenetek:

Helló Világ!

Rizs. 14. A program eredményei

Kiváló videó tanfolyam a programozásról az 1C: Enterprise rendszerben. 7 tanfolyamot tartalmaz:

1. 1C: Vállalati 8.3. A fejlesztő első lépései
- navigálni a szerkezetben új verzió 1C: Enterprise 8.3 rendszerek;
-megért Általános elvek rendszerfejlesztés;
- válasszon módokat az 1C:Enterprise 8 rendszer további tanulmányozására és fejlesztésére;
- használni az 1C:Enterprise 8 környezetben való munkavégzés alapvető készségeit;
- könyvtárakkal, dokumentumokkal és egyéb objektumokkal dolgozni, tulajdonságaikat módosítani;
-on a belépő szint dolgozni a fő űrlapvezérlőkkel, az eseménykezelővel és a rendszer egyéb funkcióival.

2. 1C: Vállalati 8.3. Bevezetés a konfigurációba. Fő objektumok
- Megérted az 1C:Enterprise 8 rendszer felépítésének általános alapelveit
- Sajátítsa el az 1C:Enterprise 8 környezetben való munkavégzés alapvető készségeit

3. Lekérdezések használata az 1C:Enterprise 8 rendszerben. Lekérdezés nyelve
- Írjon kéréseket
- Dolgozzon lekérdezéskészítővel
- Helyesen használjon különböző típusú információbiztonsági táblákat
- Ismerkedjen meg a virtuális regisztertáblákkal való munkavégzés funkcióival

4. 1C: Vállalati 8.3. Működési problémák megoldása
- Munka akkumulációs regiszterekkel
-Algoritmusok írása a dokumentumok feltételes könyveléséhez
- használati mechanizmus kezelt zárak
- Tanulja meg, hogyan javíthatja a megoldások teljesítményét

5. 1C: Vállalati 8.3. Számviteli problémák megoldása
- Önálló számlatükör és számviteli nyilvántartás tervezése a szintetikus, több céges, elemző, mennyiségi és deviza típusú könyvelés problémáinak megoldására;
- Helyesen töltse ki a nyilvántartást mozgásokkal minden típusú könyvelésnél, mind a bizonylatok vezetésekor, mind a kézi műveletek rögzítésekor;
- Ismertesse az elsődleges és szabályozó bizonylatok vezetésének optimális komplex feldolgozását a számviteli nyilvántartás eredményeinek elemzésével többfelhasználós módban menedzselt zárkonfiguráció alkalmazása esetén;
- Használja az adatösszetétel mechanizmusát bármely számviteli jelentés elkészítéséhez, legyen az összefoglaló szintetikus és részletes elemző is.

6. 1C: Vállalati 8.3. Számítási feladatok megoldása
- Legyen jártas az 1C:Enterprise 8.3 eszközökben
- Ismerje és tudja a gyakorlatban alkalmazni a bérszámfejtés és a személyi számvitel automatizálási problémáinak megoldására szolgáló módszereket
-Legyen képes ellenőrizni a kidolgozott megoldás teljesítményét
- Értse a számítási regiszter konfigurációs objektumai, fizikai táblái és virtuális táblái kapcsolatát
- Találja meg és helyesen javítsa ki a hibákat: módszertani és programozási szempontból egyaránt
- Sajátítsa el az "1C:Enterprise 8.3" platform funkcionalitását a számítási problémák megoldásához szükséges részben

7. 1C: Vállalati 8.3. Az integráció és az adatcsere eszközei
-Valakivel együtt dolgozni szöveges fájlokés dokumentumokat
- Dolgozzon .dbf fájlokkal
- Internetkapcsolat létrehozása
-Valakivel együtt dolgozni emailés használjon http, ftp protokollokat
- Használjon OLE és COM technológiákat
- Használjon konzisztens XML hozzáférési modellt
- Használjon XDTO-t és vegyes XML-modellt
- Adatcsere megszervezése
-Használja az "Exchange Plans" objektum mechanizmusait
- Használja az "Adatkonverzió" konfigurációt

Még ha korábban más programozási nyelveket is tanult, például C ++, PHP, Java, érdemes megjegyezni, hogy az 1C, bár sok tekintetben hasonló, mégis számos alapvető különbséggel rendelkezik.

A legfontosabb dolog az 1C-ben, hogy nem kell saját típusú objektumokat feltalálnia. Mindegyik már a konfigurációban van.

Telepítse az 1C technológiai platformot a számítógépére, és nyisson meg egy új vagy meglévő adatbázist a konfigurátorban. Kezdetnek teljesen használható programozás tanulására.

Az ablak bal oldalán a konfigurációs objektumok fája látható. Ide tartoznak a dokumentumok, címtárak, nyilvántartások, üzleti folyamatok stb.

Az adatokat a DBMS is tárolja, de a fejlesztő általában nem dolgozik velük közvetlenül. A technológiai platform segítségével a programozó már hivatkozik a konfiguráció vagy az infobázis objektumaira.

Az 1C-ben, mint sok más programozási nyelvben, nagyon gyakran használnak lekérdezéseket. hasonló a T-SQL-hez. A kérések angolul és oroszul is megírhatók, más szóval, a kód többi részéhez hasonlóan.

Minden egyszerűnek tűnik, de a programozási nyelv ismerete gyakran nem elegendő a "terepen" való munkához. Az a tény, hogy a legtöbb 1C-t használó szervezetben szabványos konfigurációk vannak telepítve, és ezeket ismernie kell.

Ami az 1C programozók munkáját illeti, két fő ág van: franchise átvevő vagy "magának" dolgozzon, és teljes munkaidős programozóként dolgozzon egy szervezet informatikai osztályán. Ez a választás az Ön preferenciáitól függ.

Ha franchise átvevőnél dolgozik, szabadúszó vagy saját vállalkozást vezet, a fizetés darabonként történik. Sok munka lehet, és minden tőled telhetőt ki kell adnod. felső sáv bekapcsolva bérek nincs itt, és lenyűgöző mennyiségű pénzt kereshet.

Ha úgy dönt, hogy szabadúszóként dolgozik, vagy saját vállalkozást nyit, akkor nem kell senkivel „megosztania” a bevételét (kivéve természetesen az államot és a szabadúszó platformot). De ebben az esetben önállóan kell keresni az ügyfeleket.

Ha mégis úgy dönt, hogy főállású programozóként elhelyezkedik egy szervezetben, akkor nem fog sokat függeni az elvégzett munka mennyiségétől. Ebben az esetben van némi stabilitás, de a fizetési sáv korlátozott.

Természetesen ez a két mód kombinálható, nappal főállású programozóként, esténként szabadúszóként.

Az 1C programozókban az a jó, hogy esetleg nincs műszaki végzettsége (pl. közgazdász, könyvelő stb.). Ahhoz, hogy megerősítse tudását az ügyfelek vagy a munkáltató előtt, megadhatja 1C tanúsítványait.

Különféle típusú tanúsítványok léteznek, mind platformonként (programozók számára), mind szabványos megoldások szerint. Az 1C-n egy teszt vagy gyakorlati feladat formájában vizsgával szerezheti meg őket.

Könyvek az 1C-ről

A legjobb az 1C-t az 1C által kiadott könyvekből tanulmányozni. Úgymond a forrásból. Némelyikük szabványos konfigurációval érkezik. Egyedi könyveket is vásárolhat.

Az „1C: Programozás kezdőknek” című könyv azoknak szól, akik távol állnak a programozástól, de szeretnék megtanulni, hogyan készítsenek saját megoldásokat az 1C 8.3-ban a semmiből.

A „Hello, 1C” a legegyszerűbb, legalapvetőbb fejlesztési funkciókat mutatja alkalmazott megoldások az 1C:Enterprise 8 rendszerben.

A 101 tipp leírja különböző módokon ugyanazokat a problémákat megoldani.

Az 1C Enterprise 8.3 Developer's Practical Guide egy nagyon részletes útmutató, amely egyszerű és érthető példákkal írja le a fejlesztési technikákat. Ezt a könyvet az egyik legjobb az 1C programozás megtanulásához.

Ez az oktatóanyag a nulláról írja le a lekérdezési nyelvet azok számára, akik még csak nem is ismerik az SQL-t.

Ha SI-ben írod
Legyen legalább háromszor bénább
Azt mondják erről:
– Menő programozó!
(Fidosh dalok - "What is Suxxx and What is Rulezzz")

Előszó

A cikk megírásának oka a szakmai közösség negatív hozzáállása a megadott platformhoz és programozókhoz.

Mint programozó, aki az 1C-t választotta, ezt a véleményt ésszerűtlennek tartom. Az 1C platform messze nem ideális, de véleményem szerint a legjobb, és ami a legfontosabb, hazai termék!

És még inkább - nem megfelelő egy programozó képességeit a nyelv alapján megítélni, amelyen ír.

Ebben a cikkben leírom azokat az előnyöket, amelyeket magamnak találtam a programban. A cikkből szinte reklám lesz, szóval rögtön egy felelősségkizárás:

  • Nincs közvetlen kapcsolatom az 1C céggel;
  • Ez a cikk nem egyedi, és kizárólag önkéntes alapon íródott;
  • Egyes esetekben személyes véleményt fogalmaznak meg, amely nem feltétlenül esik egybe...;
  • Az egész cikk, a prológus kivételével, a szerzőé, minden véletlen egybeesés véletlen;
  • Az 1C Enterprise 8.2 platformról fogunk beszélni (jelenleg a 8.3-as verzió releváns, de még nem tanulmányoztam - sok munka van az 1C 8.2-n). Az elmondottak nagy része azonban a 8.3-as és az újabb platformokra vonatkozik. korai változatai, és néhány – és a 7.7-es verzióra.
Tehát kezdjük.

Miről beszélünk?

Az 1C Enterprise 8 platform a következő:
  • Két változatban működik - fájl és szerver (három hivatkozás) - mindegyiknek megvannak a maga előnyei és hátrányai;
  • Független könyvelési rendszer, amely könnyen telepíthető és konfigurálható;
  • Erőteljes ökoszisztéma programozók számára az összes szükséges tárggyal és eszközzel;
  • Szép ergonomikus felület;
  • Viszonylag olcsó üzleti megoldás;
  • Franchise hálózat, alapképzés;
  • Az évek során felhalmozott fejlesztések és tudás erőteljes bázisa;
  • Néha problémás platform a rendszergazdák számára;
  • Az algoritmusok nem a leggyorsabb végrehajtása (bár nem a leglassabb) az információtartalom előtti tisztelgés (hiba esetén a sorszám és annak tartalma feltüntetésre kerül);
  • A programozási nyelvben nincsenek osztályok (öröklődés, tokozás, polimorfizmus), névtelen funkciókés egyéb modern funkciók. De a legtöbb feladatnál ez nem szükséges!
A könyvelés megszervezéséhez - egy platform nem elég. A platform egyfajta „motor”, köztes kapcsolat a program és az adatbázis között. Az ehhez a „motorhoz” tartozó programokat konfigurációknak nevezzük. A konfiguráció objektumok formájában írja le az adatbázis felépítését, külön modulokban tárolt eljárások szövegeit (sok modul van, mindegyik objektumnak és a rendszer egészének is van ilyen, és vannak közös modulok is). A platform olyan szintű absztrakciót biztosít, amely nem igényel közvetlen hozzáférést az adatbázishoz, és lehetővé teszi az absztrakciót is operációs rendszerés az adatbázis típusa.

Fájl és szerver adatbázis

A platform több részből áll, és működhet fájl- vagy szerververzióban is.

A fájlverzióban a teljes adatbázis egy fájlban található ("1cd" kiterjesztéssel) - a platform minden számítógépre telepítve van, és közvetlenül olvas/ír az adatbázisba.

A fájl opció előnyei - alacsony árés a könnyű telepítés.

Hátrányok - az "1cd" fájlszerkezet zárva van, nem egységes rendszer interakcióba lép az adatbázissal. Emiatt nehéz használni nagy számú felhasználóval (20+ felhasználónál kipróbálva - dolgozhat). Ezenkívül, ha az adatbázis mérete megközelítőleg 15 GB (vagy több), akkor a végrehajtás során hibák léphetnek fel dinamikus frissítés. Az ilyen hibák megoldása nehéz feladat, és az alapjavító segédprogram nem mindig javítja hatékonyan, sőt néha meg is nyomorítja az alapot.

Van megoldás – ez mindenekelőtt napilap felállítása Tartalékmásolat Adatbázis. Ezenkívül a kézművesek nemcsak az 1cd fájlformátumot teszik közzé, hanem segédprogramokat is kifejlesztettek az ilyen fájlokkal való munkavégzéshez, valamint számos módszert az ilyen problémák megoldására.

A szerververzióban az adatbázis-tároló platform SQL szervert használ (általában MS SQL, de 8.2.14-től kezdődően használhatunk másokat is, pl. Firebird PostgreSQL, IBM DB2, Oracle Database), és a platform maga háromszintű architektúrát használ:

A kód egy része a kliensen, egy része a szerveren fut le. Ebben az esetben csak a szerver lép interakcióba az adatbázissal. Ugyanakkor a 8.2-es verziótól kezdve a szabványos működési mód mellett, amelyet "vastag kliens" módnak neveztek, két új üzemmód jelent meg - " vékony kliens" és "web-kliens"; is megjelent kezelt űrlapok», kinézet amely az elemek absztrakt fája formájában épül fel. A felügyelt űrlapok és a háromszintű architektúra programozása nehezebb, de ez lehetővé teszi, hogy szinte a teljes terhelést átvigye a szerverre (vagyis vásárolhat egy nagy teljesítményű szervert és száz legolcsóbb irodai számítógépet).

A platform előnyei: "három link" - terheléselosztás, az adatbázis nyitottsága (hivatalosan az 1C cég nem vállal felelősséget minden adatsérülésért, ha az SQL adatbázisban változtatásokat hajtottak végre, kivéve a platformjuk vagy a szerverükön keresztül, de ez megáll kevés ember), a korlátozások hiánya.

Hátrányok - ár: mindegyikhez külön kell megvásárolnia az ügyféllicenceket kliens számítógép, külön - egy licenc az 1C szerverhez, külön egy licenc az SQL szerverhez, ha nem használ ingyeneset. Ezenkívül néha nehézségek adódnak az adatbázis működésében. Sokkal gyorsabban megoldódnak az adatok elérhetősége és az adatbázissal való munkavégzéshez szükséges külső eszközök elérhetősége miatt. Ezenkívül ebben az esetben készítsen biztonsági másolatot az adatbázisról.

Gyakori plusz a konfigurációs kód univerzalitása: néhány kivételtől eltekintve a fájladatbázishoz tervezett konfiguráció kiszolgáló adatbázison is működik, és fordítva. Kivételre példa a változó érték átvitele a szerverre vagy a szerverről a kliensre (a fájl verzióban ez nem okoz kivételt, kliens-szerver verzióban viszont tilos).

További plusz: a platform nagyon könnyen telepíthető, valami ilyesmi: „Következő-Következő-Következő-OK”, nincs szükség finomhangolásra vagy komponensek telepítésére.

A szerver verzióhoz több további beállítások, de minden a telepítési párbeszédpanelen történik, és nem kell semmit beírnia külön fájlokat. Az SQL szerver telepítése kissé nehézkes lehet, mert ebben az esetben sokkal több beállítás van (és a finomhangoláshoz tanulnia kell további utasításokat). De ez nem vonatkozik az 1C platform problémáira. Sőt, ha például telepít egy MS SQL szervert az összes alapértelmezett beállítással, akkor az 1C képes lesz dolgozni vele.

Ez több, mint könyvelés

Amikor az 1C platformról van szó, mindenekelőtt programként jelenik meg könyvelés. Valójában ez az 1C platform legnépszerűbb felhasználási területe. De az 1C nem csak könyvelésből él!
A platformot ismerők azt mondják, hogy ez egy könyvelési (számviteli automatizálási) rendszer. Ez közelebb áll az igazsághoz - számos konfiguráció létezik, mind az 1C-től, mind a harmadik féltől származó fejlesztőktől. Van, amelyik csak közvetve kapcsolódik a számvitelhez, van, amelyik egyáltalán nem.

Általában helyesebb az 1C platformot héjként ábrázolni az objektum adatbázis modellezéséhez, interfészéhez és programozásához az 1C nyelven. Az egyetlen korlátozás az, hogy minden konfigurációnak saját adatbázisa van, és csak egy (azonban lehetőség van további csatlakozásra külső források adatok, azaz egyéb alapok).

Ökoszisztéma programozóknak

Nézzük most az 1C nyelvet és platformot a fejlesztő szemszögéből:
Az adatbázis objektum modellje. Először is, nem dolgozunk közvetlenül adatbázisokkal. Nem szükséges. Kényelmünk érdekében minden adat egymással összefüggő objektumok (könyvtárak, dokumentumok, információs regiszterek, felhalmozási regiszterek, ...) formájában jelenik meg, és a platform automatikusan „kihúzza” ezeket az adatokat az adatbázisból.
Például, feltéve, hogy a "Nómenklatúra elem" változó hivatkozást tartalmaz a "Nómenklatúra" könyvtár elemére, a "Nómenklatúra" könyvtár rendelkezik a "MainSupplier" attribútummal, a "Directory.Contractors" típusú és a "Vállalkozók" típussal. a könyvtár tartalmazza a "FullName" attribútumot, majd a kódot:

Nómenklatúra Element.MainSupplier.FullName
... arra készteti az 1C platformot belső mechanizmusok segítségével, hogy a nómenklatúra elem "Fő szállítója" mezőjéből származó azonosító alapján egy rekordot találjon a táblázatban, amely megfelel a "Counterparties" könyvtárnak, és visszaadja a mező értékeit megfelel a "FullName" mezőnek a "Counterparties" könyvtár objektummodelljében.

Sok ilyen eltérés lehet – a rendszer megbirkózik vele. Az egyetlen figyelmeztetés az, hogy a rendszer nem képes optimalizálni a dereferenciákat, ezért törekedni kell arra, hogy ezeket mindenféle hurokból kivonjuk.

Az adatokat leíró objektumok mellett rengeteg rendszerobjektum található – leginkább különböző funkciókat. Ezek közül kiemelek néhányat:

Érték üzletek
sor- egy adathalmazt tároló objektum, ellentétben a tömbök klasszikus ábrázolásával. Ez lehet adat különféle típusok(szám, karakterlánc, hivatkozás, egyéb objektum). Megvan minimális funkcionalitásés főleg ideiglenes konténerként használják az értékek más üzletek közötti átvitelére.

Értékek listája- egy objektum, főleg a felhasználói felülettel való munkavégzéshez. Az adatokon kívül minden elem tartalmazhat egy nézetet, egy zászlót és egy képet (piktogramot). Rendelkezik a "SelectElement()" és a "MarkElements()" metódusokkal is - meghívásakor egy interfész párbeszédpanel jelenik meg a felhasználó számára (ami kényelmes - ezt a párbeszédablakot nem kell létrehozni a konfigurációban).

SzerkezetÉs Megfelelőség- párosított értékek tárolása "Kulcs és Érték". A „Kulcs” szerkezetben ez egy karakterlánc, amely megfelel a változók elnevezésére vonatkozó szabályoknak az 1C-ben (nincs szóköz, nem kezdődik számmal, csak betűkből, számokból és aláhúzásjelből áll). Szerint - "Kulcs" bármilyen érték. Az objektumok leggyorsabb keresése összhangban történik (gyorsabb, mint egy tömbben és egy indexelt értéktáblázatban).

Értéktáblázat- nagyon kényelmes és meglehetősen gyors objektum adatok tárolására és feldolgozására. Az értéktáblázat oszlopai a bejegyzések számától függetlenül hozzáadhatók és eltávolíthatók. Ebben az esetben a sorokban lévő adatok nem vesznek el (vagy csak a törlendő oszlopoknak megfelelő cellák adatai törlődnek). Ezenkívül rendelkezik a "Select String ()" metódussal, amely meghívja a karakterlánc-kiválasztó párbeszédablakot. Vannak indexek.

Értékfa- hierarchikus adatokat reprezentáló objektum. Oszlopokat tartalmaz, az oszlopkészlet minden szinten minden rekordnál azonos. Oszlopok eltávolítása/hozzáadása az értékfában ugyanolyan egyszerű, mint egy értéktáblázatban. Ezenkívül van egy "SelectRow()" metódusa.

Interfész objektumok és objektumok különféle adatokkal való munkavégzéshez TextDocument, SpreadsheetDocument, Web Browser, ReadFile, WriteFile, ReadZIPFile, WriteZIPFile, ReadXML, WriteXML, HTTPRequest és még sok más objektum, és mindenhez van beépített súgó a konfigurátorban. A felsorolt ​​objektumok rendeltetése a nevükből is látszik, és mindez azonnal elérhető a platformon.

Külön meg kell jegyezni, hogy van egy Metadata objektum - melynek segítségével programozási nyelven tanulmányozhatja az adatstruktúrát, valamint minden hivatkozást vagy objektumot egy referenciakönyvhöz, dokumentumhoz, számlatervhez stb. létezik egy "Metadata()" metódus - ennek a könyvtárnak/dokumentumnak/számlatáblázatnak/stb. az adatbázisban (milyen részletek, táblázatos részek állnak rendelkezésre, a kód/szám hossza stb.). Gyakran nagyon kényelmes.

És külön meg kell említenünk az objektumokat is: „Kérés”, „Kéréskészítő”, „Kéréskészítő”, „Jelentéskészítő”, „Adatösszetételi séma”. Ez a család objektumkészletet valósít meg a hatékony 1C lekérdezési nyelvvel való munkavégzéshez.

Lekérdezési nyelv. Az 1C lekérdezései csak az adatok kiválasztásához használhatók kényelmes kiválasztással, rendezéssel és csoportosítással. Első közelítésként ez az SQL-ből oroszra fordított „SELECT” operátor, azonban az 1C lekérdezési nyelvnek van olyan funkciója is, amely SQL-ben nem érhető el, nevezetesen:

  • Munkavégzés 1C konfigurációs objektumokkal SQL táblák helyett;
  • Munka hivatkozásokkal az SQL azonosító mezők helyett;
  • Támogatás a hivatkozás megszüntetéséhez, hasonlóan ahhoz, ahogy a kódban történik;
  • Mintavétel egy csoport megadásával (könyvtárak esetén);
  • Hierarchikus összegek;
  • Ideiglenes táblák és beágyazott lekérdezések (SELECT * FROM (SELECT ...)));
  • Query Builder - kényelmes, objektumorientált, automatikusan optimalizálja a lekérdezés szövegét a gyors olvasás érdekében, amely képes elemezni a lekérdezés szövegét (elemzi a lekérdezés szövegét és objektummodellt építeni belőle);
  • A jelentéskészítő a lekérdezési mechanizmus kiegészítője, amely hozzáadja az automatikus eredményformázás funkcióit, valamint magának a lekérdezésnek a rugalmas testreszabását „Vállalati” módban (vagyis a felhasználó által). Ennek eredményeként megjelent egy univerzális jelentés a szabványos 1C platformokon, amelyben a felhasználó beállíthatja, hogy milyen adatokat és milyen sorrendben akarja látni, hogy mi van a sorokban, mi van az oszlopokban, és maga a jelentés generál egy kimeneti táblát;
  • Az SKD (Data Composition System) a következő modell, amely magában foglalja az univerzális jelentés funkcióit, és kiegészíti azt néhány eredményfeldolgozási funkcióval.

Programozási nyelv
Szintaxis szempontjából az 1C nyelv hasonló az „orosz Pascalhoz”, azonban kisebb szigorúságban és néhány konstrukció hiányában különbözik a „Pascal”-tól:

  • Nincs szükség változók deklarálására - közvetlenül a modul szövegében inicializálható;
  • Nincs nehéz változók beírása. A rendszernek vannak értéktípusai, de a változókra nincsenek szigorú gépelési szabályok. Egy hivatkozást tároló változó már tárolhat egy számot vagy egy karakterláncot néhány kódsorban;
  • Változókat adhat hozzá értékekkel különböző típusok, míg az eredmény típusa megegyezik az első változó típusával, például:
    k \u003d "25" + 1; // k = "251", nem 26
  • A különböző típusú értékeket tartalmazó változók összehasonlíthatók egyenlőség vagy egyenlőtlenség szempontjából (de nem többre vagy kevesebbre, ez kivételt okoz) - természetesen az ilyen változók nem egyenlőek;
  • Vannak függvények és eljárások, megengedett a rekurzió használata (a rekurzió mélységének korlátozásával);
  • Ha paraméterek nélkül ad meg egy függvényt vagy eljárást, ügyeljen arra, hogy a végére legyen üres zárójelek: here_so();
  • Vannak modulok: minden könyvtárban és dokumentumban több van, ezen kívül a regisztereknek, a jelentéseknek és a feldolgozásnak is vannak moduljai, illetve minden űrlapon, valamint a konfiguráció részeként lehetőség van közös modulok létrehozására is;
  • Nincsenek osztályok, öröklődés, tokozás, polimorfizmus;
  • Függvény nem adható át referenciaként, nincsenek névtelen függvények;
  • Nincs fordított hurok (i:=5-nél 1 do-ig), de rekordok törlésekor valóban szükség van rá. A „Bye” hurkon keresztül egy kicsit hosszabb belépéssel kezeljük.

Eszközök

  • Az 1C platform képes feltölteni és letölteni egy konfigurációt, összehasonlítani egy konfigurációt egy másik konfigurációval, és részben feltölteni a változtatásokat;
  • Lehetőség van a modulok szövegeinek feltöltésére kötegelt feldolgozásés töltse fel vissza a konfigurációba;
  • Ha a konfiguráció támogatott (kezdetben az 1C összes konfigurációja támogatott), akkor mindig összehasonlíthatja és megnézheti, mit változtattak a külső fejlesztők vagy helyi szakemberek;
  • Lehetőség van a teljes adatbázis (az adatokkal együtt) feltöltésére/letöltésére is;
  • Egy konfiguráción végzett kollektív munkához konfigurációs adattárat használnak;
  • Számos szabály létezik a szabványos konfigurációk módosítására is, még az 1C-ből is van egy dokumentum, amely leírja a tipikus konfigurációk (és bármely más) megváltoztatásának módszereit és szabványait.

Általános benyomás
Az 1C nyelv egyesíti a Pascal-szövegek tisztaságát a BASIC nyelvi változókkal való munka könnyelműségével. Hiányzik számos, a modern programozási nyelvekben rejlő funkció, de ezek nélkül is meg lehet csinálni. Ezen kívül az 1C platformon van egy erős szemétgyűjtő, pl. nem szükséges például a táblákat használat után megtisztítani vagy törölni.

Interfész 1C Enterprise 8.2

Az 1C cég kiemelt figyelmet fordított programja felületére. Az első a színpaletta. Ő gyönyörű! A program ablakai messziről is felismerhetők, miközben sok éves munka során nem okoznak ellenséges szenzációkat, éppen ellenkezőleg - azt szeretném, ha minden program ugyanolyan menő lenne.
Ugyanakkor a platform stílusa nagyon szigorú, fodrok és egyéb túlzások nélkül. Ugyanakkor vannak nagyon hasznos funkciók, például az ablakméretek emlékezése (a méreteket csak akkor jegyzi meg, ha a felhasználó megváltoztatja őket, és ezzel egyidejűleg bármikor visszaállíthatja a felhasználói beállításokat - az alapértelmezett méretekre és pozíciókra az Alt + Shift + R billentyűkombináció megnyomásával).
A 8.2-es webes kliens felület számos panaszt vet fel, de úgy tűnik, hogy a 8.3-as platform egy új, újratervezett felületet - a Taxit - hoz magával.

Árak, kereslet és kínálat, franchise

Az 1C platform legfinomabb pluszja az ára. Ez különösen igaz most, a válság idején. Hiszen az 1C teljesen a mi, hazai termékünk. És a mi fából is áruljuk. Egy külföldi gyártó ilyen megoldásai sok pénzbe kerülnek. És az 1C licencei teljesen elfogadhatóak.

Ezenkívül az 1C-nek van egy érdekes licencpolitikája. Magukat a licenceket és konfigurációkat egyszer kell megvásárolni. Ezzel egyidejűleg a licenceket is megvásárolják munkahelyés a szerverre, de nem adatbázisokra, és még csak nem is kapcsolatokra, pl. egy licenc alatt ugyanaz a felhasználó korlátlan számú 1C munkamenetet futtathat, tetszőleges számú adatbázissal dolgozva. Ugyanez vonatkozik a konfigurációkra is: egy konfigurációhoz egy licenc megvásárlásával egy szervezet tetszőleges számú adatbázis létrehozására használhatja fel, sőt, hivatalosan is engedélyezett ennek a konfigurációnak a kódjának és objektumainak felhasználása saját konfigurációk fejlesztése során (miközben saját konfigurációk eladhatók / átruházhatók - kikötéssel, hogy használatukhoz konfigurációt kell vásárolni az 1C-től).

Ezt az egyszeri vásárlást követően már csak évente egyszer kell előfizetni a frissítésekre és fizetni az előfizetés megújításáért, az ún. ITS. Az előfizetés egyébként nagyon olcsó, nagyjából annyi, mint két kliens licenc.

Általában véve mindez nagyon jövedelmezőnek tűnik.

A második „ízletes”, de már a legyezésben, ráadásul meglehetősen univerzális konfigurációk jelenléte magától az 1C-től és a partnerektől.

A sokoldalúságról

Az "univerzális" fogalmát az NVP területén egy iskolai tanár határozta meg példaként a gázálarcokkal: vannak univerzálisak, amelyek számos károsító tényező ellen védenek, de a védettség mértéke átlagos vagy átlag alatti, és vannak olyanok is. speciális gázálarcok, amelyek egy ütközés ellen védenek, de magas fokú védelemmel. Eddig nem láttam pontosabb meghatározást.
Az 1C konfigurációi pedig univerzálisak. A gyakorlatban nincs olyan feladat, ahol módosítások nélkül teljes mértékben használhatók lennének. Ennek ellenére az 1C-nek sikerült létrehoznia egy univerzális eszközkészletet, amely lefedi a modern üzleti élet legtöbb iparágának igényeit.


A harmadik plusz (és egyben a leggyorsabban is) a franchise-ok és képzési központok hálózata, mind a felhasználók, mind a kezdő programozók és rendszergazdák számára. Jó ötlet, de nagyon közepes minőségű a megvalósítása. Ennek ellenére az elterjedtség és az agresszív marketing az egyik oka az 1C széles körű népszerűségének hazánkban (és ez az oka a negativitásnak, az irigységnek és a gyűlöletnek is).

Egy kanál kátrány

Miután az 1C-t minden színben festette, igazságtalan lenne nem beszélni a hiányosságairól, és ezek már léteznek:

Instabil kiadások- mind a platformon, mind a konfigurációkban rengeteg hiba és hiba található. És ez a hivatalos kiadásokban van. Elengedés előtt hivatalos verzió, a "Review Version" kiadása folyamatban van. Vannak még Visszacsatolás hibaleírásokat küldeni javításra elfogadásra. Azonban vagy a felülvizsgálatra szánt verziók nem különösebben népszerűek, vagy magának az 1C-nek nincs ideje feldolgozni az összes levelet a megjelenési dátumig, de az tény. Minden alkalommal, amikor frissíti a platformot vagy a konfigurációt, a legváratlanabb "meglepetésekbe" botlhat. Az 1C-t többször is felszólították, hogy alaposabban tesztelje fejlesztéseit.

Franchise (a továbbiakban: franchise átvevő). Ideális esetben a terveknek megfelelően olyan cégeknek kellett volna lenniük, amelyek képzett szakemberekkel rendelkeznek, akik ismerik a konfigurációk és platformok működésének alapelveit. Ugyanezeknek a cégeknek kellene eladniuk a platformot, a konfigurációt és a támogatást, kissé „befejezni” az univerzális konfigurációkat az ügyfél igényei szerint (és néha módosítaniuk kell ezeket a követelményeket), igyekezve a lehető legkevesebbet módosítani. szabványos konfiguráció. Hogy ne bonyolítsuk túlságosan a jövőbeli frissítéseket. De a valóságban ennek az ellenkezője igaz.

Amikor új licenceket adnak el egy ügyfélnek, a franchise-ok értékük 50%-át kapják (mínusz ennek az 50%-nak a 13%-a jövedelemadó). Ugyanakkor Önnek nem kell semmit sem előállítania, csak át kell adnia az 1C kulcsait a vevőnek.

A szolgáltatásnyújtás során a franchise átvevők nem fizetnek semmit az 1C társaságnak (a tagsági díj kivételével), de ki kell fizetniük a munkavállaló fizetését. Pénzt kell költenie az államnak fizetendő adókra is - PFR és jövedelemadó.

Kiderült, hogy mind az 1C, mind a franchise számára kifizetődő a licencek értékesítése, és veszteséges a további támogatás nyújtása. Ugyanakkor ahhoz, hogy az ügyfél megvásárolhasson egy programot, először az igényeihez kell igazítania. És fizetni kell a munkáért. És itt a spórolás végett hallgatók, tanulók, nem szakemberek vannak bevonva, akiket kicsit lehet fizetni, néha pedig egyáltalán nem, még csak be sem lehet őket regisztrálni (nem hivatalosan fognak dolgozni, hiszen ott amivel fizetni kell). Az eredmény egy hatalmas számú eladás nagyon alacsony minőségben. A fejlesztések általában fontos mechanizmusokat érintenek, és bonyolítják a jövőbeni frissítéseket. De az értékesítés szakaszában sem az 1C, sem a franchise nem érdeklődik.

Megjegyzem, ez nem annyira a franchise üzletemberek hibája, mint inkább az 1C. Az értékesítésre koncentrálva egyáltalán nem törődött a támogatással (most nem az iskolákra gondolok, hanem arra, hogy magának a franchise-vevőnek és az 1C-nek is előnyösnek kell lennie a támogatásnak).

Technikai támogatás. Az 1C értelmezésében a technikai támogatás a platform és a konfigurációk „frissítési” szakaszához, valamint az 1C egyes mechanizmusainak és funkcióinak leírását tartalmazó információs részekhez való hozzáférés biztosítása. Ezenkívül előfizetéskor adunk egy lemezt a megadott anyagokkal. Van egy fórum is (a népihez képest nagyon csekély). Küldésre is van lehetőség email 1C-re - de még abban sem reménykedve, hogy válaszolnak rá (vagy a robot azt válaszolja, hogy „A levél a fejlesztői osztálynak el lett küldve.” A fejlesztés szempontjából a Yandex.Search és a konfigurátorba épített súgó sokkal nagyobb támogatást nyújt.

Epilógus

2008-ban váltottam az 1C-re, előtte egy saját számviteli programot fejlesztő cégben dolgoztam (Delphi 5, majd Delphi 7). Először is megismerkedtem az 1C Enterprise 7.7 platformmal, és megdöbbentett a jelentések elkészítésének egyszerűsége. Ugyanakkor egyértelmű volt, hogy a jelentések sokkal hosszabb ideig készültek, mint a hasonló Delphi-mechanizmusokban, de a könyvelőket ez nem különösebben aggasztja. A másodpercek helyett néhány perc várakozás nem jelent problémát. Éppen ellenkezőleg, kifestheti a körmét, ihat egy csésze teát, vagy megbeszélheti a legfrissebb híreket anélkül, hogy felnézne a munkából. Manapság a könyvelők túlnyomó többsége nő.
A 7.7-es interfész azonban nagyon korlátozott volt, és az objektumok halmaza nagyon gyenge. Alternatívákat kerestem. találkozott külső alkatrészek, de gyakorlati alkalmazásig nem jutottak el, tk. a főnök úgy döntött, ideje váltanunk 8.1-re (igen, a 8.2 akkor még nem létezett), és ezen a platformon programozóként mindent megtaláltam, ami korábban hiányzott.
Jelenleg tekintélyem van a kollégák és a franchise-ból hozzám forduló ügyfelek körében. Valószínűleg soha többé nem fognak foglalkozni a franciákkal.


Általában véve nagyon elégedett vagyok az 1C Enterprise 8 platformon végzett munkával. Alkalmas a legtöbb számviteli feladat és adatbázis segítségével történő megoldására.

Címkék: Címkék hozzáadása