Kuidas kontrollida dokumendi või kataloogi väärtuse tüüpi? 1c, kuidas määrata väärtuse tüüpi.

1C võimaldab teil raamatupidamist oluliselt lihtsustada või lihtsalt hallata mis tahes organisatsiooni, olgu see siis väike pood või suurettevõte. Programm on suur andmebaasihaldussüsteem. Et selles kõiges mitte segadusse sattuda, peate suutma teha erinevaid lihtsaid toiminguid ja mõistma olemust. Järgmisena saate aru, kuidas kontrollida 1C-s päringus sisalduva väärtuse tüüpi, samuti seda, mis need üldiselt on, ning kuidas neid eristada.

Väärtuste tüübid

1C: ettevõte on lisanud uutesse versioonidesse (platvorm 8.2) erifunktsiooni. Selle abil saate andmesüsteemi mis tahes nimedele või elementidele lisada mis tahes eriparameetreid. Seda tehti selleks, et süsteemi oleks lihtsam redigeerida ja uusi elemente lisada. Seda funktsiooni nimetatakse väärtuse tüübiks.

Tegelikult on see üks põhimõisteid, mida enamik programmeerimiskeeli sisaldab. Selle abil saate klassifitseerida erinevaid andmeid. Näiteks: kuupäevad, numbrid, stringid, lingid. Need on vaid põhiklassifikatsioonid. Neid võib olla palju rohkem. Oletame, et kui sisestate oma süsteemi linnade kohta teavet, saate kasutada järgmist: kontinent, riik, piirkond jne.

Läbivaatus

Konkreetset välja saate kontrollida päringukeele abil. Või õigemini selle funktsioonid: TYPE VALUE. See tähendab, et kui tahame teada saada, millist tüüpi teavet huvipakkuv lahter sisaldab, peame kasutama käsku.

VÄÄRTUS TÜÜP(Väärtus) = TÜÜP(string)

Ülaltoodud näites määratlesime käsu abil lihtsaima tüübi. Teine näide päringu kinnitamisest:

Dokumentatsioon

Teabebaasi täiustamiseks saavad kasutajad algsetega hakkama saada üsna palju. Siin on mõned neist.

  • DocumentLink. Seda kasutatakse viidete mugavaks salvestamiseks erinevatele objektidele süsteemi teistes osades.
  • DocumentObject – dokumentide redigeerimine.
  • DocumentSelection – objektide sorteerimine andmebaasist.

Lisaks on mis tahes andmeid iseloomustavad eriterminid:

  • vorm;
  • rida;
  • tõeväärtus;
  • number;
  • kuupäev;
  • massiiv;
  • märkeruut;
  • pilt.

Need on vaid mõned neist. Iga objekt saab olla ainult midagi sellest loendist. Boolean on spetsiaalne parameeter, millel on kaks väärtust: tõene või väär. Samuti on olemas spetsiaalsed sildid, mis võimaldavad teil päringut kohandada: millal, kus, kuidas, muidu jne. Need määravad programmi käitumisalgoritmi. 1C eristab asjaolu, et neid sõnu saab siin, nagu ka kõike muud, sisestada vene keeles.

Oluline on mõista, et algajad ja mitteprofessionaalid tajuvad seda kõike Hiina kirjaoskusena. Et mõista, millest me räägime, ja 1C tõhusalt kasutada, peate teadma programmeerimise põhitõdesid. Üldiselt on 1C programmis päringu tüübi kontrollimine teiste toimingutega võrreldes üsna lihtne.

— hakkasime arutama, mis on 1C väärtustüübid ja 1C tüüpide teisendamist.

Täna räägime üksikasjalikumalt 1C konfiguratsiooniobjektide tüüpidest (1C dokumenditüüp, 1C kataloogi tüüp jne)

Kuna programmikoodis töötame väärtustega, peame perioodiliselt teadma nende tüüpi. Tüüp 1C on alati näidatud detailide metaandmetes - kataloogides ja dokumentides.

1C tüüpidega töötamist kasutatakse sageli:

  • Tingimused programmis
    Erinevad toimingud sõltuvalt 1C väärtuse tüübist konstruktsioonis "Kui ... Siis ...".
  • Piirangud liideses töötamisel
    Kasutajal teatud tüüpi 1C väärtuste sisestamise keelamine või lubamine vormi väljale.
  • Tegeliku funktsiooni/protseduuri parameetri määramine
    Kui funktsiooni/protseduuri parameeter võib olla mis tahes 1C tüüpi, peate selle väärtuse õigeks saamiseks defineerima.

Tüübi 1C saab hankida:

  • Määrake tegeliku väärtuse 1C tüüp
  • Väärtusobjektidel on atribuudid, mis näitavad lubatud 1C tüüpi (näiteks lubatud 1C tüübid tabeli veerus, vormi väljal, metaandmetes) või meetodeid, mis tagastavad need 1C tüübid
  • Metaandmetest - saate 1C tüübi, nagu see on konfiguraatoris metaandmetes määratud.

Tüübid 1C võib jagada kolme tüüpi:

  • Põhitüübid 1C
  • 1C andmebaaside tüübid (viide, objektid)
  • Tüübid 1C.

1C tüübi määratlus ja 1C tüüpide võrdlus

Väärtuse 1C tüübi saate teada funktsiooni TypeValue(Variable) abil

Et mõista, mis tüüpi 1C see funktsioon tagastas, peame määrama vajaliku tüübi ("TypeName")

Näiteks tüübi 1C muutuja määratlus (võrdlus):
Kui TypeValue(Variable) = Type("TypeName") Siis

Milliseid tüüpe peaksin kirjutama kui TypeName?

Põhitüübid

1C põhitüübid – number, string, kuupäev, tõeväärtus.

Näiteks:
Znch = 12;
Kui TüüpVäärtus(Väärtus) = Tüüp("Arv") Siis
ElseIf Väärtus = Type("String") Siis
ElseIf Väärtus = Tüüp("Kuupäev") Siis
ElseIf Väärtus = Type("Tõveväärtus") Siis
endIf;

Andmebaasi tüübid

1C salvestab andmed andmebaasi, kuid mitte üksikute kirjete, vaid objektide kujul.

Enamik salvestatud objekte (sh kataloogid, dokumendid, loendid, äriprotsessid, ülesanded) on saadaval objektina (redigeerimiseks ja kirjutamiseks) ja lingina (lugemiseks). Lisateavet leiate jaotisest "Lingid ja objektid".

Näiteks:
Väärtus = Directories.Organizations.EmptyLink();
Kui TypeValue(Value) = Type("Kataloogilink.Organisatsioonid") Siis
MuiduIf Väärtus = Type("KataloogObjekt.Organisatsioon") Siis
MuiduKui TüüpVäärtus(Väärtus) = Tüüp("Dokumendilink. Kauba kättesaamine") Siis
MuiduIf Väärtus = Tüüp("Dokumendiobjekt.Kauba kättesaamine") Siis
endIf;

Registrid võivad olla erinevat tüüpi. Liitregistri tüübi nimi:
RegisterRegisterTypeAccessType.RegisterName

1C registrite tüübid:

  • Teave
  • Säästud
  • Raamatupidamine
  • Arvutus.

Registrijuurdepääsu on mitut tüüpi. Kõige sagedamini kasutatakse:

  • Rekordite kogum
  • Nimekiri
  • Näidis
  • Salvestus
  • RecordKey.

Kokku, näide:
Kui TüüpVäärtus(Väärtus) = Tüüp("Teaberegistriloend.registrinimi") Siis
MuiduIf Väärtus = Type("AccumulationRegisterRecordSet.RegisterName") Siis
endIf;

1C keel võimaldab teil töötada paljude programmis dünaamiliselt loodud objektidega, näiteks massiivi, väärtuste loendi, väärtuste tabeli, struktuuriga ...

Sellised 1C-tüübid on tähistatud nende nimega (ühe sõnaga, ilma tühikuteta). Näiteks:
Kui TypeValue(Value) = Type("Massiiv") Siis
ElseIf Value = Type("Väärtuste loend") Siis
endIf;

1C viitetüübi väärtuse määratlemine

Töö kõigi andmebaasiobjektidega (kataloogid, dokumendid...) toimub linkide kaudu. Näiteks kui tahame dokumendis viidata, siis on selle 1C tüüp "DirectoryLink.DirectoryName".

Näiteks:
Väärtus = Directories.Organizations.EmptyLink();
Kui Directories.TypeAllLinks().Contains(TypeValue(Value)) siis
//see on teatmeteos
ElseIf Documents.TypeAllLinks().Contains(TypeValue(Value)) then
//see on dokument
endIf;

Taotluses saab 1C tüüpi kontrollida kahel viisil.

Esimene on sarnane kirjeldatuga, kuid 1C tüübi nimi ei tähista "Link" ega "Object", see tähendab, et "DirectoryLink.Organizations" asemel kirjutame "Directory.Organizations"

Näiteks:

Saadaolevate 1C tüüpide hankimine

Paljudel objektidel on omadus.ValueType, mis sisaldab 1C tüüpide loendit:

  • Paksu kliendi vormi väli
    Vormi elemendid. Väljanimi.Väärtuse tüüp
  • Väli õhukese kliendi vormil (erand: nimega AvailableTypes)
    Elements.FieldName.AvailableTypes
  • Väärtuste tabeli veerg, väärtuste puu
  • Vormi üksikasjad
  • Valiku element

Kuidas töötada selle 1C tüüpide loendiga väljal.ValueType – vt jaotise „1C keel” jaotist „Tüüpide kirjeldus”.

Konfiguratsiooni metaandmetes 1C detailide tüüpidega töötamine

Konfiguraatoris detailide lisamisel ja redigeerimisel määrab programmeerija 1C detailide tüübi(d). 1C-keeles programmikoodis saate (uurida) 1C-detailide tüübi(d).

Põhimeetodid:

  • 1C objekti puhul kutsuge meetodit Metadata(), mis tagastab konkreetse objekti metaandmed ja seejärel töötab üksikasjade loendiga (ja tabeli jaotise üksikasjadega).
    Dokumendid.Kauba kättesaamine.EmptyLink().Metadata().Details
  • Kasutage globaalset muutujat "Metadata", mis tagastab kõik konfiguratsiooni metaandmed ja seejärel pääsete juurde konkreetse objekti üksikasjadele
    Metaandmed.Dokumendid.Kauba kättesaamine.Üksikasjad

Atribuudil on atribuut property.Type, mis sisaldab konfiguraatoris selle atribuudi jaoks määratud 1C tüüpide loendit.

Kuidas selle 1C tüüpide loendiga töötada - vaadake jaotise "1C keel" jaotist "Tüüpide kirjeldus".

Määrake 1C tüüpi filter

Paljude objektide jaoks on võimalik määrata 1C väärtustüüpide filter, mida saab kasutada, näiteks:

  • Väärtuste loend (.AvailableValues)
  • Hallatud kliendi vormi väli (.AvailableTypes)

Kui filter pole muutmiseks saadaval, on võimalik filtrit määrata objektmeetodis. Näiteks väärtuste tabeli (puu) veerus on.ValueType ja me ei saa seda muuta, kuid veeru lisamisel meetodi.Add() abil saab teise parameetri abil määrata saadaolevate 1C loendi. tüübid.

Filtri jaoks 1C tüüpide loendi määramiseks kasutatakse 1C tüüpide loendit, kuidas sellega töötada, vaadake jaotist "1C keel" jaotises "Tüüpide kirjeldus".

Tähelepanu! Tegemist on tunni sissejuhatava versiooniga, mille materjalid võivad olla puudulikud.

Logige saidile õpilasena sisse

Koolimaterjalidele juurdepääsuks logige õpilasena sisse

Päringukeel 1C 8.3 algajatele programmeerijatele: funktsioonid ja operaatorid tüüpidega töötamiseks (VALUE TYPE, TYPE, REFERENCE, ISNULL, EXPRESS)

Pidagem meeles, et kataloogi, dokumendi või mõne muu rakendusobjekti igal atribuudil (atribuudil, väljal) on oma tüüp. Ja seda tüüpi saame vaadata konfiguraatoris:

Päringukeeles on terve hulk funktsioone ja operaatoreid, mis võimaldavad töötamiseks teatud tüüpi detailidega. Vaatame neid.

funktsioon VALUE TYPE

See funktsioon võtab ühe parameetri (väärtuse) ja tagastab selle tüübi. Pildil (ülal) kirjeldatud rekvisiitide jaoks Maitse kataloog Toit tagastatakse:

Nüüd vaatame rekvisiite Iseloomulik omadus kataloogis Linnad:

Näete, et see atribuut võib olla üks mitmest tüübist: Liin, Kataloog.Maitsed, Kataloog. Värvid. Seda tüüpi detaile nimetatakse KOMPOSIIDIKS.

Kui proovime režiimis 1C:Enterprise sellise detaili väärtust täita, küsib süsteem meilt, mis tüüpi väärtus sisestatakse:

Ja alles pärast meie valikut võimaldab see meil sisestada valitud tüübi väärtuse.

Seega sama tüüpi kataloogielemendid ( Kataloog.Linnad) saab salvestada samasse atribuuti ( Iseloomulik omadus) erinevat tüüpi väärtused (string, värvid või maitsed).

Seda näete ise, kui klõpsate kataloogi elementidel Linnad režiimis 1C: Enterprise. Loed õppetunni prooviversiooni, saadaval on täistunnid.

Siin on eristavaks tunnuseks kataloogielement Maitsed:

Siin on rida:

Ja siin on üldiselt teatmeteose element Värvid:

Need on võimalused, mida liitandmetüüp meile avab!

Huvitav, kuidas funktsioon käitub TÜÜBI VÄÄRTUSED rekvisiitide peal Eristav element, millel on liitandmetüüp:

See on juba väga huvitav. Vaatame iga rida eraldi.

Elemendi Venemaa eristava tunnuse väärtuse tüüp on võrdne NULL. Seda tüüpi kohtame esimest korda. Seda tüüpi väärtusi kasutatakse ainult puuduva väärtuse määramiseks andmebaasiga töötamisel.

See on tõsi, sest Venemaa element on rühm, mitte tavaline kataloogielement Linnad, seega pole sellel välja Iseloomulik omadus. Ja puuduva väärtuse tüüp, nagu eespool lugesime, on alati võrdne NULL.

Permi eristava tunnuse väärtuse tüüp on võrdne Maitsed. See on tõsi, kuna Permi linna jaoks andmebaasi sisestatud eristava tunnuse väärtus on link kataloogielemendile Maitsed.

Krasnojarski puhul on atribuudi tüüp võrdne Värvid, sest andmebaasis valitud väärtus on link kataloogielemendile Värvid.

Voroneži puhul on atribuudi tüüp võrdne Liin, sest andmebaasi sisestatud väärtus on tavaline string.

India on jälle grupp, nii et sellel pole mõtet. Ja nagu mäletame, on puuduva väärtuse tüüp võrdne NULL.

Siin on asi. Kui lähete kataloogi elemendile Linnad nimega São Paulo, siis näete, et väli Iseloomulik omadus absoluutselt üldse mitte täidetud. See on tühi. A kõik tühjad liittüüpi väljad omavad eritähendust defineerimata .

KOOS defineerimata puutume ka esimest korda kokku. Tähendus defineerimata kasutatakse siis, kui on vaja kasutada tühja väärtust, mis ei kuulu ühtegi teise tüüpi. Täpselt selline on meie olukord. Ja väärtuse tüüp defineerimata, nagu te ilmselt juba arvasite, on võrdne NULL.

Funktsioon TYPE

See võtab ainult ühe parameetri - primitiivse tüübi nime ( JOON, NUMBER, KUUPÄEV, BOOLE) või tabeli nimi, mille lingi tüüpi soovite hankida.

Selle konstruktsiooni tulemuseks on määratud tüübi väärtus tüüpi Type.

Kõlab ebamääraselt, kas pole?

Vaatame selle kujunduse rakendust ja kõik läheb kohe paika.

Oletame, et peame valima kõik kataloogikirjed Linnad, millel on komposiitrekvisiidid Iseloomulik omadus on tüübi väärtus JOON:

Nüüd valime kõik kirjed, millel on atribuutide väärtused Iseloomulik omadus on lingid kataloogielementidele Värvid(tabel Kataloog. Värvid):

Taganeda

Nagu mäletate, mõned kataloogi elemendid Linnad ei ole rekvisiite Iseloomulik omadus. Funktsioon TÜÜBI VÄÄRTUSED selliste elementide jaoks ta toodab NULL.

Kuidas saab selliseid elemente päringus valida? Selleks on ette nähtud spetsiaalne loogiline operaator ON NULL(mitte segi ajada funktsiooniga ISNULL, mida me allpool vaatleme). Loed õppetunni prooviversiooni, saadaval on täistunnid.

Siin on näide selle kasutamisest:

Suurepärane. Kuid kas märkasite, et puudub Sao Paulo element, rekvisiitide väärtustüüp Iseloomulik omadus kelle ta ka välja andis NULL. Miks see juhtus?

Aga asi on selles, et olukord on gruppide jaoks (Venemaa, India, Brasiilia), mille kohta täitke andmed Iseloomulik omadus põhimõtteliselt võimatu, kuna neil seda üldse pole, erineb olukorrast Sao Paulo elemendi puhul, mille puhul on rekvisiitide täitmine võimalik, kuid see on lihtsalt täitmata ja on võrdne, nagu mäletame, eriline väärtus defineerimata.

Kõigi vajalike kirjete valimiseks Iseloomulik omadus olemas, kuid mitte täidetud, tuleks kasutada teistsugust konstruktsiooni:

Kuid tühjade (täitmata) atribuutide määramiseks võrdlus atribuudiga UNDEFINED töötab ainult liittüüpide puhul.

Muide, loogilisel operaatoril IS NULL on eitusvorm, mis näeb välja järgmine:

Loogiline operaator LINK

Näiteks valime kataloogist Linnad ainult need kirjed, millel on liitatribuudi väärtus Iseloomulik omadus on link kataloogielemendile Maitsed:

Nagu mäletate, saaksime sama probleemi lahendada kasutades TÜÜBI VÄÄRTUSED Ja TÜÜP:

Funktsioon ISNULL

Funktsioon on loodud väärtuse asendamiseks NULL teisele tähendusele.

Me mäletame selle tähendust NULL tagastatakse, kui nõutud atribuuti (väli, atribuut) pole olemas.

Näiteks rekvisiidid Iseloomulik omadus kataloogirühmade jaoks Linnad:

Funktsioon ISNULL aitab meil väljastada teistsuguse väärtuse, kui see väärtus on võrdne NULL. Loed õppetunni prooviversiooni, saadaval on täistunnid. Olgu sel juhul rida "Sellist rekvisiiti pole olemas!":

Selgub, et kui funktsiooni esimene parameeter ISNULL pole võrdne NULL, siis ta naaseb. Kui see on NULL, tagastatakse teine ​​parameeter.

EXPRESS funktsioon

See funktsioon on mõeldud ainult väljade jaoks, millel on liittüüp. Sellise valdkonna suurepärane näide on kinnistu Iseloomulik omadus kataloogielementide jaoks Linnad.

Nagu mäletame, võivad liitväljad olla üks mitmest konfiguraatoris määratud tüübist.

Põllu jaoks Iseloomulik omadus sellised kehtivad tüübid on JOON, Kataloog. Värvid Ja Kataloog.Maitsed.

Mõnikord osutub vajalikuks liitvälja väärtused konkreetsele tüübile üle kanda.

Loetleme kõik välja väärtused Iseloomulik omadus trükkima Viide.Värvid:

Selle tulemusena kõik elementide väärtused, mis olid tüüpi Kataloog. Värvid, jäid täidetuks ja muudeti määratud tüübiks. Kõik muud tüüpi väärtused ( JOON, Kataloog.Maitsed) on nüüd võrdsed NULL. See on funktsiooni abil tüübivalamise eripära EXPRESS.

Tüübi saab üle kanda kas primitiivseks tüübiks ( BOOLE, NUMBER, JOON, KUUPÄEV) või viitetüübile. Loed õppetunni prooviversiooni, saadaval on täistunnid. Kuid tüüp, millele heide tehakse, peab olema selle liitvälja tüüpide loendis, vastasel juhul annab süsteem vea.

Tehke test

Alusta testimist

1. Valige kõige õigem väide

2. Nimetatakse üksikasjad, mis võivad võtta ühte mitmest tüübist

3. Atribuudi väärtuse tüübi määramiseks kasutage funktsiooni

4. Komposiittüübi tühjad detailid on olulised

Määratletud tüübid on uus 1C metaandmete objekt, mis ilmus platvormi versioonis 8.3. Objekt on abistava iseloomuga. Mõelgem, millised on määratletud tüübid ja ülesanded, mida see objekt suudab lahendada.

Defineeritud on uued andmetüübid, mille komplekti määrab rakenduslahenduse arendaja. See koosneb mitmest kehtivast tüübist. See andmetüüp võib olla mis tahes konfiguratsiooniatribuudi tüüp, välja arvatud määratletud tüüp ise ja objekt " ".

Hankige 267 videotundi 1C-s tasuta:

Seaded

Selle objekti jaoks pole nii palju seadeid:

Need. lisaks 1C nimele ja sünonüümile on määratletud tüüpidel ainult objektitüüpide komplekt.

Näide määratletud tüüpide kasutamisest punktis 1C 8.3

Selle objekti jaoks võib leida väga erinevaid rakendusi.

Kasutamise näited:

  • saate konfiguratsioonis kirjeldada üksikasju, mis viitavad andmetele, mis määratletakse, kui fragment on manustatud konkreetsesse konfiguratsiooni;
  • määrama ühe sündmuste tellimuste komplekti ühele määratletud andmete tüübile, kui tüüpide kogum muutub, muutub kõigi tellimuste allikas dünaamiliselt;
  • kasutamine alternatiivina tunnustüüpide plaanile

ja palju muud.

Kui hakkate õppima 1C programmeerimist, soovitame meie tasuta kursust (ärge unustage