Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows Phone
  • Tipovi podataka u 1c preduzeću. Korištenje definiranih tipova

Tipovi podataka u 1c preduzeću. Korištenje definiranih tipova

Tipovi podataka u 1C: Enterprise 8.x

Prije nego što uđemo u ugrađene jezičke konstrukcije, moramo se upoznati sa osnovnim tipovima podataka. na sreću,:

Početnici u učenju 1C platforme ponekad se zbune oko definicije tipova podataka i bilo kakvih jezičkih nijansi koje se pojave. Ovaj prvi članak je uvodni i posvećen je primitivnim tipovima podataka 1C, nema ih toliko.

Broj. Brojevi u 1C znače i cjelobrojne i vrijednosti s pomičnim zarezom. Maksimalna dužina riječi za vrijednost tipa "broj" može biti 32 znaka, uključujući decimalni zarez. Takođe treba imati na umu da se ograničenje od 32 znaka odnosi na brojeve koji će biti upisani u bazu podataka. Moguće je deklarisati varijablu i dodijeliti joj vrijednost veću od 32 znaka. Za numeričke vrijednosti koje su pohranjene u memoriji, ovo ograničenje se ne primjenjuje. Nakon deklarisanja varijable tipa "Number", njena vrijednost će biti 0.

Linija. Kao iu svakom drugom programskom jeziku, 1C implementira sve potrebne funkcije za manipulaciju stringovima. Vrijednosti ovog tipa su predstavljene u Unicode-u. Dužina varijabli tipa string nije ograničena.

Datum. Osim samog datuma, vrijednosti ovog tipa sadrže i vrijeme. Vrijeme se odnosi na sate, minute i sekunde. Odmah nakon inicijalizacije varijable tipa "Datum", biće joj dodeljena vrednost (datum) "01. januar 0001 00 sati 00 minuta 00 sekundi". Ovo ponekad smeta, ali vremenom se naviknete.

Boolean. Ovo je razumljivo da varijable ovog tipa mogu imati samo dvije vrijednosti: Tačno, Netačno.

Nedefinisano. Vrijednosti tipa "nedefinirano" se koriste kada trebate navesti praznu vrijednost koja ne pripada nijednom drugom tipu podataka. Na primjer, trebate deklarirati varijablu koja će se tada negdje koristiti. Možete mu dodijeliti vrijednost poput 0 ili "" (to jest, prazan niz), ali na taj način odmah postavljamo odgovarajući tip za njega (broj ili string). Ali što ako kasnija instalacija jednog od ovih tipova može ometati? U takvim slučajevima možete koristiti vrijednost tipa "nedefinirano". Također je vrijedno napomenuti da mnoge funkcije ugrađenog jezika, u slučaju neuspješnog izvršenja, kao rezultat vraćaju vrijednost ovog tipa. Prilikom opisivanja njegovih funkcija preporučuje se pridržavanje istog pravila.

Null. Opšte značenje Null je gotovo isto kao i "nedefinirano". Vrijednosti ovog tipa se koriste za označavanje vrijednosti koja nedostaje u bazi podataka. Najčešće možete dobiti vrijednosti ove vrste koristeći jezik upita. Na primjer, upit koji koristi konkatenaciju tablice. Pretpostavimo da jedna od tabela ne sadrži vrijednost koja zadovoljava uvjet. U ovom slučaju, vrijednost koja nedostaje bit će zamijenjena nultom vrijednošću.

Moguće je naići na vrijednost tipa Null ne samo pri radu sa upitima. Na primjer, vrijednost Null prihvaća atribute koje objekt ne koristi. Zamislimo da imamo hijerarhijski direktorij sa atributom "količina". Prilikom kreiranja ovog atributa, svojstvo "Usage" je postavljeno na vrijednost "For the element". Ako pokušate da se pozovete na ovaj atribut za element rječnika tipa "grupa", tada će njegova vrijednost biti samo Null.

Tip. Ovaj tip se koristi za određivanje dostupnih tipova. Zvuči malo zbunjujuće? Ok, pokušat ću to objasniti na primjeru. Zamislite da ste suočeni sa zadatkom poređenja tipova dvije varijable. U kodu će izgledati otprilike ovako:

Varijabla1 = 123; // Pošto smo dodijelili broj, tip varijable će biti "number".
Varijabla2 = "string"; // Ovdje smo dodijelili string, tako da će tip varijable biti string.

Sada morate biti sigurni da je 100% da je varijabla1 numerička. Tu nam dobro dođe Type "type" (zvuči smiješno), kao i nekoliko pomoćnih funkcija. Nećemo još ulaziti u detalje. Samo pogledajte i pokušajte razumjeti primjer u nastavku:

Ako (TypeZnch (Variable1) = Tip ("Broj")) Onda

Izvještaj ("Varijabla1 je numerička!");

Inače

Izvještaj ("Varijabla1 NIJE numerička :(");

EndIf;

U ovom malom komadu koda prvo dobijam tip varijable koristeći funkciju "TypeVal ()". Ova funkcija uzima kao parametar vrijednost čiji tip želite da dobijete. U našem slučaju, ovo je "Varijabla1". Zatim trebam dobiti vrijednost tipa "Type" koja karakterizira tip "Number". Za to, ugrađeni jezik pruža funkciju "Type ()". Potrebno je samo jedan argument, string reprezentacija imena tipa. Pošto moramo da uporedimo sa tipom "Number", parametar za funkciju će biti "Broj".

Hvala vam na pomoći pri pisanju ovog članka Igora Antonova.

Tip sistem je poseban sistem kojim se organizuju podaci koje koriste aplikativna rješenja. Sistem tipova vam omogućava da predstavite informacije u stvarnom svijetu u terminima "razumljivim" za 1C: Enterprise 8.

Sistem tipova pruža široke mogućnosti kako za direktno opisivanje poslovne logike primijenjenih rješenja tako i za obavljanje posrednih zadataka obrade podataka.

Sistem tipova je opisan u pomoćniku za sintaksu, pomoći na mreži i dokumentaciji.

Glavna karakteristika sistema tipova je da postoje tipovi koji postoje u svakom aplikativnom rješenju. Sami ovi tipovi su definisani na nivou platforme i uvek su prisutni, bez obzira na radnje programera. Uz njih, u određenom aplikativnom rješenju, mogu postojati različite vrste podataka svojstvene ovom specifičnom aplikativnom rješenju. Za takve tipove podataka na nivou platforme definisana su samo opšta pravila za njihovo kreiranje, šabloni. A konkretne tipove podataka kreira platforma na osnovu toga kako programer formira i modifikuje strukturu primenjenog rešenja.

Tipovi podataka definirani na nivou platforme

Skup tipova na kojima mogu raditi aplikativna rješenja je prilično raznolik. Omogućava rješavanje kako zadataka obrade podataka, tako i zadataka predstavljanja ovih podataka korisniku i interaktivnog rada s njima. Postoji nekoliko glavnih kategorija tipova podataka.

Primitivni tipovi

Primitivni tipovi podataka su tipovi kao što su Linija, Broj, datum, Boolean ostalo. Ovi tipovi nisu nešto posebno za 1C: Enterprise 8. Takvi tipovi podataka po pravilu postoje iu drugim softverskim sistemima.

Vrijednosti primitivnih tipova su jednostavne, nedjeljive vrijednosti koje se ne mogu razlikovati od njihovih pojedinačnih komponenti. Na primjer, vrijednosti poput Broj može biti 1, 8, 15, itd. Da biste kreirali vrijednost primitivnog tipa, morate je navesti u tekstu programa doslovno- simbolički identifikator vrijednosti.

Generičke kolekcije vrijednosti

Takođe, postoje složeniji tipovi podataka. Na primjer, platforma podržava brojne tipove koji su generičke kolekcije vrijednosti: Niz, Struktura, Lista vrijednosti ostalo.

Uobičajeni tipovi

Osim toga, platforma implementira specifične tipove podataka koji implementiraju jednu ili drugu funkcionalnost primijenjenih rješenja: Tekstualni dokument, TabularDocument, StorageValues, Query Builder ostalo.

Uobičajeni tipovi se također nazivaju zajedničkih sadržaja... Vrijednosti ovih tipova, za razliku od vrijednosti primitivnih tipova, predstavljaju kolekciju vrijednosti pojedinačnih svojstava objekta. Stoga se zovu instance objekata.

Instance objekta se kreiraju pomoću posebnog ugrađenog operatora jezika - Novo.

Tipovi interfejsa

Tipovi interfejsa omogućavaju organizovanje vizuelne interakcije primenjenog rešenja sa korisnikom. U osnovi, to su tipovi koji se odnose na rad oblika i njihovih elemenata.

Tipovi podataka generirani u aplikacijskom rješenju

Međutim, pored tipova podataka koji su definirani na razini platforme, specifično aplikacijsko rješenje može koristiti jedinstvene tipove podataka koji postoje samo u ovom specifičnom aplikacijskom rješenju. Štaviše, platforma će u potpunosti podržavati rad sa ovim tipovima podataka na isti način kao i sa tipovima koji su definisani na nivou same platforme.

U pravilu je pojava novih tipova podataka u aplikacijskom rješenju povezana s korištenjem konfiguracijskih objekata aplikacije. Stoga se i ove vrste nazivaju primijenjene vrste ili primijenjeni objekti.

Na nivou platforme podržano je nekoliko klasa (šablona) aplikativnih objekata koji se sami po sebi ne mogu koristiti u određenom aplikativnom rješenju. Na primjer, možete nabrojati klase objekata aplikacije kao što su Imenici, Dokumentacija, Informacioni registri, Grafikoni tipova karakteristika itd.

Za svaku klasu primijenjenih objekata definirana je odgovarajuća osnovna funkcionalnost: tipovi tabela baze podataka koje se moraju kreirati za pohranjivanje podataka, standardni obrasci, objekti standardnog jezika, skupovi prava itd.

Programer, kreirajući aplikativno rješenje, nije u mogućnosti direktno koristiti ove klase, međutim, može dodati novi konfiguracijski objekt svom aplikativnom rješenju, naslijeđujući svu funkcionalnost određene klase:

Na primjer, programer može dodati novu referencu svom aplikacijskom rješenju Nomenklatura Imenici, ili novi dokument Izvještaj o gotovini koji će naslijediti funkcionalnost klase Dokumentacija.

Odmah nakon takvog dodavanja, programeru postaju dostupni novi tipovi podataka, čiji je sastav određen pripadanjem konfiguracijskog objekta jednoj ili drugoj klasi primijenjenih objekata.

Na primjer, nakon kreiranja novog direktorija Nomenklatura, postaju dostupni sljedeći tipovi podataka:

  • DirectoryManager.Nomenclature,
  • ImenikRef.Nomenklatura,
  • ImenikObject.Nomenklatura,
  • DirectorySample.Nomenclature,
  • DirectoryList.Nomenclature.

Sistem tipova opisuje samo opštu "strukturu" ovog tipa, pravila po kojima će se formirati objekti ovog tipa. Konkretno ime tipa, sastav svojstava i metoda objekta ovisit će o tome kako će programer imenovati konfiguracijski objekt i koje će mu, na primjer, atribute, tabelarne sekcije dodati.

Istovremeno, nakon kreiranja novog registra akumulacije SalesCompany, sastav novih tipova podataka će biti drugačiji:

  • Registar akumulacije Menadžer prodaje Kompanije
  • Registar akumulacijeSample.SalesCompanies
  • Registar akumulacijeList.SalesCompanies
  • Registar akumulacijeRecordSetSalesCompanies
  • Registar akumulacijeRecord.SalesCompanies
  • Akumulacija RegisterKeyRecord.SalesCompany.

Treba ponovo napomenuti da ovi tipovi podataka nisu izvorno podržani od strane platforme i postoje samo u specifičnom aplikativnom rješenju.

Još jedna stvar koju treba naglasiti je najlakši način da se pokaže na primjeru.

Recimo da su u primijenjenom rješenju kreirana dva nova direktorija: Nomenklatura i Cijene... Unatoč činjenici da su oba ova objekta naslijedila funkcionalnost odgovarajuće klase Imenici, a za njih je u primijenjenom rješenju kreiran isti skup tipova podataka, tipovi podataka "like" će biti različiti tipovi podataka. Na primjer, ReferenceObject.Nomenclature Tip podataka.

/
Kreiranje i modifikacija objekata metapodataka

Korištenje definiranih tipova

Opseg: upravljana aplikacija, opšta primena.

1. Definisani tipovi imaju za cilj da definišu tipove podataka koji opisuju često korišćene entitete ili se, sa visokim stepenom verovatnoće, mogu promeniti tokom implementacije primenjenog rešenja. Oni vam omogućavaju da ponovo koristite opisani tip ili skup tipova bez specificiranja kompozicije na različitim mjestima konfiguracije (u atributima, svojstvima objekata, formama, itd.).

Pogledajte također članak o ITS-u: "Konfiguracijski objekti - definirani tipovi"

2.1. Definirati jednostavan tip i njegove kvalifikatore koji imaju primijenjeno značenje koje se koristi u različitim atributima, resursima, atributima obrasca, rasporedima itd. u okviru bilo kojeg podsistema ili u cjelokupnom aplikativnom rješenju. Ovo osigurava istu dužinu, tačnost podataka na svim mjestima korištenja i pojednostavljuje doradu u slučaju promjene zahtjeva.
Na primjer:

  • Broj fakture- Red dužine 30. Reguliše format broja računa u raznim dokumentima: Dolazak robe i usluga, WriteBookShopping, Povrat robe od kupca i sl.
  • Adresa dostave- Red, 500. Tekstualni prikaz adrese isporuke u dokumentima Naručite dobavljaču, Adresa za dostavu Prevoznik, u obradi Sales Assistant, u rekvizitima Adresa za dostavu Prevoznik dokument Zahtjev za povrat robe od kupca i sl.

2.2. Definirati kompozitni tip koji se masovno koristi u objektima podsistema ili u cjelokupnom aplikativnom rješenju. Definisani tip garantuje isti sastav (tip) podataka na svim mestima upotrebe, a takođe pojednostavljuje doradu i implementaciju podsistema u konfiguracijama aplikacije.

Na primjer, konfiguracija uključuje podsistem Interakcije, koji je namijenjen za vođenje korespondencije putem e-maila, registraciju poziva i sastanaka. Prilikom implementacije ovog podsistema, programer je donio odluku o sastavu metapodataka objekata koji mogu djelovati kao "interakcioni kontakti" - to su elementi direktorija Pojedinci, Partneri, ContactPartners, i postavite ovaj skup tipova u definirani tip ContactInteractions obezbeđeno u podsistemu. Zauzvrat, definisani tip se masovno koristi u atributima objekata i oblika podsistema (u dokumentima Sastanak, Planirana interakcija- tabelarni dio Učesnici, u dokumentu MessageSMS- tabelarni dio Adresati, u dokumentu Telefonski poziv- rekviziti SubscriberContact, u opštim oblicima Adresar, Odaberite Kontakt- rekviziti Kontakt po predmetu, u parametru izgleda Hijerarhija interakcija dnevnik dokumenata Interakcije itd.) Inače, bez korištenja definiranog tipa ContactInteractions bilo bi potrebno ukloniti objekte podsistema sa podrške i postaviti traženi skup tipova na sva navedena mjesta.

2.3. Prilikom razvoja ugrađenog podsistema - da se nadjača primijenjeni tip, koji će biti dorađen tokom implementacije.
Na primjer, tip podsistema Dobavljači tokom implementacije, može se zamijeniti primijenjenim tipom konfiguracije Izvođači radova.

3. Pogrešno je koristiti definirane tipove za postavljanje "sinonima" za postojeći tip, "zamjenskih" entiteta, za lokalnu (ne masovnu) upotrebu unutar jednog podsistema (konfiguracije) bez potrebe za implementacijom u drugim konfiguracijama, samo za razlozi lakoće modifikacije. To u pravilu ukazuje na grešku u dizajnu ili metodološki neispravan izbor početnog naziva tipa.

Nastavljamo upoznavanje s novom funkcionalnošću 1C: Enterprise, koju smo započeli u prethodnom članku serije. Nakon proučavanja materijala u ovom članku, naučit ćete:

  • Šta su definisani tipovi i kako da ih koristim?
  • Za što se koristi svojstvo konfiguracije Primary Roles?
  • Kako da koristim Form Client Event Handler Helper?
  • Kako i zašto se koristi dumping konfiguracije u XML datoteke?

Primjenjivost

U članku se govori o platformi "1C: Enterprise" verzije 8.3.4.437, ali njeni materijali mogu biti korisni onima koji rade na starijim izdanjima.

Kako olakšati razvoj u "1C: Enterprise 8.3"

Nastavljamo da razmatramo inovacije u platformi 1C: Enterprise 8 koje imaju za cilj olakšavanje konfiguracije.

Definirani tipovi

Novi objekat je dodan platformi 8.3 u grani konfiguracije “General” - Definirani tipovi.

Ovo je poseban konfiguracioni objekat koji je dizajniran da definiše tip podataka koji opisuje često korišćeni entitet ili se, sa visokim stepenom verovatnoće, može promeniti tokom implementacije aplikativnog rešenja.

Na primjer, uzmite u obzir složeni tip koji uključuje vezu do direktorija “Ugovarači” i “Pojedinci”.

I ovaj tip se u nekoj razvijenoj konfiguraciji često koristi kao mjera u registru informacija koji opisuje kontakt informacije, kao atribut u dokumentu „Nalog za gotovinu“ itd.

Tokom implementacije takve konfiguracije, sastav ovog tipa se može promijeniti - mogu mu se dodati novi objekti, a također i obrnuto - mogu se isključiti suvišni tipovi.

Ako umjesto našeg novog "definiranog tipa" koristimo kompozitni tip na svakom mjestu gdje se takav entitet koristi, onda ćemo morati svugdje promijeniti kompoziciju tipova. Dugo je, teško, naporno, postoji prilika da zaboravite na neke rekvizite.

Ako koristite definirani tip, tada će se samo definicija ovog tipa (i programski kod koji obrađuje takva polja) morati promijeniti u procesu finalizacije primijenjenog rješenja.

Svi detalji za koje je definirani tip naveden kao tip bit će automatski promijenjeni.

Evo još jednog primjera korištenja definiranog tipa.

Za neke detalje, postoji standard za kucanje unutar konfiguracije. Na primjer, definiramo količinu kao broj dužine 15 s preciznošću 3, a zbir kao broj dužine 15 s preciznošću 2.

Pretpostavimo da kompanija treba da vodi evidenciju o robi visoke vrijednosti sa velikom preciznošću njihove težine.

U skladu s tim, trebalo je da povećamo tačnost detalja kako bismo uračunali količinu na 4 decimale. Ove promjene se moraju izvršiti istovremeno na svim detaljima dokumenata, registra resursa.

Ovo je jednostavan zadatak, ali dugotrajan i zahtijeva veliku pažnju i upornost programera.

Kada kreirate novi definirani tip, trebate samo navesti njegov tip. Zatim, prilikom kreiranja detalja dokumenata, registra resursa, možete odabrati vezu do kreiranog definisanog tipa.

Ovaj pristup vam omogućava da garantujete isti tip podataka (ista dužina, preciznost, isti sastav za polja složenog tipa, itd.) na svim mestima gde se koristi.

Zatim, ako je potrebno promijeniti tip podataka za sve detalje, ne morate ručno ispravljati svaki atribut posebno, dovoljno je izvršiti promjene na odgovarajućem definiranom tipu.

Tip koji se definiše može se napraviti kompozitnim. Međutim, postoje ograničenja za korištenje ovog konfiguracijskog objekta. Dakle, tip koji se definira ne može biti dio tipa vrijednosti grafikona tipova karakteristika, a također ne može biti dio složenog tipa podataka druge varijable.

Imajte na umu da su u platformi izdanja 8.3.5 mogućnosti korištenja definiranih tipova povećane proširenjem skupa tipova koji mogu biti dio definiranog tipa.

U radu sa definiranim tipom do trenutnih verzija platforme 8.3.10 / 8.3.11 više nisu pravljene promjene.

Svojstvo konfiguracije glavnih uloga

U platformi 8.2, element root konfiguracije imao je svojstvo "Glavna uloga", u kojem je programer definirao ulogu koja će se koristiti ako se u bazi podataka ne kreiraju korisnici.

U platformi 8.3 postalo je moguće specificirati nekoliko uloga koje će se koristiti pri određivanju prava pristupa sa praznom listom korisnika. U skladu s tim, nekretnina je preimenovana u "Glavne uloge".

Kliknite na sliku za povećanje.

Kreiranje prilagođenih obrasca za obradu događaja klijenta

Kada konfiguriše upravljanu aplikaciju, programer mora pažljivo pratiti kontekst izvršavanja programskog koda koristeći odgovarajuće direktive preprocesora.

Pošto je ograničen skup tipova podataka i metoda dostupan na klijentu, programer često treba da kreira klijentsku proceduru iz koje će preneti kontrolu na server.

Platforma 8.3 uvodi čarobnjaka za kreiranje obrasca klijenta za obradu događaja.

Kliknite na sliku za povećanje.

Sada programer ne mora ručno kreirati serversku metodu i naznačiti njen poziv unutar klijentske procedure, već se može u potpunosti koncentrirati na implementaciju primijenjene logike sistema.

Učitavanje konfiguracije u fajlove

Još jedna inovacija platforme 8.3 je mogućnost da se čitava konfiguracija istovari na disk kao skup datoteka određene strukture.

Konfiguracija se uvijek isprazni samo u cijelosti, bez mogućnosti filtriranja neučitanih objekata.

Da biste otpremili konfiguraciju u datoteke, u meniju izaberite stavku Konfiguracija - Prenesi konfiguraciju u datoteke, u otvorenom dijalogu izaberite direktorijum u koji će datoteke biti sačuvane.

Objekti konfiguracije se učitavaju kao skup XML datoteka. Moduli i rasporedi teksta se čuvaju kao TXT datoteke. Slike iz konfiguracije se pohranjuju kao slikovne datoteke (BMP, PNG, itd.). Informacije o pomoći se izbacuju u HTML datoteke.

Kliknite na sliku za povećanje.

Kao što možete vidjeti, rezultirajuće datoteke imaju uobičajene univerzalne formate. Postoji veliki broj različitih softverskih proizvoda za njihovo uređivanje.

Također možete koristiti sisteme kontrole verzija treće strane. Oni vam omogućavaju da pohranite više verzija istog dokumenta, vratite se na ranije verzije ako je potrebno i odredite ko je izvršio promjenu i kada.

Uređene datoteke se mogu ponovo učitati u konfiguraciju koristeći stavku menija Konfiguracija - Učitaj konfiguraciju iz datoteka.

Rad s novom funkcionalnošću učitavanja/istovarivanja je također dostupan pomoću parametara komandne linije LoadConfigFromFiles i DumpConfigToFiles. Na primjer, ovako:

“C: \ Program Files (x86) \ 1cv8 \ 8.3.4.437 \ bin \ 1cv8.exe” DESIGNER / F „X: \ Platform8Demo” / N „Administrator” / DumpConfigToFiles „X: \ 1 \”

Ranije, još na platformi 8.2, postojao je mehanizam za istovar/učitavanje konfiguracijskih datoteka, koji je omogućavao selektivno istovar/učitavanje nekih svojstava konfiguracijskih objekata (moduli, rasporedi i referentne informacije).

Primjećeno je da su po defaultu naredbe “Unload configuration files” i “Load configuration files” isključene iz konfiguratora na platformi 8.3.

Međutim, prilagođavanjem glavnog menija, možete prikazati i koristiti ove komande u meniju.

Novi mehanizam za istovar konfiguracije u datoteke uvijek istovaruje cjelokupne podatke za cijelu konfiguraciju; mogućnost konfiguriranja objekata za istovar nije omogućena, čime se osigurava integritet konfiguracije.

Uobičajeni obrasci i interfejsi se učitavaju u binarnom obliku (interno) i ne mogu se uređivati. Konfiguraciju provajdera također nije moguće uređivati.

Ostali objekti se učitavaju u datoteke univerzalnih formata. U suštini, motor cilja na upravljanu aplikaciju.

Novi mehanizam pruža programeru mogućnost da automatski obradi konfiguraciju pokretanjem konfiguratora u batch modu.

Također, sada konfiguraciju može uređivati ​​vanjski softver koristeći, na primjer, XML format.

Prilikom rasterećenja vrši se dodatna obrada konfiguracije: zaglavljene veze se uklanjaju, neiskorištene informacije se također ne učitavaju (na primjer, pomoć za nepostojeći jezik).

A prilikom učitavanja konfiguracije, provjerava se njen integritet, nije dozvoljeno učitavanje datoteka s nejedinstvenim identifikatorima, objektima metapodataka, netočnim nazivima tipova podataka itd.

Imajte na umu da se od verzije 8.3.7 pojavio novi format za otpremanje koji se zove "hijerarhijski". Stari format postao je poznat kao "linearni". Izbor formata je dostupan u prozoru za izvoz u datoteke:

Od verzije 8.3.11, "hijerarhijski" format je postao jedini dostupan za odabir tokom interaktivnog učitavanja:

Ako ćete koristiti ovu funkcionalnost, preporučujemo:

  • prvo, koristite "hijerarhijski" format za učitavanje;
  • drugo, koristite platformu koja nije niža od verzije 8.3.8+, jer počevši od toga, brzina učitavanja/istovara u XML datoteke je značajno povećana.

U verziji 8.3.10 podržano je djelomično rasterećenje konfiguracije u XML datoteke. Kao rezultat toga, postalo je moguće koristiti dumping XML konfiguracije u sprezi sa Gitom.

- počeli smo raspravljati o tome koje su vrste 1C vrijednosti i konverzije tipa 1C.

Danas ćemo detaljnije govoriti o vrstama 1C konfiguracijskih objekata (tip 1C dokumenta, tip 1C direktorija itd.)

Pošto u programskom kodu radimo sa vrijednostima, povremeno moramo znati njihov tip. Tip 1C je uvijek naznačen u metapodacima za detalje - u imenicima, dokumentima.

Često se koristi rad sa tipovima 1C:

  • Uslovi u programu
    Različite radnje ovisno o vrsti 1C vrijednosti u "Ako ... Onda ..."
  • Ograničenja pri radu u interfejsu
    Zabrana ili dozvola korisniku da unese vrijednosti određenih tipova 1C u polje na obrascu.
  • Određivanje stvarnog parametra funkcije/procedure
    Ako parametar funkcije/procedure može biti bilo kojeg tipa 1C, onda ga morate definirati da biste dobili ispravnu vrijednost.

Tip 1C se može nabaviti:

  • Odredite vrstu stvarne vrijednosti 1C
  • Vrijednosti objekata imaju svojstva koja ukazuju na dozvoljeni 1C tip (na primjer, 1C tipovi dozvoljeni u koloni tablice, u polju na obrascu, u metapodacima) ili metode koje vraćaju ove 1C tipove
  • Iz metapodataka - možete dobiti tip 1C kako je naznačeno u metapodacima u konfiguratoru.

Tipovi 1C mogu se podijeliti u tri tipa:

  • Osnovni tipovi 1C
  • Vrste 1C baza podataka (reference, objekti)
  • Tipovi 1C.

Definicija tipa 1C i poređenje tipova 1C

Možete saznati vrstu 1C vrijednosti pomoću funkcije TypeZnch (Variable).

Da biste razumjeli koji tip 1C je ova funkcija vratila, morate navesti vrstu koja nam je potrebna ("TypeName")

Na primjer, definicija (poređenje) tipa 1C varijable:
IfTypeZnch (Variable) = Type ("TypeName") Zatim

Koje tipove trebam napisati za TypeName?

Osnovni tipovi

Osnovni tipovi 1C - broj, string, datum, boolean.

Na primjer:
Znch = 12;
Ako je TypeZnch (Znch) = Tip ("Broj") Onda
ElseIf Znch = Tip ("String") Zatim
ElseIf Znch = Tip ("Datum") Zatim
ElseIf Znch = Tip ("Boolean") Zatim
EndIf;

Tipovi baza podataka

1C pohranjuje podatke u bazu podataka, ali ne kao zasebne zapise, već kao objekte.

Većina pohranjenih objekata (uključujući: direktorije, dokumente, enumeracije, poslovne procese, zadatke) dostupna je kao objekt (za uređivanje i pisanje) i kao referenca (za čitanje). Pogledajte Reference i objekti za detalje.

Na primjer:
Znch = Directories.Organizations.EmptyRef ();
Ako je TypeZnch (Znch) = Tip ("DirectoryLink.Organizations") Onda
ElseIf Znch = Tip ("DirectoryObject.Organizations") Zatim
ElseIf TypeZnch (Znch) = Tip ("DokumentLink. Dolazak robe") Zatim
ElseIf Znch = Tip ("DocumentObject.Prijem robe") Zatim
EndIf;

Registri mogu biti različitih tipova. Naziv tipa registra je složen:
RegisterTypeAccessType.RegisterName

Vrste 1C registara:

  • Informacije
  • Akumulacija
  • Računovodstvene službe
  • Kalkulacija.

Postoji nekoliko vrsta pristupa registrima. Najčešće korišteni:

  • Record Set
  • Lista
  • Uzorak
  • Snimanje
  • KeyRecords.

Ukupno, primjer:
IfTypeZnch (Znch) = Tip ("InformationRegisterList.RegisterName") Zatim
ElseIf Znch = Tip ("AccumulationRecordRecordSet.RegisterName") Zatim
EndIf;

1C jezik vam omogućava da radite s različitim objektima koji se dinamički kreiraju u programu, na primjer - nizom, listom vrijednosti, tablicom vrijednosti, strukturom ...

Takve vrste 1C označene su njihovim imenom (jednom riječju, bez razmaka). Na primjer:
Ako je TypeZnch (Znch) = Tip ("Niz") Onda
ElseIf Znch = Tip ("ListValues") Zatim
EndIf;

Određivanje vrijednosti referentnog tipa 1C

Rad sa svim objektima baze podataka (priručnici, dokumenti...) odvija se preko linkova. Na primjer, ako želimo da napravimo rekvizite u dokumentu - referentnoj knjizi, tada će njegov tip 1C biti "ReferenceLink.Reference name".

Na primjer:
Vrijednost = Directories.Organizations.EmptyRef ();
Ako Dictionaries.TypeAllRefs (). Sadrži (TypeZnch (Value)) onda
// ovo je referenca
ElseIf Documents.AllLinkType () .Sadrži (ZnchType (Vrijednost)) Zatim
// ovo je dokument
EndIf;

U zahtjevu se tip 1C može provjeriti na dva načina.

Prvi je sličan opisanom, ali naziv tipa 1C ne označava "Link" ili "Objekat", odnosno umjesto "DirectoryLink.Organizations" pišemo "Directory.Organizations"

Na primjer:

Dobijanje dostupnih tipova 1C

Mnogi objekti imaju svojstvo, ValueType, koje sadrži listu 1C tipova:

  • Polje obrasca Fat client
    Elements.FieldName.Value Type
  • Polje na obrascu tankog klijenta (izuzetak: zove se AvailableTypes)
    Elements.Fields.AvailableTypes
  • Kolona tablice vrijednosti, stablo vrijednosti
  • Rekviziti za formu
  • Element selekcije

Kako raditi sa ovom listom tipova 1C u polju Vrsta vrijednosti - pogledajte "Opis tipova" u odjeljku "1C jezik".

Rad sa tipovima 1C atributa u metapodacima konfiguracije

Prilikom dodavanja i uređivanja atributa u konfiguratoru, programer specificira tip(ove) 1C atributa. U programskom kodu na 1C jeziku možete dobiti (saznati) vrstu(e) 1C rekvizita.

Osnovne metode:

  • Pozovite metodu Metadata () za 1C objekat, koja vraća metapodatke određenog objekta, a zatim radi sa listom atributa (i atributima tabelarnog odeljka)
    Dokumenti.Prijem robe.EmptyLink (). Metapodaci (). Rekviziti
  • Koristite globalnu varijablu "Metadata", koja vraća sve metapodatke konfiguracije, a zatim idite na detalje određenog objekta
    Metapodaci.Dokumenti.Dolazna roba.Atributi

Atribut ima svojstvo Type, koje sadrži listu 1C tipova postavljenih u konfiguratoru za ovaj atribut.

Kako raditi s ovom listom tipova 1C - pogledajte "Opis tipova" u odjeljku "1C jezik".

Odredite filter tipa 1C

Za mnoge objekte moguće je navesti filter tipova vrijednosti 1C koji se mogu koristiti, na primjer:

  • Lista vrijednosti (.Dostupne vrijednosti)
  • Polje obrasca upravljanog klijenta (.AvailableTypes)

Kada filter nije dostupan za modifikaciju, moguće je specificirati filter u metodi objekta. Na primjer, stupac tablice (stabla) vrijednosti ima tip vrijednosti i ne možemo ga promijeniti, ali kada dodajete kolonu koristeći Add () metodu, možete navesti listu dostupnih 1C tipova kao drugi parametar .

Da biste naveli listu tipova 1C za filter, koristi se lista tipova 1C, kako raditi s njom - pogledajte "Opis tipova" u odjeljku "1C jezik".

Top srodni članci