ТекстФорматированногоДокумента.Родитель

Свойства · Parent

Тип: ПараграфФорматированногоДокумента. Содержит родительский объект (параграф форматированного документа) текста форматированного документа.

Полное описание, параметры и ограничения

ТекстФорматированногоДокумента.Родитель (FormattedDocumentText.Parent)

ТекстФорматированногоДокумента (FormattedDocumentText)

Родитель (Parent)

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

Использование:
Только чтение.
Описание:
Тип: ПараграфФорматированногоДокумента.
Содержит родительский объект (параграф форматированного документа) текста форматированного документа.
Доступность:

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

Использование в версии:

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

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

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

Показать на форме оформленную памятку с двумя шагами и итогом

Законченная собственная форма отображает заголовок, нумерованные шаги и зелёный итог. Пользователь может сверить расчёт кнопкой без записи в базу.

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

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

Подготовка

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

  2. В реквизитах формы добавьте УчебныйТекст типа ФорматированныйДокумент. Перетащите его на форму: поле ПолеУчебногоТекста, Вид = Поле форматированного документа, Только просмотр = Да.

  3. Создайте команду УчебныйПример и кнопку этой команды. Действие команды свяжите с процедурой УчебныйПример.

  4. Событие формы ПриСозданииНаСервере свяжите с одноимённой процедурой. Вставьте ВЕСЬ модуль и откройте учебную EPF в клиенте Windows.

  5. Это собственная учебная памятка. Она не является макетом рабочего отчёта и не отправляется на принтер.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    УчебныйТекст = СоздатьУчебнуюПамятку();
КонецПроцедуры

&НаСервереБезКонтекста
Функция СоздатьУчебнуюПамятку()
    Документ = Новый ФорматированныйДокумент;
    Заголовок = Документ.Добавить("Расчёт учебной покупки");
    Заголовок.Шрифт = Новый Шрифт("Arial", 16, Истина);
    Заголовок.ЦветТекста = Новый Цвет(25, 50, 80);
    Заголовок.Родитель.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
    Шаг1 = Документ.Элементы.Добавить(Неопределено, Неопределено);
    Шаг1.ТипПараграфа = ТипПараграфаФорматированногоДокумента.НумерованныйСписок;
    Шаг1.Отступ = 12;
    Шаг1.МеждустрочныйИнтервал = 1.2;
    Шаг1.Элементы.Добавить("Выберите товар: Книга.");
    Шаг2 = Документ.Элементы.Добавить(Неопределено, Неопределено);
    Шаг2.ТипПараграфа = ТипПараграфаФорматированногоДокумента.НумерованныйСписок;
    Шаг2.Отступ = 12;
    Шаг2.МеждустрочныйИнтервал = 1.2;
    Шаг2.Элементы.Добавить("Количество 3, цена 250 руб., сумма 3 × 250 = 750 руб.");
    Итог = Документ.Элементы.Добавить(Неопределено, Неопределено);
    Итог.ТипПараграфа = ТипПараграфаФорматированногоДокумента.Обычный;
    ТекстИтога = Итог.Элементы.Добавить("Итого: 750 руб. Ничего не записано в базу.");
    ТекстИтога.ЦветТекста = Новый Цвет(20, 110, 50);
    ТекстИтога.ЦветФона = Новый Цвет(235, 248, 239);
    ТекстИтога.Шрифт = Новый Шрифт("Arial", 12, Истина);
    Возврат Документ;
КонецФункции

&НаКлиенте
Процедура УчебныйПример(Команда)
    Сумма = 3 * 250;
    Сообщить(Сумма = 750);
    Сообщить(СтрНайти(УчебныйТекст.ПолучитьТекст(), "750 руб.") > 0);
КонецПроцедуры

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

  1. УчебныйТекст — реквизит именно этой учебной формы, поле связано с ним путём к данным.

  2. Объект ФорматированныйДокумент содержит корневую коллекцию параграфов. Внутри параграфа — текстовые элементы, картинки и переводы строк.

  3. Добавить у документа создаёт текст; через Родитель получаем его параграф для выравнивания заголовка.

  4. Добавить(Неопределено, Неопределено) у корневой коллекции создаёт пустой параграф. Добавить у его Элементы создаёт содержимое этого параграфа.

  5. Отступ измеряется в поинтах, МеждустрочныйИнтервал — относительный множитель размера шрифта. Это разные единицы.

  6. Кнопка проверяет расчёт и наличие итога в тексте; она не проводит документ и не печатает.

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

  1. В форме видны заголовок по центру, два нумерованных пункта и выделенный итог 750 руб.

  2. Кнопка выводит две Истина; поле в режиме Только просмотр не позволяет менять памятку.

  3. Проверьте оформление визуально в своём клиенте: эти сообщения проверяют расчёт и текст, не пиксельный вид.

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

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

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

  1. Если поле отображает не документ, проверьте Вид поля и ПутьКДанным=УчебныйТекст.

  2. Сами строки нумерованных пунктов не содержат цифр: номера отображает ТипПараграфа.

  3. Внешний вид шрифта зависит от наличия Arial и среды клиента; это не доказательство одинаковой вёрстки во всех клиентах.

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

Отличить текстовый элемент, его параграф и перевод строки

В одном параграфе создаём две строки Книга и Ручка. Текст и перевод строки имеют общую родительскую структуру, но разные типы.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Отдельная учебная база, серверный общий модуль УчебныеЗадачи. Фрагмент без директив вставьте в тело ВыполнитьПример() Экспорт.

  2. Документ создаётся заново в памяти при каждом запуске. Существующие реквизиты, файлы и документы конфигурации не меняются.

  3. Сообщения показывают контрольные проверки. Для визуального просмотра оформления используйте отдельную задачу с полным модулем учебной формы.

Документ = Новый ФорматированныйДокумент;
Первый = Документ.Добавить("Книга");
Первый.Текст = "Книга";
Первый.Шрифт = Новый Шрифт("Arial", 12, Истина);
Первый.ЦветТекста = Новый Цвет(30, 60, 90);
Первый.ЦветФона = Новый Цвет(245, 248, 250);
Первый.НавигационнаяСсылка = "";
Перевод = Документ.Добавить(Неопределено, Тип("ПереводСтрокиФорматированногоДокумента"));
Второй = Документ.Добавить("Ручка");
Параграф = Первый.Родитель;
Параграф.ТипПараграфа = ТипПараграфаФорматированногоДокумента.Обычный;
Сообщить(Перевод.Родитель = Параграф);
Сообщить(Второй.Родитель = Параграф);
Сообщить(Первый.НавигационнаяСсылка = "");
Сообщить(Документ.ПолучитьТекст(Первый.ЗакладкаНачала, Первый.ЗакладкаКонца) = "Книга");
Сообщить(Документ.ПолучитьПозициюПоЗакладке(Первый.ЗакладкаКонца) - Документ.ПолучитьПозициюПоЗакладке(Первый.ЗакладкаНачала) = 5);
Сообщить(Документ.ПолучитьПозициюПоЗакладке(Перевод.ЗакладкаКонца) > Документ.ПолучитьПозициюПоЗакладке(Перевод.ЗакладкаНачала));
Сообщить(Документ.ПолучитьТекст(Параграф.ЗакладкаНачала, Параграф.ЗакладкаКонца) = Документ.ПолучитьТекст());

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

  1. Добавить возвращает созданный текстовый элемент. Оформление относится к нему, а выравнивание/тип списка — к его параграфу.

  2. Параметр ТипЭлемента=ПереводСтрокиФорматированногоДокумента вставляет перевод строки внутри параграфа, не новый параграф.

  3. Родитель у текста и перевода строки — ПараграфФорматированногоДокумента; он только для чтения.

  4. Закладки ограничивают диапазон элемента. По ним извлекаем только Книга и сравниваем длину диапазона с пятью символами.

  5. НавигационнаяСсылка установлена пустой: упражнение не создаёт переход к сайту или чужому объекту.

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

  1. Все семь сравнений Истина: оба текста и перевод относятся к одному параграфу; диапазон первого текста содержит Книга.

  2. В полном тексте есть перевод строки между названиями; новый параграф не создаётся.

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

Показана иерархия и реальные диапазоны текстовых элементов.

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

  1. Текстовое оформление не является заменой данных реквизитов/таблиц: здесь это только представление.

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

  3. Не создавайте ссылку на произвольный внешний ресурс только ради демонстрации свойства.

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

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

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

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

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