1c 8.2 серийният номер на знака в низа. Нови функции за работа с низове. Функция за форматиране StrTemplate()

ЧАСТ 1. МЕТОДИ (26).

1.1. Основни методи (10). Независими, изградени на техните прости алгоритми.

Str_Complete() (запълване отдясно-наляво с определени символи).

Str_Inverse () (инверсия - символи от дясно на ляво).

Str_Codes() (кодове на знаци до ”,” и масив с кодове)

Str_Symbols() (низ от кодове, разделени с ”,” или от масив с кодове)

Str_ReplaceCharacters() (замяна на един знак с друг).

Str_FromArray() (низ от масива от фрагменти, разделени с разделител)

Str_FindIn() (търсене на подниз (включително вдясно) с посочения номер на запис).

Str_FindGr() (Търсене на група знаци, включени в посочения набор от знаци)

Str_FindNumber() (Търсене на число, включително вдясно с посочения номер на срещане)

Str_Interpret() (към масив, според установения синтаксис)

1.2. Производни методи (12). Всъщност това е използването на четири обобщени метода-алгоритъма (виж Част 2)

Str_Number() (от началото и от края на низа, не се "страхувайте" от нецифрени знаци.

Str_Find() (търсене на подниз (включително нечувствителен към главни и малки букви и отдясно) с посочения номер на запис).

Str_Replace() (търсене (включително без значение за малки и големи букви и отдясно) и замяна на поднизове на разделителя).

Str_Piece() (част от низ между посочените срещания на разделителя (ляв или десен)).

Str_ReplacePiece() (замяна в изходния низ "част" с посочения низ).

Str_VArray() (между посочените срещания на разделителя (включително отдясно и без регистър).

Str_MoveBySyllables() (разделен на поднизове "Hard", с тире).

Str_MoveWords() (разделен на поднизове „Меко“)

Str_Cut() („Нарязване“ на поднизове с определени дължини)

Str_Short() (заменете лявата група от "намалени" символи с "низ за заместване"

Str_Short() (заменете дясната група от "намалени" символи с "низ за заместване"

Str_Short() (замяна в средата на група от "намалени" символи с "низ за заместване"

Str_Expand (разширяване до определена дължина чрез увеличаване на броя на посочените знаци)

1.3. Подробни методи (3). "Подготовка" на ред с прехвърляне към таблица с подробна информация.

Str_inTableIn() (към таблицата според системата от вложени разделители).

Str_inTableGroup (към таблицата според многостепенния филтър).

Str_inTableNumbers (в таблица с числа и фрагменти между тях).

ЧАСТ 2. ОБОБЩЕНИ МЕТОДИ-АЛГОРИМИ (3).

Str_Entry() (методи ”Намиране” и ”Замяна”).

Str_Fragments() (методи „Piece“, „ReplacePiece“, „ToArray“, „ToTableIn“).

Str_Short() (методи "Short", "ShortP", "Short", "Expand".

Str_Split() (методи „Преместване по срички“, „Преместване по думи“, „Изрязване“).

ЧАСТ 3. УНИВЕРСАЛНА ФУНКЦИЯ.

Това е един вид интерфейс за условно програмиране, който позволява

приложете няколко метода към низ наведнъж. Изпълнен като

функции със седем параметъра („Демо“ е изградено върху тази функция):

Str_(Методи, Подметоди, Вход, Параметър1, Параметър2, Дължина_Позиция_Номер, Допълнителен изход)

Настроики:

- “Методи” - няколко “комбинирани” и (или) един “изключителен” метод

(едносимволни кодове или имена, възможни чрез ",")

- ”Подметоди” - няколко ”комбинируеми” и (или) ”изключителни” опции

“изключителен” метод (еднобуквени кодове или имена);

- “Вход” - Низ, или Масив или Таблица със стойности;

- “Param1” - низ за търсене, замествания, разделители, филтри;

- “Param2” - заместващ низ или символи;

- “Length_Number_Position” - Число, Числа чрез разделител или масив с Числа;

- “Изход” - Число или низ или масив или таблица със стойности;

Имена и (или) едносимволни кодове на методи-подметоди, както и номера в

(Length_Position_Number) може да бъде във всеки случай и отделен

някой от следните разделители: ”, :;”.

ЧАСТ 4. НЯКОЛКО ПРИМЕРИ.

HaveNumbersINString=(Str_FindNumbers(InString)<>Недефиниран);

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

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

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

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

ЧАСТ 5. ЗАКЛЮЧЕНИЕ.

Където е възможно, управлява се с едно минаване по линията. Второто преминаване - обикновено вече на фрагменти. Не е използвана вградената функция StrNumberOccurrences().

Използвани вградени функции: Left(),Right()Mid(),StrLength()

- (позициониране и извличане на част от низ - трябва да е "бързо").

Има няколко механизма за работа с низове в 1C заявки. Първо, могат да се добавят низове. Второ, подниз може да бъде взет от низ. Трето, низовете могат да се сравняват, включително по модел. Това е почти всичко, което можете да правите със струни.

Добавяне на низове

Операторът "+" се използва за добавяне на низове в заявка. Можете да добавяте само низове с ограничена дължина.

ИЗБЕРЕТЕ "Име: " + Contractors.Name AS Column1 FROM Directory.Contractors AS Contractors WHERE Contractors.Reference = &Reference

Поднизова функция

ПОДНИЗ(<Строка>, <НачальнаяПозиция>, <Длина>)

Аналог на функцията Environment() от обектния модел. Функцията Substring() може да се приложи към данни от тип низ и ви позволява да изберете фрагмент <Строки> , започвайки с цифра <НачальнаяПозиция> (знаците в низ са номерирани от 1) и дължина <Длина> герои. Резултатът от оценката на функцията има тип низ с променлива дължина и дължината ще се счита за неограничена, ако <Строка> има неограничена дължина и параметър <Длина> не е константа или по-голямо от 1024.

Ако дължината на низа е по-малка от зададената във втория параметър, тогава функцията ще върне празен низ.

внимание!Не се препоръчва използването на функцията SUBSTRING() за преобразуване на низове с неограничена дължина в низове с ограничена дължина. Вместо това е по-добре да използвате cast оператора EXPRESS().

Функция Подобна

Ако трябва да се уверим, че атрибутът string отговаря на определени критерии, ние го сравняваме:

SELECT Counterparties.Name AS Column1 FROM Directory.Counterparties AS Counterparties WHERE Counterparties.Name = "Gazprom"

Но какво ще стане, ако е необходимо по-фино сравнение? Не само за равенство или неравенство, а за сходство с определен модел? Точно за това е създадена функцията LIKE.

LIKE - Оператор за проверка дали даден низ е подобен на шаблон. Аналог на LIKE в SQL.

Операторът LIKE ви позволява да сравните стойността на израза, посочен вляво от него, с шаблонния низ, посочен вдясно. Стойността на израза трябва да е от тип низ. Ако стойността на израза съвпада с шаблона, резултатът от оператора ще бъде TRUE, в противен случай ще бъде FALSE.

Следните знаци в низа на шаблона са служебни и имат различно значение от символа на низа:

  • % (процент): поредица, съдържаща произволен брой произволни знаци;
  • _ (долна черта): един произволен знак;
  • […] (един или повече знаци в квадратни скоби): всеки отделен знак, изброен в квадратни скоби. Едно изброяване може да съдържа диапазони, като a-z, което означава всеки знак в диапазона, включително краищата на диапазона;
  • [^…] (в квадратни скоби знак за отрицание, последван от един или повече знака): Всеки отделен знак, различен от изброените след знака за отрицание.

Всеки друг символ означава себе си и не носи допълнително натоварване. Ако е необходимо да се напише един от изброените знаци като себе си, тогава той трябва да бъде предшестван от<Спецсимвол>. себе си<Спецсимвол>(всеки подходящ знак) се дефинира в същия израз след ключова думаСПЕЦИАЛЕН СИМВОЛ.

Типът String се среща във всички езици за програмиране. Той е примитивен и в 1C има много функции за работа с него. В тази статия ще разгледаме по-отблизо различни начиниработа с типове низове в 1C 8.3 и 8.2 с примери.

Линия

За да преобразувате променлива от всякакъв тип в низ, съществува функцията "String ()" със същото име. Входният параметър ще бъде самата променлива, чието низово представяне трябва да бъде получено.

String(False) // връща "Не"
String(12345) // връща "12 345"
String(CurrentDate()) //"21.07.2017 11:55:36"

Възможно е да се преобразуват в низ не само примитивни типове, но и други, например елементи от директории и документи.

Съкратено LP, съкратено L, съкратено P

Входните параметри на тези функции са променлива тип низ. Функциите премахват незначещите знаци (интервали, връщане на каретка и т.н.): съответно от лявата и дясната страна, само от лявата страна и само отдясно.

abbrl("Интервалите от двете страни ще бъдат премахнати") // "Интервалите от двете страни ще бъдат премахнати"
abbr("Интервалите от двете страни ще бъдат премахнати") // "Интервалите отляво ще бъдат премахнати"
abbr(" Интервалите от двете страни ще бъдат премахнати ") // "Интервалите отдясно ще бъдат премахнати"

Лъв, вдясно, в средата

Тези функции ви позволяват да отрежете част от низ. Функцията Lion() ще върне частта от низа от лявата му страна на указаната дължина. Функцията "Right()" е подобна, но изрязването се извършва отдясно. Функцията "Wed()" ви позволява да посочите номера на знака, от който ще бъде избран низът и неговата дължина.

Lion("Променлива на низ", 4) // връща "Stro"
Right("Променлива на низ", 7) // връща "променлива"
avg("Променлива на низ", 2, 5)// връща "troco"

StrLength

Функцията определя броя на символите, които се съдържат в низова променлива.

StrLength("Word") // резултатът от изпълнението ще бъде числото 5

намирам

Функцията дава възможност да се търси част от низ в низова променлива. Върнатата стойност ще бъде число, което показва позицията на началото на намерения низ. Ако не бъдат намерени съвпадения, се връща нула.

Имайте предвид, че търсенето е чувствително към главни и малки букви. Ако има повече от едно срещане на подниза за търсене в оригиналния низ, функцията ще върне началото на първото срещане.

Find("one, two, one, two, three", "two") // функцията ще върне числото 6

Празен ред

Използването на тази функция ви позволява да определите дали даден низ е празен. Незначещите знаци, като интервал, връщане на каретка и други, не се вземат предвид.

EmptyString("Василий Иванович Пюпкин") // функцията ще върне False
EmptyString(" ") // функцията ще върне True

VReg, NReg, TReg

Тези функции са много полезни при сравняване и конвертиране на низови променливи. „Vreg()“ ще върне оригиналния низ с главни букви, „HReg()“ с малки букви, а „TReg()“ ще го форматира така, че първият знак на всяка отделна дума да е с главна буква, а всички следващи знаци са с малки букви.

VReg("ГЕНЕРАЛЕН ДИРЕКТОР") // върната стойност - "ГЕНЕРАЛЕН ДИРЕКТОР"
HReg("ГЕНЕРАЛЕН ДИРЕКТОР") // върната стойност - "ГЛАВЕН ДИРЕКТОР"
TReg("ГЕНЕРАЛЕН ДИРЕКТОР") // върната стойност - "Генерален директор"

StrReplace

Тази функция е аналогична на замяната в текстови редактори. Позволява ви да замените един знак или набор от знаци с друг в низови променливи.

StrReplace("red, white, yellow", ",", ";") // връща "red; бяло; жълт"

StrNumberRows

Функцията ви позволява да определите броя на редовете, разделени с връщане на каретка в текстова променлива.

Цикълът в примера по-долу ще премине през три кръга, защото функцията StrNumberRows ще върне стойността 3:

За ind \u003d 1 от StrNumber of Lines ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Цикъл
<тело цикла>
EndCycle;

StrGetString

Тази функция работи с многоредов текст по същия начин като предишната. Позволява ви да получите конкретен низ от текстова променлива.

StrGetString("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // връща "Ред2"

StrNumberOccurrences

Функцията отчита броя на срещанията на знак или подниз в търсения низ.

StrNumberInstallations("a;b;c;d; ", ";") // функцията ще върне числото 4

Символ и символен код

Тези функции ви позволяват да получите знак по неговия Unicode код, както и да определите този код по самия символ.

SymbolCode("A") // функцията ще върне числото 1 040
SymbolCode(1040) // функцията ще върне "A"

Чести задачи при работа с низове

Конкатенация на низове

За да свържете множество низове (конкатенация), просто използвайте оператора за добавяне.

"Ред 1" + "Ред 2" //резултатът от добавянето на два реда ще бъде "Ред 1 Ред 2"

Преобразуване на типа

За да преобразувате тип в низ, например препратка към елемент от речника, число и т.н., е достатъчно да използвате функцията "String ()". Функции като "ShortLP()" също ще конвертират променливи в низ, но незабавно с отрязване на незначещите знаци.

String(1000) // ще върне "1000"

Моля, обърнете внимание, че когато преобразувате число в низ, програмата автоматично добавя интервал, разделящ хилядата. За да избегнете това, можете да използвате следните структури:

StrReplace(String(1000),Characters.NPP,"") // връща "1000"

String(Format(1000,"CH=")) // ще върне "1000"

Кавички в низ

Доста често ще трябва да се справяте с необходимостта да поставите кавички в низова променлива. Може да бъде или текст на заявка, написан в конфигуратора, или просто променлива. За да разрешите този проблем, просто трябва да зададете два знака за кавички.

Header = String("Horns and Hooves LLC сме ние!") // връща "Roga and Hooves LLC сме ние!"

Многоредов, прекъсване на ред

За да създадете многоредов текстпросто добавете знаци за прекъсване на ред към него (Symbols.PS).

MultilineText = "Първи ред" + Знаци.PS + "Втори ред"

Как да премахнете интервали

За да премахнете интервалите отдясно или отляво, можете да използвате функцията "Stretch()" (както и "Scrpt()" и "ScreenP()"):

StringWithoutSpaces = ShortLP(" Много букви ") // функцията ще върне стойността "Много букви"

Ако след преобразуването на число в низ трябва да премахнете неразделящите се интервали, използвайте следната конструкция:

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // връща "99999"

Освен това програмистите често използват следната конструкция, която ви позволява да премахнете или замените всички интервали от текстова променлива с друг знак:

StringWithoutSpaces = StrReplace(" hello", " " ,"") // връща "hello"

Сравняване на низове един с друг

Можете да сравнявате термини с обичайния знак за равенство. Сравнението е чувствително към главни и малки букви.

"hello" = "hello" // ще върне false
"Hello" = "Hello" // ще върне True
„Здравей“ = „Довиждане“ // ще върне False

Внедрено във версия 8.3.6.1977.

Разширихме набора от функции за работа с низове. Направихме това, за да ви предоставим по-усъвършенствани инструменти за анализиране на низови данни. Новите функции ще бъдат удобни и полезни при технологични задачи за анализ на текст. В задачи, свързани с парсване на текст, който съдържа данни във форматиран вид. Това може да бъде анализ на някои файлове, получени от оборудването, или например анализ на технологичен дневник.

Всички действия, които новите функции изпълняват, можехте да извършвате преди. С помощта на повече или по-малко сложни алгоритми, написани на вграден език. Следователно новите функции не ви дават принципно нови възможности. Те обаче ви позволяват да намалите количеството код, да направите кода по-прост и по-разбираем. В допълнение, те ви позволяват да ускорите изпълнението на действията. Тъй като функциите, внедрени в платформата, работят, разбира се, по-бързо от подобен алгоритъм, написан на вградения език.

Функция за форматиране StrTemplate()

Тази функция замества параметри в низ. Необходимостта от такова преобразуване често възниква, например, когато се показват предупредителни съобщения. Синтаксисът за тази функция е както следва:

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

<Шаблон>е низът, в който да се заменят представянията на параметрите.

<Значение1> , ... <Значение10>- това са параметрите (максимум - десет), чиито представяния трябва да бъдат заменени в низа.

За да посочите конкретно място в шаблона, на което искате да извършите заместването, трябва да използвате маркери във формата %1, ... %10. Броят на маркерите, включени в шаблона, и броят на параметрите, съдържащи стойности, трябва да съвпадат.

Например резултатът от изпълнението на такъв оператор:

ще има ред:

Грешка в данните на ред 2 (изисква тип дата)

Низова функция StrCompare()

Тази функция сравнява два низа без значение за главни и малки букви. Например така:

Можете да извършите същото действие, преди да използвате обекта ValueComparison:

Използването на новата функция обаче изглежда по-просто. Освен това функцията, за разлика от обекта Value Compare, работи както в тънкия клиент, така и в уеб клиента.

Функции за низове StrBeginsC(), StrEndsTo()

Тези функции определят дали даден низ започва с определен подниз или дали низът завършва с определен подниз. Алгоритъмът на тези функции не е труден за изпълнение на вграден език, но тяхното присъствие ви позволява да пишете по-чист и разбираем код. И работят по-бързо.

Например, те са удобни за използване в израза If:

Функции за работа с низове StrSplit(), StrJoin()

Тези функции разделят низа на части според зададения разделител. Или обратното, те комбинират няколко реда в един, като вмъкват избрания разделител между тях. Те са удобни за създаване или анализ на дневници, технологичен дневник. Например, можете лесно да разглобите запис в технологичен дневник на части, подходящи за допълнителен анализ:

Функция за работа с низове StrFind()

Вместо старата функция Find(), внедрихме нова функция, който има допълнителни функции:

  • Търсене в различни посоки (от началото, от края);
  • Търсене от посочената позиция;
  • Търсене на събитие с посочения номер (второ, трето и т.н.).

Всъщност тя дублира възможностите на старата функция. Това се прави, за да се поддържа съвместимост с модули, компилирани в по-стари версии. Препоръчва се старата функция Find() да не се използва повече.

По-долу е даден пример за използване на новите възможности за търсене. Търсенето назад е полезно, когато имате нужда от последния фрагмент от формализиран низ, например, пълно имефайл в URL. И търсенето от определена позиция помага в случаите, когато трябва да търсите в известен фрагмент, а не в целия низ.

Да се основни възможностиезиците за програмиране обикновено включват работа с числа и низове. Обикновено тези характеристики са твърдо включени в кода на компилатора (или са внедрени "базови" класове на езика за програмиране).

В 1C възможностите за работа с низове са програмирани в самата платформа. Днес ще разгледаме характеристиките на работата с 1C низове в програми на вградения език 1C.

Стойност на линията 1C

1. Да започнем с най-простото. Създаването на променлива и присвояването на константна стойност на низ изглежда така в 1C:

Променлива = "Здравей свят!";

Ако искате да зададете символ за кавички в постоянна стойност на низ 1C, тогава трябва да го удвоите ""

Променлива = "Здравей, "свят""!";

2. Прекъсване на ред 1C може да бъде зададено по два начина едновременно. Първият е използването на символа |

Променлива = "Здравейте,
| свят! ";

Второто е използването на системното преброяване на символите. Тя ви позволява да добавяте както нов ред 1C, така и други непечатаеми знаци, като TAB.

Променлива = "Hi" + Symbols.ps + "peace!";

3. Конфигурациите в 1C могат да бъдат разработени не само за един език (руски, английски или друг) - но едновременно за няколко езика. В този случай текущият използван език е избран в долната част на прозореца 1C.

Списъкът с езици се намира в прозореца за конфигурация в клона Общи/Езици. Всеки език има кратък идентификатор като напр enили инж.

Ясно е, че при програмиране на такава конфигурация 1C линиите също могат да бъдат многоезични. За да направите това, е възможно да създадете такава линия 1C, като посочите чрез; опции по идентификатор на език:

Променлива = "ru=""Здравей, свят!""; en=""Здравей, свят! """;

Ако използвате линията 1C, образувана по този начин, както обикновено, тогава ще бъде това, което е написано в нея. За да може системата да го раздели на две опции и да използва желаната, трябва да използвате функцията NStr():

//правилно за двуезични конфигурации
Доклад(NSr(Променлива));

Подпори с линия тип 1C

Реквизитът е поле от директорията / документ 1C. Тя се различава от променлива в програма на езика 1C по това, че нейният тип е точно посочен за атрибута (число, низ 1C и т.н.). Ако трябва да освежите какво представляват реквизитите, вижте урока на .

Ако посочите типа атрибут - ред 1C, тогава трябва допълнително да посочите параметрите.

1C низовете са с неограничена дължина (посочена като дължина = 0) и ограничена дължина, указваща точния брой знаци. 1C низовете с неограничена дължина се съхраняват в отделна SQL таблица, така че използването им е по-малко продуктивно от ограничените.

Ето защо използването на 1C низове с неограничена дължина има своите ограничения - не е възможно да се използват навсякъде. Например не е възможно като номер на документ, указателен код, измерване.

Работа с 1C линии

За работа с низове има няколко вградени функции на платформата 1C.

  • AbbrLP ("Невероятно, но истина!")
    Премахва излишните интервали от низ 1C. Може също да се използва за преобразуване на всеки тип в 1C низ (например числа).
  • Променлива = "Вася" + Abbrl("плюс") + "Оля"; //ще бъде "Вася плюс Оля"
    Пример за сумиране на няколко низови стойности 1C. Резултатът е един ред 1C.
  • Променлива = Lion("Музика", 2); // ще бъде "Mu"
    Променлива = Ср.("Музика", 2, 2); // ще бъде "ps"
    Променлива = Права ("Музика", 2); // ще бъде "ka"
    Различни опции за получаване на подниз от низ 1C.
  • Променлива = Find("Музика", "ps"); //ще бъде 3
    Търсене на подниз в низ 1C, започващ със знак 1.
  • Променлива = StrLength("Музика"); // ще бъде 6
    Връща броя знаци в низ 1C.
  • Notify("Hi") //в полето за съобщения в долната част на прозореца 1C
    предупреждение("здравей") //изскачащ диалогов прозорец
    Status("Hello") //в реда за показване на състоянието долу вляво
    .

Привеждане на обекти в линия 1C

Както знаете, най-популярният формат за обмен на структурирана информация в момента е XML. Дори последна версияГОСПОЖИЦА Office Wordи Excel запазват файлове в този формат (docx и xlsx съответно, променете разширението на zip, отворете в архиватор).

Платформата 1C за обмен на данни предоставя няколко опции, основната от които също е XML.

1. Най-простият метод е да използвате функцията ShortLP() или String(). Можете да използвате функцията REPRESENTATION() в текста на заявката. Резултатът от тяхното действие е същият - те генерират низово представяне на всеки 1C обект за потребителя.

За директорията по подразбиране това ще бъде нейното име. За документ името, номерът и датата на документа.

2. Всеки 1C обект (с ограничения) може да бъде конвертиран в XML и обратно. Процесът на преобразуване се нарича сериализация.

ViewStringXml = XMLString(стойност); //вземете XML от стойност 1C
Value1С = XMLValue(Type("CatalogReference.Nomenclature"),ViewStringXml); //вземете стойността на 1C от XML низа, трябва да посочите типа на 1C, който трябва да бъде получен

3. Има собствен начин на платформата 1C за конвертиране на всеки 1C обект в низ. Мигрира от версия 1C 7.7. Този формат не се разбира от други програми, но разбира друг 1C, което улеснява използването му за обмен между 1C бази данни.

Низ = ValueInStringInt(Value1S); //вземете низ 1C от стойност 1C
ValueToFile("C:\MyFile.txt", Value1C); // друга опция, получаваме файл със записан низ от стойността 1C
Value1C = ValueFromStringInt(String); //назад от ред 1C
Value1C = ValueFromFile("C:\MyFile.txt"); //назад от файл

Редактиране на редове 1C във формуляра

В допълнение към работата с 1C низове в програма 1C, разбира се, бих искал потребителят да може да ги редактира. Има няколко възможности за това:

1. Най-лесният начин е да поискате въвеждането на линията 1C при поискване. Този метод се използва при преподаване на 1C програмиране, в живота се използва много по-рядко (но се използва!).

Променлива = "";
String = EnterValue(Variable, "Въведете пълно име");

2. За да покажете подробностите за обекта 1C (директория / документ) или подробностите за формуляра (вижте), най-често се използва полето за въвеждане. Това е най-разпространеният инструмент в 1C за потребителя да работи с полета за редактиране.

3. Възможностите на полето за въвеждане могат да бъдат разширени (вижте свойствата на полето за въвеждане, Кликнете с десния бутонвърху него, за повече подробности):

  • Квадратче за отметка Многоредов режим на редактиране
  • Квадратче за отметка за разширено редактиране (достъпно, ако предишното квадратче за отметка е отметнато)
  • Квадратче за отметка Режим на парола (вижте ).

4. Ако всички възможности на полето за въвеждане не са ви достатъчни, има вграден редактор. За да го добавите към формуляра, е необходимо да добавите поле в меню Формуляр / Вмъкване на контрола текстов документ. В неговите свойства можете да посочите режима на неговата работа - свойството Extension.

Поле на текстов документ не може да бъде свързано директно с данни. Необходимо е да напишете следната функция в манипулатора на събития на формата OnOpening() (вижте):

FormElements.ElementNameTextDocumentField.SetText(StringValue); //тук ValueString е текстът, получен например от атрибута

И в манипулатора за запазване - например в бутона Запазване - добавете запис:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueString тук е реквизита, където запазваме стойността

5. В 1C версия 8.2.11, в управлявани форми, се появи нова възможностредово представяне 1C - Форматирано поле на документ.


Подобно на полето на текстов документ, е необходимо да зададете при отваряне и да пишете при запазване на текста сами с помощта на програмата.

  • В обекта 1C, чиято форма правим (справочна книга, документ, обработка и др.) - добавете атрибут с типа Съхранение на стойност
  • Във функцията OnReadOnServer() задайте текста от атрибута

    //тук Requisite е добавеният атрибут на 1C обекта
    //тук FormattedDocument е името на полето във формата за редактиране
    &На сървъра

    FormattedDocument = CurrentObject.Attributes.Get();
    EndProcedure

  • Във функцията BeforeWriteOnServer() или чрез натискане на бутона напишете текста от полето

    &На сървъра
    Процедура OnReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(FormattedDocument);
    EndProcedure