Добрый день , подскажите как реализовать запрет на редактирование программно добавленных строк в таб часть документа
к примеру при продаже в документе расходная накладная если добавлена номенклатура стеллаж(состоящая из комплектующих ) то программно необходимо отобразить весь список комплектующих и установить на эти строки запрет на редактирование

```1c
    &НаСервере
    Функция ДобавитьЭлементы(Наименование)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Комплектация.Товар КАК Товар,
    | Комплектация.Материал КАК Материал,
    | Комплектация.Количество КАК Количество
    |ИЗ
    | РегистрСведений.Комплектация КАК Комплектация
    |ГДЕ
    | Комплектация.Товар = &стеллаж";

    Запрос.УстановитьПараметр("стеллаж", Наименование);

    ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    номеклатуры = Объект.СписокНоменклатуры.Добавить();
    номеклатуры.Номенклатура = ВыборкаДетальныеЗаписи.Материал;
    номеклатуры.цена = Серверный.СредняяПоСкладу(ВыборкаДетальныеЗаписи.Материал, Объект.Склад);
    номеклатуры.количество = ВыборкаДетальныеЗаписи.Количество;
    номеклатуры.Сумма = номеклатуры.количество * номеклатуры.цена;

    КонецЦикла;

    Объект.СуммаПоДокументу = Объект.СписокНоменклатуры.Итог("Сумма");

    КонецФункции
```
---
ну система должна знать какое поле добавлено программно, а какое нет. Значит нужен какой-то служебный реквизит добавить в таблицу на форме
---
решил проблему , добавил в таб знач поле реквизит скрытое и настроил условное отображение у формы в зависимости от значения поля
---
Условное оформление в помощь.
---
условное оформление доступно на стороне клиента, а добавление происходит на стороне сервера
---
ой ли? то есть на сервере в контексте формы нельзя установить условное оформление программно?
---
нужно серверу ограничить доступность? O_o
---
Да, если есть возможность привести пример ?

добавление происходит в цикле

```1c
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    номеклатуры = Объект.СписокНоменклатуры.Добавить();
    номеклатуры.Номенклатура = ВыборкаДетальныеЗаписи.Материал;
    номеклатуры.цена = Серверный.СредняяПоСкладу(ВыборкаДетальныеЗаписи.Материал, Объект.Склад);
    номеклатуры.количество = ВыборкаДетальныеЗаписи.Количество;
    номеклатуры.Сумма = номеклатуры.количество * номеклатуры.цена;

    КонецЦикла;
```

как установить параметр только чтение добавленным строкам??
---
Для начало нужно узнать по какому значению в строке определить, что строка должна быть заблокирована.
Программное добавление условного оформления выглядит так:

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

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

    ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Статус");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ОтборЭлемента.ПравоеЗначение = 0;
    Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
```
---
необходимо все добавляемые поля программно устанавливать только просмотр
---
ну система должна знать какое поле добавлено программно, а какое нет. Значит нужен какой-то служебный реквизит добавить в таблицу на форме
---
решил проблему , добавил в таб знач поле реквизит скрытое и настроил условное отображение у формы в зависимости от значения поля