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