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