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

Typ „String” występuje we wszystkich językach programowania. Jest prymitywny, aw 1C jest wiele funkcji do pracy z nim. W tym artykule przyjrzymy się bliżej różnym sposobom pracy z typami ciągów w 1C 8.3 i 8.2 na podstawie przykładów.

Linia

Aby przekonwertować zmienną dowolnego typu na ciąg znaków, istnieje funkcja o tej samej nazwie „String ()”. Parametr wejściowy będzie samą zmienną, której reprezentację w postaci łańcucha należy uzyskać.

String (False) // zwraca „No”
String (12345) // zwraca „12 345”
Ciąg (CurrentDate ()) // 07/21/2017 11:55:36 ″

Na łańcuch można konwertować nie tylko typy pierwotne, ale także inne, np. Elementy podręczników, dokumentów.

SocrLP, SocrL, SocrP

Parametry wejściowe tych funkcji są zmiennymi typu łańcuchowego. Funkcje usuwają nieznaczące znaki (spacje, powrót karetki itp.): Odpowiednio z lewej i prawej strony, tylko z lewej strony i tylko z prawej strony.

AbbrLP ("Spacje po obu stronach zostaną usunięte") // "Spacje po obu stronach zostaną usunięte"
Skrócona („Spacje po obu stronach zostaną usunięte”) // „Spacje po lewej stronie zostaną usunięte”
Skrót („Spacje po obu stronach zostaną usunięte”) // „Spacje po prawej stronie zostaną usunięte”

Leo, racja, środa

Te funkcje pozwalają przyciąć część łańcucha. Funkcja „Lion ()” zwróci część ciągu z jego lewej strony o określonej długości. Funkcja „Right ()” jest taka sama, ale kadrowanie odbywa się po prawej stronie. Funkcja „Med ()” pozwala określić liczbę znaków, z których zostanie wybrany ciąg oraz jego długość.

Lion ("Zmienna ciągowa", 4) // zwraca "Stro"
Right ("String zmienna", 7) // zwraca "zmienna"
Wed ("Zmienna ciągowa", 2, 5) // zwraca "troco"

Długość Str

Funkcja określa liczbę znaków zawartych w zmiennej łańcuchowej.

StrLength ("Word") // wynik wykonania będzie miał numer 5

Znaleźć

Funkcja umożliwia wyszukanie części łańcucha w dowolnej zmiennej łańcuchowej. Wartość zwracana będzie liczbą wskazującą pozycję początku znalezionego ciągu. Jeśli nie zostanie znalezione dopasowanie, zwracane jest zero.

Pamiętaj, że wyszukiwania uwzględniają wielkość liter. Jeśli oryginalny ciąg zawiera więcej niż jedno wystąpienie podciągu wyszukiwania, funkcja zwróci początek pierwszego wystąpienia.

Find ("jeden, dwa, jeden, dwa, trzy", "dwa") // funkcja zwróci liczbę 6

Pusta linia

Użycie tej funkcji pozwala określić, czy ciąg jest pusty. Nieistotne znaki, takie jak spacja, powrót karetki i inne, są ignorowane.

EmptyString ("Pupkin Vasily Ivanovich") // funkcja zwróci wartość False
EmptyString ("") // funkcja zwróci True

VReg, HPreg, Treg

Te funkcje są bardzo przydatne do porównywania i konwertowania zmiennych łańcuchowych. Breg () zwróci oryginalny ciąg wielkimi literami, HPreg () małymi, a TRreg () sformatuje go tak, aby pierwszy znak każdego słowa był pisany wielkimi literami, a wszystkie następne były małe.

Vreg ("GENERAL DIRECTOR") // zwraca wartość - "GENERAL DIRECTOR"
НReg ("GENERAL DIRECTOR") // zwraca wartość - "dyrektor generalny"
TREG ("GENERAL DIRECTOR") // zwraca wartość - "Dyrektor Generalny"

PageReplace

Ta funkcja jest analogiczna do zamiany w edytorach tekstu. Pozwala zastąpić jeden znak lub zestaw znaków innym w zmiennych łańcuchowych.

StrReplace ("czerwony, biały, żółty", ",", ";") // zwróci "czerwony; biały; żółty"

StrNumberStrings

Funkcja umożliwia określenie liczby wierszy oddzielonych znakami powrotu karetki w zmiennej tekstowej.

Pętla w poniższym przykładzie przejdzie przez trzy okręgi, ponieważ funkcja RowNumber zwróci 3:

For ind \u003d 1 by StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Pętla
<тело цикла>
Koniec cyklu;

StrGetString

Ta funkcja działa z tekstem wielowierszowym w taki sam sposób jak poprzednia. Pozwala uzyskać określony ciąg ze zmiennej tekstowej.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // zwróci „String2”

StrNumber of Occurrences

Funkcja zlicza liczbę wystąpień znaku lub podłańcucha w wyszukiwanym ciągu.

StringNumber of Attachments ("a; b; c; d;", \u200b\u200b";") // funkcja zwróci liczbę 4

Symbol i kod symbolu

Te funkcje umożliwiają pobranie znaku na podstawie jego kodu Unicode, a także określenie tego kodu na podstawie samego znaku.

SymbolCode ("A") // funkcja zwróci liczbę 1 040
SymbolCode (1040) // funkcja zwróci „A”

Częste zadania podczas pracy z łańcuchami

Łączenie ciągów

Aby połączyć wiele ciągów (aby wykonać konkatenację), wystarczy użyć operatora dodawania.

"Linia 1 ″ +" Linia 2 ″ // wynikiem dodania dwóch ciągów będzie "Linia 1 Linia 2"

Konwersja typów

Aby przekonwertować typ na łańcuch, np. Odwołanie do pozycji słownika, liczbę itp. Wystarczy użyć funkcji „String ()”. Funkcje takie jak „Abbreviation ()” również konwertują zmienne na łańcuch, ale natychmiast z obcięciem nieistotnych znaków.

String (1000) // zwróci „1000”

Należy pamiętać, że podczas konwersji liczby na łańcuch, program automatycznie dodaje spację oddzielającą tysiąc. Aby tego uniknąć, możesz użyć następujących konstrukcji:

StrReplace (String (1000), Characters.NPP, "") // zwróci "1000"

String (Format (1000, "CHG \u003d")) // zwróci "1000"

Cytaty w ciągu znaków

Dość często będziesz musiał zmierzyć się z koniecznością określenia cudzysłowów w zmiennej łańcuchowej. Może to być tekst żądania zapisany w konfiguratorze lub po prostu zmienna. Aby rozwiązać ten problem, wystarczy ustawić dwa cudzysłowy.

Title \u003d String ("Horns and Hooves LLC" - to my! ") // zwraca" Horns and Hoofs LLC - to my! "

Wielowierszowy, podział linii

Aby stworzyć tekst wieloliniowy, wystarczy dodać do niego podziały wierszy (Symbols.PS).

MultilineText \u003d "Pierwsza linia" + Symbols.PS + "Druga linia"

Jak usunąć spacje

Aby usunąć spacje z prawej lub lewej strony, możesz użyć funkcji „Skrót ()” (a także „Skrót ()” i „Skrót ()”):

StringNoSpaces \u003d AbbreviatedLP ("Wiele liter") // funkcja zwróci wartość "Wiele liter"

Jeśli po konwersji liczby na łańcuch chcesz usunąć nierozdzielające spacje, użyj następującej konstrukcji:

StringNoSpaces \u003d StrReplace (String (99999), Characters.NPP, "") // zwróci "99999"

Ponadto programiści często używają następującej konstrukcji, która pozwala usunąć lub zamienić wszystkie spacje zmiennej tekstowej na inny znak:

StringNoSpaces \u003d StrReplace ("witaj", "", "") // zwraca "witaj"

Porównywanie sznurków do siebie

Warunki można porównać ze zwykłym znakiem równości. W porównaniu rozróżniana jest wielkość liter.

„Hello” \u003d „hello” // zwróci wartość False
„Hello” \u003d „Hello” // zwróci True
„Hello” \u003d „Goodbye” // zwróci wartość False

Istnieje kilka mechanizmów pracy z ciągami znaków w zapytaniach 1C. Najpierw można dodać linie. Po drugie, możesz pobrać podciąg z łańcucha. Po trzecie, łańcuchy można porównać, w tym według wzorca. To prawdopodobnie wszystko, co możesz zrobić ze stringami.

Połącz ciągi

Aby dodać ciągi do zapytania, użyj operacji „+”. Można dodawać tylko wiersze o ograniczonej długości.

WYBIERZ "Nazwa:" + Kontrahenci. Nazwa AS Kolumna 1 Z katalogu. Kontrahenci JAKO Kontrahenci GDZIE Kontrahenci. Link \u003d & Link

Funkcja podłańcucha

PODŁOŻE (<Строка>, <НачальнаяПозиция>, <Длина>)

Analog funkcji Environment () z modelu obiektowego. Funkcję Substring () można zastosować do danych typu łańcuchowego i umożliwia ona wybranie fragmentu <Строки> zaczynając od numeru znaku <НачальнаяПозиция> (znaki w ciągu są numerowane od 1) i długość <Длина> postacie. Wynik obliczenia funkcji ma typ łańcucha o zmiennej długości, a długość zostanie uznana za nieograniczoną, jeśli <Строка> ma nieograniczoną długość i parametry <Длина> nie jest stała lub przekracza 1024.

Jeśli długość ciągu jest mniejsza niż określona w drugim parametrze, funkcja zwróci pusty ciąg.

Uwaga! Używanie funkcji SUBSTRING () do konwersji łańcuchów o nieograniczonej długości na łańcuchy o ograniczonej długości nie jest zalecane. Zamiast tego lepiej jest użyć operacji rzutowania EXPRESS ().

Funkcjonować jak

Jeśli musimy się upewnić, że atrybut ciągu spełnia określone kryteria, porównujemy go:

WYBIERZ kontrahentów. Nazwa AS Kolumna 1 Z Katalogu. Kontrahenci AS Kontrahenci GDZIE Kontrahenci. Nazwa \u003d "Gazprom"

Ale co, jeśli chcesz trudniejszego porównania? Nie tylko równość czy nierówność, ale jak pewien wzór? Właśnie do tego została stworzona funkcja LIKE.

LIKE - Operator do sprawdzania łańcucha, takiego jak wzorzec. Analogicznie do LIKE w SQL.

Operator LIKE umożliwia porównanie wartości wyrażenia określonego po jego lewej stronie z łańcuchem szablonu określonym po prawej stronie. Wartość wyrażenia musi być typu string. Jeśli wartość wyrażenia pasuje do wzorca, operator zwróci TRUE, w przeciwnym razie będzie FALSE.

Następujące znaki w ciągu szablonu są znakami usługowymi i mają inne znaczenie niż znak ciągu:

  • % (procent): sekwencja zawierająca dowolną liczbę dowolnych znaków;
  • _ (podkreślenie): jeden dowolny znak;
  • […] (Jeden lub więcej znaków w nawiasach kwadratowych): dowolny pojedynczy znak wymieniony w nawiasach kwadratowych. Wyliczenie może zawierać zakresy, na przykład a-z, co oznacza dowolny znak zawarty w zakresie, w tym końce zakresu;
  • [^…] (W nawiasach kwadratowych znak negacji, po którym następuje jeden lub więcej znaków): dowolny pojedynczy znak inny niż wymienione po znaku negacji.

Każdy inny symbol oznacza sam siebie i nie ma żadnego dodatkowego znaczenia. Jeśli konieczne jest wpisanie jednego z wymienionych znaków jako siebie, należy go poprzedzić<Спецсимвол>... samego siebie<Спецсимвол> (dowolny odpowiedni znak) jest zdefiniowany w tej samej instrukcji po słowie kluczowym SPECIAL CHARACTER.

Notatki z lustra

08/18/2014 Nowe funkcje do pracy ze stringami

Zaimplementowano w wersji 8.3.6.1977.

Rozszerzyliśmy zestaw funkcji do pracy z napisami. Zrobiliśmy to, aby zapewnić bardziej zaawansowane narzędzia do analizowania danych ciągów. Nowe funkcje będą wygodne i przydatne w technologicznych zadaniach analizy tekstu. W zadaniach związanych z analizowaniem tekstu zawierającego sformatowane dane. Może to być analiza niektórych plików otrzymanych z urządzenia lub np. Analiza dziennika technologicznego.

Wszystkie czynności, które wykonują nowe funkcje, które mógłbyś wykonać wcześniej. Z pomocą mniej lub bardziej złożonych algorytmów napisanych w języku embedded. Dlatego nowe funkcje nie dają zupełnie nowych możliwości. Mogą jednak zmniejszyć ilość kodu, uczynić go prostszym i łatwiejszym do zrozumienia. A poza tym pozwalają przyspieszyć wykonywanie działań. Bo funkcje zaimplementowane w platformie działają oczywiście szybciej niż podobny algorytm napisany w języku embedded.

Funkcja formatowania PpTemplate ()

Ta funkcja zastępuje parametry w ciągu. Potrzeba takiej konwersji często pojawia się np. Przy wyświetlaniu komunikatów ostrzegawczych. Składnia tej funkcji jest następująca:

PageTemplate (<Шаблон>, <Значение1-Значение10>)

<Шаблон> jest łańcuchem zastępującym reprezentacje parametrów.

<Значение1> , ... <Значение10> - są to parametry (maksymalnie - dziesięć), których reprezentacje należy podstawić do ciągu.

Aby wskazać konkretne miejsce w szablonie, w którym chcesz wykonać podstawienie, musisz użyć tokenów, takich jak% 1, ...% 10. Liczba znaczników użytych w szablonie i liczba parametrów zawierających wartości muszą być zgodne.

Na przykład wynik wykonania takiej instrukcji:

będzie linia:

Błąd danych w linii 2 (wymagany typ daty)

Funkcja do pracy z ciągami znaków StrCompare ()

Ta funkcja porównuje dwa ciągi bez rozróżniania wielkości liter. Na przykład tak:

Mogłeś wykonać tę samą czynność przed użyciem obiektu Porównanie wartości:

Jednak użycie nowej funkcji wygląda na prostsze. A poza tym funkcja, w przeciwieństwie do obiektu Porównanie wartości, działa zarówno w kliencie uproszczonym, jak i kliencie internetowym.

Funkcje do pracy z ciągami RowStart With (), RREnd With ()

Te funkcje określają, czy ciąg zaczyna się od określonego podciągu, czy kończy się określonym podciągiem. Algorytm tych funkcji nie jest trudny do zaimplementowania w języku embedded, ale ich obecność pozwala na pisanie czystszego i bardziej zrozumiałego kodu. I działają szybciej.

Na przykład wygodnie jest ich używać w operatorze Jeśli:

Funkcje do pracy z ciągami znaków StrSplit (), StrConnect ()

Te funkcje dzielą ciąg na części zgodnie z określonym separatorem. Lub odwrotnie, łączą kilka linii w jedną, wstawiając między nimi wybrany separator. Są wygodne do tworzenia lub analizowania logów, logów technologicznych. Przykładowo możesz łatwo rozłożyć zapis dziennika technologicznego na części nadające się do dalszej analizy:

Funkcja do pracy z ciągami StrFind ()

Zamiast starej funkcji Znaleźć() wdrożyliśmy nową funkcję, która ma dodatkowe możliwości:

  • Szukaj w różnych kierunkach (od początku, od końca);
  • Szukaj z określonej pozycji;
  • Wyszukaj wystąpienie o określonym numerze (drugie, trzecie itp.).

W rzeczywistości powiela możliwości starej funkcji. Odbywa się to w celu zachowania kompatybilności z modułami skompilowanymi w starszych wersjach. Stara funkcja Znaleźć() nie zaleca się ponownego użycia.

Poniżej znajduje się przykład wykorzystujący nowe możliwości wyszukiwania. Wyszukiwanie wstecz jest przydatne, gdy potrzebny jest ostatni fragment sformalizowanego ciągu, na przykład pełna nazwa pliku w adresie URL. A wyszukiwanie z określonej pozycji pomaga w przypadkach, gdy trzeba szukać w znanym fragmencie, a nie w całym ciągu.

Podstawowe cechy języka programowania obejmują zwykle pracę z liczbami i łańcuchami znaków. Zwykle te funkcje są zakodowane na stałe w kodzie kompilatora (lub zaimplementowane są „podstawowe” klasy języka programowania).

W 1C możliwość pracy ze stringami jest programowana w samej platformie. Dzisiaj rozważymy funkcje pracy z ciągami 1C w programach we wbudowanym języku 1C.

Wartość w wierszu 1C

1. Zacznijmy od najprostszego. Tworzenie zmiennej i przypisywanie do niej stałej wartości ciągu wygląda następująco w 1C:

Zmienna \u003d "Witaj świecie!";

Jeśli chcesz określić cudzysłów w stałej wartości ciągu 1C, musisz ją podwoić ""

Zmienna \u003d "Witaj", "świecie" "!";

2. Podział wiersza 1C można określić na dwa sposoby jednocześnie. Pierwsza z nich używa symbolu |

Variable \u003d "Witaj,
| świat! ";

Drugi to wyliczenie systemu Symbols. Umożliwia dodawanie znaków końca wiersza 1C i innych niedrukowalnych znaków, takich jak TAB.

Zmienna \u003d "Witaj" + Symbols.PS + "Świat!";

3. Konfiguracje w 1C można opracować nie tylko dla jednego języka (rosyjski, angielski lub inny) - ale jednocześnie dla kilku języków. W takim przypadku aktualnie używany język jest wybierany w dolnej części okna 1C.

Lista języków znajduje się w oknie konfiguracji w gałęzi Ogólne / Języki. Każdy język ma krótki identyfikator, taki jak ru lub inż.

Oczywiste jest, że podczas programowania takiej konfiguracji ciągi 1C mogą być również wielojęzyczne. Aby to zrobić, można utworzyć taką linię 1C, określając przez; opcje według identyfikatora języka:

Zmienna \u003d "ru \u003d" "Witaj świecie!" "; En \u003d" "Witaj świecie!" "";

Jeśli użyjesz linii 1C utworzonej w ten sposób jak zwykle, to będzie to, co jest w niej napisane. Aby system podzielił go na dwie opcje i użył żądanej, musisz użyć funkcji HStr ():

// poprawne dla konfiguracji dwujęzycznych
Raport (НStr (zmienna));

Podpory z linią typu 1C

Wymagane jest pole odniesienia / dokumentu 1C. Różni się od zmiennej w programie 1C tym, że jej typ (liczba, łańcuch 1C itp.) Jest precyzyjnie wskazany dla właściwości. Jeśli chcesz odświeżyć, jakie są rekwizyty, zapoznaj się z samouczkiem.

Jeśli określisz typ atrybutu - wiersz 1C, musisz dodatkowo określić parametry.

Łańcuchy 1C mają nieograniczoną długość (określoną jako długość \u003d 0) i ograniczoną długość, wskazując dokładną liczbę znaków. Wiersze 1C o nieograniczonej długości są przechowywane w oddzielnej tabeli SQL, więc ich użycie jest mniej produktywne niż ograniczone.

Dlatego stosowanie strun 1C o nieograniczonej długości ma swoje ograniczenia - nie wszędzie da się ich używać. Na przykład nie może służyć jako numer dokumentu, kod katalogu, wymiar.

Praca ze stringami 1C

Platforma 1C ma kilka wbudowanych funkcji do pracy ze strunami.

  • SocrLP („Niewiarygodne, ale prawdziwe!”)
    Usuwa dodatkowe spacje z linii 1C. Może być również używany do konwersji dowolnych typów na ciąg 1C (na przykład liczby).
  • Zmienna \u003d „Vasya” + SokrLP („plus”) + „Olya”; // będzie "Vasya plus Olya"
    Przykład sumowania kilku wartości ciągów 1C. Rezultatem będzie jedna linia 1C.
  • Zmienna \u003d Lew ("Muzyka", 2); // będzie "Mu"
    Zmienna \u003d środa ("Muzyka", 2, 2); // będzie "shl"
    Zmienna \u003d Right ("Music", 2); // będzie "ka"
    Różne opcje uzyskiwania podciągu z łańcucha 1C.
  • Zmienna \u003d Znajdź („Muzyka”, „Shl”); // będzie 3
    Wyszukaj podciąg w ciągu 1C, zaczynając od znaku 1.
  • Variable \u003d StrLength („Music”); // będzie 6
    Zwraca liczbę znaków w linii 1C.
  • Report („Hello”) // w oknie wiadomości na dole okna 1C
    Ostrzeżenie („Hello”) // wyskakujące okno dialogowe
    State ("Hello") // w linii statusu w lewym dolnym rogu
    .

Przesyłanie obiektów do linii 1C

Jak wiadomo, obecnie najpopularniejszym formatem wymiany ustrukturyzowanych informacji jest XML. Nawet najnowsza wersja MS Office Word i Excel zapisuje pliki w tym formacie (odpowiednio docx i xlsx, zmień rozszerzenie na zip, otwórz w archiwizatorze).

Platforma 1C do wymiany danych zapewnia kilka opcji, z których główną jest również XML.

1. Najprostszą metodą jest użycie funkcji AbscrLP () lub String (). W treści zapytania można użyć funkcji REPRESENT (). Rezultat ich działania jest taki sam - generują ciąg reprezentujący dowolny obiekt 1C dla użytkownika.

W przypadku podręcznika będzie to domyślnie jego nazwa. W przypadku dokumentu - nazwa dokumentu, numer i data.

2. Każdy obiekt 1C (z ograniczeniami) można przekonwertować na XML i odwrotnie. Proces konwersji nazywa się serializacją.

ViewStringXml \u003d XMLString (wartość); // pobierz XML z wartości 1C
Wartość1C \u003d XMLValue (Type ("ReferenceLink.Nomenclature"), ViewStringXml); // pobierz wartość 1C z łańcucha XML, musisz określić typ 1C, który ma zostać odebrany

3. Istnieje sposób na platformę 1C do konwersji dowolnego obiektu 1C na ciąg. Migrował z wersji 1C 7.7. Ten format nie jest obsługiwany przez inne programy, ale jest rozumiany przez inny 1C, co ułatwia użycie go do wymiany między bazami 1C.

String \u003d ValueVSStringInter (Value1C); // pobierz wiersz 1C z wartości 1C
ValueVFile ("C: \\ MyFile.txt", Value1C); // inna opcja, otrzymujemy plik z zapisanym ciągiem znaków z wartości 1C
Value1C \u003d ValueFromStringInternal (String); // powrót z linii 1C
Value1C \u003d ValueOfFile ("C: \\ MyFile.txt"); // powrót z pliku

Edycja linii 1C w formularzu

Oprócz pracy z ciągami 1C w programie 1C chciałbym oczywiście, aby użytkownik mógł je edytować. Jest na to kilka możliwości:

1. Najłatwiejszym sposobem jest zażądanie wprowadzenia linii 1C na żądanie. Ta metoda jest używana podczas nauki programowania 1C, w prawdziwym życiu jest używana znacznie rzadziej (ale jest używana!).

Zmienna \u003d „”;
String \u003d EnterValue (Variable, "Wpisz swoje imię i nazwisko");

2. Aby wyświetlić atrybut obiektu 1C (podręcznik / dokument) lub atrybut formularza (zobacz), najczęściej używane jest pole wprowadzania. Jest to najpopularniejsze narzędzie w 1C do pracy użytkowników z polami edycji.

3. Możliwości pola wejściowego można rozszerzyć (zobacz właściwości pola wejściowego, kliknij je prawym przyciskiem myszy, aby uzyskać więcej informacji):

  • Zaznacz tryb edycji wieloliniowej
  • Pole wyboru Edycja zaawansowana (dostępne, jeśli zaznaczone jest poprzednie pole wyboru)
  • Tryb hasła pola wyboru (patrz).

4. Jeśli nie masz wszystkich możliwości pola wejściowego, istnieje wbudowany edytor. Aby dodać go do formularza, dodaj pole dokumentu tekstowego w menu Form / Insert Control. W jego właściwościach można określić tryb jego działania - właściwość Extension.

Pola dokumentu tekstowego nie można łączyć bezpośrednio z danymi. Konieczne jest napisanie funkcji w obsłudze zdarzeń OnOpen () formularza (zobacz):

Form Elements.ElementNameTextDocumentField.SetText (ValueString); // tutaj Ciąg ValueString jest tekstem uzyskanym na przykład z właściwości

A w module obsługi zapisu - na przykład w przycisku Zapisz - dodaj zapis:

ValueString \u003d FormElements.ElementNameTextDocumentField.GetText (); // Wartość Ciąg znaków jest tutaj właściwościami, w których przechowujemy wartość

5. W wersji 1C 8.2.11, w zarządzanych formularzach, pojawiła się nowa możliwość reprezentowania linii 1C - pole dokumentu sformatowanego.


Podobnie jak w przypadku pola dokumentu tekstowego, konieczne jest ustawienie podczas otwierania i pisania podczas samodzielnego zapisywania tekstu za pomocą programu.

  • W obiekcie 1C, którego postać tworzymy (informator, dokument, obróbka itp.) - dodaj atrybut o typie Storage
  • W funkcji ReadOnServer () ustaw tekst z właściwości

    // tutaj Props jest dodaną właściwością obiektu 1C
    // tutaj FormattedDocument to nazwa pola formularza do edycji
    & Na serwerze

    FormattedDocument \u003d CurrentObject.Props.Get ();
    Koniec procedury

  • W funkcji BeforeWriteOnServer () lub za pomocą przycisku wpisz tekst z pola

    & Na serwerze
    Procedura dla ReadingOnServer (CurrentObject)
    CurrentObject.Props \u003d NewValueStore (FormattedDocument);
    Koniec procedury

Ciąg jest jednym z pierwotnych typów danych w 1C: Enterprise 8. Zmienne z typem linia zawierać tekst.

Wartości zmiennych typu liniasą ujęte w podwójne cudzysłowy. Można dodać kilka zmiennych tego typu.

Per1 \u003d "Słowo 1";
Per2 \u003d "Słowo 2";
Per3 \u003d Per1 + "" + Per2;

Ostatecznie Per3 Będzie oznaczało " Słowo 1 Słowo 2 ″.

Ponadto systemy 1C: Enterprise 8 zapewniają funkcje do pracy ze stringami. Rozważmy główne:

Przedstaw String (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkcja służy do wyświetlania okna dialogowego, w którym użytkownik może określić wartość zmiennej typu Linia... Parametr <Строка> jest wymagane i zawiera nazwę zmiennej, do której zostanie zapisany wprowadzony ciąg. Parametr <Подсказка> opcjonalny to tytuł okna dialogowego. Parametr <Длина> opcjonalne, wskazuje maksymalną długość ciągu wejściowego. Wartość domyślna to zero, co oznacza nieograniczoną długość. Parametr <Многострочность> opcjonalny. Określa tryb wprowadzania tekstu wieloliniowego: True - wprowadzanie tekstu wieloliniowego z separatorami linii; Fałsz - proste wprowadzenie ciągu.

Ciąg można wprowadzić i nadać mu kod znaku Unicode:

Symbol(<КодСимвола>) — kod jest wprowadzany jako liczba.

Litera \u003d Symbol (1103); // JESTEM

Dostępna jest również funkcja odwrotna, która pozwala znaleźć kod znaku.

SymbolCode (<Строка>, <НомерСимвола>) — zwraca liczbę określonego znaku Unicode jako liczbę.

Funkcje konwersji wielkości liter:

BReg (<Строка>) - konwertuje wszystkie znaki w ciągu na wielkie litery.

HReg (<Строка>) - konwertuje wszystkie znaki w ciągu na małe litery.

Treg (<Строка>) - konwertuje wszystkie znaki w ciągu na wielkie litery. Oznacza to, że pierwsze litery we wszystkich słowach są konwertowane na wielkie, a pozostałe na małe.

Funkcje wyszukiwania i zamiany znaków w ciągu:

Znaleźć(<Строка>, <ПодстрокаПоиска>) - znajduje numer znaku wystąpienia podciągu wyszukiwania. Na przykład:

Znajdź („Ciąg”, „OK”); // 4

Szukaj (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - znajduje numer znaku wystąpienia podciągu wyszukiwania, numer wystąpienia jest wskazywany w odpowiednim parametrze. W takim przypadku wyszukiwanie rozpoczyna się od znaku, którego numer jest określony w parametrze Pozycja początkowa.Wyszukiwanie jest możliwe od początku lub od końca ciągu. Na przykład:

Number4 Occurrences \u003d StrFind ( „Zdolność obronna”, „o”, kierunek wyszukiwania. Od początku 1, 4); // 7

PReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - znajduje wszystkie wystąpienia podciągu wyszukiwania w oryginalnym ciągu i zastępuje go podciągiem zastępczym.

StrReplace ("String", "Oka", ""); // Strona

Pusta linia (<Строка>) - sprawdza ciąg znaków pod kątem znaczących znaków. Jeśli nie ma żadnych znaczących znaków lub nie ma żadnych znaków, zwracana jest wartość Prawdziwe... Inaczej - Fałszywe.

StrNumber of Occurrences (<Строка>, <ПодстрокаПоиска>) - oblicza liczbę wystąpień szukanego ciągu w oryginalnym ciągu.

StrNumber of Occurrences ( „Studiuj, ucz się i ucz się jeszcze raz”, "badanie" , "" ) ; // 3

PageTemplate (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — zastępuje parametry w łańcuchu według liczby. Ciąg musi zawierać znaczniki podstawienia w postaci: „% 1 ..% N”. Znaczniki są numerowane począwszy od 1. Jeśli wartość parametru Nieokreślony, zastępowany jest pusty ciąg.

PageTemplate ( „Parametr 1 \u003d% 1, parametr 2 \u003d% 2”, "1" , "2" ) ; // Parametr 1 \u003d 1, parametr 2 \u003d 2

Funkcje konwersji ciągów:

Lew(<Строка>, <ЧислоСимволов>) - zwraca najpierw pierwsze znaki łańcucha.

Dobrze (<Строка>, <ЧислоСимволов>) - zwraca ostatnie znaki ciągu.

Środa (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - zwraca ciąg o długości<ЧислоСимволов>zaczynając od znaku<НачальныйНомер>.

AbbrL (<Строка>) obcina nieznaczące znaki po lewej stronie pierwszego znaczącego znaku w ciągu.

Skrót (<Строка>) - odcina nieznaczące znaki na prawo od ostatniego znaczącego znaku w ciągu.

SocrLP (<Строка>) - ucina nieznaczące znaki na lewo od pierwszego znaczącego znaku w wierszu i na prawo od ostatniego znaczącego znaku w wierszu.

StrGetString (<Строка>, <НомерСтроки>) - otrzymuje ciąg wieloliniowy po numerze.

Inne funkcje:

StrLength (<Строка>) - zwraca liczbę znaków w ciągu.

Numer wiersza (<Строка>) - zwraca liczbę wierszy w ciągu wielowierszowym. Linia jest uważana za nową, jeśli jest oddzielona od poprzedniego wiersza znakiem nowego wiersza.

Porównaj (<Строка1>, <Строка2> ) - porównuje dwa ciągi bez rozróżniania wielkości liter. Funkcja działa tak samo jak obiekt Porównanie wartości... Zwroty:

  • 1 - jeśli pierwsza linia jest większa niż druga
  • -1 - jeśli druga linia jest większa niż pierwsza
  • 0 - jeśli ciągi są równe

Porównaj ("Pierwsza linia", "Druga linia"); // 1

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