Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Këshilla
  • Gjuhë programimi e integruar 1c për ndërmarrje. Lakohet duke përdorur një shprehje boolean

Gjuhë programimi e integruar 1c për ndërmarrje. Lakohet duke përdorur një shprehje boolean

Edhe nëse keni studiuar më parë gjuhë të tjera programimi, për shembull, C ++, PHP, Java, ia vlen të mbani mend se 1C, megjithëse në shumë aspekte, ka ende shumë ndryshime thelbësore.

Gjëja më e rëndësishme në 1C është se nuk keni nevojë të shpikni llojet tuaja të objekteve. Të gjithë ata janë tashmë në konfigurim.

Instaloni platformën teknologjike 1C në kompjuterin tuaj dhe hapni një bazë të re ose ekzistuese në konfigurues. Si fillim, mund ta përdorni absolutisht për mësimdhënien e programimit.

Në anën e majtë të dritares, do të shihni një pemë të objekteve të konfigurimit. Këto përfshijnë dokumente, drejtori, regjistra, procese biznesi dhe më shumë.

Të dhënat ruhen gjithashtu në DBMS, por zhvilluesi zakonisht nuk punon drejtpërdrejt me to. Me ndihmën e platformës teknologjike, programuesi tashmë i referohet objekteve të konfigurimit ose infobazës.

Në 1C, si në shumë gjuhë të tjera programimi, pyetjet përdoren shumë shpesh. të ngjashme me gjuhën T-SQL. Kërkesat mund të shkruhen në anglisht dhe rusisht, ndër të tjera, si pjesa tjetër e kodit.

Gjithçka duket të jetë e thjeshtë, por njohuria e një gjuhe programimi shpesh nuk mjafton për të punuar "në terren". Fakti është se në shumicën e organizatave që përdorin 1C, janë instaluar konfigurime standarde dhe ju duhet t'i njihni ato.

Në planin e punës për programuesit 1C, ekzistojnë dy degë kryesore: ekskluzivitet ose punojnë "për vete" dhe punojnë si programues me kohë të plotë të departamentit të IT të çdo organizate. Kjo zgjedhje varet vetëm nga preferencat tuaja.

Kur punoni për një ekskluzivitet, punoni në mënyrë të pavarur ose drejtoni biznesin tuaj, pagesa do të jetë pjesë e punës. Mund të ketë shumë punë dhe duhet të jepni më të mirën. Nuk ka kufi mbi pagat, dhe ju mund të bëni një shumë mbresëlënëse parash.

Nëse vendosni të punoni në mënyrë të pavarur ose të hapni biznesin tuaj, nuk do t'ju duhet t'i "ndani" fitimet tuaja me askënd (përveç shtetit dhe platformës së pavarur, natyrisht). Por në këtë rast, do të jetë e nevojshme të kërkoni vetë klientët.

Nëse megjithatë vendosni të merrni një punë në organizatë si programues me kohë të plotë, atëherë nuk do të vareni shumë nga sasia e punës së kryer. Në këtë rast ka njëfarë stabiliteti, por edhe kufiri i pagave është i kufizuar.

Sigurisht, këto dy metoda mund të kombinohen, duke punuar si programues me kohë të plotë gjatë ditës dhe duke punuar në mbrëmje në mënyrë të pavarur.

Ajo që është e mirë për programuesit 1C është se ju mund të mos keni një arsim teknik (për shembull, ju jeni një ekonomist, kontabilist, etj.). Për të konfirmuar njohuritë tuaja përpara klientëve ose një punëdhënësi, mund të siguroni certifikatat tuaja 1C.

Certifikatat janë të llojeve të ndryshme, si nga platforma (për programuesit) ashtu edhe nga zgjidhjet standarde. Ju mund t'i merrni ato në 1C duke kaluar një provim në formën e një testi ose detyrë praktike.

Libra në 1C

Është më mirë të studioni 1C nga librat që janë botuar nga 1C. Nga burimi, si të thuash. Disa prej tyre vijnë me ofrimin e konfigurimeve tipike. Ju gjithashtu mund të blini libra individualë.

Libri "1C: Programimi për fillestarët" është menduar për njerëzit larg programimit, por që duan të mësojnë se si të krijojnë zgjidhjet e tyre në 1C 8.3 nga e para.

"Përshëndetje, 1C" tregon mundësitë më të thjeshta, themelore të zhvillimit të zgjidhjeve të aplikuara në sistemin 1C: Enterprise 8.

101 Këshilla përshkruan mënyra të ndryshme për të përmbushur të njëjtat detyra.

Një udhëzues praktik për zhvilluesin 1C Enterprise 8.3 është një udhëzues shumë i detajuar që përshkruan teknikat e zhvillimit me shembuj të thjeshtë dhe të kuptueshëm. Ky libër është një nga më të mirët për të mësuar programimin 1C.

Ky tutorial përshkruan një gjuhë pyetjesh nga e para për ata që nuk janë as të njohur me SQL.

Nëse shkruani në SI
Jini të paktën tre herë më të dobët
Ata thonë për këtë:
"Ai është një programues i lezetshëm!"
(Këngët e Fidoshnye - "Çfarë është Suxxx dhe çfarë është Rulezzz")

Parathënie

Arsyeja e shkrimit të këtij artikulli ishte qëndrimi negativ i komunitetit profesional ndaj kësaj platforme dhe programuesve.

Si një programues që zgjodhi 1C, mendoj se ky mendim është i pabazuar. Platforma 1C është larg idealit, por, për mendimin tim, është më i miri, dhe më e rëndësishmja, një produkt vendas!

Dhe aq më tepër - është e pamjaftueshme të gjykosh aftësitë e një programuesi nga gjuha në të cilën ai shkruan.

Në këtë artikull do të përshkruaj përfitimet që kam gjetur për veten time në program. Artikulli do të rezultojë të jetë pothuajse një reklamë, kështu që menjëherë mohoni përgjegjësinë:

  • Unë nuk kam asnjë lidhje të drejtpërdrejtë me 1C;
  • Ky artikull nuk është i personalizuar dhe është shkruar vetëm mbi baza vullnetare;
  • Në disa raste, shprehet një mendim personal, i cili mund të mos përkojë ...;
  • I gjithë artikulli, me përjashtim të prologut, është i autorit, çdo rastësi është një aksident;
  • Ne do të flasim për platformën 1C Enterprise 8.2 (aktualisht versioni 8.3 është i rëndësishëm, por unë nuk e kam studiuar ende - ka shumë punë në 1C 8.2). Sidoqoftë, shumica e asaj që u tha vlen si për platformën 8.3 ashtu edhe për versionet e mëparshme, dhe disa prej tyre zbatohen edhe për versionin 7.7.
Pra, le të fillojmë.

Për çfarë po flasim?

Platforma 1C Enterprise 8 është:
  • Punon në dy versione - skedar dhe server (me tre lidhje) - secila ka avantazhet dhe disavantazhet e veta;
  • Një sistem i pavarur kontabiliteti që është i lehtë për t'u instaluar dhe konfiguruar;
  • Ekosistem i fuqishëm për programues me të gjitha objektet dhe mjetet e nevojshme;
  • Ndërfaqe e bukur ergonomike;
  • Një zgjidhje biznesi relativisht e lirë;
  • Rrjeti i franshizës, trajnimi fillestar;
  • Një bazë e fuqishme zhvillimesh dhe njohurish të grumbulluara ndër vite;
  • Ndonjëherë një platformë problematike për administratorët e sistemit;
  • Jo ekzekutimi më i shpejtë i algoritmeve (megjithëse jo më i ngadalti) është një haraç për përmbajtjen e informacionit (në rast gabimesh, tregohet numri i linjës dhe përmbajtja e tij);
  • Gjuha e programimit nuk ka klasa (trashëgimi, kapsulimi, polimorfizmi), nuk ka funksione anonime dhe veçori të tjera moderne. Por për zgjidhjen e shumicës së problemeve, kjo nuk është as e nevojshme!
Për organizimin e kontabilitetit - një platformë nuk mjafton. Platforma është një lloj "motori", një lidhje e ndërmjetme midis programit dhe bazës së të dhënave. Programet për këtë "motor" quhen konfigurime. Konfigurimi përshkruan strukturën e bazës së të dhënave në formën e objekteve, tekstet e procedurave të ruajtura në module të veçanta (ka shumë module, ato janë si në secilin objekt ashtu edhe në sistemin në tërësi, dhe ka edhe module të zakonshme). Platforma ofron një nivel abstraksioni në të cilin nuk kërkohet qasja e drejtpërdrejtë në bazën e të dhënave, dhe gjithashtu ju lejon të abstragoni nga sistemi operativ dhe lloji i bazës së të dhënave.

Bazat e të dhënave të skedarëve dhe serverëve

Platforma përbëhet nga disa pjesë dhe mund të funksionojë në një version skedari ose serveri.

Në versionin e skedarit, e gjithë baza e të dhënave përmbahet në një skedar (me shtrirjen "1cd") - platforma është e instaluar në secilin kompjuter dhe lexon / shkruan drejtpërdrejt në bazën e të dhënave.

Përparësitë e opsionit të skedarit janë kostoja e ulët dhe lehtësia e vendosjes.

Kundër - struktura e skedarit "1cd" është e mbyllur, nuk ka asnjë sistem të vetëm që ndërvepron me bazën e të dhënave. Si rezultat, është e vështirë të përdoret me një numër të madh përdoruesish (e provuar për mbi 20 përdorues - mund të punoni). Për më tepër, përditësimet dinamike dështojnë kur madhësia e bazës së të dhënave është afërsisht 15 GB (ose më shumë). Zgjidhja e dështimeve të tilla është një detyrë e vështirë dhe programi i riparimit të bazës së të dhënave nuk riparon gjithmonë në mënyrë efektive, dhe ndonjëherë edhe dëmton bazën e të dhënave.

Ekziston një zgjidhje - kjo është, para së gjithash, vendosja e një rezervimi ditor të bazës së të dhënave. Për më tepër, zejtarët jo vetëm që publikojnë formatin e skedarit 1cd, por kanë zhvilluar gjithashtu mjete për të punuar me skedarë të tillë dhe një numër metodash për të zgjidhur probleme të ngjashme.

Në versionin e serverit, platforma për ruajtjen e bazës së të dhënave përdor një server SQL (zakonisht ky është MS SQL, por duke filluar nga 8.2.14 - mund të përdorni disa të tjerë, për shembull, Firebird PostgreSQL, IBM DB2, Oracle Database) dhe vetë platforma përdor një arkitekturë me tre nivele:

Një pjesë e kodit ekzekutohet në klient, disa në server. Në këtë rast, vetëm serveri ndërvepron me bazën e të dhënave. Në të njëjtën kohë, duke filluar nga versioni 8.2, përveç modalitetit standard të funksionimit, i cili u quajt modaliteti "klient i trashë", kishte dy mënyra të reja funksionimi - "klient i hollë" dhe "klient në internet"; u shfaqën gjithashtu "forma të menaxhuara", pamja e të cilave është ndërtuar në formën e një peme abstrakte elementesh. Programimi për format e menaxhuara dhe një arkitekturë me tre nivele është më i vështirë, por ju lejon të transferoni pothuajse të gjithë ngarkesën në server (d.m.th. mund të blini një server të fuqishëm dhe njëqind nga kompjuterët më të lirë të zyrës).

Përparësitë e platformës: "tre-lidhje" - shpërndarja e ngarkesës, hapja e bazës së të dhënave (zyrtarisht, kompania 1C refuzon përgjegjësinë për çdo korrupsion të të dhënave nëse ndryshimet janë bërë në bazën e të dhënave SQL përveç platformës ose serverit të tyre, por kjo ndalon pak njerëz) asnjë kufizim.

Kundër - çmimi: do të duhet të blini veçmas licencat e klientit për secilin kompjuter klient, veçmas - një licencë për serverin 1C, një licencë të veçantë për serverin SQL, nëse nuk përdorni atë falas. Gjithashtu, ndonjëherë ka vështirësi në funksionimin e bazës së të dhënave. Ato zgjidhen shumë më shpejt për shkak të disponueshmërisë së të dhënave dhe pranisë së mjeteve të jashtme për të punuar me bazën e të dhënave. Përveç kësaj, në këtë rast, duhet të bëni një kopje rezervë të bazës së të dhënave.

Një avantazh i përbashkët është shkathtësia e kodit të konfigurimit: me disa përjashtime, konfigurimi i zhvilluar për bazën e të dhënave të skedarëve do të funksionojë në bazën e të dhënave të serverit dhe anasjelltas. Një shembull i një përjashtimi është transferimi i një vlere të ndryshueshme në server ose nga serveri te klienti (në versionin e skedarit kjo nuk do të shkaktojë përjashtime, por në versionin klient-server është i ndaluar).

Një tjetër plus: platforma është instaluar shumë thjesht, diçka e tillë: "Next-Next-Next-Ok", nuk kërkohet akordim dhe instalim i asnjë komponenti.

Për versionin e serverit, ka disa cilësime të tjera, por gjithçka është bërë në dialogun e instalimit dhe nuk kërkon të përshkruani asgjë në skedarë të veçantë. Instalimi i serverit SQL mund të jetë disi i vështirë, pasi në këtë rast, ka shumë më tepër cilësime (dhe për ta rregulluar atë, duhet të studioni udhëzime shtesë). Por kjo nuk vlen për problemet e platformës 1C. Për më tepër, nëse instaloni, për shembull, një server MS SQL me të gjitha cilësimet e paracaktuara, atëherë 1C do të jetë në gjendje të punojë me të.

Është më shumë se kontabilitet

Kur bëhet fjalë për platformën 1C, ajo paraqitet, para së gjithash, si një program për kontabilitet. Në të vërtetë, kjo është zona më e njohur e përdorimit të platformës 1C. Por 1C nuk jeton vetëm nga kontabiliteti!
Ata që e njohin platformën thonë se është një sistem kontabiliteti (automatizimi i kontabilitetit). Kjo është më afër së vërtetës - ka shumë konfigurime, si nga 1C ashtu edhe nga zhvilluesit e palëve të treta. Disa janë të lidhura vetëm në mënyrë indirekte me kontabilitetin, disa nuk kanë lidhje fare.

Në përgjithësi, është më e saktë të përfaqësohet platforma 1C si një guaskë për modelimin e objekteve të bazës së të dhënave, ndërfaqes dhe programimit në gjuhën 1C. Kufizimi i vetëm është që për secilin konfigurim krijohet baza e të dhënave të veta, dhe vetëm një (megjithatë, është e mundur të lidhen gjithashtu burime të jashtme të të dhënave si pjesë e konfigurimit, d.m.th. baza të tjera të të dhënave).

Ekosistem për programuesit

Le të shqyrtojmë tani gjuhën 1C dhe platformën nga këndvështrimi i zhvilluesit:
Modeli i objektit të bazës së të dhënave. Së pari, ne nuk punojmë drejtpërdrejt me bazat e të dhënave. Nuk është e nevojshme. Për lehtësinë tonë, të gjitha të dhënat paraqiten në formën e objekteve të ndërlidhura (drejtoritë, dokumentet, regjistrat e informacionit, regjistrat e grumbullimit, ...), dhe platforma automatikisht i nxjerr këto të dhëna nga baza e të dhënave.
Për shembull, me kusht që ndryshorja "Elementi i Nomenklaturës" të përmbajë një lidhje me një artikull në katalogun e Nomenklaturës, katalogu i Nomenklaturës ka variablin PrimarySupplier, të llojit Catalog.Contractors, dhe katalogu i Kontraktorëve ka veçorinë Emri i plotë, më pas kodin:

ItemNomenclature.PrimarySupplier.Full
... do të çojë në faktin se platforma 1C, duke përdorur mekanizma të brendshëm, gjen një hyrje në tabelë që korrespondon me drejtorinë "Kontraktorët" nga identifikuesi nga fusha "Furnizuesi kryesor" i artikullit dhe kthen vlerën e fushë që korrespondon me fushën "Emri i plotë" në modelin e objektit të drejtorisë "Contractors".

Mund të ketë shumë mosreferenca të tilla - sistemi do të përballojë. Paralajmërimi i vetëm është se sistemi nuk di se si të optimizojë mosreferencimin, kështu që ju duhet të përpiqeni t'i hiqni ato nga të gjitha unazat e mundshme.

Përveç objekteve që përshkruajnë të dhënat, ekziston një numër i madh i objekteve të sistemit - për një shumëllojshmëri të gjerë funksionesh. Do të veçoj disa prej tyre:

Dyqane me vlera
Array- një objekt që ruan një grup të dhënash, në kontrast me paraqitjen klasike të vargjeve. Mund të jenë të dhëna të llojeve të ndryshme (numër, varg, referencë, objekt tjetër). Ka funksionalitet minimal dhe përdoret kryesisht si një kontejner i përkohshëm për transferimin e vlerave midis magazinave të tjera.

Lista e vlerave- një objekt, kryesisht për të punuar me ndërfaqen e përdoruesit. Përveç të dhënave, për çdo element mund të përmbajë edhe një pamje, një shenjë flamuri dhe një fotografi (piktogram). Ai gjithashtu ka metodat "SelectElement ()" dhe "MarkElements ()" - kur thirret, dialogu i ndërfaqes i shfaqet përdoruesit (i cili është i përshtatshëm - nuk ka nevojë të krijohet ky dialog në konfigurim).

Struktura dhe Konformiteti- ruajtja e vlerave të çiftuara "Çelësi dhe vlera". Në strukturën "Key", ky është një varg që i bindet rregullave për emërtimin e variablave në 1C (pa hapësira, mos filloni me një shifër, përbëhet vetëm nga shkronja, numra dhe një nënvizim). Sipas - "Çelësi" është çdo vlerë. Kërkimi më i shpejtë i objekteve është përputhja (më shpejt se në një grup dhe një tabelë vlerash të indeksuar).

Tabela e vlerave- një objekt shumë i përshtatshëm dhe mjaft i shpejtë për ruajtjen dhe përpunimin e të dhënave. Kolonat në tabelën e vlerave mund të shtohen dhe hiqen, pavarësisht nga numri i hyrjeve. Në këtë rast, të dhënat në rreshta nuk humbasin (ose fshihen vetëm të dhënat nga qelizat që korrespondojnë me kolonat e fshira). Gjithashtu, ai ka një metodë "SelectRow ()" që thërret dialogun e përzgjedhjes së rreshtit. Ka indekse.

Pema e vlerës- një objekt që përfaqëson të dhëna hierarkike. Përmban kolona, ​​grupi i kolonave është i njëjtë për të gjitha regjistrimet në të gjitha nivelet. Heqja/shtimi i kolonave në një pemë vlerash është po aq e lehtë sa është në një tabelë vlerash. Gjithashtu, ai ka një metodë "SelectRow ()".

Ndërfaqja e objekteve dhe objekteve për të punuar me të dhëna të ndryshme TextDocument, SpreadsheetDocument, Shfletuesi i Uebit, FileReader, FileWriter, ZIPFile Reading, ZIPFileWrite, XMLReader, XMLWriter, HTTPRequest dhe shumë objekte të tjera, që të gjithë kanë ndihmë të integruar për gjithçka. Qëllimi i objekteve të listuara shihet nga emrat e tyre dhe e gjithë kjo është menjëherë e disponueshme në platformë.

Më vete, duhet të theksohet se ekziston një objekt "Metadata" - me të cilin mund të studioni strukturën e të dhënave në gjuhën e programimit, si dhe për çdo lidhje ose objekt për një libër referimi, dokument, plan llogarish, etj. ekziston një metodë "Metadata ()" - duke siguruar një përshkrim të këtij libri referues / dokumentit / skemës së llogarive / etj. në bazën e të dhënave (çfarë detajesh, seksione tabelare janë të disponueshme, gjatësia e kodit / numrit, etj.). Shpesh është shumë i përshtatshëm.

Dhe një përmendje më vete duhet bërë për objektet: "Query", "QueryConstructor", "QueryBuilder", "Raport Builder", "DataComposition Scheme". Kjo familje zbaton një grup objektesh për të punuar me gjuhën e fuqishme të pyetjeve 1C.

Gjuha e pyetjes. Pyetjet në 1C përdoren vetëm për të marrë një mostër të dhënash me përzgjedhje, renditje, grupime të përshtatshme. Si përafrim i parë, kjo është deklarata "SELECT" nga SQL e përkthyer në Rusisht, megjithatë, në gjuhën e pyetjes 1C ekziston edhe funksionaliteti që mungon në SQL, përkatësisht:

  • Puna me objekte të konfigurimit 1C, në vend të tabelave SQL;
  • Puna me lidhje në vend të fushave identifikuese SQL;
  • Mbështetja e dereferencimit, e ngjashme me mënyrën se si bëhet në kod;
  • Përzgjedhja me hyrje në grup (për libra referencë);
  • Totalet hierarkike;
  • Tabelat e përkohshme dhe pyetjet e mbivendosura (SELECT * FROM (SELECT…)));
  • Konstruktor i pyetjes - i përshtatshëm, i bazuar në objekte, duke optimizuar automatikisht tekstin e pyetjes për lexim të shpejtë, i cili mund të analizojë tekstin e pyetjes (të analizojë tekstin e pyetjes dhe të ndërtojë një model objekti prej tij);
  • Report Builder është një shtesë mbi motorin e pyetjeve, e cila ka shtuar funksionalitetin e paraqitjes automatike të rezultateve, si dhe konfigurimin fleksibël të vetë pyetjes në modalitetin "Enterprise" (dmth nga përdoruesi). Si rezultat, në platformat standarde 1C u shfaq një raport universal, në të cilin përdoruesi mund të konfigurojë se çfarë të dhënash dhe në çfarë rendi dëshiron të shohë se çfarë është në rreshta, çfarë është në kolona dhe vetë raporti gjeneron tabelën e daljes;
  • ACS (Data Composition System) është modeli i radhës që ka inkorporuar funksionalitetin e një raporti universal dhe e ka plotësuar atë me disa funksione për përpunimin e rezultateve.

Gjuhë programimi
Për sa i përket sintaksës, gjuha 1C është e ngjashme me "Russian Pascal", por ndryshon nga "Pascal" në më pak ashpërsi dhe mungesë të disa ndërtimeve:

  • Nuk ka nevojë të deklaroni variabla - mund të inicializoni drejtpërdrejt në tekstin e modulit;
  • Nuk ka shtypje të ngurtë të variablave. Sistemi ka lloje vlerash, por nuk ka rregulla strikte të shtypjes për variablat. Variabla që ka ruajtur lidhjen tashmë mund të ruajë një numër ose një varg në disa rreshta kodi;
  • Ju mund të shtoni variabla me vlera të llojeve të ndryshme, dhe lloji i rezultatit do të jetë i njëjtë me llojin e ndryshores së parë, për shembull:
    k = “25” +1; // k = "251", jo 26
  • Variablat me vlera të llojeve të ndryshme mund të krahasohen për barazi ose pabarazi (por jo më shumë ose më pak, kjo do të shkaktojë një përjashtim) - natyrisht, variabla të tillë nuk janë të barabartë;
  • Ka funksione dhe procedura, lejohet përdorimi i rekursionit (me thellësi të kufizuar të rekursionit);
  • Kur specifikoni një funksion ose procedurë pa parametra - gjithsesi, sigurohuni që të tregoni kllapa boshe në fund: here_so ();
  • Ka module: çdo libër referencë dhe dokument ka disa prej tyre, përveç kësaj, regjistrat, raportet dhe modulet e përpunimit dhe secili formular ka module, dhe si pjesë e konfigurimit, është e mundur të krijohen module të përbashkëta;
  • Nuk ka klasa, trashëgimi, kapsulim, polimorfizëm;
  • Funksioni nuk mund të kalohet si referencë, nuk ka funksione anonime;
  • Nuk ka asnjë lak të kundërt (për i: = 5 deri në 1 do), por është vërtet i nevojshëm kur fshihen të dhënat. Ne kalojmë me një regjistrim pak më të gjatë përmes ciklit "Bye".

Mjetet

  • Platforma 1C ka aftësinë të shkarkojë dhe ngarkojë një konfigurim, të krahasojë një konfigurim me një konfigurim tjetër dhe të ngarkojë pjesërisht ndryshime;
  • Është e mundur të shkarkohen tekstet e moduleve për përpunim grupor dhe t'i ngarkojnë ato përsëri në konfigurim;
  • Nëse konfigurimi është në mbështetje (të gjitha konfigurimet nga 1C fillimisht janë në mbështetje), atëherë gjithmonë mund të krahasoni dhe të shihni se çfarë ka ndryshuar nga zhvilluesit e palëve të treta ose specialistët lokalë;
  • Është gjithashtu e mundur të shkarkohet / ngarkohet e gjithë databaza (së bashku me të dhënat);
  • Për punë kolektive në një konfigurim, përdoret dyqani i konfigurimit;
  • Ekzistojnë gjithashtu një numër rregullash për të bërë ndryshime në konfigurimet standarde, madje ekziston një dokument nga 1C që përshkruan metodat dhe standardet për ndryshimin e konfigurimeve tipike (dhe çdo tjetër).

Përshtypje e përgjithshme
Gjuha 1C kombinon qartësinë e teksteve të gjuhës Pascal me mendjelehtësinë e punës me variablat e gjuhës BASIC. I mungojnë një sërë veçorish të natyrshme në gjuhët moderne të programimit, por është mjaft e mundur të bëhet pa to. Përveç kësaj, platforma 1C ka një koleksionist të fuqishëm mbeturinash, d.m.th. nuk ka nevojë, për shembull, për të pastruar tabelat pas përdorimit ose për t'i fshirë ato.

Ndërfaqja 1C Enterprise 8.2

1C i ka kushtuar vëmendje të veçantë ndërfaqes së programit të saj. Para së gjithash, është paleta e ngjyrave. Ajo është e mrekullueshme! Dritaret e programit dallohen edhe nga larg, ndërsa për shumë vite punë - nuk shkaktojnë ndjenja armiqësore, përkundrazi - dua që të gjitha programet të jenë sa më të lezetshme.
Në të njëjtën kohë, stili i platformës është shumë i rreptë, pa frills dhe frills tjera. Në të njëjtën kohë, ka funksione shumë të dobishme, për shembull, kujtimi i madhësive të dritareve (madhësitë mbahen mend vetëm kur ato ndryshohen nga përdoruesi dhe, në të njëjtën kohë, gjithmonë mund të rivendosni cilësimet e përdoruesit - në madhësitë dhe pozicionet e paracaktuara duke shtypur Alt + Shift + R).
Ndërfaqja e klientit në ueb 8.2 ngre një sërë ankesash, por platforma 8.3 duket se sjell me vete një ndërfaqe të re të ridizajnuar - Taxi.

Çmimet, oferta dhe kërkesa, franchising

Plus më "i shijshëm" i platformës 1C është çmimi i tij. Kjo është veçanërisht e vërtetë tani, gjatë krizës. Në fund të fundit, 1C është plotësisht produkti ynë vendas. Dhe shitet për ato tona prej druri. Zgjidhje të tilla nga një prodhues i huaj do të kushtojnë shumë para. Dhe licencat për 1C janë mjaft të pranueshme.

Për më tepër, 1C ka një politikë interesante licencimi. Vetë licencat dhe konfigurimet blihen një herë. Në të njëjtën kohë, licencat blihen për një vend pune dhe për një server, por jo për bazat e të dhënave, madje as për lidhjet, d.m.th. nën një licencë, i njëjti përdorues mund të ekzekutojë një numër të pakufizuar seancash 1C, duke punuar me çdo numër bazash të dhënash. E njëjta gjë vlen edhe për konfigurimet: duke blerë një licencë për një konfigurim, një organizatë mund ta përdorë atë për të krijuar çdo numër bazash të dhënash, për më tepër, zyrtarisht lejohet të përdorë pjesë të kodit dhe objektet e këtij konfigurimi kur zhvillon konfigurimet e veta (ndërsa konfigurimet e veta mund të shiten / transferohen - duke përcaktuar që për t'i përdorur ato, duhet të blini një konfigurim nga 1C).

Pas kësaj blerjeje një herë, ju duhet vetëm të abonoheni në përditësime dhe të paguani një herë në vit për të rinovuar abonimin, të ashtuquajturat. E SAJ. Nga rruga, abonimi është shumë i lirë, si dy licenca klientësh.

Në përgjithësi, gjithçka duket shumë fitimprurëse.

E dyta "e shijshme", por tashmë me një mizë në vaj, plus, është prania e konfigurimeve mjaft universale nga vetë 1C dhe nga partnerët.

Rreth shkathtësisë

Koncepti i "universalitetit" u përcaktua nga një mësues shkolle në CWP duke përdorur shembullin e maskave të gazit: ka nga ato universale që mbrojnë nga shumë faktorë dëmtues, por shkalla e mbrojtjes është mesatare ose nën mesatare, dhe ka edhe maska ​​​​gazit të specializuara. që mbrojnë nga një goditje, por me një shkallë të lartë mbrojtjeje. Deri më tani, nuk kam hasur në një përkufizim më të saktë.
Dhe konfigurimet nga 1C janë universale. Praktikisht, nuk ka detyra ku ato mund të përdoren plotësisht pa modifikime. Sidoqoftë, 1C ka arritur të krijojë një grup universal mjetesh që mbulojnë nevojat e shumicës së degëve të biznesit modern.


Plus i tretë (dhe gjithashtu me një mizë në vaj) është rrjeti i ekskluziviteteve dhe qendrave të trajnimit, si për përdoruesit ashtu edhe për programuesit dhe administratorët fillestarë. Ide e mirë, por cilësi mesatare e zbatimit. Sidoqoftë, mbizotërimi dhe marketingu agresiv është një nga arsyet e popullaritetit të gjerë të 1C në vendin tonë (dhe kjo është gjithashtu arsyeja e negativitetit, zilisë dhe urrejtjes).

Një lugë katran

Pasi të keni pikturuar 1C në të gjitha ngjyrat, do të ishte e padrejtë të mos thuash për të metat e tij, dhe ato me të vërtetë janë:

Lëshime të paqëndrueshme- si në platformë ashtu edhe në konfigurime, ka një numër të madh gabimesh dhe defektesh. Dhe kjo është në njoftimet zyrtare. Para se të lëshohet versioni zyrtar, lëshohet një "Version i Familiarizimit". Ka gjithashtu reagime për paraqitjen e përshkrimeve të gabimeve në mënyrë që ato të pranohen për korrigjim. Sidoqoftë, ose versionet për njohje nuk janë shumë të njohura, ose vetë kompania 1C nuk ka kohë të përpunojë të gjitha letrat deri në datën e lëshimit, por është një fakt. Sa herë që përditësoni platformën ose konfigurimin, mund të hasni në "surprizat" më të papritura. Kompanisë 1C tashmë i është kërkuar vazhdimisht të testojë zhvillimet e saj më tërësisht.

Franchisee (në tekstin e mëtejmë - ekskluzivitet)... Idealisht, sipas idesë, këto duhet të ishin firma me specialistë të kualifikuar që njohin parimet bazë të konfigurimeve dhe platformave. Të njëjtat firma do të duhet të shesin platformën, konfigurimin dhe mbështetjen, të "përfundojnë" pak konfigurimet universale sipas kërkesave të klientit (dhe nganjëherë - të rregullojnë këto kërkesa), duke u përpjekur të modifikojnë sa më pak konfigurimin standard. Për të mos komplikuar shumë përditësimet e ardhshme. Në realitet, e kundërta është e vërtetë.

Kur licencat e reja i shiten një klienti, frangat marrin 50% të vlerës së tyre (minus tatimin mbi të ardhurat 13% nga kjo 50%). Në të njëjtën kohë, nuk keni nevojë të prodhoni asgjë vetë, thjesht duhet të transferoni çelësat nga 1C te blerësi.

Kur ofrojnë shërbime, ekskluzivitetet nuk i paguajnë asgjë kompanisë 1C (përveç tarifave të anëtarësimit), por ata duhet të paguajnë pagën e një punonjësi. Ju gjithashtu duhet të shpenzoni për taksat ndaj shtetit - FIU dhe tatimin mbi të ardhurat.

Rezulton se si 1C ashtu edhe franga janë fitimprurëse për të shitur licenca dhe joprofitabile për të ofruar mbështetje të mëtejshme. Në të njëjtën kohë, në mënyrë që një klient të blejë një program, ai fillimisht duhet të përshtatet me kërkesat e tij. Dhe ju duhet të paguani për punën. Dhe këtu, për të kursyer para, tërhiqen studentë, studentë dhe jo specialistë të cilëve mund t'i paguash pak, dhe ndonjëherë të mos paguash fare, ata nuk mund të regjistrohen as në shtet (ata do të punojnë jozyrtarisht, pasi ka diçka për të paguar). Rezultati është një numër i madh shitjesh me cilësi shumë të ulët. Përmirësimet priren të ndikojnë në mekanizma të rëndësishëm dhe të komplikojnë përditësimet e ardhshme. Por në fazën e shitjes, as 1C dhe as ekskluziviteti nuk janë të interesuar për këtë.

Vini re se ky nuk është aq shumë faji i biznesmenëve nga ekskluzivitetet sa i 1C. Duke u ndalur te shitjet, ajo nuk u kujdes fare për mbështetjen (nuk po flas për shkollat ​​tani, por për faktin që duhet të jetë fitimprurëse si për franshizën ashtu edhe për 1C për të ofruar mbështetje).

Mbeshtetje teknike. Në kuptimin e 1C, mbështetja teknike ofron akses në seksionin "përditësim" për platformën dhe konfigurimet, si dhe në seksionet e informacionit që përmbajnë një përshkrim të disa prej mekanizmave dhe veçorive të funksionimit 1C. Përveç kësaj, kur abonoheni, sigurohet një disk me materialet e specifikuara. Ekziston edhe një forum (shumë i pakët në krahasim me popullin). Është gjithashtu e mundur të dërgoni një e-mail në 1C - por pa shpresuar as që do t'ju përgjigjen (ose roboti do të përgjigjet "Letra i është dërguar departamentit të zhvillimit." Për sa i përket zhvillimit, Yandex.Poisk dhe ndihma e integruar në konfigurues ofron shumë më tepër mbështetje.

Epilogu

Kam kaluar në 1C në 2008, dhe para kësaj kam punuar në një kompani që zhvillon programin e saj të kontabilitetit (Delphi 5, pastaj Delphi 7). Së pari, u njoha me platformën 1C Enterprise 7.7 dhe u mahnita nga thjeshtësia e zhvillimit të raporteve në të. Në të njëjtën kohë, ishte e qartë se raportet gjenerohen shumë më gjatë sesa në mekanizma të ngjashëm në Delphi, por kontabilistët nuk u kujdesën veçanërisht. Prisni disa minuta në vend të disa sekondave nuk është problem. Përkundrazi, aty mund të lyeni thonjtë, të pini pak çaj ose të diskutoni të rejat e fundit pa u ndalur nga puna. Në fund të fundit, shumica dërrmuese e kontabilistëve sot janë gra.
Sidoqoftë, ndërfaqja 7.7 ishte mjaft e kufizuar dhe grupi i objekteve ishte mjaft i rrallë. Po kërkoja alternativa. Jam njohur me komponentët e jashtëm, por nuk kanë ardhur në përdorim praktik, sepse shefi vendosi që ishte koha që ne të kalonim në 8.1 (po, 8.2 nuk ishte akoma), dhe në këtë platformë, si programues, gjeta gjithçka që më mungonte më herët.
Aktualisht kam autoritet mes kolegëve, si dhe klientëve që më vinin nga françes. Ata ndoshta nuk do të kontaktojnë më kurrë me franga.


Në përgjithësi, jam mjaft i kënaqur me punën në platformën 1C Enterprise 8. Ai është i përshtatshëm për zgjidhjen e shumicës së detyrave dhe detyrave të kontabilitetit duke përdorur një bazë të dhënash.

Etiketa:

  • gjuhë programimi në rusisht
  • 1C
  • Programimi 1C
Shto etiketa

Si rregull, mësimi i çdo gjuhe programimi fillon me një shembull të shkrimit të programit të parë më të thjeshtë ("Përshëndetje botë!"). Kjo bëhet për të treguar qartë se si punohet me ndërtimet sintaksore bazë. Ne nuk do të bëjmë përjashtim nga kjo mënyrë e pranuar përgjithësisht e prezantimit të materialit kur eksplorojmë një mjedis të ri zhvillimi, dhe për këtë arsye artikulli ynë i parë duhet të shikohet në të njëjtën mënyrë. Në të do të analizojmë në detaje përgjigjet e pyetjeve të mëposhtme në lidhje me programimin në platformën 1C: Enterprise 8:

  • Ku dhe me çfarë ndihme për të shkruar kodin e programit në gjuhën e integruar 1C?
  • Cilat janë modulet softuerike, cilat janë rregullat për të punuar me to?
  • Çfarë është një variabël, si të punohet me të, si dhe ku të deklarohet?
  • Cilët operatorë krahasimi, caktimi dhe kushtëzimi ekzistojnë dhe si i zbatoni ato?
  • Operacionet Boolean - cilat janë ato dhe si të punohet me to?
  • Pse janë sythe dhe si t'i përdorim ato?

Artikulli do të jetë i dobishëm për të gjithë ata që nuk janë ende të njohur me zhvillimin në platformën 1C: Enterprise 8, por duan të mësojnë se si të programojnë në 1C.

Zbatueshmëria

Materiali është i rëndësishëm për platformën 1C: Enterprise 8, botimi 8.2. dhe 8.3.

Variablat dhe Operatorët

Në këtë artikull fillojmë të studiojmë gjuhën e integruar 1C: Enterprise 8. Kodi i ekzekutueshëm gjendet në modulet e programit.

Ka një numër të madh modulesh që janë krijuar për të trajtuar ngjarje të ndryshme.

Pra, hyrja e përdoruesit në sistem përpunohet në një modul dhe procesimi i klikimit të përdoruesit në një buton të caktuar përpunohet në një tjetër krejtësisht.

Kështu, çdo modul përshkruan sjelljen e konfigurimit në një pikë të caktuar. Moduli përmban, para së gjithash, një seksion që përshkruan variablat. ato. ne mund të deklarojmë disa variabla në modul.

Më vonë ato mund të përdoren në procedurat dhe funksionet e këtij moduli. Nëse një variabël përcaktohet me fjalën kyçe Export, atëherë ai do të jetë i disponueshëm jashtë këtij moduli. Një shembull i një linje deklarimi të ndryshueshme:

Ndryshim Magazina, Divizioni, Eksporti i Magazinit;

Pas deklarimit të variablave, ekziston një seksion procedurash dhe funksionesh.

Pas tyre është seksioni i programit kryesor, i cili do të ekzekutohet në momentin e hyrjes në këtë modul.

Për shembull, në seksionin e programit kryesor, mund të inicializoni variablat, d.m.th. caktoni atyre disa vlera fillestare:

Gjendja = 1;
NewExpression = 2;
Rezultati = 3;

Një modul mund të mendohet si një kombinim i operatorëve të ndryshëm që kryejnë veprime të ndryshme që na duhen.

Ndarësi i operatorit është karakteri ";" (pikëpresje). Ky personazh është fundi i deklaratës. ato. operatori mund të shkruhet si më poshtë:

Rezultati = 100X200
+400
-600;

Nuk ka rëndësi se sa linja është operatori.

Sigurisht, më shpesh është më i përshtatshëm dhe më i qartë të vendosësh një operator në një linjë, por ndonjëherë operatorët janë mjaft të gjatë (numri i linjave mund të arrijë në mënyrë të arsyeshme disa dhjetëra).

Pikëpresja mund të hiqet në deklaratën përfundimtare të një konstrukti të caktuar, për shembull, një procedurë. ato. kodi i mëposhtëm do të funksionojë:

Procedura e Llogaritjes së Vlerave ()

Vlera fillestare = 100;
IntermediateValue = Vlera Fillestare / 5;
Vlera totale = Vlera fillestare + Vlera e ndërmjetme

Fundi i procedurës

Megjithatë, është më mirë të përdoret një pikëpresje në deklaratën pasuese. Është e mundur që me kalimin e kohës, ndërtimi të vazhdojë dhe deklarata përfundimtare të mos jetë më përfundimtare. Ne duhet të monitorojmë në mënyrë specifike këtë situatë.

Variablat janë krijuar për të ruajtur disa vlera të çdo lloji të të dhënave. Ato përdoren për ruajtjen e ndërmjetme të informacionit për përpunim.

Pothuajse në çdo modul programi që kryen disa veprime, ka variabla të ndryshëm. Shtypja e variablave sipas vlerave në Platformën 1C: Ndërmarrja 8 është e butë.

Për shembull, një variabël mund të përmbajë një vlerë të një lloji të të dhënave, dhe disa rreshta më vonë - një lloj tjetër:

Krijuar = E rreme;
Krijuar = E vërtetë;
Krijuar = 100;

Në dy operatorët e parë vlera e variablave është Boolean, dhe në të tretin ajo ndryshohet në një vlerë numerike. ato. shtypja varet nga vlera që i është caktuar një variabli të caktuar.
Variablat mund të përshkruhen në dy mënyra:

  • mënyra e nënkuptuar (përmendja në anën e majtë të operatorit të caktimit përshkruan variablin e dhënë, nuk ka përshkrim paraprak të ndryshores me fjalën Var, d.m.th. nuk ka seksion të veçantë për përshkrimin e variablave);
  • përshkrim i qartë i variablave (Variable ControlData;). Deklarimi i qartë i variablave përdoret, për shembull, nëse pritet transferimi i mëpasshëm i kësaj ndryshore në një funksion.

Për emrat e variablave, përdoret përshkrimi klasik i identifikuesit. Identifikuesi përbëhet nga shkronja, numra dhe nënvizime. Identifikuesi duhet të fillojë ose me një shkronjë ose një nënvizim.

Në këtë rast, emri i ndryshores duhet të pasqyrojë kuptimin e kësaj ndryshore. Emrat e variablave me një shkronjë (si A, B, C) janë shembuj të këqij. Ato nuk pasqyrojnë natyrën e variablave.

Shembuj të emrave të saktë të variablave: Counter (ndryshore në rritje për një lak), Counterparty. Nëse një emër variabli përmban disa fjalë, atëherë çdo fjalë e re, për qartësi, duhet të fillojë me një shkronjë të madhe.

Fjalët e rezervuara si Procedura, Funksioni, Loop, Fundi i ciklit, etj. nuk mund të përdoren në emrat e variablave. (këto ndërtime janë të theksuara me të kuqe në modulin e programit).

Fjalët e rezervuara janë operatorë gjuhësorë të integruar dhe ka mjaft prej tyre. Të gjitha ato janë paraqitur në Asistent sintaksor.

Duhet të theksohet se llojet e të dhënave nuk janë fjalë të rezervuara (për shembull, Array, Boolean, True, False). Sistemi do t'i pranojë saktë emrat e variablave të tillë.

Për të shkruar kodin e programit, rasti nuk ka rëndësi. Për shembull, fjala Procedurë mund të shkruhet me shkronja të mëdha dhe të vogla. Për më tepër, shkronjat e mëdha dhe të vogla mund të alternohen brenda një fjale.

Nuk ka rëndësi për Platformën. Sidoqoftë, sipas rregullave të formës së mirë, fillimi i një fjale duhet të shkruhet me shkronjë të madhe, të gjitha shkronjat e tjera me shkronja të vogla.

Rreth gjuhës. Ju mund të përdorni si rusisht ashtu edhe anglisht, dhe një kombinim të dy gjuhëve. Nëse është i përshtatshëm për dikë, mund të përdorni me siguri anglisht për të shkruar kodin e programit, si dhe për të kombinuar rusisht dhe anglisht. Kjo nuk është e rëndësishme për Platformën.

Shumë emra në anglisht janë të vështira për t'u mbajtur mend. Kur përdorni një kombinim të dy gjuhëve, lexueshmëria e kodit të programit përkeqësohet.

Operacionet Boolean

Operatorët e krahasimit shpesh përdorin logjikën Boolean që kthen True ose False.

Për shembull, në operatorin e kushtëzuar mund të krahasoni: Nëse Ngjarje = Shitje Atëherë algoritmi do të ndjekë një degë (dmth., nëse vlera është True), një degë tjetër e algoritmit ekzekutohet nga kushti False.

Kushtet mund të jenë mjaft komplekse, ato mund të kombinohen dhe aplikohen operatorët e mëposhtëm: AND, OSE, dhe NOT. Pra, për operatorin AND:

Truth And Truth = E vërteta;
E vërtetë dhe e rreme = E rreme;
Lies And Truth = Gënjeshtra;
Gënjeshtra DHE Gënjeshtra = Gënjeshtra.

Për operatorin OR mjafton që njëri prej operandëve të jetë True, atëherë vlera e kombinimit do të jetë True. Vlera është False vetëm kur të dy operandët janë False.

Operatori NUK e kthen thjesht vlerën aktuale (False to True, True to False).

Duke përdorur një kombinim të këtyre operatorëve, mund të ndërtoni kushte mjaft komplekse. Kur ndërtoni deklarata komplekse të kushtëzuara, merrni parasysh përparësinë.

Operatori NOT ka prioritetin më të lartë, i ndjekur nga operatori AND, i ndjekur nga operatori OR. Ajo që është në kllapa ka përparësinë më të lartë dhe ekzekutohet së pari.

Për shembull, le të japim përparësi (sekuencën e ekzekutimit) për operacionet në shprehjen e mësipërme:

JO (Kushti1 OSE Kushti2) DHE Kushti3 OSE Kushti4
1.Rezultati1 = (Kushti1 OSE Kushti2);
2. Rezultati2 = NUK Rezultati1;
3. Rezultati3 = Rezultati2 DHE Kushti1;
4. Rezultati = Rezultati3 OSE Kushti4;

Ekziston një rregull konvertimi:

JO (Kushti 1 OSE Kushti 2) = JO Kushti1 DHE JO Kushti2.

Sidoqoftë, nuk duhet të përpiqemi gjithmonë të thjeshtojmë shprehjen, sepse shpesh, logjikisht, shprehja e zgjeruar është më e lehtë për t'u lexuar.

Operatori i caktimit

Operatori i caktimit nuk duhet të ngatërrohet me barazinë, edhe pse kanë të njëjtën drejtshkrim.

Parimi i operatorit të caktimit është i tillë që vlerës së majtë (ndryshores në anën e majtë) i caktohet vlera që është në të djathtë të shenjës së barabartë. Le të shohim një shembull:

Variabla1 = Variabla2 = Variabla3;

Variablës1 i caktohet një vlerë barazie nga logjika Boolean, d.m.th. E vërtetë nëse Variable2 = Variable3, ose False ndryshe.

Gjatë testimit për pozicionin e një programuesi fillestar, shpesh përdoret detyra: të ndërroni vlerat e dy variablave në vende.

Ky problem zgjidhet duke përdorur operatorin e caktimit dhe ka dy zgjidhje.

Zgjidhja # 1 duke përdorur një ndryshore të përkohshme:
TemporaryVariable = Variabla1;
Variabla1 = Variabla2;
Variabla2 = Ndryshore e Përkohshme;

Zgjidhja numër 2:
Variabla1 = Variabla1 + Variabla2;
Variabla2 = Variabla1 - Variabla2;
Variabla1 = Variabla1 - Variabla2;

Operator i kushtëzuar

Ekziston një operator i tillë If, pas së cilës është e nevojshme të përshkruhet një kusht (vetë gjendja mund të jetë mjaft e madhe). Kushti pasohet nga fjala Pastaj dhe operatorët e ekzekutuar.

Kjo mund të pasohet nga fjala kyçe Tjetër dhe një sërë operatorësh të tjerë. Nëse ka disa kushte të ndryshme, mund të përdorni një sërë fjalë kyçe Përndryshe, nëse(shih shembullin më poshtë). I gjithë ndërtimi duhet të përfundojë me një fjalë kyçe Fundi Nëse e ndjekur nga një pikëpresje.

Përveç kushteve të thjeshta dhe të shumëfishta, ekziston një formë e shkurtuar e operatorit të kushtëzuar:? (Kushti, Shprehja1, Shprehja2);

Nëse kushti është i vërtetë, atëherë Shprehja 1, ndryshe - Shprehja 2... Shembull i kodit: DearProduct =? (Produkt.Çmimi> 100000, E vërtetë, E gabuar);

Në praktikë, në vend të krahasimit regjistron me vlerë E vërtetë (Gënjeshtra) lloji:

Nëse ndryshorja = e vërtetë, atëherë
dhe
Nëse Variable = False Atëherë

të dhënat ekuivalente përdoren në të vërtetë:

Nëse variable Atëherë
dhe
Nëse JO e ndryshueshme Atëherë

Operatorët Ciklikë

Për çdo lloj cikli, është e nevojshme të tregohet në mënyrë eksplicite fundi i këtij cikli duke përdorur fjalën kyçe Fundi i ciklit... Ka disa lloje sythe.

Cikli mbi banak- një cikël me një numër të caktuar përsëritjesh. Kushti për daljen nga cikli është tejkalimi i vlerës kufi. Një shembull i përdorimit për llogaritjen e vlerës së A!

A = 5;
Faktorial = 1;
Për numërues = 1 me cikël
Faktorial = Faktorial * Numërues;
Fundi i Ciklit;

Lak i kushtëzuar- ekzekutohet përderisa kushti i ciklit të dhënë është i vërtetë. Shembull:

Shuma e mbetur = 1000;
Çmimi i produktit shtesë = 243;
Sasia = 0;
Ndërsa RemainderSum> 0 Cikli
Sasia = Sasia + 1;
Bilanci i shumës = Bilanci i shumës - Sasia * Çmimi shtesë i produktit;
Çmimi i produktit shtesë = Çmimi i produktit shtesë * 0,8;
Fundi i ciklit
Sasia = Sasia-1;

Ky cikël llogarit se sa njësi të një produkti mund të blihen për një shumë të caktuar (1000 rubla) nëse pas blerjes së çdo njësie të një produkti çmimi i tij i mëparshëm shumëzohet me një faktor prej 0,8. Çmimi origjinal i produktit është 243 rubla.

Një shembull i një gabimi gjatë përdorimit të këtij lloji të ciklit për fillestarët është një lak i përjetshëm, kur fillimisht kushti i ciklit është i vërtetë, por brenda vetë ciklit nuk ndryshon në asnjë mënyrë.

Shikoni koleksionet (një emër tjetër për secilin).

Platforma ka një numër mjaft të madh koleksionesh (këto janë kontejnerë që përmbajnë elementë të një lloji të caktuar).

Ju mund të përshkoni elementet e një koleksioni duke përdorur një lloj të veçantë lak.

Për shembull, ekziston një grup numrash, duhet të llogaritni shumën e të gjithë elementëve të grupit:

Shuma = 0;
Për çdo artikull nga cikli i grupit
Shuma = Shuma + Elementi;
Fundi i Ciklit;

Ekzistojnë operatorë të veçantë për sythe: Vazhdoni dhe Aborti.

Nëse në një moment të ciklit ekzekutimi i operatorëve të mëtejshëm të këtij përsëritje bëhet i pakuptimtë, atëherë për t'u kthyer në fillim të ciklit dhe për të organizuar përsëritjen e tij të radhës, operatori Vazhdoni.

Operatori Aborti ju lejon të përfundoni ekzekutimin e ciklit edhe nëse kushti i ciklit është i vërtetë.

Kjo përfundon njohjen tonë të parë me zhvillimin në gjuhën e brendshme 1C.

Po Hello World? Nuk e kemi shkruar akoma, apo jo? Po, por asgjë nuk ju pengon ta bëni vetë, sepse njohuritë janë të mjaftueshme. Epo, nëse nuk funksionon, atëherë mund të shikoni këtu.

Në këtë artikull, ne do të shqyrtojmë një ndërtim të tillë të gjuhës së programimit 1C si Ciklet.

Ekzistojnë tre mënyra për të organizuar sythe.

  1. Siklet duke përdorur shprehjen boolean (ekzekutohet për sa kohë që shprehja boolean është e vërtetë)
  2. Shikoni koleksionet

Le të hedhim një vështrim në secilën nga këto metoda.

Loop duke përdorur një variabël - numërues cikli

Sintaksë:

Për< Переменная> = < НачальноеЗначение>Nga< КонечноеЗначение>Cikli Fundi i Ciklit;

Me këtë metodë të organizimit të sytheve, variablit numërues i caktohet një vlerë fillestare dhe ajo ekzekutohet derisa vlera e ndryshores së numëruesit të jetë më e vogël ose e barabartë me vlerën përfundimtare të specifikuar.

Me çdo përsëritje, numëruesi rritet me një. Këtu është shembulli më themelor i një laku të tillë:

Për numërues = 0 Me 1000 Cikli Fundi i Ciklit;

Ndryshe nga shumë gjuhë të tjera programimi, 1C nuk parashikon aftësinë për të specifikuar një hap në një lak. Nëse është e nevojshme, kjo mund të bëhet duke shtuar vlerën e dëshiruar në numëruesin brenda lakut.

Për Numër = 0 Nga 1000 Numërues Cikli = Numër + 10; Fundi i Ciklit;

Lakohet duke përdorur një shprehje boolean

Sintaksë:

Deri në< ЛогическоеВыражение>Cikli Fundi i Ciklit;

Refuzim = E rreme; GeneratorCh = Gjenerator i ri i Numrave të Rastit (1); Deri në NOT Dështim Cikli RandomNumber = Gjenerator RTC. Numri i rastësishëm (0, 10); Nëse RandomNumber> 5 Atëherë Dështimi = E vërtetë; FundNëse; Fundi i Ciklit;

Kjo do të thotë, cikli do të funksionojë derisa të gjenerohet një numër i rastësishëm më i madh se pesë.

Shikoni koleksionet

Në gjuhën e programimit 1C, ekziston një koncept i tillë si një koleksion. Është një koleksion elementesh të përfshira brenda një objekti.

Mund t'i referohemi një koleksioni objekte të tilla si: një grup, një tabelë vlerash, një përzgjedhje nga një rezultat pyetësor, meta të dhëna, etj. Ky koncept është mjaft arbitrar, por gjendet në ndihmësin e sintaksës në çdo hap. Një detyrë shumë e zakonshme është kur na duhet të përsërisim në mënyrë sekuenciale mbi të gjithë elementët e një koleksioni në mënyrë që të kryejmë disa veprime mbi to. Për këtë, ekziston një ndërtim sintaksor:

Për të gjithë< ЭлементКоллекции>Nga< Коллекция>Cikli Fundi i Ciklit;

Këtu <ЭлементКоллекции> Është një variabël në të cilin elementet nga koleksioni vendosen në mënyrë sekuenciale. Dhe brenda lakut, ai trajtohet në përputhje me rrethanat.
Si shembull, unë do të jap një rrotullim nëpër rreshtat e një tabele vlerash. Le të quhet ajo TabelaProdukte dhe duket si kjo:

Le të shkojmë rreth kësaj tabele në një lak dhe për çdo rresht do të shfaqim një mesazh me emrin dhe çmimin e produktit:

Për çdo TableRow From TableProducts Loop Name = TableRow. Emri; Çmimi = Table Row. Çmimi; Mesazh = Mesazh i ri për Përdoruesin; Mesazh. Teksti = "Emri i produktit:"

Në fakt, e njëjta gjë mund të bëhet duke përdorur opsionin e parë, domethënë në një lak duke përdorur një numërues:

Numri i rreshtave = Artikujt e tabelës. Sasi() ; Për numërues = 0 Sipas numrit të rreshtave - 1 cikël TableRow = TabelaProduktet [Numëruesi]; Emri = TableRow. Emri; Çmimi = Table Row. Çmimi; Mesazh = Mesazh i ri për Përdoruesin; Mesazh. Teksti = "Emri i produktit:"+ Emri + "; Çmimi:" + Çmimi; Mesazh. Për të raportuar() ; Fundi i Ciklit;

Por siç mund ta shihni, është shumë më e lehtë dhe më e përshtatshme për të përdorur kalimin e elementeve të grumbullimit.

Operatorët Ndihmës

Shpesh ekziston një situatë kur, në varësi të disave, është e nevojshme të ndërpritet ekzekutimi i ciklit, ose të kalohet nga përsëritja tjetër.

Ndërprerja kryhet me ndihmën e operatorit Aborti... Në këtë rast, ekzekutimi i ciklit ndërpritet dhe kontrolli transferohet në konstruktin gjuhësor pas ciklit. Nëse duhet të shkoni në përsëritjen tjetër, duhet të përdorni operatorin Vazhdoni... Pastaj kontrolli transferohet në fillim të ciklit. Le ta ilustrojmë me një shembull të vogël:

Për numërues = 0 me 100 Cikli Nëse numëruesi = 0 Pastaj vazhdoni; FundNëse; Nëse numëruesi = 4 Atëherë Aborti; FundNëse; Rezultati = 1 / Numërues; Mesazh = Mesazh i ri për Përdoruesin; Mesazh. Teksti = String (Rezultati); Mesazh. Për të raportuar() ; Fundi i Ciklit;

Ne e kapërcejmë zeron, sepse Ju nuk mund të pjesëtoni me zero. Dhe në total, cikli do të ekzekutohet pesë herë, për vlerat e ndryshores Kundër nga 0 në 4

Gjuha e programimit 1C është një sistem zyrtar shenjash i krijuar për të shkruar programe kompjuterike. Një gjuhë programimi përcakton një grup rregullash leksikore, sintaksore dhe semantike që përcaktojnë pamjen e programit dhe veprimet që ekzekutuesi (kompjuteri) do të kryejë nën kontrollin e tij.

Platforma 1C Enterprise 8 ka funksionalitet të plotë për zhvillimin e zgjidhjeve të veta për zhvilluesin. Mjeti kryesor i zhvillimit është gjuha e integruar e programimit 1C 8.3.

Krijimi i klasave të reja në mënyrë programore në gjuhën 1C 8.3 është i ndaluar. Meqenëse platforma 1C Enterprise është e specializuar për detyrat e kontabilitetit, përbërja e klasave është e paracaktuar paraprakisht:

  • etj.

Bazuar në klasat tipike, ju mund të krijoni çdo numër nënklasash që kanë grupet e tyre. Me ndihmën e moduleve të menaxherit, mund të zgjeroni paksa funksionalitetin e nënklasës.

A është e ndërlikuar gjuha e programimit 1C?

Pyetja është mjaft e diskutueshme dhe relative. Kur shikohet në lidhje me gjuhë të tjera, mund të duket pak më e thjeshtë. Sidoqoftë, përveç vetë programimit, do t'ju duhet të studioni fushën e lëndës - kontabilitetin, prodhimin, kontabilitetin tatimor, etj., gjë që e bën gjuhën e programimit 1C në tërësi jo aq të thjeshtë sa mund të duket në shikim të parë.

Nëse keni pasur një përvojë solide në gjuhë të tjera programimi specifike për domenin përpara se të njiheni me 1C, nuk do të jetë e vështirë për ju të kuptoni ndërlikimet e 8.2, gjëja kryesore është dëshira. Gjithçka që ju nevojitet është të gjeni një tutorial të mirë për gjuhën e programimit 1C.

Sintaksa ruse e gjuhës 1C

Artikujt kryesorë të lidhur