ТекстовыйДокумент.Вывод

Свойства · Output

Тип: ИспользованиеВывода. Ограничение вывода на печать, сохранения, работы с буфером обмена.

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

ТекстовыйДокумент.Вывод (TextDocument.Output)

ТекстовыйДокумент (TextDocument)

Вывод (Output)

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

Использование:
Чтение и запись.
Описание:
Тип: ИспользованиеВывода.
Ограничение вывода на печать, сохранения, работы с буфером обмена.
Доступность:

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

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

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

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

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

Запретить интерактивный вывод поля, не изменяя текст документа

Задаём ограничение вывода у поля и отдельно исследуем настройку у ТекстовыйДокумент. Это разные объекты и не серверная система прав.

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

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. В отдельной учебной базе 8.5.1.1343 создайте внешнюю обработку УчебныеПоляДокументов85 с пустой управляемой основной формой. Запускайте в тонком клиенте Windows; веб-клиент в этот урок не входит.

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

  3. В свойствах формы → События назначьте ПриСозданииНаСервере. Вставьте весь код одного урока на уровне модуля, сохраните свою EPF и откройте её в учебной базе.

  4. Поле связано с реквизитом УчебныйДокумент типа ТекстовыйДокумент. Объект документа содержит данные, элемент ПолеДокумента отвечает за отображение и пользовательские действия.

  5. Документ создаётся заново из собственных констант. Книга: 3 штуки по 250, сумма 750. Реальные документы, справочники, файлы, сертификаты и сетевые адреса не используются.

  6. Каждый урок запускайте в отдельной копии формы. Изменения текста и оформления живут в памяти открытой учебной формы; код не сохраняет документ в файл, не печатает и не пишет в базу.

  7. Размеры и ограничения элемента задаются на сервере создания формы. Кнопка выполняет клиентские проверки или явно описанное учебное изменение.

  8. Фактический вид и запуск в 1С не проверены. Настройки компоновки формы, масштаб интерфейса и версия клиента могут влиять на отображение; сверяйте его вручную.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ТекстовыйДокумент")));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Документ = Новый ТекстовыйДокумент;
    Документ.УстановитьТекст("Книга" + Символы.ПС + "Количество: 3" + Символы.ПС + "Сумма: 750");
    ЭтаФорма.УчебныйДокумент = Документ;
    Поле = Элементы.Добавить("ПолеДокумента", Тип("ПолеФормы"));
    Поле.Вид = ВидПоляФормы.ПолеТекстовогоДокумента;
    Поле.ПутьКДанным = "УчебныйДокумент";
    Поле.Вывод = ИспользованиеВывода.Запретить;

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить учебный документ";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры

&НаКлиенте
Процедура УчебноеДействие(Команда)
    Поле = Элементы.ПолеДокумента;
    Сообщить(Поле.Вывод = ИспользованиеВывода.Запретить);
    Сообщить(СтрНайти(УчебныйДокумент.ПолучитьТекст(), "Книга") > 0);
    Сообщить("Настройка вывода документа: " + Строка(УчебныйДокумент.Вывод));
    Сообщить("Настройка вывода поля: " + Строка(Поле.Вывод));
КонецПроцедуры

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

  1. Исходный документ создаётся с собственным текстом, без чтения файла.

  2. Присваивание Поле.Вывод меняет ограничение печати, сохранения и буфера для этого элемента интерфейса.

  3. УчебныйДокумент.Вывод не переписываем: справка допускает отличие его значения от свойства поля.

  4. Читаем обе настройки раздельно и проверяем, что текст Книга остался в документе.

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

  1. Ожидаются два Истина и две строки с текущими настройками вывода.

  2. Осмотрите доступность команд поля, ничего не сохраняя и не печатая. Не ожидайте автоматически запрет записи серверным кодом.

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

Отделены данные документа, настройки его представления и реальные права доступа.

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

  1. Ограничение интерфейса не защищает данные от произвольного серверного кода.

  2. Не назначайте полю имя файла с ожиданием, что это автоматически сохранит документ.

  3. Эта учебная настройка не заменяет роль, RLS или контроль доступа в конфигурации.

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

Открыть учебную памятку только для просмотра и отличить имя сохранения от файла

Клиентская команда показывает новую памятку, запрещает редактирование/вывод и отдельно проверяет, что назначение ИспользуемоеИмяФайла не создало файл.

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

Модуль пустой управляемой формы учебной внешней обработки; тонкий или толстый клиент Windows. Вставьте весь модуль. Это не серверный код.

Подготовка

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

  2. В свойстве команды Действие выберите процедуру УчебныйПример. Вставьте полный приведённый модуль формы.

  3. Откройте EPF в тонком или толстом клиенте Windows и нажмите кнопку. Не переносите Ждать и Асинх в серверный общий модуль.

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

&НаКлиенте
Процедура УчебныйПример(Команда)
    Документ = Новый ТекстовыйДокумент;
    Документ.УстановитьТекст("Учебная памятка" + Символы.ПС + "Книга: 3 × 250 = 750 руб.");
    Документ.ТолькоПросмотр = Истина;
    Документ.Вывод = ИспользованиеВывода.Запретить;
    ПредлагаемоеИмя = ПолучитьИмяВременногоФайла("txt");
    Документ.ИспользуемоеИмяФайла = ПредлагаемоеИмя;
    ФайлПроверки = Новый Файл(ПредлагаемоеИмя);
    Сообщить(Документ.ТолькоПросмотр);
    Сообщить(Документ.Вывод = ИспользованиеВывода.Запретить);
    Сообщить(Документ.ИспользуемоеИмяФайла = ПредлагаемоеИмя);
    Сообщить(Не ФайлПроверки.Существует());
    Документ.Показать("Учебная памятка — без записи на диск");
КонецПроцедуры

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

  1. Документ — локальная переменная команды, не реквизит формы. Для реквизита формы Показать вызвал бы исключение.

  2. ТолькоПросмотр ограничивает интерактивное редактирование. Вывод=Запретить задаёт ограничение печати, сохранения и работы с буфером обмена.

  3. ИспользуемоеИмяФайла — имя, которое используется при пользовательском сохранении. Само присваивание не вызывает Записать.

  4. Проверяем отсутствие по этому имени ДО Показать и открываем отдельное окно просмотра без второго аргумента имени файла.

  5. Закройте окно после визуальной проверки; в задаче нет программного сохранения или печати.

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

  1. Четыре сообщения Истина; окно содержит заголовок и итог 750 руб.

  2. Попытка редактировать текст не меняет содержимое; команды вывода ограничены согласно настройке.

  3. Проверка файла подтверждает отсутствие записи при присваивании имени, не поведение любых последующих пользовательских действий.

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

Открыта самостоятельная памятка с явно разделёнными режимом просмотра, политикой вывода и рекомендуемым именем.

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

  1. Ограничение Вывод не является криптографической защитой информации от снимков экрана или других каналов.

  2. ТолькоПросмотр не запрещает программное изменение объекта встроенным языком.

  3. Если разрешить вывод или изменить настройки, пользовательское сохранение — отдельное действие и может создать файл.

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

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

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

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

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