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