Príklad kódu programovacieho jazyka 1c. Slučky pomocou boolovského výrazu

Táto kniha je popisom vstavaného jazyka systému 1C:Enterprise a je určená pre špecialistov, ktorí konfigurujú systém na riešenie konkrétnej úlohy automatizácie účtovníctva.

1C:Enterprise je flexibilný prispôsobiteľný systém, s ktorým môžete riešiť širokú škálu úloh v oblasti podnikovej automatizácie. Špecifické konfiguračné algoritmy sú popísané v systéme 1C:Enterprise pomocou softvérového komponentu Configurator (ďalej len konfigurátor) v softvérových moduloch obsahujúcich texty v zabudovanom jazyku systému 1C:Enterprise.

Účel a stručný popis vstavaného jazyka

Vstavaný jazyk systému 1C:Enterprise je určený na popis (vo fáze vývoja konfigurácie) algoritmov pre fungovanie aplikovanej úlohy.

Vstavaný jazyk (ďalej len jazyk) je doménovo špecifický programovací jazyk, špeciálne navrhnutý pre možnosť jeho využitia nielen profesionálnymi programátormi. Najmä všetky jazykové operátory majú ruský aj anglický pravopis, ktorý je možné použiť súčasne v jednom zdrojovom texte. Hlavným jazykom opísaným v tejto knihe je ruština, ale každý jazykový operátor má svoje anglické synonymum.

Napriek relatívnej jednoduchosti má jazyk niektoré objektovo orientované vlastnosti, napríklad pravidlá prístupu k atribútom a metódam špecializovaných dátových typov (dokumenty, adresáre atď.) sú podobné vlastnostiam a metódam objektov používaných v iných objektovo- orientované jazyky. Špecializované dátové typy však nemožno definovať pomocou samotného jazyka, ale nastavujú sa vo vizuálnom režime konfigurátora.

Typovanie premenných v jazyku nie je rigidné, t.j. typ premennej je určený jej hodnotou. Premenné nemusia byť explicitne deklarované. Implicitná definícia premennej je jej prvý výskyt na ľavej strane príkazu priradenia. Je tiež možné explicitne deklarovať premenné pomocou zodpovedajúceho príkazu. Polia sú povolené.

Stavba knihy

Prvky jazyka v tejto knihe sú popísané logicky zoskupené na základe ich funkčného zamerania, takže obsah tejto knihy nie je usporiadaný podľa abecedy. Kapitola zvyčajne začína typom spracovávaných údajov, nasledujú ich atribúty a na konci sú spustiteľné metódy, ktoré používajú daný typ údajov.

Formát popisu prvku jazyka

Každý prvok (konštrukcia) jazyka uvedeného v tejto príručke je vytlačený týmto písmom. Informácie o komponentoch jazyka sú uvedené vo forme syntaktického diagramu, Detailný popis a ukážkový zdrojový kód.

Konvencie a notácie prijaté v syntaktických diagramoch

V syntaktických diagramoch sa používajú nasledujúce symboly:

Syntaktický diagram popisu elementu jazyka

Formát popisu prvku jazyka použitý v túto príručku, je znázornená nižšie uvedeným syntaxovým diagramom.

ElementLanguage

Stručný popis toho, čo tento LanguageElement robí.

Syntax:

ElementLanguage(<Параметр1>, <Параметр2>, ...) [ExtKeyword]

Anglická syntax:(v prípade jazykových konštruktov)

kľúčové slovo(<Параметр1>, <Параметр2>, ...)

anglické synonymum:(v prípade popisu metód, funkcií a postupov)

možnosti:

<Параметр1>Stručný opis<Параметра1>. <Параметр2>Stručný opis<Параметра2>. [ExtKeyWord] krátky popis ExKeyWord.

Návratová hodnota:

Typ a krátky popis návratovej hodnoty.

Popis:

Podrobný popis toho, čo LanguageElement implementuje.

Príklad:

Stručný popis príkladu // Zdrojový text príklad

Ak píšete v SI
Buďte aspoň trikrát lamernejší
O tomto hovoria:
"Je to skvelý programátor!"
(Fidosh piesne - "Čo je Suxxx a čo je Rulezzz")

Predslov

Dôvodom na napísanie tohto článku bolo negatívny postoj profesionálnej komunity určenej platforme a programátorom.

Ako programátor, ktorý si vybral 1C, považujem tento názor za nerozumný. Platforma 1C nie je ani zďaleka ideálna, ale podľa môjho názoru je to najlepší, a čo je najdôležitejšie, domáci produkt!

A ešte viac - je neadekvátne posudzovať schopnosti programátora podľa jazyka, v ktorom píše.

V tomto článku popíšem výhody, ktoré som pre seba v programe našiel. Článok sa ukáže byť takmer reklamou, takže okamžite odmietnutie zodpovednosti:

  • Nemám priamy vzťah k spoločnosti 1C;
  • Tento článok nie je vyrobený na mieru a je napísaný výlučne na základe dobrovoľnosti;
  • V niektorých prípadoch je vyjadrený osobný názor, ktorý sa nemusí zhodovať ...;
  • Celý článok, s výnimkou prológu, je autorov, každá náhoda je náhoda;
  • Budeme hovoriť o platforme 1C Enterprise 8.2 (v súčasnosti je relevantná verzia 8.3, ale ešte som ju neštudoval - na 1C 8.2 je veľa práce). Väčšina z toho, čo bolo povedané, sa však vzťahuje na platformu 8.3 a staršie verzie a niektoré z nich sa vzťahujú aj na verziu 7.7.
Tak poďme na to.

o čom to hovoríme?

Platforma 1C Enterprise 8 je:
  • Funguje v dvoch verziách - súbor a server (tri odkazy) - každá má svoje výhody a nevýhody;
  • Nezávislý účtovný systém, ktorý sa ľahko inštaluje a konfiguruje;
  • Výkonný ekosystém pre programátorov so všetkými potrebnými objektmi a nástrojmi;
  • Pekné ergonomické rozhranie;
  • Relatívne lacné obchodné riešenie;
  • Sieť franšíz, počiatočné školenie;
  • Silná základňa vývoja a poznatkov nahromadených v priebehu rokov;
  • Niekedy problematická platforma pre správcov systému;
  • Nie najrýchlejšie vykonávanie algoritmov (aj keď nie najpomalšie) je daň za informačný obsah (v prípade chýb je uvedené číslo riadku a jeho obsah);
  • V programovacom jazyku neexistujú triedy (dedičnosť, zapuzdrenie, polymorfizmus), neexistujú žiadne anonymné funkcie a iné moderné funkcie. Ale pre väčšinu úloh to nie je potrebné!
Pre organizáciu účtovníctva - jedna platforma nestačí. Platforma je akýmsi „motorom“, medzičlánkom medzi programom a databázou. Programy pre tento „motor“ sa nazývajú konfigurácie. Konfigurácia popisuje štruktúru databázy vo forme objektov, textov procedúr uložených v samostatných moduloch (modulov je veľa, má ich každý objekt aj systém ako celok a existujú aj spoločné moduly). Platforma poskytuje úroveň abstrakcie, ktorá nevyžaduje priamy prístup k databáze a umožňuje vám tiež abstrahovať z operačný systém a typ databázy.

Databáza súborov a serverov

Platforma sa skladá z niekoľkých častí a môže pracovať v súborovej alebo serverovej verzii.

V súborovej verzii je celá databáza obsiahnutá v jednom súbore (s príponou „1cd“) – platforma je nainštalovaná na každom počítači a priamo číta/zapisuje do databázy.

Výhody možnosti súboru - nízka cena a jednoduchosť nasadenia.

Nevýhody - štruktúra súboru "1cd" je uzavretá, nie jednotný systém interakciu s databázou. V dôsledku toho sa ťažko používa veľké čísla používateľov (vyskúšané pre 20+ používateľov - môžete pracovať). Okrem toho, keď je veľkosť databázy približne 15 GB (alebo viac), dynamické aktualizácie zlyhajú. Riešenie takýchto porúch je náročná úloha a nástroj na opravu základne nie vždy efektívne opraví a niekedy dokonca ochromí základňu.

Existuje riešenie - v prvom rade je to zriadenie dennej Rezervovať kópiu Databáza. Okrem toho remeselníci nielen publikujú formát súboru 1cd, ale vyvinuli aj nástroje na prácu s takýmito súbormi a množstvo metód na riešenie takýchto problémov.

V serverovej verzii databázová úložná platforma používa SQL server (zvyčajne je to MS SQL, ale od 8.2.14 môžete použiť aj iné, napr. Firebird PostgreSQL, IBM DB2, Oracle Database) a platformu sám používa trojvrstvovú architektúru:

Časť kódu sa vykonáva na klientovi, časť na serveri. V tomto prípade komunikuje s databázou iba server. Zároveň od verzie 8.2 sa okrem štandardného prevádzkového režimu, ktorý sa nazýval režim „hrubého klienta“, objavili dva nové prevádzkové režimy – „tenký klient“ a „webový klient“; sa tiež objavilo riadené formuláre», vzhľad ktorá je postavená vo forme abstraktného stromu prvkov. Programovanie pre spravované formuláre a trojvrstvovú architektúru je náročnejšie, ale umožňuje vám to preniesť takmer celú záťaž na server (to znamená, že si môžete kúpiť jeden výkonný server a sto najlacnejších kancelárskych počítačov).

Plusy platformy: „trojlinkové“ - rozloženie záťaže, otvorenosť databázy (oficiálne spoločnosť 1C odmieta zodpovednosť za akékoľvek poškodenie údajov, ak boli v databáze SQL vykonané zmeny s výnimkou ich platformy alebo servera, ale to sa zastaví málo ľudí), nedostatok obmedzení.

Nevýhody - cena: pre každú si budete musieť kúpiť klientske licencie samostatne klientsky počítač, samostatne - jedna licencia pre server 1C, samostatne licencia pre SQL server ak nie použiť zadarmo. Niekedy sa tiež vyskytujú problémy s prevádzkou databázy. Sú vyriešené oveľa rýchlejšie vďaka dostupnosti údajov a dostupnosti externých nástrojov na prácu s databázou. Okrem toho by ste v tomto prípade mali vytvoriť zálohu databázy.

Spoločným plusom je univerzálnosť konfiguračného kódu: až na niektoré výnimky bude konfigurácia navrhnutá pre databázu súborov fungovať na serverovej databáze a naopak. Príkladom výnimky je prenos meniteľnej hodnoty na server alebo zo servera na klienta (vo verzii súboru to nespôsobí výnimky, ale vo verzii klient-server je to zakázané).

Ďalšie plus: platforma sa veľmi ľahko inštaluje, niečo ako toto: „Next-Next-Next-Ok“, nevyžaduje sa jemné ladenie a inštaláciu akýchkoľvek komponentov.

Pre serverovú verziu existuje niekoľko ďalších nastavení, ale všetko sa vykonáva v inštalačnom dialógu a nevyžaduje žiadne zapisovanie samostatné súbory. Inštalácia SQL servera môže byť trochu náročná, pretože v tomto prípade je nastavení oveľa viac (a aby ste mohli doladiť - musíte si naštudovať ďalšie pokyny). To však neplatí pre problémy platformy 1C. Okrem toho, ak nainštalujete napríklad server MS SQL so všetkými predvolenými nastaveniami, 1C s ním bude môcť pracovať.

Je to viac ako vedenie účtovníctva

Pokiaľ ide o platformu 1C, v prvom rade sa javí ako účtovný program. Toto je skutočne najobľúbenejšia oblasť použitia platformy 1C. Ale 1C sa neživí len účtovníctvom!
Tí, ktorí platformu poznajú, hovoria, že ide o účtovný (účtovný automatizačný) systém. Toto je bližšie k pravde - existuje veľa konfigurácií, od 1C aj od vývojárov tretích strán. Niektoré súvisia s účtovníctvom len nepriamo, niektoré nesúvisia vôbec.

Vo všeobecnosti je správnejšie reprezentovať platformu 1C ako shell pre modelovanie objektovej databázy, rozhranie a programovanie v jazyku 1C. Jediným obmedzením je, že každá konfigurácia má svoju vlastnú databázu a iba jednu (je však možné sa dodatočne pripojiť externých zdrojovúdaje, t.j. iné základy).

Ekosystém pre programátorov

Pozrime sa teraz na jazyk a platformu 1C z pohľadu vývojára:
Objektový model databázy. Po prvé, nepracujeme priamo s databázami. Nie je to nutné. Pre naše pohodlie sú všetky údaje prezentované vo forme vzájomne súvisiacich objektov (adresáre, dokumenty, informačné registre, akumulačné registre, ...) a platforma tieto údaje automaticky „vytiahne“ z databázy.
Napríklad za predpokladu, že premenná "Prvok nomenklatúry" obsahuje odkaz na položku adresára "Nomenklatúra", adresár "Nomenklatúra" má atribút "Hlavný dodávateľ" typu "Directory.Contractors" a "Dodávatelia" adresár má atribút "FullName", potom kód:

Element nomenklatúry.Hlavný dodávateľ.Celé meno
... spôsobí, že platforma 1C pomocou interných mechanizmov nájde záznam v tabuľke zodpovedajúci adresáru "Protistrany" podľa identifikátora z poľa "Hlavný dodávateľ" položky nomenklatúry a vráti hodnoty pole zodpovedajúce poľu "FullName" v objektovom modeli adresára "Counterparties".

Takýchto odklonov môže byť veľa – systém si poradí. Jedinou výhradou je, že systém nie je schopný optimalizovať dereferencie, takže by ste sa mali snažiť odstrániť ich zo všetkých druhov slučiek.

Okrem objektov, ktoré popisujú dáta, existuje obrovské množstvo systémových objektov – pre rôzne funkcie. Vyzdvihnem niektoré z nich:

Value Stores
pole- objekt, ktorý ukladá množinu údajov na rozdiel od klasickej reprezentácie polí. Môžu to byť dáta rôzne druhy(číslo, reťazec, odkaz, iný objekt). Má minimálnu funkčnosť a používa sa hlavne ako dočasný kontajner na prenos hodnôt medzi inými úložiskami.

Zoznam hodnôt- objekt, hlavne na prácu s užívateľským rozhraním. Každý prvok môže okrem údajov obsahovať aj pohľad, znak vlajky a obrázok (piktogram). Má tiež metódy "SelectElement()" a "MarkElements()" - po zavolaní sa používateľovi zobrazí dialógové okno rozhrania (čo je pohodlné - tento dialóg nie je potrebné vytvárať v konfigurácii).

Štruktúra a Zhoda- ukladanie spárovaných hodnôt "Kľúč a hodnota". V štruktúre „Kľúč“ ide o reťazec, ktorý sa riadi pravidlami pre pomenovanie premenných v 1C (bez medzier, nezačína číslom, pozostáva len z písmen, číslic a podčiarkovníka). Podľa - "Kľúč" je akákoľvek hodnota. Najrýchlejšie vyhľadávanie objektov je v súlade (rýchlejšie ako v poli a indexovanej tabuľke hodnôt).

Tabuľka hodnôt- veľmi pohodlný a pomerne rýchly objekt na ukladanie a spracovanie údajov. Stĺpce v tabuľke hodnôt je možné pridávať a odstraňovať bez ohľadu na počet záznamov. V tomto prípade sa údaje v riadkoch nestratia (alebo sa vymažú iba údaje z buniek zodpovedajúcich vymazávaným stĺpcom). Má tiež metódu "Select String ()", ktorá vyvoláva dialógové okno výberu reťazca. Existujú indexy.

Strom hodnôt- objekt predstavujúci hierarchické dáta. Obsahuje stĺpce, množina stĺpcov je rovnaká pre všetky záznamy na všetkých úrovniach. Odstránenie/pridanie stĺpcov v strome hodnôt je rovnako jednoduché ako v tabuľke hodnôt. Má tiež metódu "SelectRow()".

Objekty rozhrania a objekty pre prácu s rôznymi údajmi TextDocument, SpreadsheetDocument, Webový prehliadač, ReadFile, WriteFile, ReadZIPFile, WriteZIPFile, ReadXML, WriteXML, HTTPRequest a mnoho ďalších objektov a pre všetky je v konfigurátore zabudovaná pomoc. Účel uvedených objektov je vidieť z ich názvov a to všetko je okamžite dostupné v platforme.

Samostatne je potrebné poznamenať, že existuje objekt "Metadáta" - pomocou ktorého môžete študovať štruktúru údajov v programovacom jazyku, ako aj každý odkaz alebo objekt pre referenčnú knihu, dokument, účtovnú osnovu atď. . existuje metóda "Metadata()" - poskytujúca popis tohto adresára/dokumentu/účtovej osnovy/atď. v databáze (aké podrobnosti, tabuľkové časti sú k dispozícii, dĺžka kódu/čísla atď.). Často je to veľmi pohodlné.

A tiež by sme mali osobitne spomenúť objekty: „Žiadosť“, „Konštruktor požiadaviek“, „Tvorca požiadaviek“, „Tvorca zostáv“, „Schéma skladania údajov“. Táto rodina implementuje sadu objektov na prácu s výkonným dotazovacím jazykom 1C.

Jazyk dopytu. Dotazy v 1C sa používajú iba na získanie výberu údajov s pohodlným výberom, triedením, zoskupovaním. Ako prvá aproximácia je to operátor „SELECT“ preložený do ruštiny z SQL, avšak dopytovací jazyk 1C má aj funkcie, ktoré nie sú dostupné v SQL, a to:

  • Práca s konfiguračnými objektmi 1C namiesto SQL tabuliek;
  • Práca s odkazmi namiesto polí identifikátorov SQL;
  • Podpora dereferencovania, podobne ako sa to robí v kóde;
  • Vzorkovanie zadaním skupiny (pre adresáre);
  • Hierarchické súčty;
  • Dočasné tabuľky a vnorené dotazy (SELECT * FROM (SELECT ...)));
  • Query Builder – pohodlný, objektovo orientovaný, automaticky optimalizujúci text dopytu pre rýchle čítanie, ktorý dokáže analyzovať text dopytu (analyzovať text dopytu a zostaviť z neho objektový model);
  • Zostavovač je doplnkom k mechanizmu dotazov, ktorý pridáva funkcionalitu automatického formátovania výsledkov, ako aj flexibilné prispôsobenie samotného dotazu v režime „Enterprise“ (teda používateľom). V dôsledku toho sa v štandardných platformách 1C objavili univerzálna správa, v ktorom si používateľ môže nakonfigurovať, aké údaje a v akom poradí chce vidieť, čo je v riadkoch, čo v stĺpcoch a samotná zostava vygeneruje výstupnú tabuľku;
  • SKD (Data Composition System) je ďalším modelom, ktorý zahŕňa funkčnosť univerzálneho reportu a dopĺňa ho o niektoré funkcie spracovania výsledkov.

Programovací jazyk
Z hľadiska syntaxe je jazyk 1C podobný „ruskému Pascalu“, líši sa však od „Pascalu“ menšou prísnosťou a absenciou niektorých konštrukcií:

  • Nie je potrebné deklarovať premenné - môžete inicializovať priamo v texte modulu;
  • Žiadne ťažké písanie premenných. Systém má typy hodnôt, ale neexistujú žiadne prísne pravidlá pre písanie premenných. Premenná, ktorá uložila odkaz, už môže uložiť číslo alebo reťazec v niekoľkých riadkoch kódu;
  • Môžete pridať premenné s hodnotami rôznych typov, pričom typ výsledku bude rovnaký ako typ prvej premennej, napríklad:
    k \u003d "25" + 1; // k = "251", nie 26
  • Premenné s hodnotami rôznych typov je možné porovnávať z hľadiska rovnosti alebo nerovnosti (ale nie viac alebo menej, to spôsobí výnimku) - prirodzene, takéto premenné nie sú rovnaké;
  • Existujú funkcie a procedúry, je dovolené použiť rekurziu (s obmedzením hĺbky rekurzie);
  • Pri zadávaní funkcie alebo procedúry bez parametrov – to isté, nezabudnite na koniec uviesť prázdne zátvorky: here_so();
  • Sú moduly: každý adresár a dokument ich má niekoľko, okrem toho registre, výkazy a spracovanie majú moduly a každý formulár a aj v rámci konfigurácie je možné vytvárať spoločné moduly;
  • Žiadne triedy, dedičnosť, zapuzdrenie, polymorfizmus;
  • Funkciu nemožno odovzdať ako referenciu, neexistujú žiadne anonymné funkcie;
  • Neexistuje žiadna spätná slučka (pre i:=5 až 1 do), ale je skutočne potrebná pri mazaní záznamov. Vystačíme si s trochu dlhším vstupom cez slučku “Bye”.

Nástroje

  • Platforma 1C má možnosť nahrať a stiahnuť konfiguráciu, porovnať konfiguráciu s inou konfiguráciou a čiastočne nahrať zmeny;
  • Je možné nahrať texty modulov pre nich dávkové spracovanie a nahrať späť do konfigurácie;
  • Ak je konfigurácia podporovaná (všetky konfigurácie od 1C sú pôvodne podporované), môžete vždy porovnávať a vidieť, čo sa zmenilo vývojárov tretích strán alebo miestnych odborníkov;
  • Taktiež je možné nahrať/stiahnuť celú databázu (vrátane údajov);
  • Pre spoločnú prácu na jednej konfigurácii sa používa úložisko konfigurácií;
  • Existuje tiež niekoľko pravidiel na vykonávanie zmien štandardných konfigurácií, dokonca existuje dokument od 1C, ktorý popisuje metódy a štandardy na zmenu typické konfigurácie(a akékoľvek iné).

Celkový dojem
Jazyk 1C spája prehľadnosť textov jazyka Pascal s ľahkomyseľnosťou práce s premennými jazyka BASIC. Chýbajú mu niektoré funkcie moderné jazyky programovanie, ale bez nich je to celkom možné. Platforma 1C má navyše výkonný zberač odpadu, t.j. nie je potrebné napríklad čistiť tabuľky po použití alebo ich mazať.

Rozhranie 1C Enterprise 8.2

Spoločnosť 1C venovala osobitnú pozornosť rozhraniu svojho programu. Prvým je farebná paleta. Je nádherná! Okná programu sú rozpoznateľné aj z diaľky, pričom za dlhé roky práce nevyvolávajú nevraživé pocity, práve naopak – chcem, aby boli všetky programy rovnako cool.
Štýl platformy je zároveň veľmi prísny, bez volánov a iných excesov. Zároveň existuje veľmi užitočné funkcie, napríklad zapamätanie si veľkostí okien (veľkosti sa zapamätajú iba vtedy, keď ich používateľ zmení, a zároveň môžete kedykoľvek obnoviť nastavenia používateľa - na predvolené veľkosti a pozície stlačením Alt + Shift + R).
Rozhranie webového klienta 8.2 vyvoláva množstvo sťažností, no zdá sa, že platforma 8.3 so sebou prináša nové prepracované rozhranie – Taxi.

Ceny, ponuka a dopyt, franchising

Najchutnejším plusom platformy 1C je jej cena. To platí najmä teraz, počas krízy. Koniec koncov, 1C je úplne náš domáci produkt. A predáva sa za naše drevené. Takéto riešenia od zahraničného výrobcu budú stáť veľa peňazí. A licencie pre 1C sú celkom prijateľné.

Okrem toho má 1C zaujímavú licenčnú politiku. Samotné licencie a konfigurácie sa kupujú raz. Zároveň sa kupujú licencie na pracovisko a na server, nie však do databáz a dokonca ani do spojení, t.j. pod jednou licenciou môže ten istý používateľ spustiť neobmedzený počet relácií 1C a pracovať s ľubovoľným počtom databáz. To isté platí pre konfigurácie: zakúpením jednej licencie na konfiguráciu môže organizácia pomocou nej vytvárať ľubovoľný počet databáz, navyše je oficiálne povolené používať časti kódu a objekty tejto konfigurácie pri vývoji vlastných konfigurácií (na adrese zároveň môžete predávať / prenášať svoje vlastné konfigurácie - s podmienkou, že ich chcete použiť, musíte si kúpiť konfiguráciu od 1C).

Po tomto jednorazovom nákupe si stačí predplatiť aktualizácie a raz ročne zaplatiť za obnovenie predplatného, ​​tzv. ITS. Mimochodom, predplatné je veľmi lacné, približne rovnaké ako dve klientske licencie.

Vo všeobecnosti to všetko vyzerá veľmi výnosne.

Druhou „chutnou“, ale už s muchou, plus je prítomnosť pomerne univerzálnych konfigurácií od samotného 1C a od partnerov.

O všestrannosti

Pojem „univerzálnosť“ definoval jeden učiteľ školy v odbore NVP na príklade plynových masiek: existujú univerzálne, ktoré chránia pred mnohými škodlivými faktormi, ale stupeň ochrany je priemerný alebo podpriemerný a tiež špecializované plynové masky, ktoré chránia pred jedným nárazom, no s vysokým stupňom ochrany. Doteraz som nevidel presnejšiu definíciu.
A konfigurácie od 1C sú univerzálne. V praxi neexistujú úlohy, kde by sa dali plnohodnotne využiť bez úprav. Napriek tomu sa spoločnosti 1C podarilo vytvoriť univerzálny súbor nástrojov, ktorý pokrýva potreby väčšiny odvetví moderného podnikania.


Tretím plusom (a tiež s muchou) je sieť franšízantov a školiacich stredísk, ako pre používateľov, tak aj pre začínajúcich programátorov a administrátorov. Dobrý nápad, ale veľmi priemerná kvalita jeho realizácie. Rozšírenosť a agresívny marketing je však jedným z dôvodov rozšírenej popularity 1C u nás (a to je aj dôvod negativity, závisti a nenávisti).

Lyžica dechtu

Po natretí 1C vo všetkých farbách by bolo nespravodlivé nehovoriť o jeho nedostatkoch a už existujú:

Nestabilné uvoľnenia- v platforme aj v konfiguráciách je obrovské množstvo chýb a závad. A toto je v oficiálnych vydaniach. Pred prepustením oficiálna verzia, vydáva sa „Recenzia verzie“. K dispozícii je tiež spätná väzba na odosielanie popisov chýb, ktoré majú byť prijaté na opravu. Verzie na preskúmanie však nie sú obzvlášť populárne, alebo samotná spoločnosť 1C nemá čas spracovať všetky listy do dátumu vydania, ale skutočnosť je taká. Zakaždým, keď aktualizujete platformu alebo konfiguráciu, môžete naraziť na najneočakávanejšie „prekvapenia“. 1C bola opakovane vyzvaná, aby dôkladnejšie otestovala svoj vývoj.

Nadobúdateľ franšízy (ďalej len franšízanti). V ideálnom prípade by to podľa plánu mali byť firmy s kvalifikovanými odborníkmi, ktorí poznajú základné princípy fungovania konfigurácií a platforiem. Tie isté firmy by museli predať platformu, konfiguráciu a podporu, mierne „dokončiť“ univerzálne konfigurácie, aby splnili požiadavky klienta (a niekedy tieto požiadavky upraviť), pričom by sa snažili minimálne upraviť štandardnú konfiguráciu. Aby sa budúce aktualizácie príliš nekomplikovali. No v skutočnosti je opak pravdou.

Pri predaji nových licencií klientovi získajú franšízy 50 % ich hodnoty (mínus daň z príjmu vo výške 13 % z týchto 50 %). Zároveň nemusíte nič vyrábať sami, stačí preniesť kľúče do 1C kupujúcemu.

Pri poskytovaní služieb franšízanti neplatia spoločnosti 1C nič (s výnimkou členských príspevkov), ale musia zaplatiť zamestnancovi mzdu. Peniaze musíte vynaložiť aj na dane štátu – PFR a daň z príjmu.

Ukazuje sa, že pre 1C aj franšízy je ziskové predávať licencie a poskytovať ďalšiu podporu je nerentabilné. Zároveň, aby si klient mohol kúpiť program, musí sa spočiatku prispôsobiť jeho požiadavkám. A za prácu musíte zaplatiť. A tu, aby sa ušetrilo, sú zapojení študenti, žiaci, nešpecialisti, ktorí môžu byť platení málo a niekedy vôbec, dokonca nemôžu byť registrovaní v štáte (budú pracovať neoficiálne, keďže tam je čím platiť). Výsledkom je obrovský počet predajov s veľmi nízkou kvalitou. Vylepšenia spravidla ovplyvňujú dôležité mechanizmy a komplikujú budúce aktualizácie. Ale vo fáze predaja nemá záujem ani 1C, ani nadobúdateľ franšízy.

Podotýkam, že to nie je ani tak chyba podnikateľov z franchisingu ako z 1C. Pri zameraní na predaj jej vôbec nezáležalo na podpore (teraz nehovorím o školách, ale o tom, že podpora by mala byť výhodná pre samotného franšízanta aj pre 1C).

Technická podpora. V chápaní 1C je technickou podporou poskytovanie prístupu k časti „aktualizácia“ pre platformu a konfigurácie, ako aj k informačným častiam, ktoré obsahujú popis niektorých mechanizmov a funkcií 1C. Okrem toho je pri predplatení poskytnutý disk so špecifikovanými materiálmi. Je tu aj fórum (veľmi skromné ​​v porovnaní s ľudovým). Je možné aj poslať email na 1C - ale ani nedúfajúc, že ​​na to odpovedia (alebo robot odpovie „List bol odoslaný vývojovému oddeleniu.“ Z hľadiska vývoja poskytuje Yandex.Search a pomoc zabudovaná do konfigurátora oveľa väčšiu podporu.

Epilóg

V roku 2008 som prešiel na 1C a predtým som pracoval vo firme vyvíjajúcej vlastný účtovný program (Delphi 5, potom Delphi 7). Najprv som sa zoznámil s platformou 1C Enterprise 7.7 a bol som prekvapený jednoduchosťou vytvárania zostáv v nej. Zároveň bolo jasné, že hlásenia sa generovali oveľa dlhšie ako v podobných mechanizmoch Delphi, no účtovníkov to zvlášť netrápilo. Nie je problém čakať niekoľko minút namiesto sekúnd. Naopak, môžete si tam nalakovať nechty, dať si čaj alebo diskutovať o novinkách bez toho, aby ste zdvihli hlavu od práce. Prevažnú väčšinu účtovníkov v súčasnosti tvoria ženy.
Rozhranie 7.7 však bolo veľmi obmedzené a množina objektov bola veľmi chudobná. Hľadal som alternatívy. Zoznámil som sa s externými komponentmi, ale neprišli do praktickej aplikácie, tk. šéf sa rozhodol, že nastal čas, aby sme prešli na 8.1 (áno, 8.2 vtedy ešte neexistoval) a na tejto platforme som ako programátor našiel všetko, čo mi predtým chýbalo.
V súčasnosti mám autoritu medzi kolegami, ale aj klientmi, ktorí za mnou prišli z franchisingu. S Francúzmi sa už asi nikdy nevyrovnajú.


Vo všeobecnosti som s prácou na platforme 1C Enterprise 8 celkom spokojný. Je vhodný na riešenie väčšiny účtovných úloh a úloh pomocou databázy.

Štítky: Pridajte štítky

Vstavaný programovací jazyk 1C:Enterprise- programovací jazyk, ktorý sa používa v rodine programov 1C: Enterprise. Daný jazyk je predkompilovaný jazyk pre doménu na vysokej úrovni.

Prostredie vykonávania jazyka je softvérová platforma"1C:Podnik". Vizuálne vývojové prostredie ("Konfigurátor") je neoddeliteľnou súčasťou softvérového balíka 1C:Enterprise.

Jazykové dialekty pre platformy verzie 1C 7 (7.0, 7.5, 7.7) sú kompatibilné „zdola nahor“ s malými výnimkami. Jazyky pre platformy 1C:7x a 1C:8x sú kompatibilné z hľadiska základných operátorov, ale výrazne sa líšia v práci s aplikačnými objektmi, v dôsledku čoho nie je prenos kódu z 1C:7x na 1C:8x dáva zmysel.

Vstavaný jazyk 1C: 8 je svojou syntaxou najviac podobný jazyku Visual Basic.

Platforma poskytuje pevnú sadu základných tried orientovaných na riešenie typické úlohy oblasť použitia:

  • konštantná,
  • adresár,
  • dokument,
  • Denník dokumentov,
  • sčítanie,
  • Správa,
  • Liečba
  • Účtovná osnova atď.

Na základe základných tried môžu vizuálne konfiguračné nástroje vytvárať ľubovoľný počet odvodených tried (nie je možné definovať novú triedu programovo). Povolený je len jeden explicitný stupeň triedneho dedenia. Objekty odvodených tried spravidla predstavujú záznamy (alebo niektoré sady záznamov) v databáze. Takéto triedy tvoria „strom metadát“. V zmysle zabudovaného programovacieho jazyka 1C sa takéto triedy nazývajú objekty metadát.

Hlavné typy objektov metadát sú: Adresáre, Dokumenty, Výkazy, Spracovanie, Plány typov charakteristík, Účtové osnovy, Plány typov kalkulácií, Informačné registre, Akumulačné registre, Kalkulačné registre, Obchodné procesy, Úlohy.

Ruská a anglická syntax príkazov je podporovaná.

Projekty v zabudovanom jazyku 1C:Enterprise sa nazývajú konfigurácie. Distribúcia (predaj) a implementácia takýchto konfigurácií je hlavnou obchodnou činnosťou partnerských firiem 1C.

Pracovný názov jazyka - "1Sik" ("onesik") - veľmi rýchlo zmizol z oficiálnych zdrojov. Teraz, keď spomínate tento jazyk v písomných dokumentoch, musíte písať 1C Programovací jazyk. Teraz jazyk nemá žiadne meno, ktoré by sa dalo vysloviť ústne. Tento jazyk sa však v kontexte diskusie o 1C:Enterprise často označuje ako „vložený jazyk“.

Objektovo orientované dialekty

Existuje niekoľko doplnkových komponentov, ktoré rozširujú hlavné triedy, ich bezplatné pridávanie a modifikáciu; vývojári ich neodporúčajú používať. To znamená, že 1C a jej franšízanti akékoľvek odmietajú technická podpora konfigurácie, ktoré používajú takéto komponenty.

Okrem toho existuje úplne bezplatný projekt 2C, ktorý nepoužíva žiadne proprietárne moduly od 1C alebo iných výrobcov. Ide o prepísané „od nuly“, voľne šírené pod licenciou GPL, rozšíriteľné jadro systému podobného 1C, v ktorom aj také „vstavané objekty“ 1C ako adresáre a registre sú triedy predefinované aplikačným programátorom.

Jazyk platformy 2C bol navrhnutý s cieľom maximálnej kontinuity s existujúcim vývojom pre 1C a je rozšírením základného jazyka 1C. Napísaním príslušných základných tried je možné jazyk 2C priblížiť k 1C 7.7 aj 1C 8.0, hoci 2C:Platform nemôže poskytnúť 100% automatický prenos konfigurácií z jednej alebo druhej verzie 1C:Enterprise.

1C.Net:Enterprise

Na uľahčenie používania 1C.Net:Enterprise bolo pripravených mnoho príkladov pokrývajúcich takmer celý rámec .NET, vrátane príkladov integrácie natívnych ovládacích prvkov .NET do formulárov 1C.

Príklad programu

Klasický príklad výstupu textového reťazca vstavaného jazyka 1C:Enterprise 7.7:

Show("Ahoj Svet!");

Príklad funkcie, ktorá vracia druhú mocninu čísla:

Funkcia SquareNumber (prNumber)

Return prNumber * prNumber ;

EndFunctions

pozri tiež

  • RSL je programovací jazyk zabudovaný do RS-Balance.

Poznámky

Odkazy


Nadácia Wikimedia. 2010.

Pozrite sa, čo je „Vstavaný programovací jazyk 1C: Enterprise“ v iných slovníkoch:

    Vstavaný programovací jazyk 1C:Enterprise Jazyková trieda: procedurálny, špecifický pre doménu Typ vykonania: predkompilovaný Autor(i): 1C Najnovšia verzia: 1C: Enterprise 8.2 Typovanie údajov: dynamické písanie Základné ... ... Wikipedia

    programovací jazyk formálny znakový systém určený na písanie počítačové programy. Programovací jazyk definuje súbor lexikálnych, syntaktických a sémantických pravidiel, ktoré definujú vzhľad programu a akcie, ... ... Wikipedia

    jazyk sú programovacie jazyky, ktoré na rozdiel od väčšiny bežných jazykov nepoužívajú Kľúčové slová prevzaté z anglickej slovnej zásoby. Obsah 1 Prevaha programovacích jazykov založených na angličtine ... Wikipedia

    Programovacie jazyky nie sú založené na anglický jazyk programovacie jazyky, ktoré na rozdiel od väčšiny bežných jazykov nepoužívajú kľúčové slová prevzaté z anglickej slovnej zásoby. Obsah 1 Prevaha softvérových jazykov Wikipedia

    Neanglické programovacie jazyky sú programovacie jazyky, ktoré na rozdiel od väčšiny bežných jazykov nepoužívajú kľúčové slová prevzaté z anglickej slovnej zásoby. Obsah 1 Prevaha jazykov ... ... Wikipedia

    Programovací jazyk je formálny znakový systém na písanie programov. Program je zvyčajne nejaký algoritmus vo forme zrozumiteľnej pre vykonávateľa (napríklad počítač). Programovací jazyk definuje množinu ... ... Wikipedia

    Skontrolujte neutralitu. Diskusná stránka by mala obsahovať podrobnosti... Wikipedia

    - (angl. Mutable type) komplexný dátový typ v objektovo orientovanom programovaní, ktorého hodnoty (zvyčajne objekty) po ich vytvorení umožňujú meniť ich vlastnosti. Obsah 1 Príklady ... Wikipedia

    Jazyková trieda: procedurálny, objektovo orientovaný Typ prevedenia: interpretovaný Rok vydania: 1994 Autor(i): Sergey Kubrin Prípona súboru: mac ... Wikipedia

knihy

  • 1C: Podnik 7.7. Lekcie programovania. Samoučiteľ45 , Postovalov Sergey Nikolaevich , Postovalova Anastasia Yuryevna , Je popísaná správa systému 1C: Enterprise 7.7, úvod do účtovníctva, vstavaný jazyk a hlavné základné objekty systému. Špecifiká práce s objektmi sa považujú za ... Kategória: Aplikačný softvér Séria: Návod Vydavateľstvo: BHV-Petersburg, Výrobca:

V tomto článku sa budeme zaoberať takouto konštrukciou programovacieho jazyka 1C ako Cykly.

Existujú tri spôsoby, ako organizovať slučky.

  1. Cykly používajúce boolovský výraz (spúšťajú sa, pokiaľ je boolovský výraz pravdivý)
  2. Prechádzanie kolekciami v slučke

Zvážme každú z týchto metód.

Slučky pomocou premennej - počítadlo slučiek

Syntax:

Pre< Переменная> = < НачальноеЗначение>Autor:< КонечноеЗначение>CycleEndCycle ;

Pri tomto spôsobe organizovania cyklov je premennej počítadla priradené nejaké pôvodná hodnota a vykonáva sa, pokiaľ je hodnota premennej počítadla menšia alebo rovná zadanej konečnej hodnote.

S každou iteráciou sa hodnota počítadla zvýši o jednu. Tu je najzákladnejší príklad takejto slučky:

Pre počítadlo = 0 až 1000 Cyklus Koniec cyklu ;

Na rozdiel od mnohých iných programovacích jazykov, 1C neposkytuje možnosť špecifikovať krok v cykle. V prípade potreby sa to dá urobiť pridaním požadovanej hodnoty do počítadla vo vnútri slučky

Pre počítadlo = 0 po 1000 počítadlo slučky = počítadlo + 10 ; EndCycle ;

Slučky pomocou boolovského výrazu

Syntax:

Zbohom< ЛогическоеВыражение>CycleEndCycle ;

Odmietnuť = Nepravda ; GeneratorSch = Nový generátor náhodných čísel(1) ; Do zlyhania slučky RandomNumber = GeneratorSch. NáhodnéČíslo(0, 10) ; If RandomNumber > 5 Then Rejection = True ; Koniec Ak ; EndCycle ;

To znamená, že cyklus sa bude vykonávať dovtedy, kým sa nevygeneruje náhodné číslo väčšie ako päť.

Prechádzanie kolekciami v slučke

V programovacom jazyku 1C existuje niečo ako kolekcia. Je to súbor prvkov obsiahnutých v objekte.

Kolekciou môžeme označovať také objekty ako: pole, tabuľka hodnôt, výber z výsledku dotazu, metaúdaje atď. Tento koncept je skôr podmienený, ale v asistentovi syntaxe sa vyskytuje na každom kroku. Veľmi často existuje úloha, keď potrebujeme postupne iterovať všetky prvky kolekcie, aby sme s nimi vykonali nejaké akcie. Na to existuje syntaktická konštrukcia:

Pre každého< ЭлементКоллекции>Od< Коллекция>CycleEndCycle ;

Tu <ЭлементКоллекции> je premenná, do ktorej sa postupne umiestňujú prvky z kolekcie. A vo vnútri slučky sa spracuje zodpovedajúcim spôsobom.
Ako príklad uvediem premostenie v slučke riadkov tabuľky hodnôt. Nech sa volá TableProducts a vyzerá takto:

Prejdeme si túto tabuľku v slučke a pre každý riadok zobrazíme správu s názvom a cenou produktu:

Pre každú RowTableFrom TableProducts Názov slučky = RowTable. Názov; Cena = TableString. Cena; Správa = New MessageToUser; Správa. Text = "Názov produktu:"

V skutočnosti sa to isté dá urobiť pomocou prvej možnosti, t.j. v slučke pomocou počítadla:

Počet riadkov = TableProducts. Množstvo(); Pre počítadlo = 0 podľa počtu riadkov - 1 slučka Tabuľka riadkov = TableProducts[Counter] ; Name = StringTable. Názov; Cena = TableString. Cena; Správa = New MessageToUser; Správa. Text = "Názov produktu:"+ Názov + "; Cena: " + Cena; Správa. Ohlásiť() ; EndCycle ;

Ale ako vidíme, je oveľa jednoduchšie a pohodlnejšie použiť prechádzanie prvkov kolekcie.

Pomocní operátori

Často nastáva situácia, keď v závislosti od niektorých je potrebné prerušiť vykonávanie cyklu alebo ísť z ďalšia iterácia.

Prerušenie sa vykonáva pomocou operátora prerušiť. V tomto prípade sa vykonávanie cyklu preruší a riadenie sa prenesie do jazykovej konštrukcie nasledujúcej po slučke. Ak potrebujete prejsť na ďalšiu iteráciu, musíte použiť operátor Pokračujte. Potom sa riadenie prenesie na začiatok slučky. Ukážme si to na malom príklade:

For Count = 0 By 100 Loop If Count = 0 Potom Continue ; Koniec Ak ; If Counter = 4 Then Abort ; Koniec Ak ; Výsledok = 1 / počítadlo; Správa = New MessageToUser; Správa. Text = String(vysledok) ; Správa. Ohlásiť() ; EndCycle ;

Preskočíme nulu, pretože nemôžeš deliť nulou. A celkovo sa cyklus vykoná päťkrát pre hodnoty premennej Počítadlo 0 až 4

Každému, kto sa chce venovať programovaniu, chceme vysvetliť niekoľko jednoduchých vecí, ktoré nie sú spomenuté vo všetkých učebniciach programovania, ale tí, ktorí sa chcú naučiť programovať v 1C od začiatku, by o tom mali vedieť.

1. Programovací jazyk je predovšetkým jazyk.

Predtým, ako sa začnete učiť jazyk, buďte psychicky pripravení na to, že tento proces nie je rýchly. Aby ste si konkrétne vedeli predstaviť, čo je učenie sa programovacieho jazyka – je to takmer rovnaké ako učenie sa cudzieho jazyka. Všetci v škole sa učili cudzí jazyk a každý veľmi dobre chápe, že na znalosť jazyka nestačí len naučiť sa prekladať slová z cudzieho jazyka do rodného jazyka zo slovníka. Napríklad frázu „ja viem po anglicky“ môže povedať človek, ktorý je schopný: prečítať text v angličtine, preložiť, urobiť vetu bez chýb, vyjadriť sa ústne. Preklad cudzie slová bez schopnosti správne zostaviť vetu (prečítať syntax programovacieho jazyka) neznamená presne znalosť cudzieho jazyka. Preto Lekcia 1 – zaobchádzajte s učením programovacieho jazyka tak, ako by ste zaobchádzali s učením sa cudzieho jazyka, aby ste si ho plne osvojili.

2. Prax.

Iste ste už počuli, ako niektorí ľudia, ktorí dobre ovládajú cudzí jazyk, ho postupne zabúdali bez toho, aby si ho nacvičili. Po naučení sa základov programovania v 1C cvičte denne pri vykonávaní jednoduchých úloh, aby ste nestratili skôr získané vedomosti a postupne preberali zložitejšie úlohy. Zlepšite svoje zručnosti.

Akékoľvek podnikanie sa pohybuje lepšie, ak existuje motivácia.V budúcnosti sú pre vás programátorské zručnosti peňažnou odmenou, dobrá práca, ľahký sociálny výťah a pod. Nie je žiadnym tajomstvom, že softvérový produkt 1C Enterprise je v postsovietskom priestore veľmi populárny. Osem z desiatich spoločností používa program 1C na účtovanie obchodných aktivít. Preto potrebujú správcu alebo programátora 1C, ktorý by program udržiaval a dokončoval. Prirodzene, takýto trh potrebuje špecialistov 1C. Niekedy sú firmy pripravené prijať zamestnanca s nie veľmi vysokou kvalifikáciou s programátorskými schopnosťami za slušný plat s podmienkou sebazdokonaľovania. A aj keď nechcete pracovať v komerčnej spoločnosti alebo franchisingu, dobrý kvalifikovaný programátor si bude môcť nájsť prácu na burzách na voľnej nohe alebo realizovať projekty na mieru. Vo všeobecnosti programátor 1C nezostane bez práce.

S úvodom do základy programovania skončili sme. Zvyšok materiálu bude venovaný zvládnutiu základov kódu jazyka 1C. Možno budú niektoré časti opísané príliš stručne, ale účelom tohto materiálu nie je úplne ponoriť čitateľa do syntaxe jazyka, ale skôr najprv oboznámiť odborníkov s architektúrou jazyka 1C, aby si vytvorili určitú kostru. (základňa) v hlave užívateľa, na ktorej budú v budúcnosti zavesené všetky poznatky .