Тип: Булево. Содержит признак использования формы в режиме просмотра. Если свойство установлено в Истина, то становятся не доступны для изменения все дочерние элементы вне зависимости от значения их свойств ТолькоПросмотр.
Полное описание, параметры и ограничения
Форма.ТолькоПросмотр (Form.ReadOnly)
Форма (Form)
ТолькоПросмотр (ReadOnly)
Доступен, начиная с версии 8.0.
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Содержит признак использования формы в режиме просмотра. Если свойство установлено в Истина, то становятся не доступны для изменения все дочерние элементы вне зависимости от значения их свойств ТолькоПросмотр.
Доступность:
Толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Открыть только просмотр нового узла в обычном клиенте
Пример предназначен для толстой обычной формы, не для управляемой формы. Открываем собственный новый узел без записи и запрещаем редактирование в окне.
Где и как запускать
Обработчик команды обычной внешней обработки, толстый клиент в режиме Обычное приложение. Фрагмент вставляется в тело клиентского обработчика, не в серверный общий модуль и не в управляемую форму.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
В отдельной пустой конфигурации Учебная85 создайте Планы обмена → УчебныйОбмен: длина кода 9, тип Строка, наименование длиной 100. Распределённая информационная база выключена; состав плана пустой.
Добавьте реквизит АдресУчебногоУзла: Строка длиной 100, Проверка заполнения = Показывать ошибку. Модуль объекта и подписки должны быть пустыми; не добавляйте отправку сообщений или внешние действия.
Добавьте макет УчебнаяПамятка типа Текстовый документ, одна строка: Этот узел используется только для учебных примеров. История данных для плана не включена. Обновите конфигурацию базы данных.
Каждый фрагмент запускайте отдельно на сервере в ВыполнитьПример() Экспорт общего модуля УчебныеЗадачи. УчебныйОбмен не является существующим рабочим обменом КА2 или УТ.
Узел каждый раз новый и периферийный. Существующие узлы и текущий узел базы не меняются. Запись, блокировка и удаление далее выполняются только над своим новым UUID в собственной отменяемой транзакции.
Для этого отдельного GUI-урока используйте толстый клиент в режиме Обычное приложение. Серверный общий модуль из других уроков здесь не подходит.
Конфигуратор → Планы обмена → УчебныйОбмен → Формы: добавьте именно обычную форму объекта УчебнаяФормаУзла с основным реквизитом объекта. Добавьте поле Наименование, связанное с основным реквизитом. Кнопки Записать, ОК и Удалить в этой учебной форме не добавляйте; модуль формы пустой.
Фрагмент поместите в обработчик собственной команды обычной внешней обработки. Не смешивайте его с управляемым клиентским модулем. После запуска осмотрите окно и закройте его штатным крестиком, без записи.
Если Метаданные.ПланыОбмена.Найти("УчебныйОбмен") = Неопределено Тогда
ВызватьИсключение "Сначала создайте собственный учебный план обмена";
КонецЕсли;
Узел = ПланыОбмена.УчебныйОбмен.СоздатьУзел();
Если Узел.ЭтотУзел Тогда
ВызватьИсключение "Нельзя изменять текущий узел информационной базы";
КонецЕсли;
Узел.Наименование = "Просмотр собственного черновика";
Форма = Узел.ПолучитьФорму("УчебнаяФормаУзла", , Новый УникальныйИдентификатор);
Если Форма = Неопределено Тогда
ВызватьИсключение "Не найдена подготовленная обычная форма узла";
КонецЕсли;
Форма.Заголовок = "Учебный узел: только просмотр";
Форма.ТолькоПросмотр = Истина;
Форма.Открыть();
Сообщить(Форма.Открыта());
Сообщить(Форма.ТолькоПросмотр);
Сообщить(Узел.ЭтоНовый());
Сообщить(Узел.Ссылка.Пустая());Разбор по шагам
Создаём только свой новый периферийный узел и задаём учебное имя.
ПолучитьФорму принимает точное имя своей обычной формы и отдельный ключ уникальности, чтобы не переиспользовать чужое окно.
Результат проверяется на Неопределено до обращения к форме.
ТолькоПросмотр и отсутствие команд записи ограничивают редактирование именно этой учебной формы, не права всей ИБ.
Открыть показывает окно. Новый статус и пустая ссылка доказывают, что пример не записал узел.
Как проверить результат
Четыре сообщения Истина.
В обычном толстом клиенте видно собственное имя и заголовок, поле недоступно для редактирования. Эта визуальная проверка выполняется отдельно в учебной базе.
Ожидаемый результат
Получена и открыта своя обычная форма нового узла без сохранения.
На что обратить внимание
В управляемой форме используется другой API; этот фрагмент нельзя туда вставлять без переработки.
ТолькоПросмотр не является серверным разграничением доступа или защитой рабочей базы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.