Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Si është gjuha 1C? Procedurat dhe funksionet e modulit të softuerit

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

Platforma 1C Enterprise 8 ka funksionalitet të plotë për zhvillimin e zgjidhjeve tuaja 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:

  • etj.

Bazuar në klasa standarde, ju mund të krijoni çdo numër nënklasash që kanë grupet e tyre. Duke përdorur modulet e menaxherit, mund të zgjeroni pak funksionalitetin e nënklasës.

A është e vështirë gjuha e programimit 1C?

Pyetja është mjaft e diskutueshme dhe relative. Nëse e konsideroni në lidhje me gjuhët e 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., Të cilat së bashku e bëjnë gjuhën e programimit 1C jo aq të thjeshtë sa mund të duket në shikim të parë.

Nëse keni pasur përvojë solide në gjuhë të tjera programimi të orientuara nga domeni 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

Hyni në sit si student

Gjuha e brendshme e programimit 1C 8.3 për programuesit fillestar: instalimi i 1C dhe programi juaj i parë në gjuhën 1C

Nëse nuk e keni lexuar hyrjen e mësimeve, ju lutemi lexoni: .

Instalimi i versionit arsimor të 1C

Për të mësuar programim na duhet 1C 8.3 (jo më e ulët 8.3.13.1644 ) .

Nëse keni të instaluar versionin 1C 8.3, përdorni atë. Nëse jo, shkarkoni dhe instaloni versionin arsimor, të cilin 1C e prodhon posaçërisht për qëllime edukative.

Detyra nr. 1: shkarkoni dhe instaloni versionin arsimor të 1C 8.3.

Pas përfundimit të detyrës nr. 1, shkurtorja e mëposhtme duhet të shfaqet në desktopin tuaj:

urime! Platforma 1C është instaluar dhe shumë shpejt do të mund të shkruani programin tuaj të parë.

Programi i parë

Kjo tashmë është bërë traditë për programuesit - kur mësojnë një gjuhë të re, gjëja e parë që ata shkruajnë në të është një program që printon frazën "Hello, World!" në ekran.

Ne nuk do të jemi përjashtim. Por, duke qenë programues rusë, ne do ta detyrojmë kompjuterin të shfaqë frazën "Përshëndetje, Botë!" në ekran.

Detyra nr. 2: shkruani një program në gjuhën 1C 8.3 që, kur të lansohet, shfaq frazën "Përshëndetje, Botë!" në ekran.

Udhëzimet që duhen ndjekur:

1. Hapni shkurtoren "1C:Enterprise" në desktopin tuaj.

2. Një listë e bazave të të dhënave 1C është hapur para jush. Siç mund ta shihni, është bosh. Le të krijojmë një bazë trajnimi në të cilën do të programojmë. Kliko " Shtoni".

3. Zgjidhni " Krijimi i një baze të re informacioni" dhe klikoni butonin " Me tutje".

4. Zgjidhni " Krijimi i një infobaze pa konfigurim..." dhe klikoni butonin " Me tutje".

5. Specifikoni " arsimore" dhe klikoni butonin " Me tutje".

6. Specifikoni çdo dosje boshe si direktorium bazë (në këtë rast është dosja "Trajnimi" në dokumentet e mia). Klikoni "Next".

7. Specifikoni opsionin e vërtetimit " Zgjidhni automatikisht", mënyra e nisjes" Klient i shëndoshë". Mos specifikoni asgjë si versioni 1C:Enterprise, klikoni butonin "Finish".

8. Siç mund ta shihni, databaza e parë që sapo krijuam vetë më në fund u shfaq në listë! Le të fillojmë të shkruajmë kodin. Kliko " Konfiguruesi".

9. Në dritaren që hapet, zgjidhni nga menyja " Konfigurimi"->"Hap konfigurimin".

10. Në panelin që hapet në të majtë, kliko me të djathtën mbi fjalën " Konfigurimi"dhe zgjidhni nga lista" Hapni një modul aplikacioni të menaxhuar".

11. Është hapur një dritare me redaktorin. Këtu mund të shkruani tekst! Ne do të punojmë me të në të ardhmen.

12. Tani, pa u menduar, thjesht kopjojeni tekstin e mëposhtëm në këtë dritare:

Raporti ("Përshëndetje, Botë!");

13. E shkëlqyeshme! Kodi për programin tonë të parë është gati. Le ta drejtojmë. Përmes menusë " Korrigjimi"->"Filloni korrigjimin e gabimeve" (ose çelës F5).

14. Pyetjes do t'i përgjigjemi pozitivisht.

15. Pas një ose dy sekonde, 1C do të fillojë dhe mesazhi "Hello, World!" do të shfaqet në dritaren më poshtë. Ne morëm atë që donim nga kompjuteri. Urime për programin tuaj të parë!

A shkoi diçka keq? Ende keni pyetje? Ma dërgoni ato me email [email i mbrojtur] dhe unë do t'ju përgjigjem sot. Mesuesi yt: Vladimir Milkin.

Mesazhi i mësuesit

Niveli i vështirësisë së mësimeve shkon nga poshtë lart. Prandaj, përpiquni të studioni vazhdimisht, pa anashkaluar asgjë ose pa e shtyrë atë për më vonë.

Sigurohuni që të përfundoni të gjitha testet dhe detyrat e shtëpisë, përpiquni të përmirësoni rezultatet tuaja. Kontrolloni zgjidhjet e referencës vetëm pasi të keni përfunduar vetë detyrat.

Hyni në sit si student

Identifikohu si student për të aksesuar materialet shkollore

Gjuha 1C është shumë e lehtë për t'u mësuar në krahasim me çdo gjuhë tjetër programimi.

Në territorin e Rusisë, për shumë, është me rëndësi të madhe që ju të mund të shkruani kodin direkt në Rusisht. "Është e mundur" nuk do të thotë se është e nevojshme - mund ta shkruani në anglisht, të gjitha operacionet dhe operatorët kanë një sinonim anglisht.

Ne do të mësojmë gjuhën 1C në këtë mes, në pesë minuta.

Parimet e përgjithshme të programimit

Jashtë mësimit të gjuhës, për ata që nuk kanë hasur në programim, ekzistojnë parime të përgjithshme. Pjesa tjetër - lexoni më tej.

Programimi është shkrimi i kodit të programit në një gjuhë programi.

Kodi i programit është një sekuencë komandash (fjalësh) që mbështet kjo gjuhë programimi.

Ekipet ndahen në:

  • Variablat
  • Operatorët
  • Funksionet dhe procedurat.

Le t'i shohim ato si një përafrim i parë.

Variablat

Variablat

Ka një numër 12. Ky është kuptimi. Vetë kjo shifër nuk ruhet askund. Ajo shpërtheu dhe u zhduk :) Duhet të ruhet diku. Variablat janë vende ku ruhen vlerat. Ndryshorja mund të emërtohet me çdo fjalë.

Për shembull:
Diçka = 12;
Diçka = Diçka + 10;
Raporti (diçka); // "22" do të shfaqet

Një variabël që është pjesë e një objekti 1C (për shembull, një fushë drejtorie) dhe ruhet në një bazë të dhënash quhet atribut.

Në 1C, variablat nuk shtypen, që do të thotë se të njëjtës ndryshore fillimisht mund t'i caktohet një vlerë e një lloji (për shembull, një numër), dhe më pas një lloji tjetër (për shembull, një varg) dhe nuk do të ketë asnjë gabim.

Megjithatë, detajet e objektit janë të shtypura. Por nuk ka kontroll të tipit. Mund të përpiqemi të caktojmë një vlerë të llojit të gabuar në një pronë. 1C do të përpiqet ta konvertojë atë (për shembull, nga një numër në një varg), por nëse nuk funksionon, vlera e atributit do të mbetet bosh.

Gjatësia e vargut në variabël është e pakufizuar. Gjatësia e linjës së atributeve është vendosur saktësisht, por ju mund ta vendosni atë të pakufizuar (duke vendosur gjatësinë e linjës në 0).

Ju nuk mund t'i referoheni një vargu me shkronjë. Por ju mund të kërkoni ose zgjidhni pjesë (Gjeni (), Majtas (), Djathtas (), Mesme ()).

Variablat komplekse

Nëse ka vetëm një kuptim, është e thjeshtë. Dhe kur ka shumë vlera?

  • Array

    Kjo është një kolonë Excel. Çdo qelizë përmban një ndryshore. Ka të njëjtin emër, ashtu si një ndryshore e rregullt. Dhe mund të kontaktoni celularin me numër.

    Diçka = Array i ri;
    Diçka.Shto (22); //në qelizën 1 vlera është 22
    Diçka.Shto(33); //në qelizën 2 vlera është 33
    Raporti (diçka); //jato vlerën e qelizës së parë

  • ListVlerat

    Njësoj si një grup, vetëm ju mund të shtoni një koment në secilën qelizë.

    Diçka = New ValueList;
    Diçka. Shto (22, "Kjo është 22"); //në qelizën 1 vlera është 22
    Diçka. Shto (33, "Kjo është 33"); //në qelizën 2 vlera është 33
    Raporto(Diçka. Merr(0).Vlera); //jato vlerën e qelizës së parë
    //por ata mund të shfaqnin edhe një koment, pastaj shkruanin.Përfaqësimi dhe jo.Vlera

  • Tabela e vlerave

    Kjo është tashmë një faqe Excel e plotë me rreshta dhe kolona.
    Ne do të shohim se si të punojmë me të në një mësim tjetër.

  • Pema e vlerave

    Tabela është paraqitur në formën e një peme. Një shembull është dritarja e konfigurimit. Degët, çdo degë mund të ketë një nëndegë.

Ju lutemi vini re se numërimi i qelizave në 1C fillon jo nga 1, por nga 0.

Programimi 1C

Nëse keni nevojë të mbani mend ku programi është shkruar në 1C- Ne e diskutuam këtë në.

Linjat e programit

Rreshtat përfundojnë me një pikëpresje ";".

Komenti fillon me "//" - domethënë, kjo rresht ose një pjesë e rreshtit nuk do të ekzekutohet dhe do të anashkalohet.

Vlera e vargjeve duhet të specifikohet në thonjëzat "Vlera". Nëse duhet të specifikoni një thonjëza në vlerë, atëherë ajo dyfishohet - "Vlera është "a"!"

Vlera e linjës mund të jetë me një ndërprerje rreshti të aktivizuar, atëherë rreshti tjetër duhet të ketë një "|" në fillim, për shembull:

“Ky është fillimi
| dhe vazhdimi i kuptimit"

Nëse duhet të specifikoni karaktere speciale në një vlerë vargu, ekziston një objekt i veçantë për këtë: "Karakteret.", për shembull:

"Ky është fillimi" + Simbolet. PS + "dhe vazhdimi i kuptimit" //PS - thyerja e rreshtit

Operatorët

Këto janë konstruksione gjuhësore që janë të natyrshme në vetë gjuhën dhe ju lejojnë të krijoni sekuencën më të thjeshtë të ekzekutimit të programit.

  • gjendja

    Disa rreshta kodi do të ekzekutohen nëse plotësohet një kusht.

    Diçka = 12;
    Nëse Diçka 200 Atëherë
    Njoftoni ("Kushti plotësohet");
    Përndryshe Nëse diçka > 200 Pastaj
    Raporti ("Kushti nuk plotësohet");
    Përndryshe
    Raporti ("Diçka tjetër");
    fundNëse;

  • Cikli

    Disa rreshta të kodit do të ekzekutohen një numër të caktuar herë.

    //numëro një nga një
    Për Diçka = Cikli 1 deri në 20
    Raporti (diçka);
    Cikli i Fundit;

    //llogarit ndryshe
    Diçka = 1;
    Mirupafshim Diçka

    //nëse kemi një listë vlerash, atëherë mund të përsërisim mbi secilën prej vlerave të saj
    Diçka = New ValueList;
    Për çdo Listë Vlerash nga Cikli Diçka
    Raporti (ListValue.Value);
    Cikli i Fundit;
    //vini re se "ListValue" është një variabël, ai mund të quhet çdo gjë që ju pëlqen

    Për të ndërprerë ciklin, mund të shkruani komandën "Abort" brenda, në mënyrë që të ndërprisni vetëm një përsëritje të ciklit - komandën "Vazhdo".

Puna me objekte

Të gjitha objektet me të cilat punojmë në gjuhë janë objekte të plota, domethënë ato mund të kenë të dhënat e tyre dhe metodat e tyre.

Objektet gjuhësore krijohen duke përdorur komandën New, për shembull:

Diçka = New Array();
Diçka = New ValueList();
Dhe kështu me radhë.

Objektet 1C nuk mund të krijohen - ato mund të arrihen duke përdorur të ashtuquajturit menaxherë, të emërtuar në përputhje me degët e konfigurimit: Drejtoritë, Dokumentet, etj. Metodat e menaxherit mund të zgjerohen (shiko mësimin mbi modulet 1C, modulin e menaxherit të objekteve).

Për shembull:

Directories.Nomenclature.CreateElement();
Dokumentet.Fatura.FindByNumber("...");

Ju nuk mund të programoni objektet tuaja, as nuk mund të trashëgoni ose ripërcaktoni ato standarde.

Gabimet

Një programues nuk mund gjithmonë të hamendësojë nëse do të ketë një gabim kur ekzekuton një linjë të caktuar kodi.

Për shembull, nëse shkruani në kodin e përpunimit të jashtëm:

Directories.Nomenclature.FindByCode("...") dhe hapni këtë përpunim në bazën e të dhënave ku nuk ka drejtori me emrin Nomenklature, do të ketë një gabim.

Për të parandaluar që kjo të ndodhë, mund të përdorni konstruksionin e mëposhtëm:

Përpjekje
Drejtoritë.Nomenklatura.FindByCode("...");
Përjashtim
Diçka = ErrorDescription();
Raporti ("Oh-oh-oh");
Raporti (diçka);
Përpjekja e Fundit;

Nëse ndodh një gabim gjatë ekzekutimit të linjave të programit midis Përpjekjes dhe Përjashtimit, ekzekutimi do të ndërpritet dhe do të shkojë te linjat midis Exception dhe EndTry. Nëse nuk ka gabim, këto rreshta nuk do të ekzekutohen.

Funksioni Error Description () funksionon vetëm midis Exception dhe EndTry dhe kthen një përshkrim të gabimit që ka ndodhur.

Funksionet dhe Procedurat

Funksionet dhe Procedurat janë një mënyrë për të marrë disa rreshta kodi dhe për t'i emërtuar ato me një fjalë, si një ndryshore. Kur më pas shkruajmë emrin e tij në një vend tjetër, ky funksion do të thirret (d.m.th., këto rreshta kodi do të ekzekutohen).

Ne kemi diskutuar disa herë metodat e objekteve dhe mbajtësit e ngjarjeve. Funksionet dhe procedurat janë këto metoda dhe trajtues.

//Programi
Procedura SomeAction()
Raporti ("Diçka");
Përfundimi i procedurës

//Telefononi
SomeAction();

Një funksion ndryshon nga një procedurë në atë që mund të kthejë vlerën që është llogaritur si rezultat i ekzekutimit të këtyre rreshtave kur.

Si të programoni

Tani që jeni njohur me gjuhën 1C, .

Programimi kryhet në modul. Prandaj, duhet të gjeni modulin e kërkuar dhe të shkruani kodin e programit atje.

Shembull i zhvillimit të përpunimit të jashtëm():

  • Krijimi i përpunimit të jashtëm
  • – do të ekzekutohet me hapjen e përpunimit në modalitetin Enterprise dhe me shtypjen e butonit
  • Ose ne hapim modulin e objektit të përpunimit dhe shkruajmë kodin atje - ai do të ekzekutohet menjëherë kur të hapet në modalitetin Enterprise.

Ne do të prekim programimin e objekteve specifike të gjuhës 1C në mësimet e ardhshme.

Hapeni atë në konfigurues dhe mund ta shikoni programin ose ta ndryshoni atë.

Kodi i programit shkruhet në modulin e objektit përpunues.

Gjuha e integruar e sistemit 1C: Enterprise 7.7 ka për qëllim të përshkruajë algoritmet për funksionimin e një detyre të aplikuar. Sintaksa e gjuhës i ngjan një përzierjeje të Pascal dhe BASIC, dhe në Rusisht.

Gjuha 1C mbështet programimin e strukturuar dhe i gjithë programi përbëhet nga një grup modulesh që përmbajnë kodin burimor - deklarata gjuhësore dhe komente.

Modulet e softuerit

Modulet e softuerit në një konfigurim nuk janë programe të pavarura, pasi ato janë pjesë e të gjithë konfigurimit të detyrës. Një modul softuerësh është një "kontejner" për ruajtjen e teksteve të procedurave dhe funksioneve të thirrura nga sistemi gjatë ekzekutimit në momente të caktuara kohore.

Vendndodhja e një moduli specifik softueri sigurohet nga konfiguruesi në ato pika në konfigurimin e detyrës që kërkojnë një përshkrim të algoritmeve specifike të funksionimit.

Llojet e moduleve të softuerit:

  • Moduli global.
  • Moduli i formës së listës së drejtorive
  • Moduli i formës së grupit
  • Moduli i formës së elementit të drejtorisë
  • Moduli i formës së dokumentit
  • Moduli i dokumentit
  • Moduli i formës së ditarit të dokumentit
  • Moduli i formularit të listës së llogarive
  • Moduli i formularit të faturës
  • Moduli i formularit të regjistrit të transaksioneve
  • Moduli i formularit të funksionimit
  • Moduli i formës së postimit të ditarit
  • Moduli i formularit të raportit
  • Moduli i formularit të përpunimit
Çdo modul individual perceptohet nga sistemi si një tërësi e vetme, kështu që të gjitha procedurat dhe funksionet e modulit të softuerit kryhen në një kontekst.

Struktura e modulit të softuerit

Moduli i softuerit 1C përbëhet nga seksionet e mëposhtme:
  • Seksioni i përkufizimit të variablave
  • Seksioni i procedurave dhe funksioneve
  • Seksioni kryesor i programit
Seksionet nuk kërkojnë përshkrim të qartë duke përdorur ndonjë fjalë kyçe (ndryshe nga, për shembull, Pascal), por shkelja e strukturës së modulit do të rezultojë në një gabim përpilimi.

Konteksti i ekzekutimit të një moduli softuerësh

Konteksti global:
  • vlerat e atributeve të sistemit, procedurat dhe funksionet e sistemit, për shembull, funksioni CurrentTime () kthen kohën aktuale të sistemit dhe funksioni CurrentDate () kthen datën aktuale në kompjuter.
  • vlerat e konstantave dhe enumeracioneve të specifikuara në konfigurues.
  • variablat dhe procedurat e modulit të programit global me fjalën kyçe “Eksport”.
Konteksti lokal formohet nga vendndodhja specifike e konfigurimit të detyrës për të cilën përdoret ky modul specifik.

Formati i deklaratës

Sintaksa e përgjithshme e operatorëve të gjuhës 1C:Enterprise: [~label:]Operator [(Parameters)][AdditionalKeyWord];

Identifikuesit

Emri i një ndryshoreje, procedure ose funksioni mund të jetë çdo sekuencë shkronjash, numrash dhe nënvizash, duke filluar me një shkronjë ose një nënvizim. Rasti i letrës nuk merret parasysh. Emrat e krijuar rishtazi nuk duhet të jenë të njëjtë me emrat ekzistues të disponueshëm në kohën kur moduli është ekzekutuar.

Shtypja e variablave në gjuhë nuk është e ngurtë, d.m.th. lloji i një ndryshoreje përcaktohet nga vlera e saj. Për të përcaktuar nëse një fjalë është e rezervuar, duhet të përdorni kërkimin në asistentin e sintaksës: vendosni kursorin në fjalën që kontrollohet dhe shtypni njëkohësisht tastet CTRL + F1. Në të njëjtën mënyrë, mund të zbuloni sintaksën e një procedure ose funksioni të sistemit: numrin dhe qëllimin e parametrave, vlerat e paracaktuara.

Shembull i identifikuesve të saktë në 1C:

// Përkufizimi i variablave VariableThisVariable; VariableIsSecondVariable; // Procedurat dhe funksionet Procedura ThisProcedure() // teksti i procedurës Funksioni EndProcedure ThisFunction() // teksti i funksionit EndFunction // Seksioni kryesor i programit ThisVariable = "123";

Procedurat dhe funksionet e modulit të softuerit

Sintaksa e deklarimit të procedurës: Procedura<Имя_проц>([Vlera]<Парам1> [=<ДефЗнач>] , ...) [Eksport] // Deklarimet e variablave lokale; // Operatorët; ... [Kthimi;] // Operatorët; Përfundimi i procedurës

Nuk ka pikëpresje pas fjalës kyçe "EndProcedure". Fjala kyçe "Vlera" do të thotë që variablat kalohen sipas vlerës. Fjala kyçe "Eksport" ka kuptim vetëm në modulin global dhe do të thotë që procedura do të jetë e disponueshme në çdo modul programi. Një funksion, ndryshe nga një procedurë, duhet të kthejë një vlerë

Për të kaluar kontekstin lokal, fjala kyçe "Kontekst" përdoret si parametër.

Shembull. Le të themi se kemi disa dokumente të ndryshme dhe të gjitha kanë atributin "Depo". Çdo modul softueri i formularit të redaktimit të dokumentit kërkon një procedurë për zgjedhjen e një magazine. Le të shkruajmë një procedurë në modulin e programit global (Lista 36):

Listimi 36. Shembull përshkrimi i procedurës

Procedura UstWarehouse(Cont) Export // krijoni një objekt të tipit "directory" Skl = CreateObject("Directory.Warehouses"); // thirrni një dialog për të zgjedhur një element të Depove të Drejtorisë.Select("Zgjidh Magazinë", ""); Nëse Store.Selected() = 1 Pastaj // nëse një element i Drejtorisë është zgjedhur në dialog, // atëherë ia caktojmë vlerën atributit Document, // i cili është i disponueshëm në kontekstin lokal Contact.Warehouse = Store.CurrentItem( ); fundNëse; Përfundimi i procedurës

Këtu ndryshorja Cont është një parametër formal që do t'i caktohet një kontekst lokal kur të thirret procedura. Në këtë shembull, qasja në detajet dhe metodat e kontekstit lokal ndodh "përmes një pike" pas identifikuesit Cont, për shembull:

Cont.Warehouse = Warehouse.CurrentItem();

Tani, në çdo modul të konfigurimit të softuerit (në këtë shembull, në çdo modul të formularit të dokumentit), mund të thërrisni një procedurë për të zgjedhur një magazinë, duke i kaluar si parametër kontekstin tuaj lokal:

UstWarehouse(Konteksti);

Shembuj të moduleve të softuerit mund të gjenden në konfigurimin standard të "Kontabilitetit".

Llojet e të dhënave

Sistemi mbështet llojet e të dhënave bazë dhe të përgjithshme. Llojet bazë përfshijnë numrat, vargjet dhe datat. Llojet e të dhënave agregate janë lloje të specializuara të të dhënave të krijuara për të punuar me objektet 1C: Enterprise. Llojet e mëposhtme të të dhënave quhen tipe të dhënash agregate:
  • Një konstante është një mjet për të punuar me vlera konstante (ose konstante me kusht). Konstantet ruajnë informacione që nuk ndryshojnë ose ndryshojnë shumë rrallë. Për shembull, emri i organizatës, adresa postare. Lista e konstantave të disponueshme në një konfigurim specifik, emrat dhe llojet e tyre përcaktohen në konfigurues.
  • Një direktori është një mjet për mbajtjen e listave të elementeve homogjene të të dhënave. Përveç emrave të elementeve të të dhënave, listat mund të përmbajnë informacione të ndryshme shtesë. Një analog fizik i një drejtorie mund të jetë një indeks karte. Çdo kartë është një element i drejtorisë, dhe informacioni i futur në kartë është detajet e drejtorisë. Lista e drejtorive të disponueshme në një konfigurim specifik, emrat dhe detajet e tyre përcaktohen në konfigurues.
  • Një numërim është një mjet për të punuar me elementë të të dhënave, lista e vlerave të mundshme të të cilave është specifikuar në mënyrë rigoroze (për shembull, për numërimin "Forma e pagesës", mund të vendosni vlerat e mundshme: "Para të gatshme", "Transferim bankar ”). Ndryshe nga drejtoritë, listat e vlerave në një numërim specifikohen gjatë krijimit të tyre në konfigurues dhe nuk mund të ndryshohen gjatë ekzekutimit të detyrës. Lista e numërimeve të disponueshme në një konfigurim të veçantë, emrat e tyre dhe vlerat e pranueshme përcaktohen në konfigurues.
  • Një dokument është një mjet për futjen e informacionit parësor në lidhje me transaksionet e biznesit të kryera. Lista e dokumenteve të disponueshme në një konfigurim specifik, emrat e tyre, detajet dhe vetitë e tjera përcaktohen në konfigurues.
  • Kërkesa është një mjet për të aksesuar dokumentet, regjistrat, dokumentet, drejtoritë dhe ditarët e llogaritjes për të marrë informacion përmbledhës gjatë krijimit të raporteve të prodhimit. Në modulet e programit, është e mundur të krijohet një numër arbitrar i objekteve të llojit Request duke thirrur funksionin e sistemit CreateObject.
  • Teksti është një mjet për të punuar me dokumente tekstuale. Në modulet e programit, është e mundur të krijohet një numër arbitrar i objekteve të llojit Text duke thirrur funksionin e sistemit CreateObject.
  • Tabela - një mjet për të punuar me tabela (raporte). Në modulet e programit është e mundur të krijohet një numër arbitrar i objekteve të llojit Table duke thirrur funksionin e sistemit CreateObject.
  • ValueList është një mjet për krijimin e një liste vlerash të çdo të dhënash dhe aftësinë për të renditur dhe zgjedhur më tej vlerat e dëshiruara nga lista. Kur shtohen fusha të tipit "Lista" ose "Kutia e kombinuar" në format e dialogut, sistemi krijon automatikisht objekte Lista e vlerave, të cilat mund të aksesohen në gjuhë nga identifikuesi i fushës. Në modulet e programit, është e mundur të krijohet një numër arbitrar i objekteve të tipit ValueList duke thirrur funksionin e sistemit CreateObject.
  • Tabela e vlerave është një mjet për krijimin e një liste vlerash të çdo të dhënë dhe aftësinë për të renditur dhe zgjedhur më tej vlerat e dëshiruara nga lista. Kur shtohen fusha të tipit "Lista" ose "Kutia e kombinuar" në format e dialogut, sistemi krijon automatikisht objekte Lista e vlerave, të cilat mund të aksesohen në gjuhë nga identifikuesi i fushës. Në modulet e programit, është e mundur të krijohet një numër arbitrar i objekteve të tipit ValueList duke thirrur funksionin e sistemit CreateObject.
  • Fotografia është një mjet për të punuar me skedarë grafikë. Kur shtohen fusha të llojit "Picture" në format e dialogut dhe tabelat, sistemi krijon automatikisht objekte të figurës, të cilat mund të aksesohen në gjuhë nga identifikuesi i fushës. Në modulet e programit është e mundur të krijohet një numër arbitrar i objekteve të llojit Picture duke thirrur funksionin e sistemit CreateObject.
  • Periodike - një mjet për të punuar me detajet periodike të drejtorisë dhe konstantat periodike. Në modulet e programit, është e mundur të krijohet një numër arbitrar i objekteve të tipit Periodic duke thirrur funksionin e sistemit CreateObject.
  • FS është një mjet për të punuar me skedarët e diskut direkt nga gjuha e integruar e sistemit 1C: Enterprise. Në modulet e programit, është e mundur të krijohet një numër arbitrar i objekteve të tipit FS duke thirrur funksionin e sistemit CreateObject. Për më tepër, në kontekstin global të paracaktuar, ekziston një objekt i krijuar tashmë i këtij lloji me emrin FS (emri i objektit përkon me emrin e llojit të të dhënave agregate).
  • XBase është një mjet për të punuar me skedarët e bazës së të dhënave të formatit DBF direkt nga gjuha e integruar e sistemit 1C: Enterprise. Në modulet e programit, është e mundur të krijohet një numër arbitrar i objekteve të tipit XBase duke thirrur funksionin e sistemit CreateObject.
Llojet e mëposhtme të të dhënave janë të disponueshme vetëm me komponentin e Kontabilitetit:
  • Grafiku i llogarive është një lloj i të dhënave të shërbimit. Ai synon të identifikojë Grafikun e Llogarive të krijuar në metadata. Përdoret kryesisht për të kaluar komponentin e Kontabilitetit si parametër në procedura dhe funksione të ndryshme dhe për të zgjedhur një skemë llogarish në forma. Lloji i vlerës së "Grafikut të Llogarive" nuk mbështet asnjë të dhënë në bazën e informacionit, dhe lista e vlerave të mundshme të këtij lloji të të dhënave përcaktohet nga grafikët e llogarive të krijuara në konfigurim. Vlerat e tipit “Trafik Llogarish” mund të veprojnë si detaje të një dialogu formulari, si detaje dokumentesh, libra referimi etj. Për të marrë një vlerë të këtij lloji të të dhënave, përdoret atributi global Charts of Accounts, i cili nga ana e tij ka një grup atributesh të llojit "Skema e llogarive" që korrespondon me grafikët e llogarive të disponueshme në konfigurimin . Përveç kësaj, atributi global Charts of Accounts ka metoda për kalimin e të gjitha skemave ekzistuese të llogarive.
  • ViewSubConto është një lloj të dhënash shërbimi. Ai synon të identifikojë Pamjen Subconto të krijuar në metadata. Përdoret kryesisht për të kaluar komponentin e Kontabilitetit si parametër në procedura dhe funksione të ndryshme dhe për të zgjedhur llojin e nënllogarisë në forma. Lista e vlerave të mundshme për këtë lloj të dhënash përcaktohet nga llojet e nënkontove të krijuara në konfigurim. Vlerat e tipit "Subconto Type" mund të veprojnë si detaje të një dialogu formulari, si detaje të dokumenteve, drejtorive, etj. Për të marrë një vlerë të këtij lloji, përdoret atributi global TypesSubConto, i cili nga ana tjetër ka një grup të atributet e tipit "ViewSubConto" që korrespondojnë me llojet e disponueshme të subconto. Për më tepër, atributi global Subconto Views ka metoda për të përshkuar të gjitha pamjet ekzistuese të subconto. Operacioni është një mjet për manipulimin e të dhënave nga transaksionet e kontabilitetit dhe postimet e krijuara nga një dokument nga gjuha e integruar. Meqenëse transaksionet në sistemin 1C: Enterprise i përkasin operacioneve, si operacionet ashtu edhe transaksionet menaxhohen nga objekti "Operacioni".
  • AccountingItogi është një mjet për organizimin e aksesit në rezultatet e kontabilitetit në seksione të ndryshme, për periudha të ndryshme dhe me shkallë të ndryshme detajesh. Nëse sistemi 1C: Enterprise ka komponentin e Kontabilitetit, sistemi zbaton automatikisht një mekanizëm të veçantë për të punuar me rezultatet e kontabilitetit. Ky mekanizëm siguron ruajtjen, rillogaritjen dinamike të rezultateve të kontabilitetit dhe marrjen e tyre duke përdorur gjuhën e integruar. Sistemi për ruajtjen e rezultateve të kontabilitetit mbështetet nga sistemi 1C: Enterprise automatikisht bazuar në grafikët ekzistues të llogarive. Kur redaktoni grafikët e llogarive - në konfigurues ose kur punoni me sistemin 1C: Enterprise - një numër pronash mund të vendosen për llogarinë që ndikojnë në organizimin e ruajtjes së rezultateve të kontabilitetit: këto janë shenja të ruajtjes së monedhës dhe kontabilitetit sasior, si si dhe përfshirja e kontabilitetit analitik për nënllogaritjet. Ndryshimet në rezultatet e kontabilitetit mund të bëhen vetëm duke postuar transaksione kontabël.
Çdo lloj i të dhënave agregate zakonisht ka një grup atributesh dhe metodash. Atributet kanë veti të ngjashme me variablat, domethënë ato mund të caktohen ose të lexohen vlerat e tyre. Metodat janë ato veprime që mund të kryejë një lloj i të dhënave agregate. Metodat mund ose nuk mund të kenë një vlerë kthyese. Nëse një metodë ka një vlerë kthyese, atëherë ajo mund të vendoset në anën e djathtë të operatorit të caktimit, në shprehje, në përshkrimin e parametrave aktualë të metodave, procedurave ose funksioneve të tjera të quajtura.

Një sekuencë tipike e punës me një objekt të një lloji të të dhënave agregate është si më poshtë:

  1. Duke përdorur funksionin CreateObject, krijohet një objekt i një lloji të të dhënave agregate dhe një referencë për të i caktohet një ndryshoreje;
  2. Objekti është i pozicionuar në elementin e dëshiruar të të dhënave;
  3. Manipulime të ndryshme kryhen me një objekt të një lloji të dhënash agregate përmes thirrjeve të metodës dhe aksesit në atributet e tij.
  4. Nëse një objekt i tipit të të dhënave agregate nuk nevojitet më, ai mund të shkëputet nga ndryshorja duke e ricaktuar variablin në një vlerë të llojit bazë (për shembull, numri 0). Nuk është e nevojshme të shkëputni një objekt.
Shembull: // Krijo një objekt Cotr = CreateObject(“Directory.Employees”); // Poziciononi objektin e krijuar me emrin Sotr.FindByName(“Petrov”); If Employee.Selected()=1 Pastaj Report(“Petrov”+Linja(Punësimi.Paga)); Përndryshe Raporti (“Petrov nuk u gjet”); fundNëse;

Për të kthyer një vlerë nga një lloj bazë në tjetrin, përdorni vargun (<Значение>), numri (<Значение>), Data e (<Значение>).

Simbolet

Karaktere të veçanta të përdorura në tekstin burimor

// Një koment fillon me dy prerje. Një koment konsiderohet të jetë i gjithë teksti nga shenja "//" deri në fund të rreshtit aktual.
| Një shirit vertikal në fillim të një rreshti përdoret vetëm në konstantet e vargut dhe do të thotë se kjo linjë është një vazhdim i asaj të mëparshme (ndërprerja e linjës), (shih "Konstantat e vargut").
~ Etiketa e operatorit fillon me një tildë.
: Një dy pika përfundon një etiketë operatori.
; Pikëpresja është një ndarës i deklaratave.
() Lista e parametrave të metodave, procedurave dhe funksioneve është e mbyllur në kllapa.
Dimensionet e vargjeve janë të mbyllura në kllapa katrore.
, Një presje ndan parametrat në listat e parametrave të metodave, procedurave dhe funksioneve.
" " Konstantet e vargut janë të mbyllura në thonjëza të dyfishta.
" " Konstantet e datës janë të mbyllura në thonjëza të vetme.
. Pika dhjetore në konstante numerike. Një ndarës i përdorur në deklaratat e tipit të të dhënave agregate.
+ Simboli plus paraqet veprimin e mbledhjes.
- Simboli minus tregon një operacion zbritjeje.
* Simboli i yllit paraqet veprimin e shumëzimit.
/ Simboli i pjerrët paraqet operacionin e ndarjes.
> Kllapa e këndit të drejtë tregon operatorin logjik "më i madh se".
>= Operacioni logjik "më i madh ose i barabartë me".
< Kllapa e këndit të majtë tregon veprimin logjik më pak se.
<= Operacioni logjik "më pak ose i barabartë me".
= Shenja e barabartë tregon caktimin ose operacioni logjik "e barabartë".
<> Dy kllapa këndore tregojnë operatorin logjik "jo i barabartë".

Deklaratat e kontrollit

Për të kontrolluar logjikën e ekzekutimit të programit, përdoren shprehjet logjike dhe deklaratat e kontrollit. Një shprehje Boolean shkruhet duke përdorur simbole krahasimi = (e barabartë),<>(jo e barabartë), > (më e madhe se),< (меньше), <= (меньше либо равно), >= (më e madhe ose e barabartë), në të cilin rast krahasimi bëhet vetëm mbi vlerat e të njëjtave lloje (d.m.th., nuk mund të krahasoni, për shembull, një numër dhe një varg). Nga disa krahasime, mund të ndërtoni një kusht më kompleks duke përdorur operatorët Boolean "dhe", "ose", "jo". Rendi i krahasimeve mund të përcaktohet duke përdorur kllapa.

Operatori i degës

Nëse<Логическое_выражение>Pastaj

Përndryshe Nëse<Логическое_выражение>Pastaj

Përndryshe

fundNëse;

Ciklet

Mirupafshim<Логическое_выражение>Cikli ... [Aborto] ... [Vazhdo] ... Fundi i ciklit; Për<Имя_переменной> = <Выражение1>Nga<Выражение2>Cikli ... [Aborto] ... [Vazhdo] ... Fundi i ciklit;

Rritja e numëruesit çdo herë që ekzekutohet cikli është 1. Kushti i ekzekutimit të ciklit kontrollohet gjithmonë i pari, përpara se të ekzekutohet cikli.

Gabim gjatë përpunimit

Përpjekje... [Përjashtim]...EndTry;

Puna me transaksione

Transaksionet përdoren për të kryer operacione afatgjata dhe kritike për funksionimin e sistemit. Në disa raste, vetë sistemi fillon transaksionin dhe nuk ka nevojë për ta përshkruar atë në mënyrë specifike. Për shembull, kjo ndodh kur postoni dokumente: meqenëse disa përdorues mund të punojnë në program në të njëjtën kohë, kur regjistroni një dokument (për shembull, shitja e mallrave nga një depo), situata e postimit "të njëkohshëm" të dy dokumenteve është e papranueshme - gjithsesi, njëra prej tyre duhet të postohet më herët se ndryshe (përndryshe mund të shesësh të njëjtin produkt dy herë!). Prandaj, sistemi e poston dokumentin në modalitetin e transaksionit - baza e të dhënave bëhet e paarritshme për regjistrim nga përdoruesit e tjerë. Natyrisht, me një numër të madh përdoruesish që futin në mënyrë aktive të dhëna në program, funksionimi i sistemit ngadalësohet. Një zgjidhje për këtë problem mund të jetë instalimi i versionit për SQL, në të cilin rast procedura e regjistrimit kryhet në një kompjuter të veçantë (server i bazës së të dhënave) duke përdorur MS SQL Server 7.0.

Në raste të tjera, filloni dhe kryeni transaksionin duke përdorur funksionet e mëposhtme:

StartTransaction(); ... [CancelTransaction();] ...CommitTransaction();

Anulimi i transaksionit përdoret nëse zbulohet ndonjë situatë e pasaktë. Në këtë rast, të gjitha ndryshimet e bëra në bazat e të dhënave që nga fillimi i transaksionit hidhen poshtë. Për të kryer ndryshime, duhet të ekzekutoni funksionin CommitTransaction().

Puna me objektin "Lista e vlerave".

Objekti "Lista e vlerave" përdoret për të krijuar lista dinamike (jo të ruajtura në bazën e të dhënave), të cilat mund të shfaqen në forma dialogu (elementi "Lista" dhe "Kutia e kombinuar") për zgjedhjen e një ose më shumë vlerave nga listë. Lista krijohet duke përdorur funksionin CreateObject ("Lista e vlerave"), ose vizualisht duke shtuar elementet "Lista" ose "Kutia e kombinuar" në formular.

Artikulli i listës përmban tre fusha - vlerë, përfaqësim dhe flamur. Vlera mund të jetë e çdo lloji, por paraqitja është gjithmonë e tipit String. Formulari i dialogut shfaq pamjen (nëse një është specifikuar). Flamuri do të thotë nëse një vlerë e caktuar është e shënuar apo jo.

Funksionet kryesore të punës me një listë janë si më poshtë:

  • Shto Vlera(<Знач>,<Строка>)
  • GjejVlerën(<Знач>)
  • GetValue(<Позиция>,<Перем>)
  • Marr(<Строка>)
  • RemoveValue(<Позиция>,<Колич>)
  • Fshi gjithçka ()
  • Madhësia e listës ()
  • Rendit(<Направление>)
  • SortByView(<Направление>)
  • i takon (<Знач>)
  • Shenjë (<Позиция>,<Отметка >)
  • FromStringWithDelimiters(<Строка>)
  • INStringWithDelimiters()

Puna me objektin "Tabela e vlerave".

Objekti "Tabela e Vlerave" përdoret për të krijuar vargje dinamike (të pa ruajtura në bazën e të dhënave), të cilat mund të shfaqen në forma dialogu (elementi "Tabela e vlerave"). Një tabelë vlerash krijohet duke përdorur funksionin CreateObject ("Tabela e vlerave"), ose vizualisht duke shtuar elemente "Tabela e vlerave" në formë. Shembull. T=CreateObject("Tabela e vlerave") // Përcaktoni identifikuesit dhe parametrat e kolonave T.NewColumn("Produkti", "Linja", 30, "Emri i produktit", 20); T.NewColumn("Çmimi", "Numri", 10, 2, "Çmimi", 10); T.NewColumn("Sasia", "Numri", 10, 3, "Numri", 10); T.NewColumn("Sum", "Number", 15, 3, "Sum", 10); // Krijo një linjë të re T.NewString(); T.Produkt = “Djathë”; T.Çmimi= 50; T.Sasia= 10; T.Sasia= T.Çmimi* T.Sasia;

Funksionet kryesore të punës me tabelën janë si më poshtë:

  • kolona e re(<Идентификатор>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>, <Формат>,<Положение>)
  • Linja e re ()
  • Fshi Rreshtin (<НомерСтроки>)
  • Fshi rreshtat ()
  • GetStringByNumber(<НомерСтроки>)
  • GetValue(<НомерСтроки>,<Колонка>) <Колонка>- ky është ose një numër kolone ose një identifikues kolone
  • GjejVlerën(<Знач>,<Строка>,<Колонка>) <Строка>– identifikuesi i variablit në të cilin kthehet numri i rreshtit të gjetur,<Колонка>– identifikuesi i variablit në të cilin kthehet kolona e vargut të gjetur.
  • SelectRows() – hapni një përzgjedhje rreshtash nga tabela
  • GetLine () - merrni rreshtin tjetër nga përzgjedhja
  • Rendit(<Колонки>) <Колонки>është një varg që përmban një listë identifikuesish ose numrash kolonash, të ndarë me presje, me anë të të cilit renditen rreshtat e tabelës së vlerave
  • Palos (<ГрупКолонки>,<СумКолонки>) <ГрупКолонки>- kjo është një rresht që përmban një listë të identifikuesve ose numrave të kolonave, të ndara me presje, me të cilën grupohen rreshtat e tabelës së vlerave (d.m.th., nëse ka disa rreshta me të njëjtat vlera në kolonat e grupuara, atëherë si rezultat i palosjes do të ketë një rresht të tillë).<СумКолонки>është një rresht që përmban një listë të identifikuesve ose numrave të kolonave, të ndara me presje, në të cilën përmblidhen vlerat e rreshtave të tabelës së vlerave (d.m.th., nëse grupohen disa rreshta, vlerat e kolonave të përmbledhura do të shtohet).

Nisja e aplikacioneve të jashtme nga 1C.

Për të nisur një aplikacion të jashtëm, mund të përdorni funksionin LaunchApplication(). Ky funksion përdor mjetet OLE-Automation dhe ju lejon të përdorni serverë automatizimi në aplikacionet 1C. Një shembull i vogël i integrimit midis 1C dhe Excel është paraqitur në Listimin 37.

Listimi 37. Nisja e një aplikacioni të jashtëm nga programi 1C

Dritarja = CreateObject ("Excel.Application"); Dritarja.E dukshme = 1; // bëje dritaren të dukshme Window.Caption = “Raporto”; // vendos emrin e dritares Window.Workbooks.Add(); // krijoni një libër të ri pune për H=1 Nga 10 Cikli Qeliza = Dritarja.Qelizat(H,1); Qeliza.Vlera = N; Cikli i Fundit;

Adresa e përhershme e kësaj faqeje:

Për të gjithë ata që duan të futen në programim, duam t'u shpjegojmë disa gjëra të thjeshta që nuk përmenden në të gjitha tekstet e programimit, por ata që duan të zotërojnë programimin në gjuhën 1C nga e para, duhet të dinë për këtë.

1. Një gjuhë programimi është, para së gjithash, një gjuhë.

Para se të filloni të mësoni një gjuhë, përgatituni mendërisht për faktin se ky proces nuk është i shpejtë. Kështu që ju mund të imagjinoni në mënyrë specifike se çfarë është të mësuarit e një gjuhe programimi - është pothuajse e njëjtë me mësimin e një gjuhe të huaj. Të gjithë në shkollë studiojnë një gjuhë të huaj dhe të gjithë e kuptojnë mirë; për të ditur një gjuhë nuk mjafton thjesht të mësosh përkthimin e fjalëve nga një gjuhë e huaj në një gjuhë amtare në një fjalor. Për shembull, shprehja "Unë di anglisht" mund të thuhet nga një person që është në gjendje: të lexojë një tekst në anglisht, të përkthejë, të hartojë një fjali pa gabime, të shprehet me gojë. Përkthimi i fjalëve të huaja pa aftësinë për të kompozuar saktë një fjali (lexoni sintaksën e një gjuhe programimi) sigurisht që nuk do të thotë njohje e një gjuhe të huaj. Prandaj, mësimi 1 - trajtojeni mësimin e një gjuhe programimi në të njëjtën mënyrë që do ta trajtonit mësimin e një gjuhe të huaj me synimin për ta zotëruar plotësisht atë.

2. Praktikoni.

Me siguri keni dëgjuar se si disa njerëz që e njohin mirë një gjuhë të huaj e harruan gradualisht atë pa praktikuar përdorimin e saj. Pasi të keni studiuar bazat e programimit në 1C, praktikoni çdo ditë në kryerjen e detyrave të thjeshta në mënyrë që të mos humbni njohuritë e marra më herët dhe gradualisht të merrni përsipër detyra më komplekse. Përmirësoni aftësitë tuaja.

Çdo biznes lëviz më mirë nëse ka motivim.Për ju në të ardhmen, aftësitë e programimit do të thotë një shpërblim monetar, një punë e mirë, një ngritje e lehtë sociale, etj. Nuk është sekret që produkti softuer 1C Enterprise është shumë i popullarizuar në hapësirën post-sovjetike. Nga dhjetë kompanitë, tetë përdorin programin 1C për të regjistruar aktivitetet e tyre të biznesit. Prandaj, ata kanë nevojë për një administrator ose programues 1C i cili do të mirëmbajë dhe modifikojë programin. Natyrisht, një treg i tillë ka nevojë për specialistë 1C. Ndonjëherë kompanitë janë të gatshme të punësojnë një punonjës jo shumë të kualifikuar me aftësi programuese për një pagë të mirë me kushtin e vetë-përmirësimit. Dhe edhe nëse nuk dëshironi të punoni për një kompani tregtare ose ekskluzivitet, një programues i mirë i kualifikuar do të jetë në gjendje të gjejë punë në shkëmbime të pavarura ose të kryejë projekte me porosi. Në përgjithësi, një programues 1C nuk do të mbetet pa punë.

Me një pjesë hyrëse në bazat e programimit janë bërë. Pjesa tjetër e materialit do t'i kushtohet zotërimit të bazave të kodit të gjuhës 1C. Ndoshta disa pjesë do të përshkruhen shumë shkurt, por qëllimi i këtij materiali nuk është të zhytë plotësisht lexuesin në sintaksën e gjuhës, por përkundrazi të njohë fillimisht specialistët me arkitekturën e gjuhës 1C për të formuar një skelet të caktuar ( bazë) në kokën e përdoruesit mbi të cilën do të varen të gjitha njohuritë në të ardhmen.

Artikujt më të mirë mbi këtë temë