ПолеВвода.УстановитьГраницыВыделения

Методы · SetTextSelectionBounds

Устанавливает границы выделенной области текста.

Синтаксис

УстановитьГраницыВыделения(<НачальнаяПозиция>, <КонечнаяПозиция>)
УстановитьГраницыВыделения(<НачалоСтроки>, <НачалоКолонки>, <КонецСтроки>, <КонецКолонки>)
Полное описание, параметры и ограничения

ПолеВвода.УстановитьГраницыВыделения (TextBox.SetTextSelectionBounds)

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

УстановитьГраницыВыделения (SetTextSelectionBounds)

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

Вариант синтаксиса: По позициям начала и конца выделения в тексте

Синтаксис:
УстановитьГраницыВыделения(<НачальнаяПозиция>, <КонечнаяПозиция>)
Параметры:

<НачальнаяПозиция> (обязательный)
Тип: Число.
Позиция начала выделения в тексте.

<КонечнаяПозиция> (обязательный)
Тип: Число.
Конечная позиция выделения в тексте.
Вариант синтаксиса: По номерам строк и колонок начала и конца выделения

Синтаксис:
УстановитьГраницыВыделения(<НачалоСтроки>, <НачалоКолонки>, <КонецСтроки>, <КонецКолонки>)
Параметры:

<НачалоСтроки> (обязательный)
Тип: Число.
Номер строки начала выделения.

<НачалоКолонки> (обязательный)
Тип: Число.
Номер колонки начала выделения.

<КонецСтроки> (обязательный)
Тип: Число.
Номер строки конца выделения.

<КонецКолонки> (обязательный)
Тип: Число.
Номер колонки конца выделения.
Описание:

Устанавливает границы выделенной области текста.

Доступность:

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

Использование в версии:

Доступен, начиная с версии 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С» и не аффилирован с ней.