Co znamená Booleovský typ v 1C? Primitivní typ je booleovský. Primitivní datové typy a některé jejich funkce

Při nastavování další integrace 1C: Trade Management 11 se stránkou spravovanou 1C-Bitrix jsem narazil na následující problém: podrobnosti s typem „Boolean“ byly nahrány na web s typem „String“ a hodnotou „ Ano". V důsledku toho se již nezobrazují standardní detaily „Novinka“, „Speciální nabídka“ a „Top prodejce“.

Bohužel jsem nenašel jinou možnost, jak opravit nahrávání na web v 1C:UT. Úpravy jsou minimální.

1. Všechny hodnoty atributů vlastností kromě Number, Date a Directory jsou nahrány jako univerzální typ String. Ujistíme se, že boolean není načten jako řetězec, ale jako adresář. K tomu najdeme v modulu Obecné konfigurace „Site Exchange“ proceduru Unload Basic DetailsPropertiesFor Classifier(). Přidejte k podmínce dva řádky:

2. Nyní je třeba stáhnout možné hodnoty. V našem případě bude pouze jedno: „Ano“ s identifikátorem „ANO“. Přidejme dodatečná podmínka trochu níže ve stejném postupu:

3. Při načítání vlastnosti položky je nutné, aby pokud je hodnota Boolean pravdivá, mělo by být uvolněno „ANO“. Chcete-li to provést, najděte ve stejném modulu proceduru Unload Item Properties() a přidejte do ní několik řádků:

4. Nyní můžete uložit změny a zahájit výměnu dat s webem. Pro jistotu přejděte do nabídky „Obsah - Vlastnosti infobloku - Katalogy - Katalog produktů“ a zkontrolujte nastavení Vlastnosti prvků s typem Boolean. Vzhled Měli by to mít nastavené jako „Vlajky“:

Nyní jsou „Nové“, „Speciální nabídka“ a „Top of Sales“ správně přeneseny z 1C a jsou zobrazeny jako příznaky na kartě produktu:

Tento článek pokračuje v sérii článků „První kroky ve vývoji 1C“. Bude mluvit o primitivních datových typech a nejčastějších funkcích při práci s nimi. Po přečtení materiálu se dozvíte:

  • Jaké datové typy jsou primitivní?
  • Jak můžete pracovat se strunami a jaké vlastnosti je třeba vzít v úvahu?
  • Jaké jsou jemnosti práce s číselnými výrazy?
  • Jak popsat datum s konkrétní hodnotou? Jak nastavit prázdné datum?
  • Jak funguje převod typů?
  • Null a Undefined – co to je a jaké jsou rozdíly?
  • Jak určit, jaký je typ objektu/proměnné?

Použitelnost

Článek byl napsán pro platformu 1C verze 8.3.4.496, takže informace jsou relevantní i pro současná verze platformy. Nutno však podotknout, že ve verzi 8.3.6.1977 byly přidány nové funkce pro práci s řetězci. Proto, až budete opakovat kroky z článku, nebuďte překvapeni, pokud v odpovídající části Syntax Assistant uvidíte některé funkce, které nejsou zobrazeny na našem snímku obrazovky. Také vám doporučujeme, abyste se seznámili s novou metodou StringWithNumber() přidanou na platformě 8.3.10.

Primitivní datové typy a některé jejich funkce

Rozlišují se následující primitivní datové typy:

Řetězcové konstanty

Primitivní datový typ Čára(řetězcová konstanta) se skládá z různých znaků. Čára je vždy ohraničeno uvozovkami. Příklad řetězcové konstanty:

Message.Text = “Jsou prázdná data”;

Tito. k atributu je přiřazen řádek „Existují prázdná data“. Text objekt Zpráva. Cokoli obklopené uvozovkami je považováno za řetězec.

Řetězec se může skládat z libovolných znaků. Řetězce mohou být víceřádkové. V tomto případě musí být každý nový řádek definován v uvozovkách. Například:

Text = „Vyplněny neplatné údaje“
„Dokument nelze odeslat“;

Středník se umísťuje až na konec posledního řádku.

Existuje ještě jeden způsob - orámovat celý text pouze jednou uvozovkou, ale každou nový řádek by měla začínat svislým pruhem.

Tato syntaxe se nejčastěji používá v typické konfigurace. Zejména v dotazovacím jazyce. Například:

Žádost.Text =
"VYBRAT
| Zaměstnanci.Jméno AS zaměstnanec,
| Zaměstnanci. Datum narození JAKO DatumNarození
|OD
| Adresář.Zaměstnanci JAK Zaměstnanci
| KDE
| NE Zaměstnanci Toto je skupina“;

Je třeba poznamenat, že operace sčítání je definována pro řetězce. Toto není aritmetická operace, nazývá se operace zřetězení.

Tito. musíte zkombinovat například dva řádky se znaménkem „+“ mezi řádky:

Text = „Údaje jsou špatně vyplněny“ + „Doklad nelze odeslat“;

Tím se linky sloučí. Operace zřetězení je samozřejmě použitelná také pro více linky. Jiné operace (odčítání, násobení, dělení) nejsou s řetězci povoleny.

Pokud slovo uvnitř řádku musí být ohraničeno uvozovkami, pak je třeba definovat uvozovku uvnitř řádku dvojitá citace. Například:

Text = “Chyba v modulu “Obecný modul1””;

V v tomto příkladu První uvozovka otevře řetězec. Druhá a třetí uvozovka vedle sebe označují uvozovky.

A na konci jsou tři uvozovky: úplně poslední uvozovka uzavírá řádek, dvě předchozí označují uvozovku.

Na řetězcích jsou možné různé operace převodu řetězců, identifikace prvních několika levých znaků, identifikace několika znaků nejvíce vpravo, hledání podřetězce v řetězci atd.

Všechny tyto funkce jsou dostupné kdekoli v konfiguraci.

V asistentu syntaxe jsou v sekci obecný popis vestavěný jazykVestavěné funkceFunkce pro práci s hodnotami typu String.

Dost funkcí velký počet a obvykle jsou dostatečné pro práci s řetězcovými konstantami.

Podívejme se na příklad řešení problému pomocí řetězcových funkcí.

Úkol:

Je třeba vyvinout funkci. Funkci je předán jako parametr libovolný řetězec. Znaky v řádku mohou být také číslice.

Posloupnost číslic (jedna nebo více), oddělených od ostatních znaků mezerami, představuje kladné celé číslo.

Například řetězec „72 ABC 6AP 31 54f -22“ obsahuje dvě kladná celá čísla: 72 a 31. Kromě mezer se nepoužívají jiné nepodstatné znaky (jako jsou tabulátory, návraty na začátek řádku). Funkce musí vrátit počet kladných celých čísel.

Musí být umístěn v modulu spravované aplikace. Je nutné zajistit, aby byl vyvolán při startu systému. Definujte řetězec pomocí proměnné.

Otevřeme tedy modul spravované aplikace a vybereme ze seznamu ve výběrovém poli na panelu konfigurátoru Modul standardní manipulátor AtSystemStart().

Uvnitř handleru definujeme proměnnou Čára, Například:

Řádek = „72 ABC 6AP 31 54f -22“;

Množství = Počet IntegerNumbers(String);

Pošleme zprávu o počtu celých čísel:

Report("Řádek obsahuje " + Číslo + " celá čísla");

V tomto případě proměnná Množství budou implicitně převedeny na typ Řetězcová konstanta. Poté se na třech řetězcích provede operace zřetězení a zpráva se přenese.

Definujme začátek a konec (tedy šablonu) funkce Počet celých čísel (řetězec).

Nyní se podíváme na jeden z možné možnosti vývoj funkcí Počet celých čísel (řetězec). Zároveň se seznámíme s některými vestavěnými funkcemi určenými pro práci s řetězci.

Nejprve byste se měli seznámit s funkcí Kód symbolu. Tato funkce získá kód znaku umístěného v předávaném řetězci na pozici se zadaným číslem.

Syntax:

CharacterCode(,)

Možnosti:

(Požadované)

(nepovinné) – jedná se o číslo znaku v řádku, jehož kód chcete získat. Číslování znaků v řádku začíná od 1.

Návratová hodnota:
Kód přenášeného znaku. Kód je vrácen podle kódování Unicode.

Vezměte prosím na vědomí, že parametr Výchozí hodnota je 1.

Řetězec se může skládat i z jednoho znaku. Je tedy možné určit kód 0 a kód 9 a kódy všech ostatních číslic jsou, jak známo, v intervalu mezi nimi.

Pojďme definovat odpovídající proměnné a jejich hodnoty:

Code0 = CharacterCode(“0”);
Code9 = CharacterCode(“9”);

K vyřešení problému zvolíme následující schéma:

  1. Pokud řádek obsahuje úvodní nebo koncové mezery v libovolném množství, pak se jich zbavíme speciální funkcí. Dále nás budou zajímat skupiny znaků mezi vnitřními mezerami. Pokud se skupina skládá pouze z číslic, pak je to celé číslo. Existuje speciální funkce, kterou lze použít k určení polohy první mezery.
  2. Jakmile máte pozici první mezery, můžete pomocí jiné funkce dostat skupinu znaků (podřetězec) nalevo od mezery.
  3. Pojďme analyzovat znaky, které tvoří skupinu, a určit, zda se jedná o celé číslo. Identifikovaná celá čísla budou sečtena ve speciální proměnné.
  4. Zkrátíme počáteční řádek tak, že pomocí jiné funkce vybereme všechny znaky nyní vpravo od mezery. Tato mezera by mohla být nejen jedna, ale celá řada mezer v řadě, takže ve zbývajícím řádku se speciální funkcí zbavte všech mezer zcela vlevo (v řadě) a vraťte se k bodu 2. Zopakujeme kroky z bodu 2 do bodu 4, dokud nedosáhneme podmínky, že v řádku nezůstanou žádné mezery. V tomto případě bude zkrácený řetězec poslední skupina analyzované postavy.

Nyní se podívejme na funkce, které potřebujeme k vyřešení problému.

AbbrLP
Syntaxe: AbbrLP()
Možnosti: (Požadované).
Ořízne mezery (nevýznamné znaky) nalevo od prvního významného znaku v řetězci a napravo od posledního významného znaku v řetězci.

Nalézt
Syntaxe: Find(,)
Možnosti: (Požadované), (Požadované).
Vrátí pozici prvního znaku nalezeného podřetězce.
Číslování znaků v řetězci začíná od 1. Pokud řetězec neobsahuje zadaný podřetězec, vrátí se 0. V našem případě použijeme jako podřetězec mezeru (“ ”).

Lev
Syntaxe: Lev(,)
Možnosti: (Požadované), (Požadované).
Vybere první levé znaky řetězce. Pomocí této funkce určíme skupiny znaků pro analýzu (zleva do první mezery).

StrLength
Syntaxe: StrLength()
Možnosti: (Požadované).
Získá počet znaků v řetězci. Použijeme ho k určení délky řetězce.
Funkce Kód symbolu, který budeme používat k identifikaci skupin znaků, které jsou celá čísla, byl popsán dříve.

Že jo
Syntaxe: Right(,)
Možnosti: (Požadované), (Požadované).
Vybere znaky nejvíce vpravo v řetězci. Pomocí této funkce vybereme dosud nezpracovanou část řetězce.

AbbrL
Syntaxe: zkratka()
Možnosti: (Požadované).
Ořízne mezery (nevýznamné znaky) vlevo od prvního významného znaku v řetězci. Tuto funkci používáme k odstranění případných mezer na levé straně zbytku řetězce.

Níže je uveden možný algoritmus funkce s komentáři.

Číselné výrazy

Proměnné modulů a detaily databázových objektů mohou být číselné.
Pro číslo je omezen počet číslic. U číselných atributů nesmí délka celé části přesáhnout 32 znaků.

Přesnost zlomkové části nesmí přesáhnout 10 číslic. Když je proměnná deklarována a přiřazena k ní číselná hodnota, pak se jeho bitová hloubka nikde nezaznamenává. Existují však také omezení pro proměnné.

Pomocník syntaxe říká, že maximální povolená bitová hloubka pro číslo je 38 znaků. Takové omezení nebrání řešení případných ekonomických problémů, tzn. Pomocí těchto čísel lze popsat jakoukoli peněžní hodnotu.

Pokud však stále potřebujete popsat velké množství k vyřešení některých matematických problémů, pak v teorii programování existují algoritmy, které vám umožňují popsat čísla s libovolnou dimenzí na základě existujících omezení.

Operace použitelné pro čísla:

  • obyčejný aritmetické operace(-, +, *, /). Násobení a dělení má přednost před sčítáním a odčítáním. Závorky mají nejvyšší prioritu. Existují také unární operátory + a -, jejichž přednost je bezprostředně za závorkou;
  • operace „zbytek divize“ (%). Například 12%5=2;
  • matematické funkce, které lze použít pro čísla (goniometrické funkce, umocňování, odmocnina, zaokrouhlení na zadanou hodnotu místa, výběr celé části čísla)

Pokud mluvíme o přesnosti číselných hodnot, pokud jde o databázové detaily, existují přirozená omezení.

Ale pokud jde o proměnné, je zde jedna zvláštnost. Ve skutečnosti můžete pracovat s proměnnými velmi vysoká čísla, ale v informační bázi budou uloženy hodnoty s délkou celé části maximálně 32 znaků.

Booleovské hodnoty

Pokud jde o datový typ Boolean, existují pouze dvě hodnoty, True a False, které lze získat různé způsoby.

Můžete například použít porovnávací operace mezi čísly nebo daty. V důsledku toho bude získána určitá booleovská hodnota, která se v budoucnu nejčastěji používá podmíněné příkazy a příkazy ve smyčce.

Literály typu Datum

Existují dva způsoby, jak popsat datum. Jedním z nich je použití doslovného. Doslov je psán v jednoduchých uvozovkách.

Nejprve se píše rok, pak měsíc a pak den.

V případě potřeby můžete určit i čas, protože v systému 1C:Enterprise 8 každé datum obsahuje datum i čas. Například:

Datum dokumentu = '20140315121020';

Není-li čas zadán, výchozí je nula. V popisu data můžete použít libovolný oddělovač. Například:

Datum dokumentu = '2014.03.15';

Druhým způsobem určení data je použití funkce globálního kontextu Datum(). V tomto případě této funkci předáme totéž jako parametry: rok, měsíc, den oddělené čárkami.

Můžete také určit čas. Pokud není zadán, nastaví se jako výchozí začátek dne.

V systému 1C:Enterprise 8 je prázdným datem úplný začátek kalendáře. Možnosti nahrávání:

EmptyDate = '00010101';
EmptyDate = Datum(1,1,1);

Oba záznamy vrátí stejný výsledek a toto datum bude považováno za prázdné.

Pohodlí funkce Datum() Jde o to, že do něj můžeme přenést ne konkrétní hodnoty, ale nějaké proměnné. To znamená, že někdy vytváříme datum sběrem různých proměnných.

Operace přidání platí pro data. Operace přidání přidá k datu zadaný počet sekund.

Primitivní převody datových typů

V příkazu přiřazení, kde se sčítá více proměnných (např. Proměnná = A + B + C), převod primitivních datových typů je možný. Konverze datového typu se provádí na hodnotě prvního datového typu.

Pokud je tedy prvním datovým typem řetězec, pak se systém pokusí vytvořit řetězec z celého výrazu. Pokud je prvním datovým typem číslo, pak se systém pokusí získat číselný datový typ.

A tak řetězec + číslo = řetězec. Někdy lze k řetězci přidat číslo, pokud lze z řetězce získat nějakou číselnou hodnotu (například 123 + „456“).

Pro logický datový typ platí následující výrazy:

Pravda AND 1 = Pravda;
Pravda A 0 = Nepravda.

Jakékoli číslo větší než nula je převedeno na True, 0 je převedeno na False.

K číslu lze, jak již bylo uvedeno výše, přidat datum. K datovému typu Boolean lze také přidat data.

V tomto případě se True převede na 1 a False na 0.

Kromě převodu typu v operátorech je možná převod explicitního typu pomocí příslušných funkcí: String(), Number(), Date(), Boolean().

NA Čára převede se jakýkoli datový typ.

Číslo lze získat z řetězce nebo z booleanu. Booleovské konverze: True na 1, False na 0.

Můžete přetypovat řetězec do Date, pokud obsahuje hodnotu data. Například Datum(“20140315”). Jak již bylo uvedeno výše, je možné převádět podle pozice:

Datum(,).

Číslo a samotnou logickou hodnotu můžete převést na logickou hodnotu.

Tyto funkce lze použít v kódu programu k provedení explicitní konverze typu.

Primitivní datové typy Number, String, Date a Boolean mohou fungovat jako databázová pole.

Hodnoty Null a Undefined

NULL je doslovný. Obvykle se používá v databázových dotazech, když jsou spojeny dvě nebo více tabulek.

Právě chybějící záznamy ve druhé tabulce jsou vyplněny hodnotou NULL. Tito. je to jakási chybějící hodnota.

V budoucnu při zpracování výsledného výsledku je třeba s tím počítat, protože NULL není nula, ale odpovídající datový typ.

Aby mohla být hodnota zpracována, musí být NULL přetypována na nějaký běžný datový typ, který lze odeslat nebo použít v aritmetických operacích.

Hodnotu typu NULL lze získat také ve vestavěném jazyce. Můžete definovat proměnnou a přiřadit jí stejnou hodnotu NULL. Takové přiřazení se však v programovém kódu téměř nikdy nepoužívá.

Tito. NULL je ve skutečnosti datový typ, který se získává při práci s dotazy. S hodnotou NULL v dotazovacím jazyce je třeba zacházet zvláštním způsobem.

Konkrétně, porovnání A=NULL nebude fungovat na úrovni dotazu, bude nutné použít specializované funkce. Ve vestavěném jazyce však bude porovnání s hodnotou NULL zpracováno správně.

Datový typ Nedefinováno je neprázdná hodnota nějakého atributu.

Pokud má například atribut adresáře jako datový typ odkaz na jiný adresář, pak se prázdná hodnota tohoto atributu nebude rovnat hodnotě Nedefinováno.

Tenhle typ(Nedefinováno) se objeví za prvé, pokud máme určitou proměnnou a není inicializována (není definován datový typ).

Druhý příklad: Datový typ Undefined je vrácen mnoha vestavěnými jazykovými funkcemi, pokud nelze akci provést.

Například hledání prvku adresáře podle názvu, pokud některý adresář takový název prvku nemá. Metoda FindByName vrátí hodnotu Nedefinováno.

V čem Nedefinováno je klíčové slovo, je zvýrazněno červeně. To je také doslovné, pro psaní Nedefinováno není třeba používat žádné uvozovky, čárky, závorky atd.

Pokud existuje seznam dokumentů a tento seznam je prázdný (nejsou v něm tedy žádné řádky), pak aktuální linka bude mít hodnotu Nedefinováno.

Pokud v informační základna existuje atribut se složeným datovým typem, pak bude prázdná hodnota tohoto atributu rovna Nedefinováno.

Pokud však datový typ není složený, pak bude prázdná hodnota odpovídat prázdné hodnotě tohoto typu (pro datum je to první sekunda první hodiny prvního dne prvního měsíce prvního roku).

NULL a Undefined jsou datové typy a hodnoty v těchto typech a jedna a pouze jedna. Pro NULL je to hodnota NULL, pro Undefined je to Nedefinováno.

Typ dat Typ

Hlavním využitím tohoto datového typu je porovnání hodnoty určité proměnné nebo databázového atributu s konkrétním typem.

Tito. V algoritmu musíte pochopit, jaký je typ daného objektu.

Je pozoruhodné, že tento datový typ nemá literál. Nemůžeme to zapsat jako NULL nebo Undefined, ale můžeme získat hodnotu tohoto typu pomocí dvou funkcí Typ A TypeValue.

Abychom získali typ nějakého objektu (může to být proměnná, databázový atribut nebo formulářový atribut), použije se funkce TypeValue.

Této funkci je předán objekt, pro který chcete získat datový typ.

Tato funkce vrací přesně typ typu typu jako svou návratovou hodnotu.

V budoucnu by se měl porovnávat s jakýmkoliv typem úroku. Například:

If TypeValue(Element) = Type (“DirectoryLink.Nomenclature”) Then
Report("Toto je produkt");
endIf;

Na závěr si shrňme veškerý probraný materiál.

Podívali jsme se na základní struktury vestavěného jazyka 1C, naučili jsme se používat proměnné a operátory a přišli jsme na to, proč a jak používat procedury a funkce. Všimněte si, že v podstatě všechny naše programový kód do této chvíle to bylo soběstačné – vše jsme si psali sami od začátku a některé konfigurační objekty nebo vestavěný jazyk jsme používali na minimum.

Tyto objekty prozkoumáme podrobněji v příštím článku, takže zůstaňte naladěni! ;)

Dobrý den, milí čtenáři tohoto blogu! Minule jsme se věnovali vestavěnému jazyku 1C:Enterprise 8. Dnes budeme pokračovat a povíme si o dvou datové typy - Boolean a Datum, a také zvážit, jak s nimi pracovat. Takže, začněme!

Pokud jde o datový typ Boolean, pak je zde vše docela jednoduché. Existují dva významy Skutečný A Lhát, které lze získat různými způsoby. Můžete například použít operátory porovnání:

  • 101 > 1001 se rovná Lhát
  • 101 Pravda
  • '20000101'= '20000102' se rovná Lhát
  • ‚Otevřít‘ ‚Otevřít‘ se rovná Skutečný

Jak vidíte, můžete použít různé porovnávací operace mezi čísly, řetězci a daty. Výsledkem bude nějaká booleovská hodnota, která se často používá v podmíněných příkazech a příkazech cyklu.

Nyní uvažujme primitivní datový typ Datum. K popisu datového typu datum Obvykle se používají dva způsoby. Nejprve pomocí doslovného. Pojďme deklarovat proměnnou s názvem "CurrentDate". Například se bude rovnat 2. říjnu 2014. V tomto případě je formát data rok/měsíc/den.

CurrentDate = "20141002"; // 02.10.2014

V případě potřeby můžeme uvést čas, protože v systému 1C:Enterprise 8 každé datum obsahuje datum i čas. V případě potřeby tedy můžete určit například následující čas: 15 hodin 5 minut a 50 sekund. Výsledek je rok/měsíc/den/hodina/minuta/sekunda.

Aktuální datum = '20141002150550'; // 02.10.2014 15:05:50

Pokud nezadáte čas, bude ve výchozím nastavení nula a datum lze popsat takto: ‚20141002‘.
Pro přehlednost můžete použít libovolný oddělovač, například tečky ".". Datum tedy může vypadat takto: '2014.10.02'. To byl první způsob, jak popsat rande. Všimněte si, že se používají jednoduché uvozovky, což je doslovný text, který nelze přerušit. Je to psáno v jednoduchých uvozovkách.

Druhým způsobem určení data je použití funkce globálního kontextu Datum(). V tomto případě této funkci předáme totéž jako parametr: rok/měsíc/den. Parametry zde musí být uvedeny oddělené čárkami.

CurrentDate = Datum(2014, 10, 02); // 02.10.2014 00:00:00

Můžete také určit čas.

CurrentDate = Datum(2014, 10, 02, 15, 05, 50); // 02.10.2014 15:05:50

Pokud není čas zadán, bude se rovnat začátku dne. Můžete také psát další hovor tato funkce:

CurrentDate = Date("20141002150550"); // 02.10.2014 15:05:50

Zde je použit jeden parametr s řetězcem, který musí obsahovat datum ve formátu: rok/měsíc/den/hodina/minuta/sekunda.

Chcete-li popsat prázdné datum v systému 1C:Enterprise 8, musíte provést následující:

EmptyDate = ""; // 01.01.0001 00:00:00

Nebo pomocí doslovného popisu:

EmptyDate = "00010101"; // 01.01.0001 00:00:00

Dalším způsobem, pomocí funkce globálního kontextu, kterou již známe:

Prázdné datum = Datum(1, 1, 1); // 01.01.0001 00:00:00

Použití těchto metod vrátí stejný výsledek a datum bude považováno za prázdné. Pohodlí funkce datum je, že zde nemůžeme předávat konkrétní hodnoty, ale proměnné. Někdy potřebujete získat datum sběrem různých proměnných. Funkce je k tomu velmi užitečná datum.

A také bych rád poznamenal, že operace sčítání se vztahuje na data. Pokud k datu přidáte číslo deset:

CurrentDate = Datum(2014, 10, 02, 15, 05, 50); // 10/02/2014 15:05:50 CurrentDate = CurrentDate + 10;

V důsledku toho získáme datum o deset sekund delší:

02.10.2014 15:06:00

Operace sčítání tedy přidá k určenému datu určitý počet sekund. To je rozdíl oproti verzi systému 1C:Enterprise 7.7, kde se při přidávání dat přidával počet dní, nikoli sekund.

Mnozí, kteří se teprve začínají učit programovat, se poprvé setkávají s novým primitivním typem. booleovský. Také se tomu říká jinak booleovský typ. Tento typ je pojmenován po anglickém matematikovi George Boole, který studoval otázky matematické logiky.

Než začneme studovat tento primitivní typ, pojďme se obecně naučit, co jsou booleovské nebo logické výrazy.

Booleovské výrazy jsou něco jako otázka, na kterou musí existovat jednoznačná odpověď, buď ano, nebo ne.

5 < 7 — Да;

5 = 8 – Ne;

4 > 9 – č.

Mohou existovat i složitější otázky:

Tlačítko stisknuto – ano;

Tlačítko stisknuto – ne;

Booleovské výrazy se používají ve všech podmíněných větvích:

Li< Булево выражение1>Pak

//operátoři

JinakPokud< BooleanExpression2> pak

//operátoři

endIf;

V programovacím jazyce 1C lze proměnnou s primitivním typem Boolean nastavit explicitně:

A = pravda;

B = nepravda;

Kde True a False jsou jediné hodnoty, které může nabývat primitivní typ Boolean.

Pravda znamená, že některé tvrzení je pravdivé (Odpověď - Ano).

Lež znamená, že některé tvrzení naopak neodpovídá skutečnosti (Odpověď - Ne).

Proměnné typu Boolean lze také zadat pomocí libovolného logického výrazu.
Například:

A = 5< 7 ;

B = 6 > 9;

V tomto případě bude mít proměnná A hodnotu True a proměnná typu B bude mít hodnotu False;

V programovacím jazyce 1C lze s proměnnými typu Boolean provádět různé operace.

Například:

A = 5< 7 ;

B = 6 > 9;

B = A AND B;

C = A nebo B;

D = není A;

Jsou tři - AND, OR a NOT.

Následující tabulky vám pomohou porozumět funkčnosti těchto operací:

Operace NE

A B
Skutečný Lhát
Lhát Skutečný

Operace I

C = A a B A B
Skutečný Skutečný Skutečný
Lhát Lhát Skutečný
Lhát Skutečný Lhát
Lhát Lhát Lhát

NEBO operace

C = A NEBO B A B
Skutečný Skutečný Skutečný
Skutečný Lhát Skutečný
Skutečný Skutečný Lhát
Lhát Lhát Lhát

Je možné tyto operace provádět za sebou?

Ano můžete, tyto operace budou prováděny zleva doprava. A mít následující úroveň seniority:

Za prvé: nejprve se provedou operace v závorkách

Za druhé: Operace NE

Za třetí: Operace I

Za čtvrté: operace OR.

Abyste předešli zmatkům v operacích, doporučuji vám používat závorky, kdykoli je to možné.

Například:

A = nepravda;

B = pravda;

C = nepravda;

D = A a C nebo B;

V tomto případě bude operace fungovat jako první A mezi A a C.

Podívejte se na tabulku A - Lhát, S - Lhát, výsledek A A C bude Lhát.

Dalším krokem je provedení operace NEBO mezi Lži(Výsledek předchozí operace) a hodnotu B, která Skutečný.

Výsledek bude Skutečný.

Co když budeme nejdříve potřebovat operaci? NEBO mezi C a B a pak teprve operace A mezi A a tím, co se stalo, pak k tomu musíte použít závorky.

A = nepravda;

B = pravda;

C = nepravda;

D = A a (C nebo B);

Výsledek bude diametrálně opačný. Proč? Pojďme na to teď přijít. Díky závorce se operace mezi C a B provede jako první, od S - Lhát a B – Skutečný, bude výsledek Skutečný. Pak mezi hodnotou A (která Lhát) a hodnotu Skutečný(výsledek předchozí operace) operace se provede A. Výsledek bude Lhát.

Mnoho začínajících programátorů plně nerozumí principům interakce mezi proměnnými typu Boolean. K tomu může pomoci pouze praxe. A v mé knize problémů je dostatek praxe s proměnnými typu Boolean

Naučte se základy konfigurace v 1C a naučte se programovat v „1C: Enterprise“ s pomocí mých knih: a „Základy vývoje v 1C: Taxi“

Naučte se programovat v 1C na místě z mé knihy „Programování v 1C v 11 krocích“

  1. Kniha je psána jasným a jednoduchým jazykem - pro začátečníka.
  2. Naučte se porozumět architektuře 1C;
  3. Začnete psát kód v jazyce 1C;
  4. Zvládnout základní programovací techniky;
  5. Upevněte své znalosti pomocí knihy problémů;

Vynikající průvodce vývojem ve spravované aplikaci 1C, jak pro začínající vývojáře, tak pro zkušené programátory.

  1. Velmi cenově dostupné a jasný jazyk prezentace
  2. Kniha je odeslána na e-mailem PROTI ve formátu PDF. Lze otevřít na jakémkoli zařízení!
  3. Pochopte ideologii spravované aplikace 1C
  4. Naučte se vyvíjet spravovanou aplikaci;
  5. Naučte se rozvíjet spravované formuláře 1C;
  6. Budete umět pracovat se základními a nezbytnými prvky spravovaných formulářů
  7. Programování pro řízený aplikací se vyjasní

Promo kód na 15% slevu - 48PVXHeYu


Pokud vám tato lekce pomohla vyřešit jakýkoli problém, líbila se vám nebo byla užitečná, můžete můj projekt podpořit libovolnou částkou:

Můžete platit ručně:

Yandex.Money – 410012882996301
Web Money – R955262494655

Přidejte se k mým skupinám.