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