Расширение поля формы для поля форматированного документа.УстановитьГраницыВыделения

Методы · SetTextSelectionBounds

Устанавливает границы выделения.

Синтаксис

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

Расширение поля формы для поля форматированного документа.УстановитьГраницыВыделения (Form field extension for a formatted document.SetTextSelectionBounds)

Расширение поля формы для поля форматированного документа (Form field extension for a formatted document)

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

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

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

<Начало> (обязательный)
Тип: ЗакладкаФорматированногоДокумента.
Новая позиция начала выделения.

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

Устанавливает границы выделения.

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

Тонкий клиент, веб-клиент, сервер, толстый клиент.

Примечание:
Метод можно использовать при открытом окне, в том числе в серверных вызовах.
Использование в версии:

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

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

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

Использовать УстановитьГраницыВыделения своего поля форматированного документа

Границы форматированного документа — настоящие ЗакладкаФорматированногоДокумента, полученные от поля открытой формы. Они сохраняются и возвращаются тому же полю, а не заменяются выдуманными числами.

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

Модуль своей управляемой формы: команды &НаКлиенте после открытия окна; подготовка &НаСервере при создании.

Подготовка

  1. Создайте свою внешнюю обработку с управляемой формой. В форме добавьте реквизит УчебныйДокумент типа ФорматированныйДокумент и связанное поле УчебноеПоле вида ПолеФорматированногоДокумента; ПутьКДанным = УчебныйДокумент.

  2. В начале модуля формы, перед процедурами, объявите Перем УчебноеНачало, УчебныйКонец; Это переменные одной открытой формы, не реквизиты конфигурации и не числа-позиции.

  3. Создайте команды Запомнить и Восстановить с кнопками и обработчиками ЗапомнитьВыделение / ВосстановитьВыделение. Оба клиентских блока вставьте на уровне модуля; назначьте ПриСозданииНаСервере подготовительному обработчику.

  4. Откройте форму в тонком клиенте. Мышью выделите часть собственного текста, нажмите Запомнить, измените выделение без редактирования текста, затем нажмите Восстановить.

&НаКлиенте
Процедура ВосстановитьВыделение(Команда)
    Если УчебноеНачало = Неопределено Или УчебныйКонец = Неопределено Тогда
        Сообщить("Сначала выделите текст и нажмите Запомнить");
        Возврат;
    КонецЕсли;
    Элементы.УчебноеПоле.УстановитьГраницыВыделения(УчебноеНачало, УчебныйКонец);
    Сообщить("Восстановлены закладки выделения того же документа");
КонецПроцедуры
Та же открытая форма: парная клиентская команда
&НаКлиенте
Процедура ЗапомнитьВыделение(Команда)
    Элементы.УчебноеПоле.ПолучитьГраницыВыделения(УчебноеНачало, УчебныйКонец);
    Сообщить("Закладки текущего выделения сохранены в переменных формы");
    Сообщить("Не изменяйте текст до восстановления закладок");
КонецПроцедуры
Подготовка собственных данных при создании формы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Документ = Новый ФорматированныйДокумент;
    Документ.УстановитьФорматированнуюСтроку(Новый ФорматированнаяСтрока("Книга: 3 штуки по 250 рублей, сумма 750"));
    ЭтаФорма.УчебныйДокумент = Документ;
КонецПроцедуры

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

  1. Серверный подготовительный обработчик заполняет реквизит формы собственной строкой / строками.

  2. Клиентская команда работает с конкретным УчебноеПоле уже открытой формы.

  3. У текстового поля границы числовые; у форматированного — закладки. Эти варианты не взаимозаменяемы.

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

  1. Нажатие Восстановить до Запомнить показывает понятное сообщение и не вызывает метод с пустыми закладками.

  2. После сохранения и смены выделения восстанавливается выделение собственного текста. Текст не меняется и не сохраняется в файл.

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

Выделение реального собственного поля получено / восстановлено с правильными типами границ.

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

  1. Границы берутся у элемента формы, не у объекта документа данных.

  2. Закладки нельзя переносить в другой документ или считать гарантированно действительными после изменения текста.

  3. Не заменяйте ЗакладкаФорматированногоДокумента числовыми индексами. Код 1С при сборке справочника не выполнялся.

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

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

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

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

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