Открыть форму только для просмотра кроме одного элемента.

1. tatoshka0403 112 28.03.16 10:58 Сейчас в теме
Выполняю на сервере. Сделал вот так:
Для каждого Элемент из ЭтаФорма.Элементы Цикл
	Элемент.Доступность=Ложь
КонецЦикла;
ЭтаФорма.Элементы.УдПричина.Доступность=Истина;

Выдает ошибку: Данное свойство недоступно для декорации, используемой как расширенная подсказка
А вот так не хочет работать:
ЭтаФорма.ТолькоПросмотр=Истина;
ЭтаФорма.Элементы.УдПричина.Доступность=Истина;

Можно ли это реализовать на сервере или надо на клиенте?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dj_serega 392 28.03.16 11:12 Сейчас в теме
(1) tatoshka0403, В цикле сделайте проверку на тип "Элемент". Исключите тип элемента на который ругается.
5. tatoshka0403 112 28.03.16 11:17 Сейчас в теме
(2) dj_serega, а как красивей сделать проверку вот на это?
Свойство Значение Тип
Элемент.Доступность {(1)}: Ошибка при получении значения атрибута контекста (Доступность)
7. dj_serega 392 28.03.16 11:20 Сейчас в теме
(5) tatoshka0403,
На пальцах так:
Если ТипЗнч(Элемент) = Тип("ЭлементФормыДекорация") Тогда
Продолжить;
КонецЕсли;

Только тип элемента-ругани посмотрите в отладчике.
Gendelf; dinamik; k_vasil; tatoshka0403; +4 Ответить
11. user970589 10 21.04.22 08:35 Сейчас в теме
(2)
"Элемент". И

можно просто попыткой сделать - который не сможет, тот не тронет. что так - проверять, что попыткой - на скорости думаю разницы большой не выйдет. а результат гарантирован - лишнее не пройдет, хотя понимаю, что инструмент попытка это как костыль ))
3. alljoke 28.03.16 11:14 Сейчас в теме
А вот так не хочет работать:
ЭтаФорма.ТолькоПросмотр=Истина;
ЭтаФорма.Элементы.УдПричина.Доступность=Истина;

А почему?
4. tatoshka0403 112 28.03.16 11:15 Сейчас в теме
(3) alljoke, всю форму только для просмотра открывает
ЭтаФорма.Элементы.УдПричина.Доступность=Истина; на это не реагирует
6. alljoke 28.03.16 11:18 Сейчас в теме
Смотрите в отладчике, что у вас Элемент.
Вроде как то можно Найти() свойство элемента. Если его нет, то не првоерять.
8. Glebis 13 28.03.16 13:24 Сейчас в теме
Как ещё один вариант: На сколько я знаю если всей форме поставить ТолькоПросмотр= Истина, то будут заблокированы все элементы, данные которых привязаны к метаданным конфигурации. Если добавить реквизит формы и вынести его элемент, то не смотря на ТолькоПросмотр всей формы вынесенный элемент сможет редактироваться.
А ещё лучше сделать одну невидимую группу, туда закинуть все элементы формы, сделать её ТолькоПросмотр, а потом отдельный элемент разблокировать.
9. k_vasil 28.03.16 14:35 Сейчас в теме
Или, еще как вариант, сделать кнопку на панельке, для программного изменения этого элемента.
dj_serega; +1 Ответить
10. dj_serega 392 28.03.16 14:50 Сейчас в теме
(9) k_vasil, Только не забыть снять флаг "Изменяет сохраняемые данные" (или не ставить).
12. VZyryanov 21.04.22 10:45 Сейчас в теме
&НаСервере
Процедура УстановитьДоступностьСервер()
	Для каждого Эл Из Элементы Цикл
		Если ТипЗнч(Эл)=Тип("ГруппаФормы") Тогда
			Продолжить;
		КонецЕсли;
		ЭтоТаблица=Ложь;
		Р=Эл.Родитель;
		Пока ТипЗнч(Р)<>Тип("УправляемаяФорма") Цикл
			Если ТипЗнч(Р)=Тип("ТаблицаФормы") Тогда
				ЭтоТаблица=Истина;
			    Прервать;
			КонецЕсли;
			Р=Р.Родитель;
		КонецЦикла;
		Если ЭтоТаблица Тогда
			Продолжить;
		КонецЕсли;		 
		Попытка
			Если СписокТолькоПросмотр.НайтиПоЗначению(Эл.Имя)=Неопределено Тогда;
				Эл.ТолькоПросмотр=Не МожноРедактировать;
			КонецЕсли;
		Исключение
		КонецПопытки;
	КонецЦикла;	
	Если МожноРедактироватьПереводЦены Тогда
		Элементы.ПереводЦены.Доступность=Истина;
		Элементы.ПереводЦены.ТолькоПросмотр=Ложь;
		Элементы.ПереводДни.ТолькоПросмотр=Ложь;
		Элементы.ПереводДниРабочие.ТолькоПросмотр=Ложь;
		Элементы.ПереводДата.ТолькоПросмотр=Ложь;
		Элементы.ПереводОснование.ТолькоПросмотр=Ложь;
		Элементы.ПереводВыполнен.ТолькоПросмотр=Ложь;
		Элементы.ПереводВыполненОснование.ТолькоПросмотр=Ложь;
	КонецЕсли;
	Попытка
		ЭтаФорма.КоманднаяПанель.ПодчиненныеЭлементы.ФормаПровестиИЗакрыть.Доступность=МожноРедактировать ИЛИ МожноРедактироватьПереводЦены;
	Исключение
	КонецПопытки;
	Попытка
		ЭтаФорма.КоманднаяПанель.ПодчиненныеЭлементы.ФормаПроведение.ПодчиненныеЭлементы.ФормаПровести.Доступность=МожноРедактировать ИЛИ МожноРедактироватьПереводЦены;
	Исключение
	КонецПопытки;
	Попытка
		ЭтаФорма.КоманднаяПанель.ПодчиненныеЭлементы.ФормаУстановитьПометкуУдаления.Доступность=МожноРедактировать;
	Исключение
	КонецПопытки;
КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот