Всем привет! Есть в коде такая запись ЭтаФорма.ТолькоПросмотр=Истина; Надо чтобы все это работало за исключением 1 поля. Как это можно сделать? Спасибо.
Для каждого Элемент Из ЭтаФорма.Элементы цикл
Имя_ = ВРЕГ(Элемент.Имя);
Если имя_ = "ИМЯТОГОСАМОГОПОЛЯ" тогда
Продолжить;
КонецЕсли;
Если ТипЗнч(Элемент)=ТИП("ДекорацияФормы") тогда
Продолжить;
КонецЕсли;
Элемент.ТолькоПросмотр = ИСТИНА;
КонецЦикла;
(4)Можно проще: обратится к нужному элементу по его имени и установить именно для него режим ТолькоПросмотр после того, как установлен режим для формы.
(10) Не сработает. Если Для формы установлен режим ТолькоПросмотр = Истина и реквизит связан с данными, то что ни делайте с элементом, редактировать его не получится.
Для Каждого Элемент Из Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ПолеФормы") ИЛИ ТипЗнч(Элемент) = Тип("ТаблицаФормы") Тогда
Элемент.ТолькоПросмотр = Истина;
ИначеЕсли ТипЗнч(Элемент) = Тип("КнопкаФормы") И Элемент.Вид <> ВидКнопкиФормы.КнопкаКоманднойПанели Тогда
Элемент.Доступность = Ложь;
КонецЕсли;
КонецЦикла;
Элементы.МойОсобыйЭлемент.ТолькоПросмотр = Ложь;
в макете два поля заводим одно поле элементов а второе видимость или доступность в истина или ложь потом просто циклом обходим и присылаем это значение этому элементу из макета
"Только просмотр" установленный форме срабатывает только для реквизитов которые "ИЗМЕНЯЮТ" данные.
Уберите реквизиту галку "Сохраняемые данные"/"ИзменяетДанные".