Устанавливает в текстовый документ текст из переданной строки. Текст, содержащийся в текстовом документе до исполнения метода, удаляется.
Синтаксис
УстановитьТекст(<ТекстДляУстановки>)Примеры платформы
ТекстовыйДокумент.УстановитьТекст("
|Этот
|текст
|установлен из строки");Полное описание, параметры и ограничения
ТекстовыйДокумент.УстановитьТекст (TextDocument.SetText)
ТекстовыйДокумент (TextDocument)
УстановитьТекст (SetText)
Доступен, начиная с версии 8.0.
Синтаксис:
УстановитьТекст(<ТекстДляУстановки>)
Параметры:
<ТекстДляУстановки> (обязательный)
Тип: Строка.
Текст, помещаемый в текстовый документ.
Описание:
Устанавливает в текстовый документ текст из переданной строки. Текст, содержащийся в текстовом документе до исполнения метода, удаляется.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:
ТекстовыйДокумент.УстановитьТекст("
|Этот
|текст
|установлен из строки");
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Запретить интерактивный вывод поля, не изменяя текст документа
Задаём ограничение вывода у поля и отдельно исследуем настройку у ТекстовыйДокумент. Это разные объекты и не серверная система прав.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебныеПоляДокументов85 с пустой управляемой основной формой. Запускайте в тонком клиенте Windows; веб-клиент в этот урок не входит.
Не создавайте вручную УчебныйДокумент, ПолеДокумента или учебную команду. Модуль программно добавляет их при открытии формы.
В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код одного урока на уровне модуля, сохраните свою EPF и откройте её в учебной базе.
Поле связано с реквизитом УчебныйДокумент типа ТекстовыйДокумент. Объект документа содержит данные, элемент ПолеДокумента отвечает за отображение и пользовательские действия.
Документ создаётся заново из собственных констант. Книга: 3 штуки по 250, сумма 750. Реальные документы, справочники, файлы, сертификаты и сетевые адреса не используются.
Каждый урок запускайте в отдельной копии формы. Изменения текста и оформления живут в памяти открытой учебной формы; код не сохраняет документ в файл, не печатает и не пишет в базу.
Размеры и ограничения элемента задаются на сервере создания формы. Кнопка выполняет клиентские проверки или явно описанное учебное изменение.
Фактический вид и запуск в 1С не проверены. Настройки компоновки формы, масштаб интерфейса и версия клиента могут влиять на отображение; сверяйте его вручную.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ТекстовыйДокумент")));
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
Документ = Новый ТекстовыйДокумент;
Документ.УстановитьТекст("Книга" + Символы.ПС + "Количество: 3" + Символы.ПС + "Сумма: 750");
ЭтаФорма.УчебныйДокумент = Документ;
Поле = Элементы.Добавить("ПолеДокумента", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеТекстовогоДокумента;
Поле.ПутьКДанным = "УчебныйДокумент";
Поле.Вывод = ИспользованиеВывода.Запретить;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить учебный документ";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.ПолеДокумента;
Сообщить(Поле.Вывод = ИспользованиеВывода.Запретить);
Сообщить(СтрНайти(УчебныйДокумент.ПолучитьТекст(), "Книга") > 0);
Сообщить("Настройка вывода документа: " + Строка(УчебныйДокумент.Вывод));
Сообщить("Настройка вывода поля: " + Строка(Поле.Вывод));
КонецПроцедуры
Разбор по шагам
Исходный документ создаётся с собственным текстом, без чтения файла.
Присваивание Поле.Вывод меняет ограничение печати, сохранения и буфера для этого элемента интерфейса.
УчебныйДокумент.Вывод не переписываем: справка допускает отличие его значения от свойства поля.
Читаем обе настройки раздельно и проверяем, что текст Книга остался в документе.
Как проверить результат
Ожидаются два Истина и две строки с текущими настройками вывода.
Осмотрите доступность команд поля, ничего не сохраняя и не печатая. Не ожидайте автоматически запрет записи серверным кодом.
Ожидаемый результат
Отделены данные документа, настройки его представления и реальные права доступа.
На что обратить внимание
Ограничение интерфейса не защищает данные от произвольного серверного кода.
Не назначайте полю имя файла с ожиданием, что это автоматически сохранит документ.
Эта учебная настройка не заменяет роль, RLS или контроль доступа в конфигурации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Заменить выделенное слово Книга и восстановить выделение
Пользователь выделяет своё слово, код получает реальные координаты выделения, меняет регистр и восстанавливает тот же диапазон. Индексы строк и колонок не угадываются.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебныеПоляДокументов85 с пустой управляемой основной формой. Запускайте в тонком клиенте Windows; веб-клиент в этот урок не входит.
Не создавайте вручную УчебныйДокумент, ПолеДокумента или учебную команду. Модуль программно добавляет их при открытии формы.
В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код одного урока на уровне модуля, сохраните свою EPF и откройте её в учебной базе.
Поле связано с реквизитом УчебныйДокумент типа ТекстовыйДокумент. Объект документа содержит данные, элемент ПолеДокумента отвечает за отображение и пользовательские действия.
Документ создаётся заново из собственных констант. Книга: 3 штуки по 250, сумма 750. Реальные документы, справочники, файлы, сертификаты и сетевые адреса не используются.
Каждый урок запускайте в отдельной копии формы. Изменения текста и оформления живут в памяти открытой учебной формы; код не сохраняет документ в файл, не печатает и не пишет в базу.
Размеры и ограничения элемента задаются на сервере создания формы. Кнопка выполняет клиентские проверки или явно описанное учебное изменение.
Фактический вид и запуск в 1С не проверены. Настройки компоновки формы, масштаб интерфейса и версия клиента могут влиять на отображение; сверяйте его вручную.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ТекстовыйДокумент")));
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
Документ = Новый ТекстовыйДокумент;
Документ.УстановитьТекст("Книга" + Символы.ПС + "Количество: 3" + Символы.ПС + "Сумма: 750");
ЭтаФорма.УчебныйДокумент = Документ;
Поле = Элементы.Добавить("ПолеДокумента", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеТекстовогоДокумента;
Поле.ПутьКДанным = "УчебныйДокумент";
Поле.ТолькоПросмотр = Ложь;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Заменить своё выделение";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.ПолеДокумента;
Выделение = Поле.ВыделенныйТекст;
Если Выделение <> "Книга" Тогда
Сообщить("Выделите только слово Книга в первой строке собственной памятки");
Возврат;
КонецЕсли;
НачалоСтроки = 0;
НачалоКолонки = 0;
КонецСтроки = 0;
КонецКолонки = 0;
Поле.ПолучитьГраницыВыделения(НачалоСтроки, НачалоКолонки, КонецСтроки, КонецКолонки);
Сообщить(НачалоСтроки = КонецСтроки);
Сообщить(КонецКолонки > НачалоКолонки);
Поле.ВыделенныйТекст = ВРег(Выделение);
Поле.УстановитьГраницыВыделения(НачалоСтроки, НачалоКолонки, КонецСтроки, КонецКолонки);
Сообщить(Поле.ВыделенныйТекст = "КНИГА");
Сообщить(СтрНайти(УчебныйДокумент.ПолучитьТекст(), "Сумма: 750") > 0);
КонецПроцедуры
Разбор по шагам
Перед нажатием кнопки мышью выделяем только Книга, без перевода строки. Для любого другого выделения код завершается без замены.
ПолучитьГраницыВыделения заполняет четыре выходные переменные: строки и колонки начала и конца.
Проверяем, что наш фрагмент однострочный и конец колонки расположен после начала. Не считаем нумерацию с 0 или 1 по предположению.
Запись ВыделенныйТекст заменяет фрагмент и сбрасывает выделение. Верхний регистр сохраняет длину пяти букв собственного слова.
Восстанавливаем диапазон фактическими координатами и проверяем новый текст и нетронутую сумму в другой строке.
Как проверить результат
После правильного выделения ожидаются четыре Истина и выделенное КНИГА.
Нажмите кнопку без выделения: будет просьба выбрать слово, а документ не изменится. Для повторного опыта заново откройте форму.
Ожидаемый результат
Разобрана управляемая замена конкретного собственного фрагмента с сохранением его диапазона.
На что обратить внимание
ЭтаФорма.Элементы — управляемая форма; не подставляйте ЭлементыФормы обычного клиента.
Не восстанавливайте старый конец диапазона после замены произвольной строкой другой длины.
Изменён только документ в памяти формы; текстовый файл не сохраняется.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.