Programovací jazyk 1C je tradičním pozdravem pro začátečníky.

Přihlaste se na stránky jako student

Interní programovací jazyk 1C 8.3 pro začínající programátory: instalace 1C a vašeho prvního programu v jazyce 1C

Pokud jste nečetli úvod do lekcí, přečtěte si jej prosím: .

Instalace vzdělávací verze 1C

Abychom se naučili programovat, potřebujeme 1C 8,3 (ne nižší 8.3.13.1644 ) .

Pokud máte nainstalovanou verzi 1C 8.3, použijte ji. Pokud ne, stáhněte si a nainstalujte vzdělávací verzi, kterou 1C vyrábí speciálně pro vzdělávací účely.

Úkol č. 1: stáhněte a nainstalujte vzdělávací verzi 1C 8.3.

Po dokončení úkolu č. 1 by se na ploše měl objevit následující zástupce:

Gratulujeme! Platforma 1C je nainstalována a velmi brzy budete moci napsat svůj první program.

První program

To už se stalo pro programátory tradicí – studium nový jazyk, první věc, kterou na něj napíšou, je program, který na obrazovku vytiskne frázi „Hello, World!“.

Nebudeme výjimkou. Ale jako ruští programátoři donutíme počítač, aby na obrazovce zobrazil frázi „Ahoj, světe!“.

Úkol č. 2: napište program v jazyce 1C 8.3, který po spuštění zobrazí na obrazovce frázi „Hello, World!“.

Pokyny, které je třeba dodržovat:

1. Spusťte na ploše zástupce „1C:Enterprise“.

2. Otevřel se před vámi seznam databází 1C. Jak vidíte, je prázdný. Vytvořme si tréninkovou základnu, ve které budeme programovat. klikněte na " Přidat".

3. Vyberte " Vytvoření nové informační základny“ a klikněte na tlačítko “ Dále".

4. Vyberte " Vytváření informační databáze bez konfigurace...“ a klikněte na tlačítko “ Dále".

5. Zadejte „ Vzdělávací“ a klikněte na tlačítko “ Dále".

6. Zadejte libovolnou prázdnou složku jako adresář databáze (v v tomto případě Toto je složka "Studie" v mých dokumentech). Klikněte na "Další".

7. Zadejte možnost ověření " Vybrat automaticky", režim spouštění" Tlustý klient"Nezadávejte nic jako verzi 1C:Enterprise, klikněte na tlačítko "Dokončit".

8. Jak vidíte, na seznamu se konečně objevila první databáze, kterou jsme právě vytvořili! Začněme psát kód. klikněte na " Konfigurátor".

9. V okně, které se otevře, vyberte z nabídky " Konfigurace"->"Otevřete konfiguraci".

10. V panelu, který se otevře vlevo, klikněte na klikněte pravým tlačítkem myši myš na slovo " Konfigurace"a vyberte ze seznamu" Otevřete modul spravované aplikace".

11. Otevřelo se okno s editorem. Zde můžete psát text! V budoucnu s ním budeme spolupracovat.

12. Nyní bez přemýšlení zkopírujte následující text do tohoto okna:

Report("Ahoj, světe!");

13. Skvělé! Kód pro náš první program je připraven. Pojďme to spustit. Prostřednictvím nabídky " Ladění"->"Spusťte ladění“ (nebo klíč F5).

14. Na otázku odpovíme kladně.

15. Po sekundě nebo dvou se spustí 1C a v okně níže se objeví zpráva „Hello, World!“. Z počítače jsme dostali, co jsme chtěli. Gratulujeme k vašemu prvnímu programu!

Stalo se něco? Máte ještě otázky? Pošlete mi je e-mailem [e-mail chráněný] a dnes vám odpovím. Tvůj učitel: Vladimír Milkin.

Poselství učitele

Úroveň obtížnosti lekcí jde zdola nahoru. Snažte se proto studovat důsledně, aniž byste něco přeskakovali nebo odkládali na později.

Ujistěte se, že vyplňte všechny testy a domácí úkoly, snažte se zlepšit své výsledky. Kontrolujte referenční roztoky až poté seberealizaciúkoly.

Přihlaste se na stránky jako student

Pro přístup ke školním materiálům se přihlaste jako student

Pokud píšete v SI
Buď alespoň třikrát chromý
Říkají o tom:
"Je to skvělý programátor!"
(Fidosh písně - „Co je Suxxx a co je Rulezzz“)

Předmluva

Důvodem napsání tohoto článku byl negativní postoj odborné veřejnosti k této platformě a programátorům.

Jako programátor, který si vybral 1C, považuji tento názor za neopodstatněný. Platforma 1C není zdaleka ideální, ale podle mého názoru je to nejlepší, a co je nejdůležitější, domácí produkt!

A ještě více je neadekvátní posuzovat schopnosti programátora podle jazyka, ve kterém píše.

V tomto článku popíšu výhody, které jsem pro sebe v programu našel. Článek se ukáže být téměř reklamou, takže zde je vyloučení odpovědnosti:

  • Nemám žádný přímý vztah se společností 1C;
  • Tento článek není na objednávku a byl napsán výhradně na dobrovolném základě;
  • V některých případech jsou vyjádřeny osobní názory, které se nemusí shodovat...;
  • Celý článek, s výjimkou prologu, je autorův, jakákoliv náhoda je náhoda;
  • Budeme se bavit o platformě 1C Enterprise 8.2 (aktuálně je aktuální verze 8.3, ale ještě jsem ji nestudoval - na 1C 8.2 je hodně práce). Většina z toho, co je řečeno, se však vztahuje jak na platformu 8.3, tak na dřívější verze a část z toho se vztahuje na verzi 7.7.
Pojďme tedy začít.

o čem to mluvíme?

Platforma 1C Enterprise 8 je:
  • Funguje ve dvou verzích – souborová a serverová (třílinková) – každá má své výhody a nevýhody;
  • Nezávislý účetní systém, který se snadno instaluje a konfiguruje;
  • Výkonný ekosystém pro programátory se všemi potřebnými objekty a nástroji;
  • Pěkné ergonomické rozhraní;
  • Relativně levné řešení pro podnikání;
  • Síť franšíz, počáteční školení;
  • Silná základna vývoje a znalostí nashromážděných v průběhu let;
  • Občas problematická platforma pro systémové administrátory;
  • Ne nejrychlejší provádění algoritmů (i když ne nejpomalejší) - to je daň za informační obsah (v případě chyb je uvedeno číslo řádku a jeho obsah);
  • V programovacím jazyce neexistují žádné třídy (dědičnost, zapouzdření, polymorfismus), žádné anonymní funkce a další moderní funkce. Ale k vyřešení většiny problémů to není nutné!
Pro organizaci účetnictví jedna platforma nestačí. Platforma je jakýmsi „motorem“, mezičlánkem mezi programem a databází. Programy pro tento „motor“ se nazývají konfigurace. Konfigurace popisuje strukturu databáze ve formě objektů, textů procedur uložených v samostatných modulech (modulů je mnoho, má je jak každý objekt, tak systém jako celek a existují i ​​společné moduly). Platforma představuje úroveň abstrakce, při které není vyžadován přímý přístup k databázi, a také umožňuje abstrahovat operační systém a typ databáze.

Databáze souborů a serveru

Platforma se skládá z několika částí a může fungovat v souborové nebo serverové verzi.

V souborové verzi je celá databáze obsažena v jednom souboru (s příponou „1cd“) - platforma je nainstalována na každém počítači a přímo čte/zapisuje do databáze.

Výhody možnosti souboru - nízká cena a snadnost nasazení.

Nevýhody - struktura souboru "1cd" je uzavřena, ne jednotný systém, interagující s databází. V důsledku toho je obtížné použít, když velké číslo uživatelů (vyzkoušeno pro 20+ uživatelů - funguje). Navíc, když je velikost databáze přibližně 15 GB (nebo více), dynamické aktualizace mohou selhat. Řešení takových selhání je obtížný úkol a nástroj pro opravu databáze ne vždy efektivně opraví a někdy dokonce databázi ochromí.

Řešení existuje - tím je v první řadě zřízení denního Rezervovat kopii Databáze. Kromě toho řemeslníci nejen publikují souborový formát 1cd, ale také vyvinuli nástroje pro práci s takovými soubory a řadu metod pro řešení takových problémů.

V serverové verzi platforma pro ukládání databáze používá SQL server (obvykle MS SQL, ale od 8.2.14 - můžete použít některé další, například Firebird PostgreSQL, IBM DB2, Oracle Database) a samotnou platformu používá třívrstvou architekturu:

Část kódu se spouští na klientovi, část na serveru. V tomto případě komunikuje s databází pouze server. Současně se od verze 8.2 kromě standardního provozního režimu, který se nazýval režim „tlustý klient“, objevily dva nové provozní režimy - „tenký klient“ a „webový klient“; Objevily se také „řízené formuláře“, vzhled který je postaven ve formě abstraktního stromu prvků. Programování pro spravované formuláře a třívrstvou architekturu je obtížnější, ale umožňuje přenést téměř celou zátěž na server (to znamená, že si můžete koupit jeden výkonný server a sto nejlevnějších kancelářských počítačů).

Výhody platformy: „tři odkazy“ – rozložení zátěže, otevřenost databáze (oficiálně společnost 1C odmítá odpovědnost za jakékoli poškození dat, pokud SQL databáze změny byly provedeny jinak než prostřednictvím jejich platformy nebo serveru, ale to málokoho zarazí), nedostatek omezení.

Nevýhody - cena: pro každou si budete muset koupit klientské licence zvlášť klientský počítač, samostatně - jedna licence pro 1C server, samostatně licence pro SQL server, pokud nepoužíváte bezplatný. Někdy také vznikají potíže s provozem databáze. Jsou řešeny mnohem rychleji díky dostupnosti dat a dostupnosti externích nástrojů pro práci s databází. Kromě toho byste v tomto případě měli provést zálohu databáze.

Společnou výhodou je všestrannost konfiguračního kódu: až na některé výjimky bude konfigurace vyvinutá pro souborovou databázi fungovat na serverové databázi a naopak. Příkladem výjimky je předání měnitelné hodnoty na server nebo ze serveru na klienta (ve verzi souboru to nezpůsobí výjimky, ale ve verzi klient-server je to zakázáno).

Další plus: platforma se instaluje velmi jednoduše, něco takového: „Next-Next-Next-Ok“, není vyžadováno doladění a instalaci jakýchkoliv komponentů.

Pro serverovou verzi existuje několik dalších nastavení, ale vše se provádí v instalačním dialogu a nevyžaduje žádné zadávání samostatné soubory. Instalace SQL serveru může být poněkud obtížná, protože... v tomto případě je nastavení mnohem více (a doladění vyžaduje studium dodatečné pokyny). To ale neplatí o problémech platformy 1C. Navíc, pokud nainstalujete například MS SQL server se všemi výchozími nastaveními, 1C s ním bude moci pracovat.

Je to víc než účetnictví

Pokud jde o platformu 1C, je prezentována především jako účetní program. Ve skutečnosti se jedná o nejoblíbenější oblast použití platformy 1C. 1C se ale neživí jen účetnictvím!
Znalí platformy říkají, že jde o účetní (účetní automatizaci) systém. To je blíže pravdě - existuje mnoho konfigurací, jak od 1C, tak od vývojářů třetích stran. Některé s účetnictvím souvisí jen nepřímo, některé nesouvisí vůbec.

Obecně je správnější si platformu 1C představit jako shell pro objektové modelování databáze, rozhraní a programování v jazyce 1C. Jediným omezením je, že pro každou konfiguraci je vytvořena vlastní databáze a pouze jedna (v rámci konfigurace je však možné se dodatečně připojit externí zdrojeúdaje, tzn. jiné základy).

Ekosystém pro programátory

Podívejme se nyní na jazyk a platformu 1C z pohledu vývojáře:
Objektový model databáze. Za prvé, nepracujeme přímo s databázemi. Není to nutné. Pro naše pohodlí jsou všechna data prezentována ve formě vzájemně propojených objektů (adresáře, dokumenty, informační registry, akumulační registry, ...) a platforma tato data automaticky „vytahuje“ z databáze.
Například za předpokladu, že proměnná „Prvek nomenklatury“ obsahuje odkaz na prvek adresáře „Nomenklatura“, má adresář „Nomenklatura“ atribut „Hlavní dodavatel“, zadejte „Directory.Counterparties“ a adresář „Protistrany“ obsahuje Atribut „Celé jméno“ a poté kód:

Prvek nomenklatury. Hlavní dodavatel. Celé jméno
... způsobí, že platforma 1C pomocí interních mechanismů najde záznam v tabulce odpovídající adresáři „Protistrany“ podle identifikátoru z pole „Hlavní dodavatel“ položky položky a vrátí hodnoty příslušného pole do pole „Celé jméno“ v objektovém modelu adresáře „Protistrany“.

Takových deferencí může být mnoho – systém to zvládne. Jedinou výhradou je, že systém neví, jak optimalizovat dereference, takže byste se měli snažit je přesunout mimo všechny druhy smyček.

Kromě objektů, které popisují data, existuje obrovské množství systémových objektů - pro různé funkce. Vyzdvihnu některé z nich:

Hodnotové obchody
Pole- objekt, který ukládá sadu dat, na rozdíl od klasické myšlenky polí. Mohou to být data různé typy(číslo, řetězec, odkaz, jiný objekt). Má minimální funkčnost a používá se především jako dočasný kontejner pro přenos hodnot mezi jinými obchody.

ListValues- objekt primárně pro práci s uživatelským rozhraním. Kromě dat může pro každý prvek obsahovat také zobrazení, atribut vlajky a obrázek (ikonu). Má také metody “SelectElement()” a “MarkElements()” – po zavolání se uživateli zobrazí dialogové okno rozhraní (což je pohodlné – není potřeba tento dialog vytvářet v konfiguraci).

Struktura A Korespondence- uložení spárovaných hodnot „KeyIValue“. Ve struktuře je „Key“ řetězec, který se řídí pravidly pro pojmenování proměnných v 1C (bez mezer, nezačíná číslem, skládá se pouze z písmen, číslic a podtržítka). Podle - „Klíč“ je jakákoli hodnota. Nejrychlejší hledání objektů je v souladu (rychlejší než v poli a indexované tabulce hodnot).

Tabulka hodnot- velmi pohodlný a celkem rychlý objekt pro ukládání a zpracování dat. Sloupce v tabulce hodnot lze přidávat a mazat bez ohledu na počet záznamů. V tomto případě se data v řádcích neztratí (nebo se smažou pouze data z buněk odpovídajících odstraněným sloupcům). Má také metodu „SelectRow()“, která vyvolá dialog pro výběr řádku. Existují indexy.

Strom hodnot- objekt představující hierarchická data. Obsahuje sloupce, sada sloupců je stejná pro všechny záznamy na všech úrovních. Odebrání/přidání sloupců ve stromu hodnot je stejně snadné jako v tabulce hodnot. Má také metodu „SelectRow()“.

Objekty rozhraní a objekty pro práci s různými daty TextDocument, SpreadsheetDocument, webový prohlížeč, ReadFile, WriteFile, ReadZIPFile, WriteZIPFile, ReadXML, WriteXML, HTTPRequest a mnoho dalších objektů a konfigurátor má pro vše vestavěnou nápovědu. Účel uvedených objektů je zřejmý z jejich názvů a to vše je v platformě okamžitě dostupné.

Samostatně je třeba poznamenat, že existuje objekt „Metadata“ - s jehož pomocí můžete v programovacím jazyce studovat strukturu dat, stejně jako každý odkaz nebo objekt pro adresář, dokument, tabulku účty atd. existuje metoda „Metadata()“ – poskytující popis této referenční knihy/dokumentu/účtové osnovy/atd. v databázi (jaké podrobnosti, tabulkové části jsou k dispozici, délka kódu/čísla atd.). Často je to velmi pohodlné.

A také bychom měli samostatně zmínit objekty: „Dotaz“, „Konstruktor dotazů“, „Tvůrce dotazů“, „Tvůrce sestav“, „Schéma skládání dat“. Tato rodina implementuje sadu objektů pro práci s výkonným dotazovacím jazykem 1C.

Jazyk dotazu. Dotazy v 1C se používají pouze k získání vzorku dat s pohodlným výběrem, řazením a seskupováním. Pro první přiblížení se jedná o operátor „SELECT“ z SQL přeložený do ruštiny, avšak dotazovací jazyk 1C má také funkce, které v SQL chybí, konkrétně:

  • Práce s konfiguračními objekty 1C namísto SQL tabulek;
  • Práce s odkazy místo polí identifikátorů SQL;
  • Podpora dereferencování, podobně jako v kódu;
  • Výběr zařazením do skupiny (pro adresáře);
  • Hierarchické součty;
  • Dočasné tabulky a vnořené dotazy (SELECT * FROM (SELECT ...)));
  • Query Builder je pohodlný, objektově založený, automaticky optimalizující text dotazu pro rychlé čtení, který dokáže analyzovat text dotazu (analyzovat text dotazu a vytvořit z něj objektový model);
  • Report builder je doplněk k dotazovacímu mechanismu, který přidává funkcionalitu automatického formátování výsledků a také flexibilní konfiguraci samotného dotazu v režimu „Enterprise“ (tedy uživatelem). Díky tomu se ve standardních platformách 1C objevil univerzální report, ve kterém si uživatel může nakonfigurovat, jaká data a v jakém pořadí chce vidět, co je v řádcích a co ve sloupcích, a report sám generuje výstupní tabulku ;
  • DCS (Data Composition System) je dalším modelem, který v sobě zahrnuje funkcionalitu univerzálního reportu a doplňuje jej o některé funkce pro zpracování výsledků.

Programovací jazyk
Z hlediska syntaxe je jazyk 1C podobný „ruskému Pascalu“, ale liší se od „Pascalu“ menší přísností a absencí některých konstrukcí:

  • Není potřeba deklarovat proměnné – můžete je inicializovat přímo v textu modulu;
  • Neexistuje žádné striktní typování proměnných. Systém má typy hodnot, ale pro proměnné neexistují žádná přísná pravidla pro psaní. Proměnná, která uložila odkaz, může po několika řádcích kódu již uložit číslo nebo řetězec;
  • Můžete přidat proměnné s hodnotami odlišné typy, v tomto případě bude typ výsledku stejný jako typ první proměnné, například:
    k = "25"+1; // k = „251“, nikoli 26
  • Proměnné s hodnotami různých typů lze porovnávat z hlediska rovnosti nebo nerovnosti (ale ne více či méně, to způsobí výjimku) - takové proměnné se přirozeně nerovnají;
  • Existují funkce a procedury, je přípustné použít rekurzi (s omezením hloubky rekurze);
  • Při zadávání funkce nebo procedury bez parametrů je ještě nutné uvést na konci prázdné závorky: like this();
  • Moduly jsou: každý adresář a dokument jich má několik, kromě toho registry, sestavy a zpracování a každý formulář mají moduly a také v rámci konfigurace je možné vytvářet společné moduly;
  • Žádné třídy, dědičnost, zapouzdření, polymorfismus;
  • Funkci nelze předat jako odkaz, neexistují žádné anonymní funkce;
  • Neexistuje žádná zpětná smyčka (pro i:=5 až 1 do), ale je opravdu potřeba při mazání záznamů. Vystačíme si s o něco delším vstupem přes cyklus „Sbohem“.

Nástroje

  • Platforma 1C má možnost nahrát a stáhnout konfiguraci, porovnat konfiguraci s jinou konfigurací a částečně stáhnout změny;
  • Je možné stáhnout texty modulů pro dávkové zpracování a načíst je zpět do konfigurace;
  • Pokud je konfigurace podporována (zpočátku jsou podporovány všechny konfigurace od 1C), můžete vždy provést srovnání a zjistit, co se změnilo vývojáři třetích stran nebo místní specialisté;
  • Je také možné nahrát/stáhnout celou databázi (spolu s daty);
  • Pro společnou práci na jedné konfiguraci se používá konfigurační úložiště;
  • Existuje také řada pravidel pro provádění změn standardních konfigurací, existuje dokonce dokument od 1C, který popisuje metody a standardy pro změnu standardních konfigurací (a jakýchkoli dalších).

Obecný dojem
Jazyk 1C kombinuje přehlednost textů jazyka Pascal s lehkovážností práce s proměnnými jazyka BASIC. Postrádá řadu funkcí, které jsou vlastní moderním programovacím jazykům, ale obejdete se bez nich. Platforma 1C má navíc výkonný garbage collector, tzn. není třeba například tabulky po použití mazat nebo je mazat.

Rozhraní 1C Enterprise 8.2

Společnost 1C věnovala zvláštní pozornost rozhraní svého programu. V první řadě je to paleta barev. Je úžasná! Programová okna jsou rozpoznatelná i z dálky a po mnoha letech práce - nevyvolávají nepřátelské pocity, naopak - chci, aby všechny programy byly stejně cool.
Styl platformy je přitom velmi přísný, bez kudrlinek či jiných ozdůbek. Zároveň existuje velmi užitečné funkce, například zapamatování velikostí oken (velikosti se zapamatují pouze v případě, že je uživatel změní, a zároveň můžete kdykoli vrátit uživatelské nastavení na výchozí velikosti a pozice stisknutím Alt+Shift+R ).
Webové klientské rozhraní 8.2 vyvolává řadu stížností, ale zdá se, že platforma 8.3 s sebou přináší nové přepracované rozhraní – „Taxi“.

Ceny, nabídka a poptávka, franchising

Nejchutnější výhodou platformy 1C je její cena. To platí zejména nyní, v době krize. Koneckonců, 1C je zcela náš domácí produkt. A prodává se za naše dřevěné. Taková řešení od zahraničního výrobce budou stát hodně peněz. A licence pro 1C jsou docela rozumné.

1C má navíc zajímavou licenční politiku. Samotné licence a konfigurace se kupují jednorázově. Zároveň se kupují licence na pracoviště a na server, ale ne do databází a dokonce ani do připojení, tzn. pod jednou licencí může stejný uživatel spustit neomezený počet relací 1C a pracovat s libovolným počtem databází. Totéž platí pro konfigurace: zakoupením jedné licence pro konfiguraci může organizace pomocí ní vytvářet libovolné množství databází, navíc je oficiálně povoleno používat části kódu a objekty této konfigurace při vývoji vlastních konfigurací (v v tomto případě lze prodat/převést jejich vlastní konfigurace - s podmínkou, že k jejich použití je třeba zakoupit konfiguraci od 1C).

Po tomto jednorázovém nákupu se stačí přihlásit k odběru aktualizací a jednou ročně zaplatit za obnovení předplatného, ​​tzv. SVÉ. Mimochodem, předplatné je velmi levné, přibližně stejně jako dvě klientské licence.

Celkově to vše vypadá velmi ziskově.

Druhým „chutným“, ale s mouchou, plus je přítomnost poměrně univerzálních konfigurací od samotného 1C a od partnerů.

O všestrannosti

Pojem „všestrannost“ definoval jeden učitel na NVP na příkladu plynových masek: existují univerzální, které chrání před mnoha škodlivými faktory, ale stupeň ochrany je průměrný nebo podprůměrný a existují také specializované plynové masky. které chrání před jedním nárazem, ale s vysoký stupeň ochrana. Doposud jsem nenarazil na přesnější definici.
A konfigurace od 1C jsou univerzální. V praxi neexistují úlohy, kde by se daly plně využít bez úprav. Přesto se 1C podařilo vytvořit univerzální sadu nástrojů, která pokrývá potřeby většiny odvětví moderního podnikání.


Třetí výhodou (a také s mouchou) je síť franšízantů a školicích center, a to jak pro uživatele, tak pro začínající programátory a administrátory. Dobrý nápad, ale velmi podprůměrná kvalita jeho realizace. Právě rozšířenost a agresivní marketing je však jedním z důvodů široké obliby 1C u nás (a to je také důvod negativity, závisti a nenávisti).

Lžíce dehtu

Po popisu 1C ve všech jeho barvách by bylo nespravedlivé nemluvit o jeho nedostatcích, ale jsou tam:

Nestabilní vydání- jak v platformě, tak v konfiguracích je obrovské množství chyb a závad. A to je v oficiálních verzích. Než propustíte oficiální verze, vychází „Zkušební verze“. Jsou tu také Zpětná vazba předložit popisy chyb, aby mohly být přijaty k opravě. Buď však zkušební verze nejsou nijak zvlášť oblíbené, nebo samotná společnost 1C nestihne zpracovat všechny dopisy do data vydání, ale je to fakt. Pokaždé, když aktualizujete platformu nebo konfiguraci, můžete narazit na nejneočekávanější „překvapení“. 1C již byla opakovaně vyzývána, aby důkladněji otestovala svůj vývoj.

Nabyvatel franšízy (dále jen franšízanti). V ideálním případě by se podle plánu mělo jednat o společnosti s kvalifikovanými specialisty, kteří znali základní principy fungování konfigurací a platforem. Tytéž společnosti by musely prodat platformu, konfiguraci a podporu, mírně „dodělat“ univerzální konfigurace, aby vyhovovaly požadavkům klienta (a občas tyto požadavky upravit), přičemž by se snažily minimálně upravit standardní konfiguraci. Aby to příliš nekomplikovalo budoucí aktualizace. Ale ve skutečnosti je opak pravdou.

Při prodeji nových licencí klientovi obdrží franšízanti 50 % svých nákladů (minus daň z příjmu ve výši 13 % z těchto 50 %). Zároveň nemusíte nic vyrábět sami, stačí předat klíče od 1C kupujícímu.

Při poskytování služeb neplatí franšízanti společnosti 1C nic (kromě členských příspěvků), ale musí zaplatit mzdu zaměstnance. Stát také musí vynakládat peníze na daně - penzijní fond a daň z příjmu.

Ukazuje se, že pro 1C i franšízy je ziskové prodávat licence a nerentabilní pro další podporu. Přitom, aby si klient program koupil, musí být zpočátku přizpůsoben jeho požadavkům. A za práci musíte zaplatit. A sem, aby se ušetřilo, se přivádějí studenti, učni, nespecialisté, mohou být placeni málo a někdy vůbec, nemusí být ani registrováni jako zaměstnanci (budou pracovat neoficiálně , naštěstí je za co platit). Výsledkem je obrovský počet prodejů s velmi nízkou kvalitou. Vylepšení obvykle ovlivňují důležité mechanismy a komplikují budoucí aktualizace. Ale ve fázi prodeje se o to ani 1C ani franšízant nezajímají.

Podotýkám, že to není ani tak chyba francouzských obchodníků, jako spíše společnosti 1C. Když se zaměřovala na prodej, o podporu se vůbec nestarala (teď nemluvím o školách, ale o tom, že poskytování podpory by mělo být výhodné jak pro samotnou franšízovou společnost, tak pro 1C).

Technická podpora. V chápání společnosti 1C je technickou podporou poskytování přístupu k části „aktualizace“ pro platformu a konfigurace a také k informačním částem obsahujícím popis některých mechanismů a funkcí provozu 1C. Navíc, když se přihlásíte k odběru, obdržíte disk s určenými materiály. Existuje také fórum (ve srovnání s populárními velmi skromné). Je zde také možnost poslat e-mailem do společnosti 1C – ale ani nedoufat, že na to odpoví (nebo robot odpoví „Dopis byl odeslán vývojovému oddělení.“ Z hlediska vývoje poskytuje Yandex.Search a nápověda zabudovaná do konfigurátoru mnohem větší Podpěra, podpora.

Epilog

Na 1C jsem přešel v roce 2008 a předtím jsem pracoval ve firmě vyvíjející vlastní účetní program (Delphi 5, poté Delphi 7). Nejprve jsem se seznámil s platformou 1C Enterprise 7.7 a překvapilo mě její snadné vytváření sestav. Zároveň bylo jasné, že reporty byly generovány mnohem déle než v podobných mechanismech v Delphi, ale účetní se tím nijak zvlášť netrápily. Není problém čekat několik minut místo pár sekund. Naopak si tam můžete lakovat nehty, popíjet čaj nebo diskutovat poslední novinky bez zastavení v práci. Koneckonců, naprostá většina účetních jsou dnes ženy.
Rozhraní 7.7 však bylo velmi omezené a sada objektů byla velmi špatná. Hledal jsem alternativy. Seznámil jsem se s externími komponenty, ale nedostal jsem se k jejich praktickému použití, protože... šéf usoudil, že je čas, abychom přešli na 8.1 (ano, 8.2 ještě neexistoval) a v této platformě jsem jako programátor našel vše, co mi dříve chybělo.
V současnosti mám autoritu mezi kolegy, ale i klienty, kteří za mnou přišli od franšízantů. Francouze už pravděpodobně nikdy nekontaktují.


Obecně jsem s prací na platformě 1C Enterprise 8 celkem spokojený. Je vhodný pro řešení většiny účetních a databázových problémů.

Štítky: Přidat štítky

Všem, kteří se chtějí dostat k programování, chceme vysvětlit některé jednoduché věci, které nejsou zmíněny ve všech učebnicích programování, ale ti, kteří chtějí ovládat programování v jazyce 1C od nuly, by o tom měli vědět.

1. Programovací jazyk je především jazyk.

Než se začnete učit jazyk, buďte psychicky připraveni na to, že tento proces není rychlý. Abyste si konkrétně dokázali představit, co je učení se programovacímu jazyku – je to téměř stejné jako učení se cizímu jazyku. Každý se ve škole učil cizí jazyk a každý perfektně rozumí, ke znalosti jazyka nestačí jen se naučit překládat slova z cizího jazyka do rodného jazyka ve slovníku. Například frázi „I know English“ může říct člověk, který je schopen: číst text anglický jazyk, přeložit, sestavit větu bez chyb, vyjádřit se ústně. Překládat cizí slova bez schopnosti správně sestavit větu (číst syntaxi programovacího jazyka) rozhodně neznamená znalost cizího jazyka. Proto Lekce 1 – zacházejte s učením programovacího jazyka stejným způsobem, jakým byste zacházeli s učením se cizího jazyka s cílem jeho úplného zvládnutí.

2. Praxe.

Jistě jste slyšeli, jak někteří lidé, kteří dobře znají cizí jazyk, jej bez praxe v jeho používání postupně zapomínali. Po prostudování základů programování na 1C cvičte denně provádění jednoduchých úkolů, abyste neztratili dříve získané znalosti a postupně přebírali složitější úkoly. Zlepšete své dovednosti.

Jakékoli podnikání se pohybuje lépe, pokud existuje motivace.Pro vás jsou v budoucnu programátorské dovednosti peněžní odměnou, dobrá práce, snadné sociální výtah, atd. To není žádné tajemství software"1C Enterprise" je velmi populární v postsovětském prostoru. Z deseti společností jich osm využívá k evidenci svých obchodních aktivit program 1C. Potřebují proto správce nebo programátora 1C, který by program udržoval a vylepšoval. Takový trh samozřejmě potřebuje specialisty 1C. Někdy jsou firmy připraveny najmout nepříliš kvalifikovaného zaměstnance s programátorskými dovednostmi za slušný plat s podmínkou sebezdokonalování. A i když nechcete pracovat pro komerční společnost nebo franšízu, dobrý kvalifikovaný programátor si bude moci najít práci na burzách na volné noze nebo realizovat zakázkové projekty. Obecně platí, že programátor 1C nezůstane bez práce.

S úvodní částí v základy programování jsme hotovi. Zbytek materiálu bude věnován zvládnutí základů kódu jazyka 1C. Možná budou některé části popsány příliš stručně, ale účelem tohoto materiálu není zcela ponořit čtenáře do syntaxe jazyka, ale spíše nejprve seznámit specialisty s architekturou jazyka 1C za účelem vytvoření určité kostry ( základna) v hlavě uživatele, na které budou v budoucnu zavěšeny všechny znalosti.

». Tento jazyk je tlumočený jazyk vysoká úroveň. Interpretace textu programového modulu do bajtkódu se provádí v okamžiku přístupu k tomuto modulu za provozu, obvykle je tedy interpretována pouze část textu programových modulů.

Prostředí pro provádění jazyka je softwarová platforma 1C:Enterprise. Vizuální vývojové prostředí („Configurator“) je nedílnou součástí softwarového balíku 1C:Enterprise.

Jazykové dialekty pro platformy 1C Verze 7 (7.0, 7.5, 7.7) jsou až na drobné výjimky kompatibilní zdola nahoru. Jazyky pro platformy 1C:7x a 1C:8x jsou v základních operátorech kompatibilní, ale výrazně se liší v práci s aplikačními objekty, v důsledku čehož převod kódu z 1C:7x na 1C:8x nedává smysl.

Vestavěný jazyk 1C:8 je svou syntaxí nejvíce podobný jazyku Visual Basic.

Platforma poskytuje pevnou sadu základních tříd zaměřených na řešení typických problémů v aplikační oblasti:

  • Konstantní,
  • Adresář,
  • Dokument,
  • protokol dokumentů,
  • Převod,
  • Zpráva,
  • Léčba
  • Účtová osnova atd.

Na základě základních tříd můžete vytvořit libovolný počet vygenerovaných tříd pomocí nástrojů pro vizuální konfiguraci (není možnost programově definovat novou třídu). Je povolena pouze jedna explicitní úroveň dědičnosti třídy. Objekty odvozených tříd obvykle představují záznamy (nebo některé sady záznamů) v databázi. Takové třídy tvoří „strom metadat“. Z hlediska vestavěného programovacího jazyka 1C se takové třídy nazývají objekty metadat.

Hlavní typy objektů metadat jsou: Adresáře, Dokumenty, Výkazy, Zpracování, Plány typů charakteristik, Účtové osnovy, Plány typů výpočtů, Informační registry, Akumulační registry, Kalkulační registry, Obchodní procesy, Úkoly.

ruský a Anglická syntaxe příkazy

Projekty ve vestavěném jazyce 1C:Enterprise se nazývají konfigurace. Distribuce (prodej) a implementace takových konfigurací je hlavní obchodní činností partnerských společností 1C.

Pracovní název jazyka – „1Sik“ („odynesik“) – velmi rychle zmizel z oficiálních zdrojů. Nyní, když zmiňujete tento jazyk v písemných dokumentech, musíte psát 1C programovací jazyk. Tento jazyk je však často nazýván „vestavěným jazykem“ v kontextu diskusí 1C:Enterprise.

Encyklopedický YouTube

  • 1 / 5

    Existuje několik dalších komponent, které rozšiřují hlavní třídy, lze je libovolně přidávat a upravovat; nejsou doporučeny pro použití vývojářem. To znamená, že 1C a její franšízanti jakékoli odmítají technická podpora konfigurace využívající takové komponenty.

    Navíc existuje zcela bezplatný projekt 2C, který nepoužívá žádné proprietární moduly od 1C nebo jiných výrobců. Jedná se o přepsaný „od nuly“, volně distribuovaný pod licencí GPL, rozšiřitelné jádro systému podobného 1C, ve kterém i takové „vestavěné objekty“ 1C, jako jsou adresáře a registry, jsou třídy předefinované aplikačním programátorem.

    Jazyk platformy 2C byl navržen s cílem maximální kontinuity se stávajícím vývojem pro 1C a je rozšířením základního jazyka 1C. Napsáním příslušných základních tříd lze jazyk 2C přiblížit jak 1C 7.7, tak 1C 8.0, ačkoli 2C:Platform nemůže zajistit 100% automatickou přenositelnost konfigurací z jedné nebo druhé verze 1C:Enterprise.

    Příklad programu

    Příklad zobrazení zprávy ve speciálním okně pro verzi 8.3:

    Postup HelloWorld () Zpráva ( "Ahoj světe!"); Konec procedury

    Učení jakéhokoli programovacího jazyka zpravidla začíná příkladem psaní prvního nejjednodušší program("Ahoj světe!"). Děje se tak za účelem názorné ukázky práce se základními syntaktickými strukturami. Při zkoumání nového vývojového prostředí neuděláme výjimku z tohoto obecně přijímaného způsobu prezentace materiálu, a proto je třeba ve stejném světle vnímat i náš první článek. V něm podrobně rozebereme odpovědi na následující otázky týkající se programování na platformě 1C:Enterprise 8:

    • Kde as jakou pomocí napsat programový kód ve vestavěném jazyce 1C?
    • Co jsou softwarové moduly, jaká jsou pravidla pro práci s nimi?
    • Co je to proměnná, jak s ní pracovat, jak a kde ji deklarovat?
    • Jaké operátory srovnání, přiřazení a podmíněné existují a jak je používáte?
    • Booleovské operace – co to jsou a jak s nimi pracovat?
    • Proč potřebujeme smyčky a jak je používat?

    Článek bude užitečný pro všechny, kteří ještě nejsou obeznámeni s vývojem na platformě 1C:Enterprise 8, ale chtějí se naučit programovat na 1C.

    Použitelnost

    Materiál je relevantní pro platformu 1C:Enterprise 8, vydání 8.2. a 8.3.

    Proměnné a operátory

    V tomto článku začínáme studovat vestavěný jazyk 1C:Enterprise 8. Spustitelný kód je obsažen v programových modulech.

    Je toho dost velký počet moduly, které jsou určeny pro zpracování různých událostí.

    Přihlášení uživatele do systému je tedy zpracováno v jednom modulu a zpracování kliknutí uživatele na určité tlačítko ve zcela jiném.

    Každý modul tedy popisuje chování konfigurace v určitém bodě. Modul obsahuje především sekci pro popis proměnných. Tito. můžeme v modulu deklarovat některé proměnné.

    V budoucnu je lze použít v procedurách a funkcích tohoto modulu. Pokud je proměnná definována pomocí klíčového slova Export, bude dostupná mimo tento modul. Příklad řádku deklarace proměnné:

    sklad Perem, divize, skladník Export;

    Po deklaraci proměnných následuje sekce procedur a funkcí.

    Za nimi je část hlavního programu, která se spustí při přístupu k tomuto modulu.

    Například v sekci hlavního programu můžete inicializovat proměnné, tzn. dejte jim nějaké počáteční hodnoty:

    Stav=1;
    NewExpression=2;
    Výsledek = 3;

    Modul si lze představit jako kombinaci různých operátorů, které provádějí různé akce, které potřebujeme.

    Oddělovač operátorů je symbol ";" (středník). Tento znak označuje konec výpisu. Tito. operátor může být zapsán následovně:

    Výsledek=100X200
    +400
    -600;

    Nezáleží na tom, na kolika řádcích je výpis umístěn.

    Mnohdy je samozřejmě pohodlnější a přehlednější umístit operátora na jednu linku, ale někdy jsou operátory poměrně dlouhé (počet linek může rozumně dosahovat i několika desítek).

    Středník nesmí být umístěn v konečném prohlášení dané struktury, například procedury. Tito. bude fungovat následující kód:

    Postup CalculateValue()

    PočátečníHodnota = 100;
    IntermediateValue = PočátečníHodnota/5;
    FinalValue = PočátečníHodnota+IntermediateValue

    Konec procedury

    V závěrečném prohlášení je však lepší použít středník. Je možné, že časem se bude ve stavbě pokračovat a konečné vyjádření již nebude konečné. Tuto situaci budeme muset konkrétně sledovat.

    Proměnné jsou navrženy tak, aby ukládaly nějakou hodnotu libovolného datového typu. Používají se pro meziskladování informací pro zpracování.

    Téměř v každém softwarovém modulu, který provádí nějakou akci, existují různé proměnné. Psaní proměnných podle hodnot v Platform 1C:Enterprise 8 je měkké.

    Proměnná může například obsahovat hodnotu jednoho datového typu a o několik řádků později jiného typu:

    Vytvořeno = False;
    Vytvořeno = Pravda;
    Vytvořeno =100;

    V prvních dvou příkazech je hodnota proměnných Boolean a ve třetím se změní na číselnou hodnotu. Tito. typování závisí na hodnotě, která je dané proměnné přiřazena.
    Proměnné lze popsat dvěma způsoby:

    • implicitní metoda (zmínka na levé straně operátoru přiřazení tuto proměnnou popisuje, chybí předběžný popis proměnné slovem Variable, t. j. neexistuje speciální sekce pro popis proměnných);
    • explicitní popis proměnných (Variable Control Data;). Explicitní deklarace proměnných se používá například tehdy, je-li zamýšleno následné předání této proměnné funkci.

    Proměnné jsou pojmenovány pomocí klasického popisu identifikátoru. Identifikátor se skládá z písmen, číslic a podtržítek. Identifikátor musí začínat buď písmenem, nebo podtržítkem.

    V tomto případě by název proměnné měl odrážet význam této proměnné. Jednopísmenné názvy proměnných (jako A, B, C) jsou špatné příklady. Neodrážejí podstatu proměnných.

    Příklady správných názvů proměnných: Counter (zvyšující se proměnná pro smyčku), Counterparty. Pokud název proměnné obsahuje několik slov, mělo by každé nové slovo pro přehlednost začínat velkým písmenem.

    Vyhrazená slova jako procedura, funkce, smyčka, konec smyčky atd. nelze použít v názvech proměnných. (tyto struktury jsou v modulu programu zvýrazněny červeně).

    Vyhrazená slova jsou vestavěné jazykové operátory a je jich poměrně malý počet. Všechny jsou uvedeny v Asistent syntaxe.

    Je třeba poznamenat, že datové typy nejsou vyhrazená slova (například Array, Boolean, True, False). Systém takové názvy proměnných přijme správně.

    Na psaní programový kód případ nezáleží. Například slovo Postup lze psát s velkým nebo malým písmenem. Navíc lze v rámci slova střídat velká a malá písmena.

    Na platformě to nezáleží. Podle pravidel slušného chování by se však začátek slova měl psát velkým písmenem a všechna ostatní písmena malými.

    Ohledně jazyka. Můžete použít ruštinu, angličtinu nebo kombinaci obou jazyků. Pokud to někomu vyhovuje, můžete k psaní programového kódu bezpečně používat angličtinu a také kombinovat ruštinu a angličtinu. Pro platformu to není důležité.

    Mnoho jmen v angličtině je docela těžké si zapamatovat. Při použití kombinace dvou jazyků se zhoršuje čitelnost programového kódu.

    Booleovské operace

    Porovnávací operátory často používají booleovskou logiku, která vrací True nebo False.

    Například v podmíněném operátoru můžete porovnat: If Event = Sale Pak bude algoritmus následovat jednu větev (tj. pokud je hodnota True), pokud je podmínka False, bude provedena další větev algoritmu.

    Podmínky mohou být poměrně složité, lze je kombinovat a používají se tyto operátory: AND, OR a NOT. Takže pro operátor AND:

    Pravda a pravda = Pravda;
    Pravda a nepravda = nepravda;
    Falešný a pravdivý = Falešný;
    False A False = False.

    Pro operátor OR stačí, aby se jeden z operandů rovnal True, pak bude hodnota kombinace True. Hodnota False se získá pouze tehdy, když jsou oba operandy False.

    Operátor NOT jednoduše převrátí aktuální hodnotu (False to True, True to False).

    Pomocí kombinace těchto operátorů můžete vytvořit poměrně složité podmínky. Při sestavování složitých podmíněných příkazů byste měli zvážit priority.

    Operátor NOT má nejvyšší prioritu, za ním následuje operátor AND a za ním operátor OR. Cokoli je uzavřeno v závorkách, má nejvyšší prioritu a je provedeno jako první.

    Nastavíme například priority (pořadí provádění) pro operace v daném výrazu:

    NE(Podmínka1 NEBO Podmínka2) A Podmínka3 NEBO Podmínka4
    1.Výsledek1 = (Podmínka1 NEBO Podmínka2);
    2. Výsledek2 = NOT Výsledek1;
    3. Výsledek3 = Výsledek2 A Podmínka1;
    4. Výsledek = Výsledek3 NEBO Podmínka4;

    Existuje pravidlo převodu:

    NE (Podmínka1 NEBO Podmínka2) = NEPodmínka1 A NE Podmínka2.

    Neměli bychom však vždy usilovat o zjednodušení výrazu, protože často je logicky lépe čitelný rozšířený výraz.

    Operátor přiřazení

    Operátor přiřazení by se neměl zaměňovat s operátorem rovnosti, i když mají stejný pravopis.

    Princip přiřazovacího operátoru spočívá v tom, že levé hodnotě (proměnné na levé straně) je přiřazena hodnota, která je napravo od rovnítka. Podívejme se na příklad:

    Proměnná1 = Proměnná2 = Proměnná3;

    Proměnné1 je přiřazena hodnota rovnosti z booleovské logiky, tj. True, pokud Proměnná2 = Proměnná3, nebo False v opačném případě.

    Při testování na pozici začínajícího programátora je poměrně často používaným úkolem prohození hodnot dvou proměnných.

    Tento problém se řeší pomocí operátoru přiřazení a má dvě řešení.

    Řešení #1 pomocí dočasné proměnné:
    TemporaryVariable = Proměnná1;
    Proměnná1 = Proměnná2;
    Proměnná2 = Dočasná proměnná;

    Řešení č. 2:
    Proměnná1 = Proměnná1 + Proměnná2;
    Proměnná2 = Proměnná1 – Proměnná2;
    Proměnná1 = Proměnná1 – Proměnná2;

    Podmíněný operátor

    Existuje takový operátor If, po kterém je potřeba popsat nějakou podmínku (samotná podmínka může být dost velká). Za podmínkou následuje slovo Then a příkazy, které se mají provést.

    Poté může následovat klíčové slovo Else a řada dalších prohlášení. Pokud existuje několik různých podmínek, můžete použít řadu klíčových slov JinakPokud(viz příklad níže). Celá konstrukce musí končit klíčovým slovem EndIf, za kterým následuje středník.

    Kromě jednoduchých a vícenásobných podmínek existuje zkrácený tvar podmíněného operátoru: ?(Podmínka, Výraz1, Výraz2);

    Pokud je podmínka pravdivá, bude provedena Výraz1, v opačném případě - Výraz2. Příklad kódu: ExpensiveProduct = ?(Product.Price>100000, True, False);

    V praxi místo porovnání záznamů s hodnotou Skutečný (Lhát) typ:

    If Variable = True Then
    A
    If Variable = False Then

    skutečně používané ekvivalentní zápisy jsou:

    If Variable Then
    A
    Pokud NENÍ proměnná, pak

    Cyklické operátory

    Pro jakýkoli typ smyčky je vyžadováno explicitní označení konce této smyčky pomocí klíčové slovo Konec cyklu. Existuje několik typů cyklů.

    Smyčka na pultu– cyklus s pevným počtem opakování. Podmínkou pro opuštění cyklu je překročení limitní hodnoty. Příklad použití pro výpočet hodnoty A!

    A = 5;
    Faktoriál = 1;
    Pro čítač = 1 za cyklus
    Faktorial = Faktorial * Counter;
    EndCycle;

    Smyčka podle stavu– je splněna, pokud je podmínka pravdivá tohoto cyklu. Příklad:

    Zbývající částka = 1000;
    Cena dalšího produktu = 243;
    množství = 0;
    Zatímco zbývající částka>0 cyklu
    Množství = Množství+1;
    Zbývající částka = Zbývající částka – Množství*Cena dalšího produktu;
    Cena doplňkového produktu = Cena doplňkového produktu * 0,8;
    Konec cyklu
    Množství = množství-1;

    Tento cyklus vypočítává, kolik jednotek produktu lze zakoupit za danou částku (1000 rublů), pokud se po zakoupení každé jednotky produktu jeho předchozí cena vynásobí faktorem 0,8. Původní cena produktu je 243 rublů.

    Příkladem chyby při použití tohoto typu smyčky pro začátečníky je věčná smyčka, kdy je podmínka smyčky zpočátku pravdivá, ale v rámci smyčky samotné se nijak nemění.

    Procházejte sbírky (jiný název pro všechny).

    V Platformě je poměrně velké množství kolekcí (jedná se o kontejnery, které obsahují prvky určitého typu).

    Prvky kolekce můžete iterovat pomocí speciálního typu smyčky.

    Například existuje pole čísel, musíte vypočítat součet všech prvků pole:

    Částka = 0;
    Pro Každý Prvek Z Array Smyčky
    Součet=součet+položka;
    EndCycle;

    Pro smyčky existují speciální operátory: Pokračovat A Přerušit.

    Pokud v určitém okamžiku cyklu ztratí provádění dalších operátorů dané smyčky smysl, použije se operátor k návratu na začátek smyčky a uspořádání její další smyčky. Pokračovat.

    Operátor Přerušit umožňuje smyčce ukončit provádění, i když je podmínka smyčky pravdivá.

    Tímto končíme naše první seznámení s vývojem v interním jazyce 1C.

    A co Hello World? Ještě jsme to nenapsali, že? Ano, ale nic vám nebrání to udělat sami, protože... znalostí je JIŽ dost. No, pokud to nevyjde, můžete se podívat sem.