Есть форма в которой есть Компоновщик настроек компоновки данных .На форму выведен отбор настроек. Из макета скд получается несколько отборов.
Как сделать так что бы при выводе на форму, одна строка в отборе с определенном левым значением была с доступностью=Ложь, а остальные возможно редактировать.
Интересует именно программное изменение доступности. Макет трогать не желательно.
Заранее спасибо
---
Можно программно. Только придётся сделать небольшую хитрость – создать реквизит формы с типом "Произвольный" и присвоить ему левое значение отбора, который хотим заблокировать:
```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    ОтборЗаблокировать = Новый ПолеКомпоновкиДанных("Оклад");

    ЭлементУО = УсловноеОформление.Элементы.Добавить();

    ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("КомпоновщикНастроекНастройкиОтбор");

    ЭлементОтбора = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.КомпоновщикНастроек.Настройки.Отбор.ЛевоеЗначение");
    ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ОтборЗаблокировать");

    ЭлементУО.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);

    КонецПроцедуры
```
---
т.к. это элемент таблицы значений, то отслеживать события типа ПриИзменении, сохранять значения в событии ПередНачаломИзменения,, анализировать значение реквизита, и если нужен запрет, что-то типа Отказ=Истина, и восстановление значения
Или полный запрет на редактирование, в событии при АктивизацииСтроки (Поля, Ячейки) - анализ и выкл/вкл свойства ТолькоПросмотр
---
т.к. это элемент таблицы значений, то отслеживать события типа ПриИзменении, сохранять значения в событии ПередНачаломИзменения,, анализировать значение реквизита, и если нужен запрет, что-то типа Отказ=Истина, и восстановление значения
Или полный запрет на редактирование, в событии при АктивизацииСтроки (Поля, Ячейки) - анализ и выкл/вкл свойства ТолькоПросмотр
---
В теории, можно попробовать условное оформление.
---
кстати да, есть параметр ТолькоПросмотр в УО
---
в УО нет возможности отобрать колонку Праавого или левого значения. Только весь отбор в целом.
---
представление есть
---
Можно программно. Только придётся сделать небольшую хитрость – создать реквизит формы с типом "Произвольный" и присвоить ему левое значение отбора, который хотим заблокировать:
```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    ОтборЗаблокировать = Новый ПолеКомпоновкиДанных("Оклад");

    ЭлементУО = УсловноеОформление.Элементы.Добавить();

    ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("КомпоновщикНастроекНастройкиОтбор");

    ЭлементОтбора = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.КомпоновщикНастроек.Настройки.Отбор.ЛевоеЗначение");
    ЭлементОтбора.ПравоеЗначение = Новый ПолеКомпоновкиДанных("ОтборЗаблокировать");

    ЭлементУО.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);

    КонецПроцедуры
```
---
еще вариант: установить представление, не скажу как это сделать программно, но в интерактивном режиме нет возможности редактирования, но и нет видимости правого значения