Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sfat
  • Limbajul de programare integrat 1c enterprise. Bucle folosind o expresie booleană

Limbajul de programare integrat 1c enterprise. Bucle folosind o expresie booleană

Chiar dacă ați studiat anterior alte limbaje de programare, de exemplu, C++, PHP, Java, merită să ne amintim că 1C, deși în multe privințe, are încă multe diferențe fundamentale.

Cel mai important lucru în 1C este că nu trebuie să inventați propriile tipuri de obiecte. Toate sunt deja în configurație.

Instalați platforma tehnologică 1C pe computer și deschideți o bază nouă sau existentă în configurator. Pentru început, îl puteți folosi absolut pentru a preda programarea.

În partea stângă a ferestrei, veți vedea un arbore cu obiecte de configurare. Acestea includ documente, directoare, registre, procese de afaceri și multe altele.

Datele sunt, de asemenea, stocate în DBMS, dar dezvoltatorul de obicei nu lucrează direct cu ele. Cu ajutorul platformei tehnologice, programatorul se referă deja la obiectele configurației sau infobazei.

În 1C, ca și în multe alte limbaje de programare, interogările sunt foarte des folosite. similar cu limbajul T-SQL. Solicitările pot fi scrise atât în ​​engleză, cât și în rusă, printre altele, ca și restul codului.

Totul pare a fi simplu, dar cunoștințele unui limbaj de programare nu sunt adesea suficiente pentru a lucra „pe teren”. Faptul este că, în majoritatea organizațiilor care folosesc 1C, sunt instalate configurații standard și trebuie să le cunoașteți.

În planul de lucru pentru programatorii 1C, există două ramuri principale: francizații sau lucrează „pentru ei înșiși” și lucrează ca programator full-time al departamentului IT al oricărei organizații. Această alegere depinde doar de preferințele dvs.

Când lucrezi pentru un francizat, lucrezi în mod independent sau îți conduci propria afacere, plata va fi la bucată. Poate fi multă muncă și trebuie să dai tot ce e mai bun. Nu există plafon pentru salarii și puteți câștiga o sumă impresionantă de bani.

Dacă decideți să lucrați independent sau să vă deschideți propria afacere, nu va trebui să vă „împărțiți” câștigurile cu nimeni (cu excepția statului și a platformei de freelance, desigur). Dar în acest caz, va fi necesar să cauți clienții pe cont propriu.

Dacă totuși decideți să obțineți un loc de muncă în organizație ca programator cu normă întreagă, atunci nu veți depinde prea mult de cantitatea de muncă efectuată. În acest caz, există o oarecare stabilitate, dar și bara salarială este limitată.

Desigur, aceste două metode pot fi combinate, lucrând ca programator cu normă întreagă în timpul zilei și lucrând independent seara.

Ceea ce este bun la programatorii 1C este că este posibil să nu aveți o educație tehnică (de exemplu, sunteți economist, contabil etc.). Pentru a vă confirma cunoștințele în fața clienților sau a unui angajator, puteți furniza certificatele dvs. 1C.

Certificatele sunt de diverse tipuri, atât pe platformă (pentru programatori), cât și după soluții standard. Le poți obține la 1C promovând un examen sub forma unui test sau a unei sarcini practice.

Cărți pe 1C

Cel mai bine este să studiezi 1C din cărțile care au fost publicate de 1C. De la sursă, ca să zic așa. Unele dintre ele vin cu livrarea de configurații tipice. De asemenea, puteți cumpăra cărți individuale.

Cartea „1C: Programming for Beginners” este destinată persoanelor departe de programare, dar care doresc să învețe cum să-și creeze propriile soluții pe 1C 8.3 de la zero.

„Bună ziua, 1C” arată cele mai simple posibilități de bază de dezvoltare a soluțiilor aplicate în sistemul 1C: Enterprise 8.

101 Sfaturi descrie diferite moduri de a realiza aceleași sarcini.

Un ghid practic pentru dezvoltatorul 1C Enterprise 8.3 este un ghid foarte detaliat care descrie tehnici de dezvoltare cu exemple simple și ușor de înțeles. Această carte este una dintre cele mai bune pentru a învăța programarea 1C.

Acest tutorial descrie un limbaj de interogare de la zero pentru cei care nici măcar nu sunt familiarizați cu SQL.

Daca scrii in SI
Fii de cel puțin trei ori mai lamer
Ei spun despre asta:
"Este un programator tare!"
(Cântece Fidoshnye - „Ce este Suxxx și Ce este Rulezzz”)

cuvânt înainte

Motivul scrierii acestui articol a fost atitudinea negativă a comunității profesionale față de această platformă și programatori.

Ca programator care a ales 1C, cred că această opinie este nefondată. Platforma 1C este departe de a fi ideală, dar, după părerea mea, este cel mai bun, și cel mai important, un produs autohton!

Și cu atât mai mult - este inadecvat să judeci abilitățile unui programator după limbajul în care scrie.

În acest articol voi descrie beneficiile pe care le-am găsit pentru mine în cadrul programului. Articolul se va dovedi a fi aproape o reclamă, așa că declinare imediată a răspunderii:

  • Nu am nicio legătură directă cu 1C;
  • Acest articol nu este personalizat și este scris doar pe bază de voluntariat;
  • În unele cazuri, se exprimă o opinie personală, care poate să nu coincidă...;
  • Întregul articol, cu excepția prologului, este al autorului, orice coincidențe sunt un accident;
  • Vom vorbi despre platforma 1C Enterprise 8.2 (în prezent versiunea 8.3 este relevantă, dar nu am studiat-o încă - se lucrează mult la 1C 8.2). Cu toate acestea, cele mai multe dintre cele spuse se aplică atât platformei 8.3, cât și versiunilor anterioare, iar unele dintre ele se aplică și versiunii 7.7.
Asadar, haideti sa începem.

Despre ce vorbim?

Platforma 1C Enterprise 8 este:
  • Funcționează în două versiuni - fișier și server (cu trei linkuri) - fiecare are propriile avantaje și dezavantaje;
  • Un sistem de contabilitate independent care este ușor de instalat și configurat;
  • Ecosistem puternic pentru programatori cu toate obiectele și instrumentele necesare;
  • Interfață ergonomică plăcută;
  • O soluție de afaceri relativ ieftină;
  • Rețea de francizați, formare inițială;
  • O bază puternică de dezvoltări și cunoștințe acumulate de-a lungul anilor;
  • Uneori o platformă problematică pentru administratorii de sistem;
  • Nu cea mai rapidă execuție a algoritmilor (deși nu cea mai lentă) este un tribut adus conținutului informațional (în caz de erori se indică numărul rândului și conținutul acesteia);
  • Limbajul de programare nu are clase (moștenire, încapsulare, polimorfism), nu are funcții anonime și alte caracteristici moderne. Dar pentru rezolvarea majorității problemelor, acest lucru nici măcar nu este necesar!
Pentru organizarea contabilității - o singură platformă nu este suficientă. Platforma este un fel de „motor”, o legătură intermediară între program și baza de date. Programele pentru acest „motor” se numesc configurații. Configurația descrie structura bazei de date sub formă de obiecte, textele procedurilor stocate în module separate (sunt multe module, sunt atât în ​​fiecare obiect, cât și în sistem în ansamblu, și există și module comune). Platforma oferă un nivel de abstractizare în care nu este necesar accesul direct la baza de date și, de asemenea, vă permite să faceți abstracție de la sistemul de operare și tipul bazei de date.

Baze de date de fișiere și server

Platforma constă din mai multe părți și poate funcționa într-o versiune de fișier sau server.

În versiunea de fișier, întreaga bază de date este conținută într-un singur fișier (cu extensia „1cd”) - platforma este instalată pe fiecare computer și citește/scrie direct în baza de date.

Avantajele opțiunii de fișiere sunt costul scăzut și ușurința de implementare.

Contra - structura fișierului „1cd” este închisă, nu există un singur sistem care să interacționeze cu baza de date. Ca urmare, este dificil de utilizat cu un număr mare de utilizatori (încercat pentru peste 20 de utilizatori - puteți lucra). În plus, actualizările dinamice eșuează atunci când dimensiunea bazei de date este de aproximativ 15 GB (sau mai mult). Rezolvarea unor astfel de defecțiuni este o sarcină dificilă, iar utilitarul de reparare a bazei de date nu repară întotdeauna eficient și, uneori, chiar paralizează baza de date.

Există o soluție - aceasta este, în primul rând, configurarea unui backup zilnic al bazei de date. În plus, meșterii nu numai că publică formatul de fișier 1cd, dar au dezvoltat și utilități pentru lucrul cu astfel de fișiere și o serie de metode pentru a rezolva probleme similare.

În versiunea de server, platforma pentru stocarea bazei de date folosește un server SQL (de obicei, acesta este MS SQL, dar începând cu 8.2.14 - puteți folosi altele, de exemplu, Firebird PostgreSQL, IBM DB2, Oracle Database) și platforma în sine folosește o arhitectură cu trei niveluri:

O parte din cod este executată pe client, altele pe server. În acest caz, doar serverul interacționează cu baza de date. Totodată, începând cu versiunea 8.2, pe lângă modul de operare standard, care se numea modul „client gros”, au existat două moduri de operare noi – „client subțire” și „client web”; au apărut și „forme gestionate”, al căror aspect este construit sub forma unui arbore abstract de elemente. Programarea pentru formulare gestionate și o arhitectură pe trei niveluri este mai dificilă, dar vă permite să transferați aproape toată încărcarea pe server (adică puteți cumpăra un server puternic și o sută dintre cele mai ieftine computere de birou).

Avantajele platformei: „three-link” - distribuția încărcăturii, deschiderea bazei de date (oficial, compania 1C refuză responsabilitatea pentru orice corupție a datelor dacă s-au făcut modificări în baza de date SQL altfel decât prin intermediul platformei sau serverului lor, dar acest lucru oprește puțini oameni), fara restrictii.

Contra - prețul: va trebui să cumpărați separat licențe client pentru fiecare computer client, separat - o licență pentru serverul 1C, o licență separată pentru serverul SQL, dacă nu o utilizați pe cea gratuită. De asemenea, uneori apar dificultăți în funcționarea bazei de date. Ele sunt rezolvate mult mai rapid datorită disponibilității datelor și prezenței instrumentelor externe pentru lucrul cu baza de date. În plus, în acest caz, ar trebui să faceți o copie de rezervă a bazei de date.

Un avantaj comun este versatilitatea codului de configurare: cu unele excepții, configurația dezvoltată pentru baza de date de fișiere va funcționa pe baza de date a serverului și invers. Un exemplu de excepție este transferul unei valori modificabile către server sau de la server către client (în versiunea de fișier nu va provoca excepții, dar în versiunea client-server este interzis).

Un alt plus: platforma se instalează foarte simplu, ceva de genul: „Next-Next-Next-Ok”, nu este necesară reglarea fină și instalarea oricăror componente.

Pentru versiunea de server, mai există câteva setări, dar totul se face în dialogul de instalare și nu necesită prescrierea nimic în fișiere separate. Instalarea serverului SQL poate fi oarecum dificilă, deoarece în acest caz, există mult mai multe setări (și pentru a-l regla fin, trebuie să studiați instrucțiuni suplimentare). Dar acest lucru nu se aplică problemelor platformei 1C. Mai mult, dacă instalați, de exemplu, un server MS SQL cu toate setările implicite, atunci 1C va putea lucra cu el.

Este mai mult decât contabilitate

Când vine vorba de platforma 1C, aceasta este prezentată, în primul rând, ca un program de contabilitate. Într-adevăr, aceasta este cea mai populară zonă de utilizare a platformei 1C. Dar 1C nu trăiește numai din contabilitate!
Cei care sunt familiarizați cu platforma spun că este un sistem contabil (automatizare contabilă). Acest lucru este mai aproape de adevăr - există multe configurații, atât de la 1C, cât și de la dezvoltatori terți. Unele sunt doar indirect legate de contabilitate, altele nu sunt deloc legate.

În general, este mai corect să se reprezinte platforma 1C ca un shell pentru modelarea obiectelor bazei de date, interfeței și programarii în limbajul 1C. Singura limitare este că pentru fiecare configurație se creează propria sa bază de date și doar una (cu toate acestea, este posibil să se conecteze suplimentar surse de date externe ca parte a configurației, adică alte baze de date).

Ecosistem pentru programatori

Să luăm acum în considerare limbajul 1C și platforma din punctul de vedere al dezvoltatorului:
Modelul obiectului bazei de date.În primul rând, nu lucrăm direct cu baze de date. Nu este nevoie. Pentru comoditatea noastră, toate datele sunt prezentate sub formă de obiecte interconectate (directoare, documente, registre de informații, registre de acumulare, ...), iar platforma extrage automat aceste date din baza de date.
De exemplu, cu condiția ca variabila „Element Nomenclatură” să conțină un link către articolul din catalogul Nomenclatură, catalogul Nomenclatură are variabila PrimarySupplier, de tip Catalog.Contractors, iar catalogul Contractors are proprietatea FullName, apoi codul:

ItemNomenclature.PrimarySupplier.Full
... va duce la faptul că platforma 1C, folosind mecanisme interne, găsește o intrare în tabelul corespunzătoare directorului „Contractanți” prin identificatorul din câmpul „Main Supplier” al articolului articol și returnează valoarea câmp corespunzător câmpului „FullName” din modelul obiect al directorului „Contractors”.

Pot exista multe astfel de dereferențe - sistemul va face față. Singura avertizare este că sistemul nu știe cum să optimizeze dereferențiarea, așa că ar trebui să vă străduiți să le scoateți din toate buclele posibile.

Pe lângă obiectele care descriu date, există un număr mare de obiecte de sistem - pentru o mare varietate de funcții. Voi evidenția câteva dintre ele:

Magazine de valoare
Matrice- un obiect care stochează un set de date, spre deosebire de reprezentarea clasică a tablourilor. Pot fi date de diferite tipuri (număr, șir, referință, alt obiect). Are o funcționalitate minimă și este folosit în principal ca container temporar pentru transferul de valori între alte depozite.

Lista de valori- un obiect, în principal pentru lucrul cu interfața cu utilizatorul. Pe lângă date, pentru fiecare element poate conține și o vedere, un semn de steag și o imagine (pictogramă). De asemenea, are metodele „SelectElement ()” și „MarkElements ()” - atunci când este apelat, dialogul de interfață este afișat utilizatorului (ceea ce este convenabil - nu este nevoie să creați acest dialog în configurare).

Structurași Conformitate- stocări de valori pereche „Cheie și valoare”. În structura „Cheie”, acesta este un șir care respectă regulile de denumire a variabilelor în 1C (fără spații, nu începe cu o cifră, este format doar din litere, cifre și un caracter de subliniere). Potrivit - „Cheie” este orice valoare. Cea mai rapidă căutare a obiectelor este potrivirea (mai rapidă decât într-o matrice și un tabel de valori indexat).

Tabelul Valorilor- un obiect foarte convenabil și destul de rapid pentru stocarea și prelucrarea datelor. Coloanele din tabelul de valori pot fi adăugate și eliminate, indiferent de numărul de intrări. În acest caz, datele din rânduri nu se pierd (sau numai datele din celulele corespunzătoare coloanelor șterse sunt șterse). De asemenea, are o metodă „SelectRow ()” care invocă dialogul de selecție a rândurilor. Există indici.

Arborele valorii- un obiect reprezentând date ierarhice. Conține coloane, setul de coloane este același pentru toate înregistrările la toate nivelurile. Eliminarea/adăugarea coloanelor într-un arbore de valori este la fel de ușoară ca și într-un tabel de valori. De asemenea, are o metodă „SelectRow ()”.

Obiecte de interfață și obiecte pentru lucrul cu diverse date TextDocument, SpreadsheetDocument, Browser web, FileReader, FileWriter, ZIPFile Reading, ZIPFileWrite, XMLReader, XMLWriter, HTTPRequest și multe alte obiecte, toate având ajutor încorporat pentru orice. Scopul obiectelor enumerate poate fi văzut din numele lor și toate acestea sunt disponibile imediat în platformă.

Separat, trebuie menționat că există un obiect „Metadate” - cu care puteți studia structura datelor în limbajul de programare, precum și pentru fiecare link sau obiect pentru o carte de referință, document, plan de conturi etc. există o metodă „Metadate ()” - oferind o descriere a acestei cărți de referință / document / plan de conturi / etc. în baza de date (ce detalii, secțiuni tabelare sunt disponibile, lungimea codului/numărului etc.). Este adesea foarte convenabil.

Și mai trebuie făcută o mențiune separată a obiectelor: „Query”, „QueryConstructor”, „QueryBuilder”, „ReportBuilder”, „DataCompositionSchema”. Această familie implementează un set de obiecte pentru lucrul cu puternicul limbaj de interogare 1C.

Limbajul de interogare. Interogările din 1C sunt folosite numai pentru a obține un eșantion de date cu selecție, sortare, grupări convenabile. Ca o primă aproximare, aceasta este instrucțiunea „SELECT” din SQL tradusă în rusă, cu toate acestea, în limbajul de interogare 1C există și o funcționalitate care este absentă în SQL, și anume:

  • Lucrul cu obiecte de configurare 1C în loc de tabele SQL;
  • Lucrul cu link-uri în loc de câmpuri de identificare SQL;
  • Suport de dereferențiere, similar cu modul în care se face în cod;
  • Selecția prin intrare în grup (pentru cărți de referință);
  • Totaluri ierarhice;
  • Tabele temporare și interogări imbricate (SELECT * FROM (SELECT…)));
  • Constructor de interogări - convenabil, bazat pe obiecte, care optimizează automat textul interogării pentru citire rapidă, care poate analiza textul interogării (parsa textul interogării și construiește un model de obiect din acesta);
  • Report Builder este un add-on peste motorul de interogări, care a adăugat funcționalitatea de prezentare automată a rezultatelor, precum și configurarea flexibilă a interogării în sine în modul „Enterprise” (adică de către utilizator). Ca urmare, în platformele standard 1C a apărut un raport universal, în care utilizatorul poate configura ce date și în ce ordine dorește să vadă ce este în rânduri, ce este în coloane, iar raportul în sine generează tabelul de ieșire;
  • ACS (Data Composition System) este următorul model care a încorporat funcționalitatea unui raport universal și l-a completat cu unele funcții pentru procesarea rezultatelor.

Limbaj de programare
În ceea ce privește sintaxa, limbajul 1C este similar cu „Pascalul rus”, dar diferă de „Pascal” prin mai puțină rigoare și prin absența unor construcții:

  • Nu este nevoie să declarați variabile - puteți inițializa direct în textul modulului;
  • Nu există o tipare rigidă a variabilelor. Sistemul are tipuri de valori, dar nu există reguli stricte de tastare pentru variabile. Variabila care a stocat linkul poate stoca deja un număr sau un șir în câteva rânduri de cod;
  • Puteți adăuga variabile cu valori de diferite tipuri, iar tipul rezultatului va fi același cu tipul primei variabile, de exemplu:
    k = „25” +1; // k = „251”, nu 26
  • Variabilele cu valori de diferite tipuri pot fi comparate pentru egalitate sau inegalitate (dar nu mai mult sau mai puțin, acest lucru va provoca o excepție) - desigur, astfel de variabile nu sunt egale;
  • Există funcții și proceduri, este permisă utilizarea recursiunii (cu adâncime limitată a recursiunii);
  • Când specificați o funcție sau o procedură fără parametri - totuși, asigurați-vă că indicați parantezele goale la sfârșit: here_so ();
  • Există module: fiecare carte de referință și document are mai multe dintre ele, în plus, registre, rapoarte și module de procesare și fiecare formular are module, iar ca parte a configurației, este posibil să se creeze module comune;
  • Fără clase, moștenire, încapsulare, polimorfism;
  • Funcția nu poate fi transmisă ca referință, nu există funcții anonime;
  • Nu există nicio buclă inversă (pentru i: = 5 până la 1 do), dar este cu adevărat necesară atunci când ștergeți înregistrări. Ne descurcăm cu o înregistrare ceva mai lungă prin ciclul „Bye”.

Instrumente

  • Platforma 1C are capacitatea de a descărca și încărca o configurație, de a compara o configurație cu o altă configurație și de a încărca parțial modificări;
  • Este posibil să descărcați textele modulelor pentru procesarea în lot și să le încărcați înapoi în configurație;
  • Dacă configurația este pe suport (toate configurațiile de la 1C sunt inițial pe suport), atunci puteți oricând să comparați și să vedeți ce a fost schimbat de dezvoltatorii terți sau de specialiștii locali;
  • De asemenea, este posibilă descărcarea/încărcarea întregii baze de date (împreună cu datele);
  • Pentru lucrul colectiv pe o singură configurație, se folosește depozitul de configurații;
  • Există, de asemenea, o serie de reguli pentru a face modificări la configurațiile standard, există chiar și un document din 1C care descrie metode și standarde pentru modificarea configurațiilor tipice (și orice altele).

Impresie generala
Limbajul 1C combină claritatea textelor limbajului Pascal cu frivolitatea lucrului cu variabilele limbajului BASIC. Îi lipsesc o serie de caracteristici inerente limbajelor de programare moderne, dar este foarte posibil să se facă fără ele. În plus, platforma 1C are un colector de gunoi puternic, adică. nu este nevoie, de exemplu, să ștergeți tabelele după utilizare sau să le ștergeți.

Interfață 1C Enterprise 8.2

1C a acordat o atenție deosebită interfeței programului său. În primul rând, este paleta de culori. E superba! Ferestrele programului sunt recunoscute chiar și de la distanță, în timp ce pentru mulți ani de muncă - nu provoacă sentimente ostile, dimpotrivă - vreau ca toate programele să fie la fel de cool.
În același timp, stilul platformei este foarte strict, fără bibelouri și alte bibelouri. În același timp, există funcții foarte utile, de exemplu, amintirea dimensiunilor ferestrelor (dimensiunile sunt amintite numai atunci când sunt modificate de utilizator și, în același timp, puteți oricând să resetați setările utilizatorului - la dimensiuni și poziții implicite apăsând Alt + Shift + R).
Interfața client Web 8.2 ridică o serie de plângeri, dar platforma 8.3 pare să aducă cu ea o nouă interfață reproiectată - Taxi.

Preturi, cerere si oferta, franciza

Cel mai „gustos” plus al platformei 1C este prețul acesteia. Acest lucru este valabil mai ales acum, în timpul crizei. La urma urmei, 1C este complet produsul nostru intern. Și se vinde pentru cele din lemn de la noi. Astfel de soluții de la un producător străin vor costa mulți bani. Și licențele pentru 1C sunt destul de acceptabile.

În plus, 1C are o politică de licențiere interesantă. Licențele și configurațiile în sine sunt achiziționate o singură dată. În același timp, se cumpără licențe pentru un loc de muncă și pentru un server, dar nu pentru baze de date și nici măcar pentru conexiuni, adică. sub o singură licență, același utilizator poate rula un număr nelimitat de sesiuni 1C, lucrând cu orice număr de baze de date. Același lucru este valabil și pentru configurații: prin achiziționarea unei licențe pentru o configurație, o organizație o poate folosi pentru a crea orice număr de baze de date, în plus, este permis oficial să utilizeze părți din codul și obiectele acestei configurații atunci când își dezvoltă propriile configurații (în timp ce configurațiile proprii pot fi vândute/transferate - prevăzând că pentru a le utiliza, trebuie să cumpărați o configurație de la 1C).

După această achiziție unică, trebuie doar să vă abonați la actualizări și să plătiți o dată pe an pentru a reînnoi abonamentul, așa-numitul. ESTE. Apropo, abonamentul este foarte ieftin, ca două licențe client.

În general, totul pare foarte profitabil.

Al doilea „gustos”, dar deja cu o muscă în unguent, în plus, este prezența unor configurații destul de universale de la 1C însuși și de la parteneri.

Despre versatilitate

Conceptul de „universalitate” a fost definit de un profesor de școală pe CWP folosind exemplul măștilor de gaz: există universale care protejează împotriva multor factori dăunători, dar gradul de protecție este mediu sau sub medie și există și măști de gaz specializate. care protejează împotriva unui impact, dar cu un grad ridicat de protecție. Până acum, nu am întâlnit o definiție mai precisă.
Iar configurațiile de la 1C sunt universale. Practic, nu există sarcini în care să poată fi utilizate pe deplin fără modificări. Cu toate acestea, 1C a reușit să creeze un set universal de instrumente care acoperă nevoile majorității ramurilor afacerilor moderne.


Al treilea plus (și tot cu muscă în unguent) este rețeaua de francizați și centre de formare, atât pentru utilizatori, cât și pentru programatori și administratori începători. Idee bună, dar calitate mediocră a implementării. Cu toate acestea, prevalența și marketingul agresiv este unul dintre motivele popularității larg răspândite a 1C în țara noastră (și acesta este și motivul negativității, invidiei și urii).

O lingură de gudron

După ce am pictat 1C în toate culorile, ar fi nedrept să nu spunem despre deficiențele sale, iar acestea sunt într-adevăr:

Lansări instabile- atât în ​​platformă, cât și în configurații, există un număr mare de erori și erori. Și asta se află în versiunile oficiale. Înainte de lansarea versiunii oficiale, este lansată o „Versiune de familiarizare”. Există, de asemenea, feedback pentru trimiterea descrierilor de erori, astfel încât acestea să poată fi acceptate pentru corectare. Oricum, fie versiunile pentru cunoștință nu sunt foarte populare, fie compania 1C în sine nu are timp să proceseze toate scrisorile până la data lansării, dar este un fapt. De fiecare dată când actualizați platforma sau configurația, s-ar putea să dați peste cele mai neașteptate „surprize”. Compania 1C a fost deja rugată în mod repetat să-și testeze evoluțiile mai amănunțit.

Francizat (în continuare - franciză)... În mod ideal, conform ideii, acestea ar fi trebuit să fie firme cu specialiști calificați care cunosc principiile de bază ale configurațiilor și platformelor. Aceleași firme ar trebui să vândă platforma, configurația și suportul, să „termine” ușor configurațiile universale pentru a satisface cerințele clientului (și uneori - să ajusteze aceste cerințe), încercând să modifice configurația standard la minimum. Pentru a nu complica prea mult actualizările viitoare. În realitate, contrariul este adevărat.

Când licențe noi sunt vândute unui client, francii primesc 50% din valoarea lor (minus impozitul pe venit 13% din acest 50%). În același timp, nu trebuie să produceți nimic singur, trebuie doar să transferați cheile de la 1C către cumpărător.

Atunci când furnizează servicii, francele nu plătesc nimic companiei 1C (cu excepția cotizațiilor de membru), dar trebuie să plătească salariul unui angajat. De asemenea, trebuie să cheltuiți pe impozite către stat - FIU și impozit pe venit.

Se pare că atât 1C, cât și franci sunt profitabile pentru a vinde licențe și neprofitabile pentru a oferi sprijin suplimentar. Totodată, pentru ca un client să cumpere un program, acesta trebuie să fie inițial adaptat cerințelor sale. Și trebuie să plătești pentru muncă. Și aici, pentru a economisi bani, sunt atrași studenții, elevii și nespecialiștii de care poți plăti puțin, iar uneori să nu plătești deloc, nici nu pot fi înregistrați la stat (vor lucra neoficial, deoarece este ceva de plătit). Rezultatul este un număr mare de vânzări cu o calitate foarte scăzută. Îmbunătățirile tind să afecteze mecanisme importante și să complice actualizările viitoare. Dar în stadiul vânzării, nici 1C, nici francizatul nu sunt interesați de acest lucru.

Rețineți că aceasta nu este atât vina oamenilor de afaceri din francize, cât a 1C. Concentrându-se pe vânzări, ea nu s-a ocupat deloc de suport (nu vorbesc acum de școli, ci de faptul că ar trebui să fie profitabil atât pentru francizat, cât și pentru 1C să ofere suport).

Suport tehnic.În înțelegerea 1C, suportul tehnic oferă acces la secțiunea „actualizare” pentru platformă și configurații, precum și la secțiunile de informații care conțin o descriere a unora dintre mecanismele și caracteristicile funcționării 1C. În plus, la abonare, este furnizat un disc cu materialele specificate. Există și un forum (foarte rar în comparație cu popularul). De asemenea, este posibil să trimiteți un e-mail către 1C - dar fără a spera măcar că li se va răspunde (sau robotul va răspunde „Scrisoarea a fost trimisă departamentului de dezvoltare”. În ceea ce privește dezvoltarea, Yandex.Poisk și ajutorul încorporat în configurator oferă mult mai mult suport.

Epilog

Am trecut la 1C în 2008, iar înainte de asta am lucrat într-o companie care dezvolta propriul program de contabilitate (Delphi 5, apoi Delphi 7). În primul rând, m-am familiarizat cu platforma 1C Enterprise 7.7 și am fost uimit de simplitatea dezvoltării rapoartelor în ea. În același timp, era clar că rapoartele sunt generate mult mai mult decât în ​​mecanismele similare pe Delphi, dar contabililor nu le-a păsat în mod deosebit. Așteptați câteva minute în loc de câteva secunde nu este o problemă. Dimpotrivă, îți poți picta unghiile acolo, bea ceai sau discuta despre ultimele știri fără a te opri de la muncă. La urma urmei, majoritatea covârșitoare a contabililor de astăzi sunt femei.
Cu toate acestea, interfața 7.7 era destul de limitată, iar setul de obiecte era destul de rar. Cautam alternative. Am făcut cunoștință cu componentele externe, dar nu au venit în practică, deoarece șeful a decis că este timpul să trecem la 8.1 (da, 8.2 nu era încă acolo), iar în această platformă, ca programator, am găsit tot ce îmi lipsea mai devreme.
În prezent, am autoritate atât în ​​rândul colegilor, cât și în rândul clienților care au venit la mine din franșe. Probabil că nu vor mai lua niciodată legătura cu franci.


În general, sunt destul de mulțumit de munca din platforma 1C Enterprise 8. Este potrivit pentru rezolvarea majorității sarcinilor și sarcinilor contabile folosind o bază de date.

Etichete:

  • limbaje de programare în rusă
  • 1C
  • programare 1C
Adaugă etichete

De regulă, învățarea oricărui limbaj de programare începe cu un exemplu de scriere a primului cel mai simplu program („Bună lume!”). Acest lucru se face pentru a arăta în mod clar cum să lucrați cu construcții sintactice de bază. Nu vom face o excepție de la acest mod general acceptat de prezentare a materialului atunci când explorăm un nou mediu de dezvoltare și, prin urmare, primul nostru articol ar trebui să fie privit în aceeași ordine de idei. În acesta vom analiza în detaliu răspunsurile la următoarele întrebări referitoare la programarea pe platforma 1C: Enterprise 8:

  • Unde și cu ce ajutor pentru a scrie codul programului în limbajul 1C încorporat?
  • Ce sunt modulele software, care sunt regulile de lucru cu ele?
  • Ce este o variabilă, cum se lucrează cu ea, cum și unde să o declare?
  • Ce comparație, alocare și operatori condiționali există și cum îi aplicați?
  • Operațiuni booleene - ce sunt și cum să lucrezi cu ele?
  • De ce sunt buclele și cum să le folosești?

Articolul va fi util tuturor celor care nu sunt încă familiarizați cu dezvoltarea pe platforma 1C: Enterprise 8, dar doresc să învețe cum să programeze pe 1C.

Aplicabilitate

Materialul este relevant pentru platforma 1C: Enterprise 8, ediția 8.2. și 8.3.

Variabile și operatori

În acest articol începem să studiem limbajul încorporat 1C: Enterprise 8. Codul executabil este conținut în modulele de program.

Există un număr mare de module care sunt concepute pentru a gestiona diverse evenimente.

Deci, autentificarea utilizatorului la sistem este procesată într-un singur modul, iar procesarea clicului utilizatorului pe un anumit buton este procesată într-unul complet diferit.

Astfel, fiecare modul descrie comportamentul configurației la un anumit punct. Modulul conține, în primul rând, o secțiune care descrie variabile. Acestea. putem declara unele variabile în modul.

Ulterior pot fi utilizate în procedurile și funcțiile acestui modul. Dacă o variabilă este definită cu cuvântul cheie Export, atunci aceasta va fi disponibilă în afara acestui modul. Un exemplu de linie de declarare a variabilei:

Schimbare Depozit, Divizie, Magazin Export;

După declararea variabilelor, există o secțiune de proceduri și funcții.

În spatele lor se află secțiunea programului principal, care va fi executată în momentul accesării acestui modul.

De exemplu, în secțiunea programului principal, puteți inițializa variabile, adică. atribuiți-le câteva valori inițiale:

Stare = 1;
NewExpression = 2;
Rezultat = 3;

Un modul poate fi gândit ca o combinație de diferiți operatori care efectuează diferite acțiuni de care avem nevoie.

Separatorul de operator este caracterul „;” (punct şi virgulă). Acest personaj este sfârșitul afirmației. Acestea. operatorul poate fi scris astfel:

Rezultat = 100X200
+400
-600;

Nu contează pe câte linii se află operatorul.

Desigur, mai des este mai convenabil și mai clar să plasați un operator pe o singură linie, dar uneori operatorii sunt destul de lungi (numărul de linii poate ajunge în mod rezonabil la câteva zeci).

Punctul și virgulă poate fi omis în declarația finală a unui construct dat, de exemplu, o procedură. Acestea. următorul cod va funcționa:

Procedura CalculateValues ​​​​()

InitialValue = 100;
IntermediateValue = InitialValue / 5;
TotalValue = InitialValue + IntermediateValue

Sfârșitul procedurii

Cu toate acestea, este mai bine să folosiți punct și virgulă în declarația de sfârșit. Este posibil ca în timp, construcția să fie continuată, iar declarația finală să nu mai fie definitivă. Va trebui să monitorizăm în mod specific această situație.

Variabilele sunt concepute pentru a stoca unele valori de orice tip de date. Sunt utilizate pentru stocarea intermediară a informațiilor în vederea procesării.

În aproape orice modul de program care efectuează o anumită acțiune, există diverse variabile. Tastarea variabilelor după valori în Platforma 1C: Enterprise 8 este soft.

De exemplu, o variabilă poate conține o valoare a unui tip de date și câteva rânduri mai târziu - un alt tip:

Creat = Fals;
Creat = Adevărat;
Creat = 100;

În primii doi operatori, valoarea variabilelor este booleană, iar în al treilea, aceasta este schimbată într-o valoare numerică. Acestea. tastarea depinde de valoarea care este atribuită unei variabile date.
Variabilele pot fi descrise în două moduri:

  • mod implicit (mentiunea din partea stângă a operatorului de atribuire descrie variabila dată, nu există o descriere preliminară a variabilei cu cuvântul Var, adică nu există o secțiune specială pentru descrierea variabilelor);
  • descrierea explicită a variabilelor (Variable ControlData;). Declarația explicită a variabilelor este utilizată, de exemplu, dacă este de așteptat transferul ulterior al acestei variabile într-o funcție.

Pentru numele variabilelor se folosește descrierea clasică a identificatorului. Identificatorul este format din litere, cifre și liniuțe de subliniere. Identificatorul trebuie să înceapă fie cu o literă, fie cu un caracter de subliniere.

În acest caz, numele variabilei ar trebui să reflecte semnificația acestei variabile. Numele variabilelor cu o singură literă (cum ar fi A, B, C) sunt exemple proaste. Ele nu reflectă natura variabilelor.

Exemple de nume corecte de variabile: Counter (variabilă crescătoare pentru o buclă), Counterparty. Dacă un nume de variabilă conține mai multe cuvinte, atunci fiecare cuvânt nou, pentru claritate, ar trebui să înceapă cu o literă mare.

Cuvintele rezervate precum Procedură, Funcție, Buclă, Sfârșitul buclei etc. nu pot fi folosite în numele variabilelor. (aceste construcții sunt evidențiate cu roșu în modulul programului).

Cuvintele rezervate sunt operatori de limbă încorporați și există destul de mulți dintre ei. Toate sunt prezentate în Asistent de sintaxă.

Trebuie remarcat faptul că tipurile de date nu sunt cuvinte rezervate (de exemplu, Array, Boolean, True, False). Sistemul va accepta corect astfel de nume de variabile.

Pentru scrierea codului programului, cazul nu contează. De exemplu, cuvântul Procedură poate fi scris atât cu majuscule, cât și cu litere mici. În plus, literele mari și mici pot fi alternate în cadrul unui cuvânt.

Nu contează pentru Platformă. Cu toate acestea, conform regulilor bunei forme, începutul unui cuvânt trebuie scris cu majuscule, toate celelalte litere cu litere mici.

Despre limbaj. Puteți folosi atât rusă, cât și engleză și o combinație de două limbi. Dacă este convenabil pentru cineva, puteți folosi în siguranță engleza pentru a scrie codul programului, precum și pentru a combina rusă și engleză. Acest lucru nu este important pentru Platformă.

Multe nume în engleză sunt greu de reținut. Când utilizați o combinație de două limbi, lizibilitatea codului programului se deteriorează.

Operații booleene

Operatorii de comparație folosesc adesea logica booleană care returnează True sau False.

De exemplu, în operatorul condițional puteți compara: Dacă Eveniment = Vânzare Atunci algoritmul va urma o ramură (adică, dacă valoarea este True), o altă ramură a algoritmului este executată de condiția Fals.

Condițiile pot fi destul de complexe, pot fi combinate și se aplică următorii operatori: AND, OR și NOT. Deci, pentru operatorul AND:

Truth And Truth = Adevăr;
Adevărat și fals = fals;
Lies And Truth = Minciuni;
Lies AND Lies = Minciuni.

Pentru operatorul OR este suficient ca unul dintre operanzi să fie True, atunci valoarea combinației va fi True. Valoarea este False numai atunci când ambii operanzi sunt False.

Operatorul NU inversează pur și simplu valoarea curentă (fals la adevărat, adevărat la fals).

Folosind o combinație a acestor operatori, puteți construi condiții destul de complexe. Când construiți declarații condiționale complexe, luați în considerare precedența.

Operatorul NOT are cea mai mare prioritate, urmat de operatorul AND, urmat de operatorul OR. Ceea ce este între paranteze are cea mai mare prioritate și este executat primul.

De exemplu, să acordăm prioritate (secvența de execuție) pentru operațiile din expresia de mai sus:

NU (Condiția1 SAU Condiția2) ȘI Condiția3 SAU Condiția4
1.Rezultat1 = (Condiție1 SAU Condiție2);
2. Rezultat2 = NU Rezultatul1;
3. Rezultat3 = Rezultat2 ȘI Condiția1;
4. Rezultat = Rezultat3 SAU Condiție4;

Există o regulă de conversie:

NU (Condiția1 SAU Condiția2) = NU Condiția1 ȘI NU Condiția2.

Cu toate acestea, nu trebuie să ne străduim întotdeauna să simplificăm expresia, deoarece adesea, în mod logic, expresia extinsă este mai ușor de citit.

Operator de atribuire

Operatorul de atribuire nu trebuie confundat cu egalitatea, chiar dacă au aceeași ortografie.

Principiul operatorului de atribuire este astfel încât valorii din stânga (variabilei din partea stângă) i se atribuie valoarea care se află în dreapta semnului egal. Să ne uităm la un exemplu:

Variabila1 = Variabila2 = Variabila3;

Variabilei1 i se atribuie o valoare de egalitate din logica booleană, adică. Adevărat dacă Variabila2 = Variabila3 sau Fals în caz contrar.

Când testați poziția unui programator începător, sarcina este adesea folosită: să schimbați valorile a două variabile pe alocuri.

Această problemă este rezolvată folosind operatorul de atribuire și are două soluții.

Soluția # 1 folosind o variabilă temporară:
TemporaryVariable = Variabila1;
Variabila1 = Variabila2;
Variabila2 = Variabila temporara;

Soluția # 2:
Variabila1 = Variabila1 + Variabila2;
Variabila2 = Variabila1 - Variabila2;
Variabila1 = Variabila1 - Variabila2;

Operator condiționat

Există un astfel de operator Dacă, după care este necesar să se descrie o anumită condiție (condiția în sine poate fi destul de mare). Condiția este urmată de cuvântul Apoi și de operatorii executați.

Acesta poate fi urmat de cuvântul cheie Else și de o serie de alți operatori. Dacă există mai multe condiții diferite, puteți utiliza o serie de cuvinte cheie Altfel, dacă(vezi exemplul de mai jos). Întreaga construcție trebuie să se încheie cu un cuvânt cheie Încheiați dacă urmată de punct și virgulă.

Pe lângă condițiile simple și multiple, există o formă prescurtată a operatorului condiționat:? (Condiție, Expresie1, Expresie2);

Dacă condiția este adevărată, atunci Expresia1, in caz contrar - Expresia 2... Exemplu de cod: DearProduct =? (Product.Price> 100000, True, False);

În practică, în loc de comparare înregistrări cu valoare Adevărat (Minciună) tip:

Dacă variabilă = adevărat, atunci
și
Dacă variabilă = fals, atunci

înregistrările echivalente sunt de fapt utilizate:

Dacă variabil, atunci
și
Dacă NU este variabil, atunci

Operatori ciclici

Pentru orice tip de ciclu, este necesar să indicați în mod explicit sfârșitul acestui ciclu folosind cuvântul cheie Sfârșitul ciclului... Există mai multe tipuri de bucle.

Ciclu peste tejghea- un ciclu cu un număr fix de repetări. Condiția de ieșire din ciclu este depășirea valorii limită. Un exemplu de utilizare pentru calcularea valorii lui A!

A = 5;
Factorial = 1;
Pentru Counter = 1 By A Cycle
Factorial = Factorial * Contor;
Sfârșitul ciclului;

Buclă condiționată- se execută atâta timp cât condiția ciclului dat este adevărată. Exemplu:

Suma rămasă = 1000;
Pret produs suplimentar = 243;
Cantitate = 0;
În timp ce RemainderSum> 0 Cycle
Cantitate = Cantitate + 1;
Sumă Sold = Sumă Sold - Cantitate * Preț suplimentar pentru produs;
Prețul produsului suplimentar = Prețul produsului suplimentar * 0,8;
Sfârșitul ciclului
Cantitate = Cantitate-1;

Acest ciclu calculează câte unități dintr-un produs pot fi cumpărate pentru o anumită sumă (1000 de ruble) dacă, după cumpărarea fiecărei unități a unui produs, prețul său anterior este înmulțit cu un factor de 0,8. Prețul inițial al produsului este de 243 de ruble.

Un exemplu de eroare la utilizarea acestui tip de buclă pentru începători este o buclă eternă, când inițial condiția buclei este adevărată, dar în interiorul buclei în sine nu se schimbă în niciun fel.

Buclă prin colecții (un alt nume pentru fiecare).

Platforma are un număr destul de mare de colecții (acestea sunt containere care conțin elemente de un anumit tip).

Puteți traversa elementele unei colecții folosind un tip special de buclă.

De exemplu, există o matrice de numere, trebuie să calculați suma tuturor elementelor matricei:

Suma = 0;
Pentru fiecare articol din bucla Array
Suma = Suma + Element;
Sfârșitul ciclului;

Există operatori speciali pentru bucle: Continuași Avorta.

Dacă la un moment dat în ciclu, execuția altor operatori ai acestei iterații devine lipsită de sens, atunci pentru a reveni la începutul ciclului și a organiza următoarea sa iterație, operatorul Continua.

Operator Avorta vă permite să opriți execuția buclei chiar dacă condiția buclei este adevărată.

Aceasta încheie prima noastră cunoștință cu dezvoltarea limbajului intern 1C.

Ce zici de Hello World? Nu am scris-o încă, nu-i așa? Da, dar nimic nu te împiedică să o faci singur, pentru că cunoștințele sunt DEJA suficiente. Ei bine, dacă nu merge, atunci poți să te uiți aici.

În acest articol, vom lua în considerare o astfel de construcție a limbajului de programare 1C ca Cicluri.

Există trei moduri de a organiza buclele.

  1. Bucle folosind expresia booleană (execută atâta timp cât expresia booleană este adevărată)
  2. Buclă prin colecții

Să aruncăm o privire la fiecare dintre aceste metode.

Bucle folosind o variabilă - contor de bucle

Sintaxă:

Pentru< Переменная> = < НачальноеЗначение>De< КонечноеЗначение>Ciclu Sfârșit de ciclu;

Cu această metodă de organizare a buclelor, variabilei contorului i se atribuie o valoare inițială și se execută până când valoarea variabilei contorului este mai mică sau egală cu valoarea finală specificată.

Cu fiecare iterație, contorul este incrementat cu unu. Iată cel mai elementar exemplu al unei astfel de bucle:

Pentru Counter = 0 By 1000 Sfârșitul ciclului de ciclu;

Spre deosebire de multe alte limbaje de programare, 1C nu oferă posibilitatea de a specifica un pas într-o buclă. Dacă este necesar, acest lucru se poate face prin adăugarea valorii dorite la contorul din interiorul buclei.

Pentru Counter = 0 By 1000 Cycle Counter = Counter + 10; Sfârșitul ciclului;

Bucle folosind o expresie booleană

Sintaxă:

Până< ЛогическоеВыражение>Ciclu Sfârșit de ciclu;

Refuz = Fals; GeneratorCh = nou generator de numere aleatorii (1); Până la NU Eșec Ciclu RandomNumber = RTC Generator. RandomNumber (0, 10); Dacă RandomNumber> 5 Then Failure = True; EndIf; Sfârșitul ciclului;

Adică, bucla va rula până când este generat un număr aleatoriu mai mare de cinci.

Buclă prin colecții

În limbajul de programare 1C, există un astfel de concept ca o colecție. Este o colecție de elemente conținute într-un obiect.

Ne putem referi la o colecție astfel de obiecte ca: o matrice, un tabel de valori, o selecție dintr-un rezultat de interogare, metadate etc. Acest concept este destul de arbitrar, dar se găsește în asistentul de sintaxă la fiecare pas. O sarcină foarte comună este atunci când trebuie să iterăm secvenţial peste toate elementele unei colecţii pentru a efectua o anumită acţiune asupra lor. Pentru aceasta, există o construcție sintactică:

Pentru toată lumea< ЭлементКоллекции>Din< Коллекция>Ciclu Sfârșit de ciclu;

Aici <ЭлементКоллекции> Este o variabilă în care elementele din colecție sunt plasate secvenţial. Și în buclă, este tratat în consecință.
Ca exemplu, voi oferi o buclă printre rândurile unui tabel de valori. Să fie chemată Produse de masă si arata cam asa:

Să ocolim acest tabel în buclă și pentru fiecare linie vom afișa un mesaj cu numele și prețul produsului:

Pentru fiecare TableRow din TableProducts Loop Name = TableRow. Nume; Preț = TableRow. Preț; Mesaj = Mesaj nou pentru utilizator; Mesaj. Text = "Numele produsului: "

De fapt, același lucru se poate face folosind prima opțiune, adică într-o buclă folosind un contor:

Număr de rânduri = articole din tabel. Cantitate() ; Pentru contor = 0 după numărul de linii - 1 ciclu TableRow = TableProducts [Counter]; Nume = TableRow. Nume; Preț = TableRow. Preț; Mesaj = Mesaj nou pentru utilizator; Mesaj. Text = "Numele produsului: "+ Nume + "; Preț:" + Preț; Mesaj. A raporta() ; Sfârșitul ciclului;

Dar, după cum puteți vedea, este mult mai ușor și mai convenabil să utilizați traversarea elementelor de colecție.

Operatori auxiliari

Există adesea o situație în care, în funcție de cineva, este necesar să se întrerupă execuția buclei sau să se treacă de la următoarea iterație.

Întreruperea se realizează cu ajutorul operatorului Avorta... În acest caz, execuția buclei este întreruptă și controlul este transferat constructului de limbaj care urmează buclei. Dacă trebuie să treceți la următoarea iterație, trebuie să utilizați operatorul Continua... Apoi controlul este transferat la începutul ciclului. Să ilustrăm cu un mic exemplu:

Pentru Counter = 0 By 100 Cycle Dacă Counter = 0 Then Continue; EndIf; If Counter = 4 Then Abort; EndIf; Rezultat = 1 / Contor; Mesaj = Mesaj nou pentru utilizator; Mesaj. Text = String (Rezultat); Mesaj. A raporta() ; Sfârșitul ciclului;

Sărim peste zero, pentru că Nu poți împărți la zero. Și în total, bucla va fi executată de cinci ori, pentru valorile variabilei Tejghea de la 0 la 4

Limbajul de programare 1C este un sistem de semne formal conceput pentru scrierea de programe de calculator. Un limbaj de programare definește un set de reguli lexicale, sintactice și semantice care determină aspectul programului și acțiunile pe care executantul (calculatorul) le va efectua sub controlul său.

Platforma 1C Enterprise 8 are funcționalitate completă pentru dezvoltarea propriilor soluții pentru dezvoltator. Instrumentul principal de dezvoltare este limbajul de programare 1C 8.3 încorporat.

Crearea de noi clase în mod programatic în limbajul 1C 8.3 este interzisă. Deoarece platforma 1C Enterprise este specializată pentru sarcini de contabilitate, componența claselor este predeterminată în prealabil:

  • etc.

Pe baza claselor tipice, puteți crea orice număr de subclase care au propriile seturi. Cu ajutorul modulelor de manager, puteți extinde ușor funcționalitatea subclasei.

Este limbajul de programare 1C complicat?

Întrebarea este destul de controversată și relativă. Când este privit în relație cu alte limbi, poate părea puțin mai simplu. Cu toate acestea, pe lângă programarea în sine, va trebui să studiați domeniul - contabilitate, producție, contabilitate fiscală etc., ceea ce face ca limbajul de programare 1C în ansamblu să nu fie atât de simplu pe cât ar părea la prima vedere.

Dacă ați avut o experiență solidă în alte limbaje de programare specifice domeniului înainte de a vă familiariza cu 1C, nu vă va fi greu să înțelegeți complexitățile lui 8.2, principalul lucru este dorința. Tot ce aveți nevoie este să găsiți un tutorial bun despre limbajul de programare 1C.

Sintaxa rusă a limbii 1C

Top articole similare