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