ПолеВвода.Маска

Свойства · Mask

Тип: Строка. Содержит посимвольную строку маски интерактивного ввода текста в поле. В строке маски допустимо использование следующих специальных символов: ! - любой введенный символ преобразуется в верхний регистр; 9 - допустимо ввести произвольный символ цифры; # - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел; N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры); U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр; X (латинского алфавита) - допустимо ввести произвольный символ; ^ - недопустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка; h - допустим ввод символов обозначения шестнадцатеричных цифр; @ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел. При помещении значения из поля ввода с маской в текстовый реквизит, связанный с этим полем ввода, происходит следующее преобразование: на тех позициях, где в маске стоит символ "@", а в строке пробел – пробел удаляется. Если в маске из специальных символов используются только символы "@", то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после последнего непустого блока из символов "@". Например, при маске "@@.@@.@@." текст "41. 2. ." преобразуется в "41.2". Для того, чтобы использовать в маске один из специальных символов, нужно использовать

Полное описание, параметры и ограничения

ПолеВвода.Маска (TextBox.Mask)

ПолеВвода (TextBox)

Маска (Mask)

Доступен, начиная с версии 8.0.

Использование:
Чтение и запись.
Описание:
Тип: Строка.
Содержит посимвольную строку маски интерактивного ввода текста в поле.
В строке маски допустимо использование следующих специальных символов:
! - любой введенный символ преобразуется в верхний регистр;

9 - допустимо ввести произвольный символ цифры;

# - допустимо ввести произвольный символ цифры или - (знак минус) или + (знак плюс) или пробел;

N - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры);

U - допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр;

X (латинского алфавита) - допустимо ввести произвольный символ;

^ - недопустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка;

h - допустим ввод символов обозначения шестнадцатеричных цифр;

@ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел.
При помещении значения из поля ввода с маской в текстовый реквизит, связанный с этим полем ввода, происходит следующее преобразование: на тех позициях, где в маске стоит символ "@", а в строке пробел – пробел удаляется. Если в маске из специальных символов используются только символы "@", то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после последнего непустого блока из символов "@". Например, при маске "@@.@@.@@." текст "41. 2. ." преобразуется в "41.2".
Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ "\".
Допускается указание нескольких масок в одном параметре. Маски разделяются символом ";". В этом случае использоваться будет та маска, к которой подходит введенный текст.
Доступность:

Толстый клиент.

Примечание:
Имеет смысл только для значений типа Строка.
Если строка, введенная в поле ввода, соответствует пустой маске, в качестве значения будет записана пустая строка.
Если для реквизита используется строка фиксированной длины, значение будет дополнено пробелами до установленной длины.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Заменить выделенное слово в собственном описании

Выделите Книга мышью. Код получает реальные границы, восстанавливает то же выделение и заменяет только эту часть текста.

Где и как запускать

Полный модуль новой обычной формы внешней обработки. Только толстый клиент с обычными формами, не серверный модуль и не управляемая форма.

Подготовка

  1. Создайте отдельную внешнюю обработку с обычной формой в учебной базе, запускайте толстым клиентом в режиме обычных форм. Не вставляйте код в управляемую форму.

  2. В форме создайте реквизиты УчебноеКоличество (Число 9.0), УчебноеОписание (Строка неограниченной длины), УчебныйСтатус (Строка 20), УчебныйПароль (Строка 100). Добавьте поля ввода ПолеКоличество, ПолеОписание, ПолеСтатуса, ПолеПароля, свяжите их Данные с соответствующими реквизитами.

  3. Добавьте обычную кнопку УчебнаяКоманда. Свяжите её действие и событие ПриОткрытии формы с одноимёнными процедурами. Каждый урок заменяет полный модуль только этой собственной формы.

  4. Рабочие данные не используются. Пароль в примере NOT_A_REAL_SECRET — вымышленная учебная строка; не вводите реальные секреты. Значения нигде не сохраняются и не отправляются.

Процедура ПриОткрытии()
    УчебноеКоличество = 3;
    УчебноеОписание = "Книга" + Символы.ПС + "Ручка";
    УчебныйСтатус = "";
    УчебныйПароль = "NOT_A_REAL_SECRET";
    Поле = ЭтаФорма.ЭлементыФормы.ПолеОписание;
    Поле.МногострочныйРежим = Истина;
    Поле.АвтоПереносСтрок = Истина;
    Поле.РедактированиеТекста = Истина;
    Поле.РасширенноеРедактирование = Ложь;
    Поле.Маска = "";
    Поле.АвтоОтметкаНезаполненного = Истина;
    Поле.ОтметкаНезаполненного = Ложь;
КонецПроцедуры

Процедура УчебнаяКоманда(Кнопка)
    Поле = ЭтаФорма.ЭлементыФормы.ПолеОписание;
    Если Поле.ВыделенныйТекст <> "Книга" Тогда
        Сообщить("Сначала выделите мышью слово Книга в своём описании");
        Возврат;
    КонецЕсли;
    НачалоСтроки = 0;
    НачалоКолонки = 0;
    КонецСтроки = 0;
    КонецКолонки = 0;
    Поле.ПолучитьГраницыВыделения(НачалоСтроки, НачалоКолонки, КонецСтроки, КонецКолонки);
    Поле.УстановитьГраницыВыделения(НачалоСтроки, НачалоКолонки, КонецСтроки, КонецКолонки);
    Сообщить(Поле.ВыделенныйТекст = "Книга");
    Поле.ВыделенныйТекст = "Учебная книга";
    Сообщить(УчебноеОписание = "Учебная книга" + Символы.ПС + "Ручка");
    Сообщить(СтрШаблон("Границы до замены: %1:%2 — %3:%4", НачалоСтроки, НачалоКолонки, КонецСтроки, КонецКолонки));
КонецПроцедуры

Разбор по шагам

  1. МногострочныйРежим даёт несколько строк, АвтоПереносСтрок переносит длинную строку визуально. Это разные свойства.

  2. Перед нажатием кнопки действительно выделите Книга. Без подходящего выделения код возвращается без изменения текста.

  3. Четыре переменные получают границы по ссылке. Нули — начальные значения переменных, не предположение о допустимой нумерации координат.

  4. УстановитьГраницыВыделения получает координаты от самого элемента, поэтому начало отсчёта не угадывается.

  5. Запись ВыделенныйТекст заменяет выделенную часть. Ручка во второй строке должна остаться прежней. Отметка незаполненного — оформление, не бизнес-проверка.

Как проверить результат

  1. После ручного выделения два сравнения Истина и реальные координаты до замены.

  2. Без выделения выводится инструкция, описание не изменяется.

Ожидаемый результат

Границы выделения получены от интерфейса, замена проверена по собственному тексту.

На что обратить внимание

  1. После замены снова не выделяйте старое слово: переоткройте форму для повторения исходного упражнения.

  2. Этот код не работает с ТекстовымДокументом или HTML-редактором: это обычное поле ввода.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.