DZWON

Są tacy, którzy czytają tę wiadomość przed wami.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Witajcie drodzy czytelnicy bloga! Ostatni raz zwracaliśmy uwagę na język osadzony 1C: Enterprise 8. Dzisiaj będziemy kontynuować i porozmawiać o dwóch typy danych - Boolean i Datea także zastanów się, jak z nimi pracować. Więc zacznijmy!

O boolean typ danych, to tutaj wszystko jest dość proste. Istnieją dwa znaczenia Prawdziwe i Fałszywektóre można zdobyć na różne sposoby. Na przykład możesz użyć operacji porównania:

  • 101\u003e 1001 równa się Fałszywe
  • 101 Prawdy
  • „20000101” \u003d „20000102” równa się Fałszywe
  • „Otwarte” „Otwarte” równa się Prawdziwe

Jak widać, możesz użyć różnych operacji do porównywania liczb, ciągów znaków, dat. W rezultacie otrzymasz wartość logiczną, która jest często używana w instrukcjach warunkowych i instrukcjach pętli.

A teraz zastanów się pierwotny typ danych Date... Aby opisać typ danych data zwykle stosuje się dwie metody. Po pierwsze, używając dosłownego. Zadeklarujmy zmienną o nazwie „CurrentDate”. Na przykład będzie równy 2 października 2014 r. W tym przypadku format daty to rok / miesiąc / dzień.

CurrentDate \u003d "20141002"; // 02.10.2014

W razie potrzeby możemy określić czas, ponieważ w systemie 1C: Enterprise 8 każda data zawiera zarówno datę, jak i godzinę. Dlatego w razie potrzeby możesz określić na przykład następujący czas: 15 godzin 5 minut i 50 sekund. Wynikiem będzie rok / miesiąc / dzień / godzina / minuta / sekunda.

CurrentDate \u003d „20141002150550”; // 02.10.2014 15:05:50

Jeśli nie określisz czasu, to domyślnie będzie on równy zero, a datę można opisać w ten sposób: „20141002”.
Dla jasności można użyć dowolnego separatora, na przykład kropki „”. Więc data może wyglądać jak „2014.10.02”. To był pierwszy sposób na opisanie randki. Zauważ, że używane są pojedyncze cudzysłowy, co oznacza literał, którego nie można złamać. Jest napisany w pojedynczych cudzysłowach.

Drugim sposobem określenia daty jest użycie funkcji kontekstu globalnego Data()... W tym przypadku do tej funkcji przekazujemy to samo, co parametr: rok / miesiąc / dzień. W tym miejscu należy określić parametry oddzielone przecinkami.

CurrentDate \u003d Date (2014, 10, 02); // 02.10.2014 00:00:00

Możesz także określić czas.

CurrentDate \u003d Date (2014, 10, 02, 15, 05, 50); // 02.10.2014 15:05:50

Jeśli czas nie zostanie określony, będzie równy początkowi dnia. Możesz również napisać następujące wywołanie tej funkcji:

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

Używa jednego parametru z ciągiem, który musi zawierać datę w formacie: rok / miesiąc / dzień / godzina / minuta / sekunda.

Aby opisać pustą datę w systemie 1C: Enterprise 8, musisz wykonać następujące czynności:

EmptyDate \u003d ""; // 01.01.0001 00:00:00

Lub używając opisu dosłownego:

EmptyDate \u003d "00010101"; // 01.01.0001 00:00:00

Inny sposób, używając znanej już funkcji kontekstu globalnego:

Pusta data \u003d Data (1, 1, 1); // 01.01.0001 00:00:00

Użycie tych metod zwróci ten sam wynik, a data zostanie uznana za pustą. Wygoda funkcji data polega na tym, że możemy tu przekazać nie określone wartości, ale zmienne. Czasami trzeba ustalić datę, zbierając różne zmienne. Funkcja jest w tym bardzo pomocna. data.

Chciałbym również zauważyć, że operacja dodawania ma zastosowanie do daty. Jeśli dodasz dziesięć do daty:

CurrentDate \u003d Date (2014, 10, 02, 15, 05, 50); // 02.10.2014 15:05:50 CurrentDate \u003d CurrentDate + 10;

W efekcie otrzymujemy datę o dziesięć sekund dłuższą:

02.10.2014 15:06:00

Tak więc operacja dodawania dodaje określoną liczbę sekund do określonej daty. Jest to różnica w stosunku do wersji systemu 1C: Enterprise 7.7, gdzie podczas dodawania dat dodawana była liczba dni, a nie sekund.

Ten artykuł stanowi kontynuację serii artykułów „Pierwsze kroki w rozwoju nad 1C”. Omówi prymitywne typy danych i najczęściej używane funkcje podczas pracy z nimi. Po przeczytaniu materiału dowiesz się:

  • Jakie typy danych są prymitywne?
  • Jak możesz pracować ze sznurkami i jakie funkcje powinieneś wziąć pod uwagę?
  • Jakie są subtelności pracy z wyrażeniami liczbowymi?
  • Jak opisujesz randkę o określonym znaczeniu? Jak ustawić pustą datę?
  • Jak działa konwersja typów?
  • Brak i niepewność - czym one są i jakie są różnice?
  • Jak określić, jaki jest typ obiektu / zmiennej?

Możliwość zastosowania

Artykuł został napisany dla platformy 1C w wersji 8.3.4.496, więc informacje są istotne dla aktualnej wersji platformy. Należy jednak zauważyć, że w wersji 8.3.6.1977 dodano nowe funkcje do pracy ze stringami. Dlatego powtarzając kroki z artykułu, nie zdziw się, jeśli w odpowiedniej sekcji Asystenta składni zobaczysz funkcje, które nie są pokazane na naszym zrzucie ekranu. Zalecamy również zapoznanie się z nową metodą StringCNumber () dodaną na platformie 8.3.10.

Prymitywne typy danych i niektóre z ich funkcji

Wyróżnia się następujące pierwotne typy danych:

Stałe łańcuchowe

Prymitywny typ danych Linia(stała łańcuchowa) składa się z różnych znaków. Liniazawsze w cudzysłowie. Przykład stałej łańcuchowej:

Message.Text \u003d „Istnieją puste dane”;

Te. wiersz „Istnieją puste dane” jest przypisany do zmiennej Tekstobiekt Wiadomość... Wszystko w cudzysłowie jest traktowane jako ciąg.

Ciąg może zawierać dowolne znaki. Linie mogą być wieloliniowe. Ponadto każdy nowy wiersz należy podać w cudzysłowie. Na przykład:

Text \u003d „Atrybut jest nieprawidłowo wypełniony”
„Wysyłanie dokumentów jest niemożliwe”;

Średnik jest umieszczany tylko na końcu ostatniej linii.

Jest inny sposób - cały tekst powinien być otoczony tylko jednym cudzysłowem, ale każda nowa linia musi zaczynać się pionową kreską.

Ta składnia jest najczęściej używana w typowych konfiguracjach. W szczególności w języku zapytań. Na przykład:

Request.Text \u003d
"WYBIERAĆ
| Pracownicy. Imię jako pracownik,
| Pracownicy Data urodzenia AS Data urodzenia
| OD
| Katalog. Pracownicy jako pracownicy
| GDZIE
| NIE Pracownicy. To jest Grupa ”;

Należy zauważyć, że operacja dodawania jest zdefiniowana dla łańcuchów. To nie jest operacja arytmetyczna, nazywa się to operacją konkatenacji.

Te. musisz połączyć na przykład dwie linie, dodając znak „+” między wierszami:

Text \u003d „Wymagane jest niepoprawnie wypełnione” + „Nie można zaksięgować dokumentu”;

W ten sposób linie są sklejone. Operacja konkatenacji jest oczywiście stosowana również do większej liczby ciągów. Inne operacje (odejmowanie, mnożenie, dzielenie) nie są dozwolone w przypadku łańcuchów.

Jeśli słowo musi być umieszczone w cudzysłowie wewnątrz ciągu, znak cudzysłowu w ciągu musi być określony za pomocą podwójnego cudzysłowu. Na przykład:

Text \u003d „Błąd w module„ ”Wspólny moduł1” ””;

W tym przykładzie pierwszy cudzysłów otwiera ciąg. Sąsiadujące obok cudzysłowy drugi i trzeci oznaczają cudzysłów.

Na końcu otrzymujemy trzy cudzysłowy: ostatni cytat zamyka ciąg, dwa poprzednie oznaczają cudzysłów.

Na łańcuchach możliwe są różne operacje konwersji ciągów, określanie pierwszych kilku lewych znaków, określanie kilku skrajnych prawych znaków, wyszukiwanie podciągu w ciągu itp.

Wszystkie te funkcje są dostępne w dowolnym miejscu konfiguracji.

W pomocniku składni znajdują się poniżej Ogólny opis języka osadzonegoWbudowane funkcjeFunkcje do pracy z wartościami typu String.

Funkcji jest sporo i zwykle wystarczają one do pracy ze stałymi łańcuchowymi.

Spójrzmy na przykład rozwiązania problemu za pomocą funkcji tekstowych.

Zadanie:

Chcesz rozwinąć funkcję. Dowolny ciąg jest przekazywany do funkcji jako parametr. Znaki w ciągu mogą zawierać liczby.

Ciąg cyfr (z jednego lub więcej), oddzielonych od innych znaków spacjami, jest dodatnią liczbą całkowitą.

Na przykład ciąg „72 ABC 6AP 31 54f -22” zawiera dwie dodatnie liczby całkowite: 72 i 31. Oprócz spacji nie są używane inne nieistotne znaki (takie jak tabulacja, powrót karetki). Funkcja powinna zwrócić liczbę dodatnich liczb całkowitych.

Musi znajdować się w zarządzanym module aplikacji. Konieczne jest upewnienie się, że jest on wywoływany podczas uruchamiania systemu. Ciąg jest definiowany za pomocą zmiennej.

A zatem otwórzmy moduł zarządzanej aplikacji i wybierzmy w polu wyboru z listy w panelu konfiguratora Modułstandardowa obsługa At StartSystem ().

W module obsługi zdefiniuj zmienną Linianp .:

Linia \u003d "72 ABC 6AP 31 54f -22";

Amount \u003d Amount ofIntegerNumbers (String);

Wyślijmy wiadomość o liczbie liczb całkowitych:

Raport („Ciąg zawiera” + Kwota + „liczby całkowite”);

Ponadto zmienna ilość zostaną niejawnie przekonwertowane na typ Stała łańcuchowa... Następnie operacja łączenia zostanie wykonana dla trzech ciągów i wiadomość zostanie przesłana.

Określ początek i koniec (tj. Szablon) funkcji Liczba liczb całkowitych (ciąg).

Rozważmy teraz jedną z możliwych opcji tworzenia funkcji Liczba liczb całkowitych (ciąg)... Robiąc to, zapoznamy się z niektórymi wbudowanymi funkcjami do pracy ze stringami.

Przede wszystkim należy zapoznać się z funkcją SymbolCode... Ta funkcja pobiera kod znaku znajdującego się w przekazanym ciągu na pozycji o określonej liczbie.

Składnia:

CharacterCode (,)

Parametry:

(obowiązkowy)

(opcjonalne) to liczba znaku w ciągu, którego kod chcesz uzyskać. Numeracja znaków w linii zaczyna się od 1.

Wartość zwracana:
Przekazany kod symbolu. Kod jest zwracany zgodnie z kodowaniem Unicode.

Zwróć uwagę, że parametr jest domyślna wartość 1.

Łańcuch może również zawierać jeden znak. W ten sposób można określić kod 0 i kod 9, a kody wszystkich innych cyfr znajdują się, jak wiesz, w odstępie między nimi.

Zdefiniujmy odpowiednie zmienne i ich wartości:

Code0 \u003d CharacterCode („0”);
Code9 \u003d CharacterCode („9”);

Aby rozwiązać problem, wybierzemy następujący schemat:

  1. Jeśli w ciągu znajduje się jakaś liczba spacji początkowych lub końcowych, pozbędziemy się ich specjalną funkcją. Następnie będziemy interesować się grupami znaków między wewnętrznymi odstępami. Jeśli grupa składa się tylko z liczb, jest to liczba całkowita. Istnieje specjalna funkcja, za pomocą której można określić położenie pierwszej przestrzeni.
  2. Biorąc pod uwagę położenie pierwszej spacji, inna funkcja może pobrać grupę znaków (podciąg) na lewo od spacji.
  3. Przeanalizujmy symbole, które tworzą grupę i określmy, czy jest to liczba całkowita. Ujawnione liczby całkowite zostaną zsumowane w specjalnej zmiennej.
  4. Skróćmy początkowy wiersz, wybierając za pomocą jeszcze jednej funkcji wszystkie znaki po prawej stronie spacji. Ta przestrzeń może być nie jedną, ale całą serią spacji w rzędzie, więc w pozostałym wierszu za pomocą specjalnej funkcji pozbędziemy się wszystkich skrajnych lewej spacji (w rzędzie) i wrócimy do kroku 2. Będziemy powtarzać kroki od punktu 2 do punktu 4, aż dojdziemy do stwierdza, że \u200b\u200bw wierszu nie pozostaną żadne spacje. W tym przypadku skrócony ciąg będzie ostatnią grupą przeanalizowanych znaków.

Teraz przeanalizujmy funkcje, których potrzebujemy, aby rozwiązać problem.

SokrLP
Składnia: skrót ()
Parametry: (obowiązkowy).
Odcina spacje (nieznaczące znaki) po lewej stronie pierwszego znaczącego znaku w ciągu i po prawej stronie ostatniego znaczącego znaku w ciągu.

Znaleźć
Składnia: Znajdź (,)
Parametry: (obowiązkowy), (obowiązkowy).
Zwraca pozycję pierwszego znaku znalezionego podciągu.
Numeracja znaków w ciągu zaczyna się od 1. Jeśli ciąg nie zawiera podanego podłańcucha, zwracane jest 0. W naszym przypadku jako podłańcuch użyjemy spacji ("").

Lew
Składnia: Lion (,)
Parametry: (obowiązkowy), (obowiązkowy).
Wybiera pierwsze znaki od lewej w ciągu. Korzystając z tej funkcji, zdefiniujemy grupy znaków do analizy (od lewej do pierwszej spacji).

Długość Str
Składnia: StrLength ()
Parametry: (obowiązkowy).
Pobiera liczbę znaków w ciągu. Użyjemy go do określenia długości sznurka.
Funkcjonować SymbolCode, których użyjemy do identyfikacji grup znaków będących liczbami całkowitymi, opisanych wcześniej.

Dobrze
Składnia: Right (,)
Parametry: (obowiązkowy), (obowiązkowy).
Wybiera skrajne prawe znaki w ciągu. Korzystając z tej funkcji, wybierzemy wciąż nieprzetworzoną część ciągu.

Skrót
Składnia: abbrL ()
Parametry: (obowiązkowy).
Obcina spacje (nieznaczące znaki) po lewej stronie pierwszego znaczącego znaku w ciągu. Używamy tej funkcji, aby usunąć możliwe spacje z lewej strony reszty ciągu.

Poniżej znajduje się możliwy algorytm funkcji z komentarzami.

Wyrażenia liczbowe

Zmienne modułów i atrybuty obiektów bazy danych mogą być numeryczne.
Liczba jest ograniczona bitowo. W przypadku zmiennej numerycznej długość części całkowitej nie może przekraczać 32 znaków.

Dokładność części ułamkowej nie może przekraczać 10 cyfr. Kiedy opisywana jest zmienna i przypisywana jest do niej wartość liczbowa, jej głębia bitowa nie jest nigdzie ustalona. Istnieją jednak również ograniczenia dotyczące zmiennych.

Asystent składni mówi, że maksymalna liczba cyfr to 38 znaków. Takie ograniczenie nie przeszkadza w rozwiązywaniu jakichkolwiek problemów gospodarczych tj. dowolną wartość pieniężną można opisać za pomocą tych liczb.

Niemniej jednak, jeśli nadal musisz opisywać duże ilości, aby rozwiązać niektóre problemy matematyczne, to w teorii programowania istnieją algorytmy, które pozwalają opisywać liczby w dowolnym wymiarze w oparciu o istniejące ograniczenia.

Operacje mające zastosowanie do numerów:

  • zwykłe operacje arytmetyczne (-, +, *, /). Mnożenie i dzielenie mają pierwszeństwo przed dodawaniem i odejmowaniem. Nawiasy mają najwyższy priorytet. Istnieją również jednoargumentowe operacje + i -, które mają pierwszeństwo bezpośrednio poza nawiasami;
  • operacja „pozostała część podziału” (%). Na przykład 12% 5 \u003d 2;
  • funkcje matematyczne, których można używać do liczb (funkcje trygonometryczne, potęgowanie, pierwiastek kwadratowy, zaokrąglanie do określonej głębokości bitowej, wybieranie części całkowitej liczby)

Jeśli mówimy o dokładności wartości liczbowych, tak jak w przypadku szczegółów bazy danych, to istnieją naturalne ograniczenia.

Ale jeśli chodzi o zmienne, jest tu pewna osobliwość. W rzeczywistości zmienne mogą być obsługiwane z bardzo dużymi liczbami, ale baza danych będzie przechowywać wartości o całkowitej długości nie większej niż 32 znaki.

Wartości logiczne

Jeśli chodzi o typ danych Boolean, istnieją tylko dwie wartości True i False, które można uzyskać na różne sposoby.

Możesz na przykład użyć operacji porównania dla liczb lub dat. W efekcie uzyskana zostanie pewna wartość logiczna, która jest wówczas najczęściej używana w instrukcjach warunkowych oraz w instrukcjach pętlowych.

Literały daty

Datę można opisać na dwa sposoby. Jeden z nich używa dosłownego. Literał jest zapisywany w pojedynczych cudzysłowach.

Najpierw zapisywany jest rok, potem miesiąc i dzień.

W razie potrzeby możesz również określić czas, ponieważ w systemie 1C: Enterprise 8 każda data zawiera zarówno datę, jak i godzinę. Na przykład:

DocumentDate \u003d „20140315121020”;

Jeśli czas nie jest określony, domyślnie jest równy zero. W opisie daty można użyć dowolnego separatora. Na przykład:

DocumentDate \u003d '2014.03.15';

Drugim sposobem określenia daty jest użycie funkcji kontekstu globalnego Data()... W tym przypadku przekazujemy do tej funkcji to samo, co parametry: rok, miesiąc, dzień oddzielone przecinkami.

Możesz także określić czas. Jeśli nie zostanie określony, domyślnie rozpocznie się dzień.

W systemie 1C: Enterprise 8 pusta data to początek kalendarza. Opcje nagrywania:

EmptyDate \u003d '00010101';
EmptyDate \u003d Date (1,1,1);

Oba rekordy zwrócą ten sam wynik, a ta data zostanie uznana za pustą.

Wygoda funkcji Data() polega na tym, że możemy w nim przekazać nie określone wartości, ale pewne zmienne. Oznacza to, że czasami tworzymy datę, zbierając różne zmienne.

W przypadku daty ma zastosowanie operacja dodawania. Operacja dodawania dodaje określoną liczbę sekund do daty.

Konwersje pierwotnych typów danych

W instrukcji przypisania, w której sumowanych jest wiele zmiennych (na przykład Zmienna \u003d A + B + C), możliwa jest konwersja pierwotnych typów danych. Konwersja typu danych jest wykonywana na wartości pierwszego typu danych.

Tak więc, jeśli pierwszy typ danych jest ciągiem znaków, system spróbuje utworzyć łańcuch z całego wyrażenia. Jeśli pierwszym typem danych jest liczba, to odpowiednio system spróbuje uzyskać numeryczny typ danych.

A więc ciąg + liczba \u003d ciąg. Czasami do ciągu można dodać liczbę, w przypadku gdy można wyodrębnić jakąś wartość liczbową z ciągu (na przykład 123 + „456”).

Dla logicznego typu danych mają zastosowanie następujące wyrażenia:

Prawda I 1 \u003d Prawda;
Prawda AND 0 \u003d Fałsz.

Każda liczba większa niż zero jest konwertowana na True, 0 jest konwertowane na False.

Data może, jak wspomniano wcześniej, zostać dodana do liczby. Datę można również dodać do logicznego typu danych.

W tym przypadku True jest konwertowany na 1, a False na 0.

Oprócz konwersji typów w operatorach możliwa jest jawna konwersja typów przy użyciu odpowiednich funkcji: String (), Number (), Date (), Boolean ().

DO Liniakażdy typ danych jest konwertowany.

Liczbę można uzyskać ze typu String lub z wartości logicznej. Boolean przekonwertowany: True na 1, False na 0.

Ciąg można przekonwertować na datę, jeśli zawiera wartość daty. Na przykład Data („20140315”). Jak wspomniano wcześniej, konwersja według pozycji jest możliwa:

Data(,).

Na wartość logiczną można przekonwertować liczbę i samą wartość na wartość logiczną.

Te funkcje mogą być używane w kodzie do wykonywania jawnych konwersji typów.

Pierwotne typy danych Number, String, Date i Boolean mogą działać jako pola bazy danych.

Wartości zerowe i niezdefiniowane

NULL to dosłowne. Jest zwykle używany w zapytaniach do bazy danych, gdy łączone są co najmniej dwie tabele.

To brakujące rekordy w drugiej tabeli są wypełnione wartością NULL. Te. jest to jakiś brakujący sens.

Później, podczas przetwarzania wynikowego wyniku, należy to wziąć pod uwagę, ponieważ NULL nie jest zerem, ale odpowiadający mu typ danych.

Aby przetworzyć wartość, musisz rzutować NULL na jakiś zwykły typ danych, który może być wyświetlany lub używany w operacjach arytmetycznych.

Wartość NULL można również uzyskać w języku osadzonym. Możesz zdefiniować jakąś zmienną i przypisać jej bardzo NULL. Jednak takie przypisanie prawie nigdy nie jest używane w kodzie programu.

Te. NULL to w rzeczywistości typ danych uzyskiwanych podczas pracy z zapytaniami. Wartość NULL w języku zapytań musi być traktowana w specjalny sposób.

Mianowicie, porównanie A \u003d NULL nie zadziała na poziomie zapytania, będziesz musiał użyć wyspecjalizowanych funkcji. Jednak w języku wbudowanym porównanie z wartością NULL będzie działać poprawnie.

Typ danych Undefined - nie jest to pusta wartość dla żadnego atrybutu.

Na przykład, jeśli atrybut odwołania ma łącze do innego odniesienia jako typ danych, pusta wartość tego atrybutu nie będzie równa Undefined.

Ten typ (Undefined) pojawia się po pierwsze, jeśli mamy określoną zmienną i nie jest ona zainicjalizowana (typ danych nie jest zdefiniowany).

Drugi przykład: Typ danych Undefined jest zwracany przez wiele wbudowanych funkcji językowych, gdy nie można wykonać akcji.

Na przykład wyszukiwanie elementu książki informacyjnej według nazwy, jeśli jakaś książka nie ma takiej nazwy elementu. metoda FindByDesign zwróci wartość Nieokreślony.

W którym Nieokreślony jest słowem kluczowym, jest podświetlone na czerwono. Jest to również dosłowne, do pisania Nieokreślony nie ma potrzeby używania cudzysłowów, przecinków, nawiasów itp.

Jeśli istnieje lista dokumentów, a ta lista jest pusta (odpowiednio nie ma w niej wierszy), to bieżąca linia przyjmie wartość Nieokreślony.

Jeśli baza danych zawiera zmienną o złożonym typie danych, wówczas pusta wartość tej zmiennej będzie Nieokreślony.

Ale jeśli typ danych nie jest złożony, pusta wartość będzie odpowiadać pustej wartości tego typu (w przypadku daty jest to pierwsza sekunda pierwszej godziny pierwszego dnia pierwszego miesiąca pierwszego roku).

NULL i Undefined to zarówno typy danych, jak i wartości w tych typach, a jest tylko jeden. Dla NULL jest to NULL, dla Undefined, Undefined.

Typ danych Typ

Głównym zastosowaniem tego typu danych jest porównanie wartości zmiennej lub właściwości bazy danych z określonym typem.

Te. algorytm musi zrozumieć, jakiego typu jest dany obiekt.

Warto zauważyć, że ten typ danych nie ma literału. Nie możemy zapisać go jako NULL lub Undefined, ale możemy uzyskać wartość tego typu za pomocą dwóch funkcji Typi TypeZnch.

Aby uzyskać typ jakiegoś obiektu (może to być zmienna, atrybut bazy danych lub atrybut formularza), użyj funkcji TypeZnch.

Ta funkcja jest przekazywana do obiektu, dla którego chcesz pobrać typ danych.

Jako wartość zwracana funkcja zwraca dokładnie ten typ typu.

W przyszłości należy go porównać z każdym rodzajem zainteresowania. Na przykład:

IfTypeVal (Element) \u003d Type ("ReferenceLink.Nomenclature") Następnie
Raport („To jest produkt”);
EndIf;

Podsumowując, podsumujmy cały omówiony materiał.

Przeanalizowaliśmy podstawowe konstrukcje języka osadzonego 1C, nauczyliśmy się używać zmiennych i operatorów, dowiedzieliśmy się, co i jak używać procedur i funkcji. Zauważ, że w zasadzie cały nasz kod programu do tego momentu był samowystarczalny - napisaliśmy wszystko sami od zera i używaliśmy przynajmniej niektórych obiektów konfiguracyjnych lub wbudowanego języka.

W następnym artykule zbadamy te obiekty bardziej szczegółowo, więc nie przełączaj się! ;)

Wielu, którzy dopiero zaczynają uczyć się programowania, po raz pierwszy napotyka dla siebie nowy prymitywny typ boolean... Nazywa się to również inaczej typ logiczny... Nazwa tego typu pochodzi od angielskiego matematyka George'a Boole'a, który studiował zagadnienia z logiki matematycznej.

Zanim zaczniemy studiować ten prymitywny typ, ogólnie nauczymy się, czym są wyrażenia logiczne lub logiczne.

Wyrażenia boolowskie są czymś w rodzaju pytania, na które należy odpowiedzieć jednoznacznie, tak lub nie.

5 < 7 — Да;

5 \u003d 8 - nie;

4\u003e 9 - nie.

Mogę też zadawać bardziej złożone pytania:

Wciśnięty przycisk - tak;

Wciśnięty przycisk - nie;

Wyrażenia boolowskie są używane we wszystkich skokach warunkowych:

Jeśli< Булево выражение1> następnie

// operatory

W przeciwnym razie, jeśli< BooleanExpression2\u003e wtedy

// operatory

EndIf;

W języku programowania 1C zmienną o prymitywnym typie boolowskim można ustawić jawnie:

A \u003d prawda;

B \u003d Fałsz;

Gdzie True i False to jedyne wartości, które może przyjmować pierwotny typ boolowski.

Prawda oznacza, że \u200b\u200bstwierdzenie jest prawdziwe (Odpowiedź - Tak).

Kłamstwo - oznacza, że \u200b\u200bwręcz przeciwnie, stwierdzenie nie odpowiada rzeczywistości (Odpowiedź - Nie).

Ponadto zmienne o typie logicznym można ustawić za pomocą dowolnego wyrażenia logicznego.
Na przykład:

A \u003d 5< 7 ;

B \u003d 6\u003e 9;

W tym przypadku zmienna A będzie miała wartość Prawda, a zmienna typu B będzie zawierała fałsz;

W języku programowania 1C można wykonywać różne operacje na zmiennych typu Boolean.

Na przykład:

A \u003d 5< 7 ;

B \u003d 6\u003e 9;

B \u003d A i B;

C \u003d A LUB B;

D \u003d nie A;

Są trzy z nich - AND, OR i NOT.

Poniższe tabele pomogą ci zrozumieć funkcjonalność tych operacji.

Operacja NIE

I b
Prawdziwe Fałszywe
Fałszywe Prawdziwe

Operacja AND

C \u003d A AND B I b
Prawdziwe Prawdziwe Prawdziwe
Fałszywe Fałszywe Prawdziwe
Fałszywe Prawdziwe Fałszywe
Fałszywe Fałszywe Fałszywe

LUB operacja

C \u003d A LUB B I b
Prawdziwe Prawdziwe Prawdziwe
Prawdziwe Fałszywe Prawdziwe
Prawdziwe Prawdziwe Fałszywe
Fałszywe Fałszywe Fałszywe

Czy można wykonać te operacje pod rząd?

Tak, możesz, te operacje będą wykonywane od lewej do prawej. I mieć następujący stopień stażu pracy:

Po pierwsze: operacje w nawiasach są wykonywane jako pierwsze

Po drugie: operacja NIE

Po trzecie: operacja I

Po czwarte: operacja OR.

Aby uniknąć pomyłek w operacjach, radzę używać nawiasów, gdy tylko jest to możliwe.

Na przykład:

A \u003d Fałsz;

B \u003d prawda;

C \u003d Fałsz;

D \u003d A i C lub B;

W takim przypadku operacja zadziała jako pierwsza. Imiędzy A i C.

Patrz tabela A - Fałszywe, Z - Fałszywe, wynik A IC będzie Fałszywe.

Następnym krokiem jest wykonanie operacji LUBpomiędzy Kłamstwa(Wynik poprzedniej operacji) i wartość B, która Prawdziwe.

Wynik będzie Prawdziwe.

A jeśli potrzebujemy, aby operacja odbyła się jako pierwsza LUBmiędzy C i B, a następnie tylko operacja Imiędzy A a tym, co się stało, w tym celu należy użyć nawiasów.

A \u003d Fałsz;

B \u003d prawda;

C \u003d Fałsz;

D \u003d A i (C lub B);

Wynik będzie diametralnie przeciwny. Czemu? Teraz przeanalizujemy. Dzięki nawiasom operacja jest najpierw wykonywana między C i B, ponieważ Z - Fałszywe, oraz b - Prawdziwe, wynik będzie Prawdziwe... Następnie między wartością A (która Fałszywe) i wartość Prawdziwe(wynik poprzedniej operacji) operacja jest wykonywana I... Wynik będzie Fałszywe.

Wielu początkujących programistów nie w pełni rozumie zasady interakcji między zmiennymi boolowskimi. Tylko praktyka może w tym pomóc. A ćwiczenie ze zmiennymi typu boolowskiego wystarczy w mojej książce problemowej do książki

Poznaj podstawy konfiguracji w 1C i naucz się programować w 1C: Enterprise z pomocą moich książek: oraz „Podstawy rozwoju w 1C: Taxi”

Naucz się programowania w 1C w miejscu z mojej książki „Programowanie w 1C w 11 krokach”

  1. Książka jest napisana jasnym i prostym językiem - dla początkującego.
  2. Naucz się rozumieć architekturę 1C;
  3. Zacznij pisać kod w 1C;
  4. Opanuj podstawowe techniki programowania;
  5. Wzmocnij wiedzę zdobytą przy pomocy książki z problemami;

Doskonały przewodnik po programowaniu w aplikacji zarządzanej przez 1C, zarówno dla początkujących programistów, jak i doświadczonych programistów.

  1. Bardzo przystępny i zrozumiały język
  2. Książka jest wysyłana e-mailem w formacie PDF. Można go otworzyć na dowolnym urządzeniu!
  3. Zrozum ideologię aplikacji zarządzanej przez 1C
  4. Dowiedz się, jak opracować zarządzaną aplikację;
  5. Naucz się rozwijać kontrolowane formularze 1C;
  6. Będziesz mógł pracować z podstawowymi i niezbędnymi elementami zarządzanych formularzy
  7. Programowanie w zarządzanej aplikacji stanie się jasne

15% rabat kod promocyjny - 48PVXHeYu


Jeśli ta lekcja pomogła Ci rozwiązać jakiś problem, spodobała Ci się lub okazała się przydatna, to możesz wesprzeć mój projekt przelewem dowolnej kwoty:

możesz zapłacić ręcznie:

Yandex.Money - 410012882996301
Pieniądze internetowe - R955262494655

Dołącz do moich grup.

Konfigurując kolejną integrację 1C: Trade Management 11 z serwisem zarządzanym przez 1C-Bitrix, napotkałem następujący problem: szczegóły typu „Boolean” zostały przesłane do serwisu jako typ „String” i wartość „Tak”. W rezultacie standardowe szczegóły „Nowy”, „Oferta specjalna” i „Bestseller” nie są już wyświetlane.

Niestety nie znalazłem innej opcji, jak naprawić przesyłanie na stronę w 1C: UT. Ulepszenia są minimalne.

1. Wszystkie wartości atrybutów właściwości, z wyjątkiem liczb, daty i odniesienia, są usuwane jako typ ogólny String. Zróbmy Boolean nie jako ciąg znaków, ale jako katalog, w tym celu w module General konfiguracji „Exchange by site” znajdziemy procedurę UnloadMainPropertyAttributesForClassifier (). Dodaj dwie linie do warunku:

2. Teraz musisz pobrać możliwe wartości. W naszym przypadku będzie to tylko jedno: „Tak” z identyfikatorem „TAK”. Dodajmy dodatkowy warunek tuż poniżej w tej samej procedurze:

3. Podczas usuwania właściwości pozycji konieczne jest, aby, jeśli wartość logiczna jest prawdą, „TAK” zostało usunięte. Aby to zrobić, w tym samym module znajdź procedurę UnloadNomenclatureProperties () i dodaj do niej kilka wierszy:

4. Teraz możesz zapisać zmiany i rozpocząć wymianę danych z serwisem. Na wszelki wypadek przejdź do menu "Treść - Właściwości infobloków - Katalogi - Katalog produktów" i sprawdź ustawienia Właściwości elementów typu Boolean. Ich wygląd należy ustawić jako „Pola wyboru”:

Teraz „Nowy”, „Oferta specjalna” i „Bestseller” są poprawnie przenoszone z 1C i wyświetlane jako flagi na karcie produktu:

DZWON

Są tacy, którzy czytają tę wiadomość przed wami.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Imię
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu