В трёхстрочной памятке Книга / Количество: 3 / Сумма: 750 задаём размеры, шрифт и цвета самого поля. Данные документа остаются прежними.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебныеПоляДокументов85 с пустой управляемой основной формой. Запускайте в тонком клиенте Windows; веб-клиент в этот урок не входит.
Не создавайте вручную УчебныйДокумент, ПолеДокумента или учебную команду. Модуль программно добавляет их при открытии формы.
В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код одного урока на уровне модуля, сохраните свою EPF и откройте её в учебной базе.
Поле связано с реквизитом УчебныйДокумент типа ТекстовыйДокумент. Объект документа содержит данные, элемент ПолеДокумента отвечает за отображение и пользовательские действия.
Документ создаётся заново из собственных констант. Книга: 3 штуки по 250, сумма 750. Реальные документы, справочники, файлы, сертификаты и сетевые адреса не используются.
Каждый урок запускайте в отдельной копии формы. Изменения текста и оформления живут в памяти открытой учебной формы; код не сохраняет документ в файл, не печатает и не пишет в базу.
Размеры и ограничения элемента задаются на сервере создания формы. Кнопка выполняет клиентские проверки или явно описанное учебное изменение.
Фактический вид и запуск в 1С не проверены. Настройки компоновки формы, масштаб интерфейса и версия клиента могут влиять на отображение; сверяйте его вручную.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ТекстовыйДокумент")));
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
Документ = Новый ТекстовыйДокумент;
Документ.УстановитьТекст("Книга" + Символы.ПС + "Количество: 3" + Символы.ПС + "Сумма: 750");
ЭтаФорма.УчебныйДокумент = Документ;
Поле = Элементы.Добавить("ПолеДокумента", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеТекстовогоДокумента;
Поле.ПутьКДанным = "УчебныйДокумент";
Поле.АвтоМаксимальнаяВысота = Ложь;
Поле.АвтоМаксимальнаяШирина = Ложь;
Поле.Высота = 10;
Поле.Ширина = 72;
Поле.МаксимальнаяВысота = 20;
Поле.МаксимальнаяШирина = 100;
Поле.РастягиватьПоВертикали = Истина;
Поле.РастягиватьПоГоризонтали = Истина;
Поле.Шрифт = Новый Шрифт("Consolas", 11);
Поле.ЦветТекста = Новый Цвет(25, 40, 55);
Поле.ЦветФона = Новый Цвет(250, 252, 255);
Поле.ЦветРамки = Новый Цвет(100, 125, 150);
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить учебный документ";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.ПолеДокумента;
Сообщить(Не Поле.АвтоМаксимальнаяВысота И Не Поле.АвтоМаксимальнаяШирина);
Сообщить(Поле.Высота = 10 И Поле.Ширина = 72);
Сообщить(Поле.МаксимальнаяВысота = 20 И Поле.МаксимальнаяШирина = 100);
Сообщить(Поле.РастягиватьПоВертикали И Поле.РастягиватьПоГоризонтали);
Сообщить(ТипЗнч(Поле.Шрифт) = Тип("Шрифт"));
Сообщить(Поле.ЦветТекста = Новый Цвет(25, 40, 55));
Сообщить(Поле.ЦветФона = Новый Цвет(250, 252, 255));
Сообщить(Поле.ЦветРамки = Новый Цвет(100, 125, 150));
Сообщить(СтрНайти(УчебныйДокумент.ПолучитьТекст(), "Сумма: 750") > 0);
КонецПроцедуры
Разбор по шагам
Создаём ТекстовыйДокумент в памяти и привязываем к нему поле правильного вида, не обычное многострочное поле ввода.
Отключение автоматических максимумов включает собственные ограничения; разрешение растягивания задаётся отдельно.
Шрифт и цвета относятся к представлению поля. Числа размеров — логические единицы интерфейса, не пиксели.
Конструктор Шрифт задаёт Consolas 11. При отсутствии такого шрифта клиент может использовать замену, поэтому вид проверяем вручную.
После оформления читаем собственный текст документа и проверяем наличие суммы: настройки поля не должны заменять содержание.
Как проверить результат
Ожидаются девять Истина. На форме остаются три собственные строки, включая Сумма: 750.
Измените ширину окна и масштаб интерфейса. Убедитесь, что текст можно прочитать и ограничения не трактуются как размеры в пикселях.
Ожидаемый результат
Учебный текст представлен отдельным настроенным полем с сохранённым содержимым.
На что обратить внимание
Это расширение управляемого поля, не ПолеТекстовогоДокумента обычной формы и не тестируемое поле автоматизации.
Шрифт интерфейса не является настройкой кодировки текстового файла.
Указанные цвета могут отображаться по-разному в разных темах; проверки свойств не заменяют визуальную проверку.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.