Форма.ТолькоПросмотр

Свойства · ReadOnly

Тип: Булево. Содержит признак использования формы в режиме просмотра. Если свойство установлено в Истина, то становятся не доступны для изменения все дочерние элементы вне зависимости от значения их свойств ТолькоПросмотр.

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

Форма.ТолькоПросмотр (Form.ReadOnly)

Форма (Form)

ТолькоПросмотр (ReadOnly)

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

Использование:
Чтение и запись.
Описание:
Тип: Булево.
Содержит признак использования формы в режиме просмотра. Если свойство установлено в Истина, то становятся не доступны для изменения все дочерние элементы вне зависимости от значения их свойств ТолькоПросмотр.
Доступность:

Толстый клиент.

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

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

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

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

Открыть только просмотр нового узла в обычном клиенте

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

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

Обработчик команды обычной внешней обработки, толстый клиент в режиме Обычное приложение. Фрагмент вставляется в тело клиентского обработчика, не в серверный общий модуль и не в управляемую форму.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

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

  6. В отдельной пустой конфигурации Учебная85 создайте Планы обмена → УчебныйОбмен: длина кода 9, тип Строка, наименование длиной 100. Распределённая информационная база выключена; состав плана пустой.

  7. Добавьте реквизит АдресУчебногоУзла: Строка длиной 100, Проверка заполнения = Показывать ошибку. Модуль объекта и подписки должны быть пустыми; не добавляйте отправку сообщений или внешние действия.

  8. Добавьте макет УчебнаяПамятка типа Текстовый документ, одна строка: Этот узел используется только для учебных примеров. История данных для плана не включена. Обновите конфигурацию базы данных.

  9. Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи. УчебныйОбмен не является существующим рабочим обменом КА2 или УТ.

  10. Узел каждый раз новый и периферийный. Существующие узлы и текущий узел базы не меняются. Запись, блокировка и удаление далее выполняются только над своим новым UUID в собственной отменяемой транзакции.

  11. Для этого отдельного GUI-урока используйте толстый клиент в режиме Обычное приложение. Серверный общий модуль из других уроков здесь не подходит.

  12. Конфигуратор → Планы обмена → УчебныйОбмен → Формы: добавьте именно обычную форму объекта УчебнаяФормаУзла с основным реквизитом объекта. Добавьте поле Наименование, связанное с основным реквизитом. Кнопки Записать, ОК и Удалить в этой учебной форме не добавляйте; модуль формы пустой.

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

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

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

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

  2. ПолучитьФорму принимает точное имя своей обычной формы и отдельный ключ уникальности, чтобы не переиспользовать чужое окно.

  3. Результат проверяется на Неопределено до обращения к форме.

  4. ТолькоПросмотр и отсутствие команд записи ограничивают редактирование именно этой учебной формы, не права всей ИБ.

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

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

  1. Четыре сообщения Истина.

  2. В обычном толстом клиенте видно собственное имя и заголовок, поле недоступно для редактирования. Эта визуальная проверка выполняется отдельно в учебной базе.

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

Получена и открыта своя обычная форма нового узла без сохранения.

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

  1. В управляемой форме используется другой API; этот фрагмент нельзя туда вставлять без переработки.

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

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

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

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

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

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