Znajdowanie ostatniego wystąpienia znaku w ciągu 1s. Nowe funkcje do pracy z ciągami. Funkcje konwersji ciągów

CZĘŚĆ 1. METODY (26).

1.1. Metody podstawowe (10). Niezależne, zbudowane na swoich prostych algorytmach.

Str_Complete() (dopełnienie od prawej do lewej z określonymi symbolami).

Str_Inverse () (inwersja - znaki od prawej do lewej).

Str_Codes() (kody znaków do „”,” i tablica z kodami)

Str_Symbols() (ciąg z kodów oddzielony ”” lub z tablicy z kodami)

Str_ReplaceCharacters() (zastępując jeden znak innym).

Str_FromArray() (ciąg z tablicy fragmentów oddzielonych separatorem)

Str_FindIn() (szukaj podciągu (również po prawej) o określonym numerze wpisu).

Str_FindGr() (Wyszukaj grupę znaków zawartych w określonym zestawie znaków)

Str_FindNumber() (Wyszukaj liczbę, w tym po prawej z określonym numerem wystąpienia)

Str_Interpret() (do tablicy, zgodnie z ustaloną składnią)

1.2. Metody pochodne (12). W rzeczywistości jest to użycie czterech uogólnionych metod-algorytmów (patrz część 2)

Str_Number() (od początku i od końca ciągu, nie bój się znaków niecyfrowych.

Str_Find() (wyszukiwanie podciągu (w tym bez uwzględniania wielkości liter i po prawej) o określonym numerze wpisu).

Str_Replace() (wyszukiwanie (w tym bez uwzględniania wielkości liter i po prawej) i zastępowanie podciągów ograniczników).

Str_Piece() (fragment ciągu między określonymi wystąpieniami ogranicznika (lewy lub prawy)).

Str_ReplacePiece() (zastąpienie w ciągu źródłowym "kawałek" określonym ciągiem).

Str_VArray() (między określonymi wystąpieniami ogranicznika (w tym po prawej i bez wielkości liter).

Str_MoveBySyllables() (podzielony na podciągi "Twardy", z myślnikiem).

Str_MoveWords() (podzielony na podciągi „miękko”)

Str_Cut() („Cięcie” na podciągi o określonej długości)

Str_Short() (zamień lewą grupę "zredukowanych" znaków na "łańcuch zastępczy"

Str_Short() (zamień właściwą grupę znaków „zredukowanych” na „łańcuch zastępczy”

Str_Short() (zamień w środku grupy "zredukowanych" znaków na "łańcuch zastępczy"

Str_Expand (rozszerzenie do określonej długości poprzez zwiększenie liczby podanych znaków)

1.3. Metody szczegółowe (3). „Przygotowanie” linii z przeniesieniem do tabeli ze szczegółowymi informacjami.

Str_inTableIn() (do tabeli zgodnie z systemem zagnieżdżonych separatorów).

Str_inTableGroup (do tabeli zgodnie z filtrem wielopoziomowym).

Str_inTableNumbers (do tabeli z liczbami i fragmentami między nimi).

CZĘŚĆ 2. UOGÓLNIONE METODY-ALGORYMY (3).

Str_Entry() (metody „Znajdź” i „Zamień”).

Str_Fragments() (metody „Sztuka”, „ZamieńCzęść”, „ToArray”, „ToTableIn”).

Str_Short() (metody "Krótki", "KrótkiP", "Krótki", "Rozwiń".

Str_Split() (metody „Przesuń według sylab”, „Przesuń według słów”, „Wytnij”).

CZĘŚĆ 3. FUNKCJA UNIWERSALNA.

To trochę warunkowe interfejs oprogramowania, pozwalać

zastosować kilka metod do ciągu naraz. Zaimplementowane jako

funkcje z siedmioma parametrami ("Demo" jest zbudowane na tej funkcji):

Str_(Metody, Podmetody, Wejście, Param1, Param2, Długość_Pozycja_Numer, Dodatkowe Wyjście)

Parametry:

- „Metody” - kilka „połączonych” i (lub) jednej „wyłącznej” metody

(jednoznakowe kody lub nazwy, możliwe poprzez ",")

- "Podmetody" - kilka opcji "możliwych do łączenia" i (lub) "ekskluzywnych"

metoda „na wyłączność” (jednoznakowe kody lub nazwy);

- „Input” — ciąg, tablica lub tabela wartości;

- „Param1” - ciąg wyszukiwania, podstawienia, ograniczniki, filtry;

- „Param2” - zastępczy ciąg lub symbole;

- „Długość_Numer_Pozycja” -Numer, Liczby przez separator lub tablicę z Liczbami;

- „Wyjście” — liczba lub ciąg, tablica lub tabela wartości;

Nazwy i (lub) jednoznakowe kody metod-podmetod, a także liczby w

(Długość_Pozycja_Numer) może być w każdym przypadku i oddzielona

dowolny z następujących ograniczników: ”, :;”.

CZĘŚĆ 4. KILKA PRZYKŁADÓW.

HaveNumbersINString=(Str_FindNumbers(InString)<>Nieokreślony);

HaveDigitsINString=(Str_FindGr(InString,"+0123456789")>0);

ThereLatin=(Str_FindGr(VxStr, Str_Interpret("lL"))>0);

HaveSpecifiedSigns=(Str_NfindGr(VxStr, "+ do hornYu.0p9")>0);

IsUnprintable=(Str_FindGr(VxStr, Str_Interpret("-l-L-r-R-P-Z-C"))>0);

CZĘŚĆ 5. WNIOSEK.

W miarę możliwości zarządzany jednym przejazdem wzdłuż linii. Drugi przejazd - zwykle już we fragmentach. Nie użyto wbudowanej funkcji StrNumberOccurrences().

Użyte funkcje wbudowane: Left(),Right()Mid(),StrLength()

- (pozycjonowanie i pobieranie części struny -powinno być "szybko").

Notatki z Looking Glass

18.08.2014 Nowe funkcje do pracy ze strunami

Zaimplementowany w wersji 8.3.6.1977.

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

Wszystkie czynności, które wykonują nowe funkcje, mogłeś wykonać wcześniej. Za pomocą mniej lub bardziej skomplikowanych algorytmów napisanych w języku osadzonym. Dlatego nowe funkcje nie dają żadnych fundamentalnie nowych możliwości. Pozwalają jednak zredukować ilość kodu, sprawiają, że kod jest prostszy i bardziej zrozumiały. Ponadto pozwalają przyspieszyć wykonanie akcji. Ponieważ funkcje zaimplementowane w platformie działają oczywiście szybciej niż podobny algorytm napisany we wbudowanym języku.

Formatuj funkcję StrTemplate()

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

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

<Шаблон>jest ciągiem, w którym należy zastąpić reprezentacje parametrów.

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

Aby określić konkretne miejsce w szablonie, do którego chcesz dokonać podstawienia, musisz użyć znaczników postaci %1, ... %10. Liczba markerów biorących udział w szablonie i liczba parametrów zawierających wartości muszą być zgodne.

Na przykład wynik wykonania takiego operatora:

będzie linia:

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

Funkcja ciągu znaków StrCompare()

Ta funkcja porównuje dwa ciągi bez uwzględniania wielkości liter. Na przykład tak:

Możesz wykonać tę samą czynność przed użyciem obiektu Porównanie wartości:

Jednak korzystanie z nowej funkcji wygląda na prostsze. A poza tym funkcja, w przeciwieństwie do obiektu Porównanie wartości, pracuje w cienki klient oraz w kliencie sieciowym.

Funkcje ciągów StrBeginsC(), StrEndsTo()

Te funkcje określają, czy ciąg zaczyna się od określonego podciągu, czy też ciąg kończy się określonym podciągiem. Algorytm tych funkcji nie jest trudny do zaimplementowania we wbudowanym języku, 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 StrSplit(), StrJoin()

Te funkcje dzielą ciąg na części zgodnie z określonym ogranicznikiem. Lub odwrotnie, łączą kilka wierszy w jeden, wstawiając między nimi wybrany separator. Są wygodne do tworzenia lub analizowania logów, dziennika technologicznego. Na przykład można łatwo rozłożyć wpis dziennika technologicznego na części nadające się do dalszej analizy:

Funkcja pracy z łańcuchami StrFind()

Zamiast starej funkcji Znaleźć() wdrożyliśmy nową funkcję, która posiada dodatkowe funkcje:

  • Szukaj w różnych kierunkach (od początku, od końca);
  • Szukaj od określonej pozycji;
  • Wyszukaj wystąpienie o określonej liczbie (drugi, trzeci itd.).

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źć() zaleca się nie używać ponownie.

Poniżej znajduje się przykład wykorzystania nowych 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.

Zaimplementowany w wersji 8.3.6.1977.

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

Wszystkie czynności, które wykonują nowe funkcje, mogłeś wykonać wcześniej. Za pomocą mniej lub bardziej skomplikowanych algorytmów napisanych w języku osadzonym. Dlatego nowe funkcje nie dają żadnych fundamentalnie nowych możliwości. Pozwalają jednak zredukować ilość kodu, sprawiają, że kod jest prostszy i bardziej zrozumiały. Ponadto pozwalają przyspieszyć wykonanie akcji. Ponieważ funkcje zaimplementowane w platformie działają oczywiście szybciej niż podobny algorytm napisany we wbudowanym języku.

Formatuj funkcję StrTemplate()

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

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

<Шаблон>jest ciągiem, w którym należy zastąpić reprezentacje parametrów.

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

Aby określić konkretne miejsce w szablonie, do którego chcesz dokonać podstawienia, musisz użyć znaczników postaci %1, ... %10. Liczba markerów biorących udział w szablonie i liczba parametrów zawierających wartości muszą być zgodne.

Na przykład wynik wykonania takiego operatora:

będzie linia:

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

Funkcja ciągu znaków StrCompare()

Ta funkcja porównuje dwa ciągi bez uwzględniania wielkości liter. Na przykład tak:

Możesz wykonać tę samą akcję przed użyciem obiektu ValueComparison:

Jednak korzystanie z nowej funkcji wygląda na prostsze. A poza tym funkcja, w przeciwieństwie do obiektu Value Compare, działa zarówno w cienkim kliencie, jak iw kliencie WWW.

Funkcje ciągów StrBeginsC(), StrEndsTo()

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

Na przykład są wygodne w użyciu w instrukcji If:

Funkcje do pracy z ciągami StrSplit(), StrJoin()

Te funkcje dzielą ciąg na części zgodnie z określonym ogranicznikiem. Lub odwrotnie, łączą kilka wierszy w jeden, wstawiając między nimi wybrany separator. Są wygodne do tworzenia lub analizowania logów, dziennika technologicznego. Na przykład można łatwo rozłożyć wpis dziennika technologicznego na części nadające się do dalszej analizy:

Funkcja pracy z łańcuchami StrFind()

Zamiast starej funkcji Find() zaimplementowaliśmy nową funkcję, która ma dodatkowe funkcje:

  • Szukaj w różnych kierunkach (od początku, od końca);
  • Szukaj od określonej pozycji;
  • Wyszukaj wystąpienie o określonej liczbie (drugi, trzeci itd.).

W rzeczywistości powiela możliwości starej funkcji. Odbywa się to w celu zachowania kompatybilności z modułami skompilowanymi w starszych wersjach. Zaleca się, aby nie używać już starej funkcji Find().

Poniżej znajduje się przykład wykorzystania nowych 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.

Istnieje kilka mechanizmów do pracy z ciągami w zapytaniach 1C. Po pierwsze, można dodać ciągi. Po drugie, podciąg można pobrać z ciągu. Po trzecie, łańcuchy można porównywać, w tym według wzorca. To wszystko, co możesz zrobić ze strunami.

Dodawanie ciągów

Operator „+” służy do dodawania ciągów w zapytaniu. Możesz dodać tylko ciągi o ograniczonej długości.

SELECT "Nazwa: " + Kontrahenci.Nazwa AS Kolumna1 FROM Katalog.Kontrahenci AS Kontrahenci WHERE Kontrahenci.Referencja = &Referencja

Funkcja podciągu

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

Analog funkcji Environment() z model obiektowy. Funkcja Substring() może być zastosowana do danych typu string i pozwala wybrać fragment <Строки> , zaczynając od cyfry <НачальнаяПозиция> (znaki w ciągu są numerowane od 1) i długości <Длина> postacie. Wynik oceny funkcji ma typ łańcuchowy o zmiennej długości, a długość zostanie uznana za nieograniczoną, jeśli <Строка> ma nieograniczoną długość i parametry <Длина> nie jest stałą ani większą niż 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 ciągów o nieograniczonej długości na ciągi o ograniczonej długości nie jest zalecane. Zamiast tego lepiej jest użyć operatora rzutowania EXPRESS().

Funkcja podobna

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

SELECT Counterparties.Name AS Kolumna1 FROM Katalog.Counterparties AS Counterparties WHERE Counterparties.Name = "Gazprom"

Ale co, jeśli potrzebne jest bardziej subtelne porównanie? Nie tylko o równość czy nierówność, ale o podobieństwo do pewnego wzorca? Właśnie po to została stworzona funkcja LIKE.

LIKE — operator sprawdzający, czy ciąg jest podobny do wzorca. Analog LIKE w SQL.

Operator LIKE umożliwia porównanie wartości wyrażenia określonego po lewej stronie z ciągiem szablonu określonym po prawej stronie. Wartość wyrażenia musi być typu string. Jeśli wartość wyrażenia jest zgodna z szablonem, wynikiem operatora będzie TRUE, w przeciwnym razie FALSE.

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

  • % (procent): ciąg zawierający dowolną liczbę dowolnych znaków;
  • _ (podkreślenie): jeden dowolny znak;
  • […] (jeden lub więcej znaków w nawiasach kwadratowych): dowolny pojedynczy znak umieszczony w nawiasach kwadratowych. Wyliczenie może zawierać zakresy, takie jak a-z, co oznacza dowolny znak 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ż te wymienione po znaku negacji.

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

Podstawowe cechy języka programowania zazwyczaj obejmują pracę z liczbami i ciągami. Zwykle te funkcje są wbudowane w kod kompilatora (lub implementowane są „podstawowe” klasy języka programowania).

W 1C możliwości pracy ze strunami są zaprogramowane w samej platformie. Dzisiaj rozważymy funkcje pracy z ciągami 1C w programach we wbudowanym języku 1C.

Wartość linii 1C

1. Zacznijmy od najprostszego. Tworzenie zmiennej i przypisywanie jej wartości stałej ciągu wygląda tak w 1C:

Zmienna = "Witaj świecie!";

Jeśli chcesz określić znak cudzysłowu w stałej wartości ciągu 1C, musisz go podwoić „”

Zmienna = "Witaj, "świecie""!";

2. Przełamanie linii 1C można określić jednocześnie na dwa sposoby. Pierwszym z nich jest użycie symbolu |

Zmienna = "Cześć,
| pokój! ";

Drugi to użycie wyliczenia systemowego Symbols. Umożliwia dodanie podziału wiersza 1C i innych znaków niedrukowalnych, takich jak TAB.

Zmienna = „Cześć” + Symbols.ps + „pokój!”;

3. Konfiguracje w 1C można opracować nie tylko dla jednego języka (rosyjskiego, angielskiego lub innego) - ale jednocześnie dla kilku języków. W takim przypadku aktualnie używany język jest wybierany u dołu okna 1C.

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

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

Zmienna = "ru=""Witaj świecie!"; en=""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ł ją na dwie opcje i wykorzystał wybraną, musisz użyć funkcji NStr():

//poprawna dla konfiguracji dwujęzycznych
Raport(NStr(zmienna));

Rekwizyty z linką typu 1C

Wymagane jest pole katalogu / dokumentu 1C. Różni się od zmiennej w programie w języku 1C tym, że jej typ jest dokładnie określony dla atrybutu (liczba, ciąg 1C itp.). Jeśli chcesz odświeżyć sobie, czym są rekwizyty, zapoznaj się z samouczkiem na .

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

Ciągi 1C mają nieograniczoną długość (oznaczoną jako długość = 0) i ograniczoną długość, wskazując dokładną liczbę znaków. Struny 1C o nieograniczonej długości są przechowywane w oddzielnym Tabela SQL, więc ich użycie jest mniej wydajne niż ograniczone.

Dlatego stosowanie strun 1C o nieograniczonej długości ma swoje ograniczenia – nie wszędzie można ich używać. Na przykład nie jest możliwe jako numer dokumentu, numer katalogowy, pomiar.

Praca z liniami 1C

Aby pracować z ciągami, istnieje kilka wbudowanych funkcji platformy 1C.

  • AbbrLP("Niewiarygodne, ale prawdziwe!")
    Usuwa dodatkowe spacje z ciągu 1C. Może być również używany do konwersji dowolnego typu na ciąg 1C (na przykład liczby).
  • Zmienna = "Wasia" + Abrl("plus") + "Olia"; //będzie "Wasia plus Ola"
    Przykład zsumowania kilku wartości ciągu 1C. Rezultatem jest jedna linia 1C.
  • Zmienna = Lew("Muzyka", 2); // będzie "Mu"
    Zmienna = Średnia("Muzyka", 2, 2); // będzie "ps"
    Zmienna = Prawa("Muzyka", 2); // będzie "ka"
    Różne opcje uzyskiwania podciągu z ciągu 1C.
  • Zmienna = Znajdź("Muzyka", "ps"); //będzie 3
    Wyszukaj podciąg w ciągu 1C, zaczynając od znaku 1.
  • Zmienna = StrLength("Muzyka"); //będzie 6
    Zwraca liczbę znaków w ciągu 1C.
  • Powiadom("Cześć") //w polu wiadomości na dole okna 1C
    alert("cześć") //wyskakujące okno dialogowe
    Status("Hello") //w wierszu wyświetlania statusu w lewym dolnym rogu
    .

Doprowadzanie obiektów do linii 1C

Jak wiadomo, obecnie najpopularniejszym formatem wymiany informacji strukturalnych jest XML. Nawet Ostatnia wersja SM Biuro słowo i Excel zapisują pliki w tym formacie (odpowiednio docx i xlsx, zmień rozszerzenie na zip, otwórz w archiwum).

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

1. Najprostszą metodą jest użycie funkcji ShortLP() lub String(). Możesz użyć funkcji REPRESENTATION() w tekście zapytania. Wynik ich działania jest taki sam - generują dla użytkownika reprezentację ciągu dowolnego obiektu 1C.

W przypadku katalogu domyślnego będzie to jego nazwa. W przypadku dokumentu nazwa, numer i data dokumentu.

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

ViewStringXml = XMLString(Wartość); //pobierz XML z wartości 1C
Value1С = XMLValue(Type("CatalogReference.Nomenclature"),ViewStringXml); //pobierz wartość 1C z ciągu XML, musisz określić typ 1C, który ma zostać odebrany

3. Istnieje natywny sposób platformy 1C na przekształcenie dowolnego obiektu 1C w ciąg. Przeniósł się z wersji 1C 7.7. Ten format nie jest rozumiany przez inne programy, ale rozumie inny 1C, co ułatwia używanie go do wymiany między bazami danych 1C.

Ciąg = WartośćWStringInt(Wartość1S); //pobierz ciąg 1C z wartości 1C
WartośćDoPliku("C:\MójPlik.txt", Wartość1C); //inna opcja, otrzymujemy plik z zapisanym ciągiem od wartości 1C
Wartość1C = WartośćOdStringInt(Ciąg); //powrót z linii 1C
Value1C = ValueFromFile("C:\MyFile.txt"); //powrót z pliku

Edycja linii 1C w formularzu

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

1. Najprostszym sposobem jest żądanie wejścia linii 1C na żądanie. Ta metoda jest używana podczas nauczania programowania 1C, w życiu jest używana znacznie rzadziej (ale jest używana!).

Zmienna = "";
String = EnterValue(Variable, "Wprowadź imię i nazwisko");

2. Aby wyświetlić szczegóły obiektu 1C (katalog / dokument) lub szczegóły formularza (patrz), najczęściej używane jest pole wejściowe. Jest to najczęstsze narzędzie w 1C do pracy z polami edycji.

3. Możliwości pola wejściowego można rozszerzyć (patrz właściwości pola wejściowego, kliknij prawym przyciskiem myszy na nim, po więcej szczegółów):

  • Pole wyboru Tryb edycji wielowierszowej
  • Pole wyboru Zaawansowana edycja (dostępne, jeśli zaznaczone jest poprzednie pole wyboru)
  • Pole wyboru Tryb hasła (patrz ).

4. Jeśli wszystkie możliwości pola wejściowego nie są dla Ciebie wystarczające, istnieje wbudowany edytor. Aby dodać go do formularza należy dodać Pole w menu Formularz / Wstaw element kontrolny dokument tekstowy. W jego właściwościach można określić sposób jego działania - właściwość Rozszerzenie.

Pola dokumentu tekstowego nie można połączyć bezpośrednio z danymi. Niezbędne jest napisanie następującej funkcji w module obsługi zdarzeń formularza OnOpening() (patrz ):

FormElements.ElementNameTextDocumentField.SetText(StringValue); //tutaj ValueString to tekst otrzymany np. z atrybutu

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

ValueString = FormElements.ElementNameTextPoleDokumentu.GetText(); //ValueString to rekwizyty, w których zapisujemy wartość

5. W wersji 1C 8.2.11 pojawił się w zarządzanych formularzach Nowa okazja reprezentacja linii 1C - Sformatowane pole dokumentu.


Podobnie jak w przypadku pola dokumentu tekstowego, należy ustawić podczas otwierania i pisać podczas samodzielnego zapisywania tekstu za pomocą programu.

  • W obiekcie 1C, którego formę tworzymy (książka informacyjna, dokument, przetwarzanie itp.) - dodaj atrybut o typie Value Storage
  • W funkcji OnReadOnServer() ustaw tekst z atrybutu

    //tutaj Requisite jest dodanym atrybutem obiektu 1C
    //tutaj FormattedDocument to nazwa pola w formularzu edycji
    &Na serwerze

    FormattedDocument = CurrentObject.Attributes.Get();
    Koniec procedury

  • W funkcji BeforeWriteOnServer() lub naciskając przycisk wpisz tekst z pola

    &Na serwerze
    Procedura OnReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(Dokument sformatowany);
    Koniec procedury