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

```1c
    Для Каждого Стр Из ЭлементыФормы.ПЛ_ПлановаяСтоимостьПервоначальный.ТекущаяСтрока Цикл
    Если НЕ Стр.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
    Стр.ДлинаЛинии.Доступность = Ложь;
    КонецЕсли;
    КонецЦикла;
```
---
Вот еще вариант для обработчика табличного поля ПриПолученииДанных:

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

Обработчик только необходимо подключить.
---
Стр.ДлинаЛинии.ТолькоПросмотр = Истина;
---
Тоже не работает, в принципе логично, смысл то один в коде, что у меня, что у Вас.
---
а в "если" то заходит?
---
Да, заходит, но с ошибкой: "Значение не является значением объектного типа ТолькоПросмотр"
---
Я вот как сделала:

```1c
    Если НЕ ЭлементыФормы.ПЛ_ПлановаяСтоимостьСкорректированный.ТекущиеДанные.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
    ЭлементыФормы.ПЛ_ПлановаяСтоимостьСкорректированный.ТекущиеДанные.ДлинаЛинии.ТолькоПросмотр = Истина;
    КонецЕсли;
```
---
ДлинаЛинии - тип какой?
---
Количество (10,3)
---
Денис, может Вы подскажете?
---
ЭлементыФормы.ПЛ_ПлановаяСтоимостьСкорректированный.ТекущиеДанные.ДлинаЛинии.ТолькоПросмотр = Истина; потому что нет у неё такого Свойства.
---
Вообще есть и "ТолькоПросмотр" и "Доступность".
---
сделай, как в (13) сказали.
---
Я не совсем понимаю, что это за процедура и какой ("Обработчик только необходимо подключить. " ) обработчик нужно подключать
---
Форма - Табличная часть - ПКМ - Палитра свойств - События - ПриПолученииДанных.
---
Спасибо большое за помощь!
---
хмм. Тут нужно использовать обработчики таблицы ПриВыводеСтроки, или ПриПолученииДанных. В данном случае вполне подходит ПриВыводеСтроки.

```1c
    Процедура ИмяТабличногоПоляПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ДанныеСтроки.Статья = Перечисления.ПЛ_СтатьиИнвестпрограммы.СМР Тогда
    ОформлениеСтроки.Ячейки.ДлинаЛинии.ТолькоПросмотр = Истина;
    КонецЕсли;
    КонецПроцедуры
```
---
Сейчас попробую
---
Вот еще вариант для обработчика табличного поля ПриПолученииДанных:

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

Обработчик только необходимо подключить.
---
Скажите, а в чем проблема такого кода?

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

Ругается на "ТолькоПросмотр". Ошибка: Значение не является значением объектного типа (ТолькоПросмотр)
---
вы пытаетесь установить "ТолькоПросмотр" реквизиту регистра сведений, а у него нет такого значения, в этом коде вы не работаете с самой формой, а обращаетесь к базе данных, при этом нельзя использовать текущиеДанные, так как они могут принимать значение "Неопределено", а у вас нет проверки и будет выдавать ошибку.
Правильно все в (13) написали. Надеюсь, это тестовое задание
---
Спасибо большое! Получилось!
---
Оу, а что это за процедура такая? не нашла подобной
---
регистр сведений на форму куда вынесен? Табличное поле? Вот это стандартный обработчик этого табличного поля. Даже имя есть у этого поля: ПЛ_ПлановаяСтоимостьПервоначальный