Отключить доступность элемента на форме. НЕУПРАВЛЯЕМЫЕ ФОРМЫ

1. Johney20 24.08.17 17:28 Сейчас в теме
Подскажите, как отключить доступность элемента на форме при определенном условии?
То есть, у меня на форму вытащен РегистрСведений "ПЛ_ПлановаяСтоимостьПервоначальный". И мне нужно, отключить доступность его поля "ДлинаЛинии", если в поле "Статья" выбран вид работы НЕ "СМР" !?


Для Каждого Стр Из ЭлементыФормы.ПЛ_ПлановаяСтоимостьПервоначальный.ТекущаяСтрока Цикл
			Если НЕ Стр.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
				Стр.ДлинаЛинии.Доступность = Ложь;
			КонецЕсли;
КонецЦикла;
По теме из базы знаний
Найденные решения
13. spacecraft 24.08.17 21:02 Сейчас в теме
(10) Вот еще вариант для обработчика табличного поля ПриПолученииДанных:

Процедура ПЛ_ПлановаяСтоимостьПервоначальный.ПриПолученииДанных(Элемент, ОформленияСтрок)
	Для Каждого Стр Из ОформленияСтрок Цикл
		Если Стр.ДанныеСтроки.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
			Стр.Ячейки.ДлинаЛинии.ТолькоПросмотр = Ложь;
		Иначе
			Стр.Ячейки.ДлинаЛинии.ТолькоПросмотр = Истина;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры
Показать


Обработчик только необходимо подключить.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Denis_CFO 49 24.08.17 17:35 Сейчас в теме
(1)
Стр.ДлинаЛинии.ТолькоПросмотр = Истина;
3. Johney20 24.08.17 17:59 Сейчас в теме
(2) Тоже не работает, в принципе логично, смысл то один в коде, что у меня, что у Вас.
4. Denis_CFO 49 24.08.17 18:00 Сейчас в теме
(3) а в "если" то заходит?
6. Johney20 24.08.17 18:09 Сейчас в теме
(4) Да, заходит, но с ошибкой: "Значение не является значением объектного типа ТолькоПросмотр"
8. Johney20 24.08.17 18:13 Сейчас в теме
(4) Я вот как сделала:
	Если НЕ ЭлементыФормы.ПЛ_ПлановаяСтоимостьСкорректированный.ТекущиеДанные.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
		ЭлементыФормы.ПЛ_ПлановаяСтоимостьСкорректированный.ТекущиеДанные.ДлинаЛинии.ТолькоПросмотр = Истина;
	КонецЕсли;
5. Denis_CFO 49 24.08.17 18:00 Сейчас в теме
ДлинаЛинии - тип какой?
7. Johney20 24.08.17 18:09 Сейчас в теме
15. Johney20 25.08.17 09:57 Сейчас в теме
(5) Денис, может Вы подскажете?
16. Denis_CFO 49 25.08.17 09:59 Сейчас в теме
(15)
ЭлементыФормы.ПЛ_ПлановаяСтоимостьСкорректированный.ТекущиеДанные.ДлинаЛинии.ТолькоПросмотр = Истина;
потому что нет у неё такого Свойства.
19. Johney20 25.08.17 10:03 Сейчас в теме
(16) Вообще есть и "ТолькоПросмотр" и "Доступность".
17. Denis_CFO 49 25.08.17 10:00 Сейчас в теме
(15) сделай, как в (13) сказали.
20. Johney20 25.08.17 10:04 Сейчас в теме
(17) Я не совсем понимаю, что это за процедура и какой ("Обработчик только необходимо подключить. " ) обработчик нужно подключать
21. Denis_CFO 49 25.08.17 10:06 Сейчас в теме
(20) Форма - Табличная часть - ПКМ - Палитра свойств - События - ПриПолученииДанных.
24. Johney20 25.08.17 11:16 Сейчас в теме
(21) Спасибо большое за помощь!
22. spacecraft 25.08.17 11:11 Сейчас в теме
(20)
Прикрепленные файлы:
9. spacecraft 24.08.17 18:20 Сейчас в теме
хмм. Тут нужно использовать обработчики таблицы ПриВыводеСтроки, или ПриПолученииДанных. В данном случае вполне подходит ПриВыводеСтроки.
Процедура ИмяТабличногоПоляПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
	Если ДанныеСтроки.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
		ОформлениеСтроки.Ячейки.ДлинаЛинии.ТолькоПросмотр = Истина;
	КонецЕсли;
КонецПроцедуры
10. Johney20 24.08.17 19:27 Сейчас в теме
13. spacecraft 24.08.17 21:02 Сейчас в теме
(10) Вот еще вариант для обработчика табличного поля ПриПолученииДанных:

Процедура ПЛ_ПлановаяСтоимостьПервоначальный.ПриПолученииДанных(Элемент, ОформленияСтрок)
	Для Каждого Стр Из ОформленияСтрок Цикл
		Если Стр.ДанныеСтроки.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
			Стр.Ячейки.ДлинаЛинии.ТолькоПросмотр = Ложь;
		Иначе
			Стр.Ячейки.ДлинаЛинии.ТолькоПросмотр = Истина;
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры
Показать


Обработчик только необходимо подключить.
14. Johney20 25.08.17 09:52 Сейчас в теме
(13) Скажите, а в чем проблема такого кода?

Если НЕ ЭлементыФормы.ПЛ_ПлановаяСтоимостьСкорректированный.ТекущиеДанные.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
		ЭлементыФормы.ПЛ_ПлановаяСтоимостьСкорректированный.ТекущиеДанные.ДлинаЛинии.ТолькоПросмотр = Истина;
КонецЕсли;


Ругается на "ТолькоПросмотр". Ошибка: Значение не является значением объектного типа (ТолькоПросмотр)
18. karpik666 3797 25.08.17 10:03 Сейчас в теме
(14) вы пытаетесь установить "ТолькоПросмотр" реквизиту регистра сведений, а у него нет такого значения, в этом коде вы не работаете с самой формой, а обращаетесь к базе данных, при этом нельзя использовать текущиеДанные, так как они могут принимать значение "Неопределено", а у вас нет проверки и будет выдавать ошибку.
Правильно все в (13) написали. Надеюсь, это тестовое задание
23. Johney20 25.08.17 11:16 Сейчас в теме
(13) Спасибо большое! Получилось!
11. Johney20 24.08.17 19:29 Сейчас в теме
(9) Оу, а что это за процедура такая? не нашла подобной
12. spacecraft 24.08.17 20:49 Сейчас в теме
(11) регистр сведений на форму куда вынесен? Табличное поле? Вот это стандартный обработчик этого табличного поля. Даже имя есть у этого поля: ПЛ_ПлановаяСтоимостьПервоначальный
Оставьте свое сообщение

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