#std399¶
Запрет редактирования полей таблицы по условию¶
Если ввод значения в поле таблицы не имеет смысла (или невозможен) до заполнения других полей, используйте предупреждение при редактировании.
Рекомендуется:
- для предупреждения использовать свойства поля
ОтображениеПредупрежденияПриРедактированиииПредупреждениеПриРедактировании; - текст предупреждения задавать в свойстве поля формы при разработке в конфигураторе;
- управлять свойством
ОтображениеПредупрежденияПриРедактированиииз кода при активизации строки и при изменении значений, влияющих на условие редактирования; - сохранять пользователю возможность изменить или очистить уже введенное значение, даже если оно было введено «не по правилам».
Например, в таблице формы Затраты
поля СтатьяЗатрат и АналитикаСтатьиЗатрат:
поле АналитикаСтатьиЗатрат не имеет смысла без заполнения СтатьяЗатрат.
Пример
&НаКлиенте
Процедура УстановитьПредупреждениеПриРедактировании()
ТребуетсяПредупреждение =
Не ЗначениеЗаполнено(Элементы.Затраты.ТекущиеДанные.СтатьяЗатрат)
И Не ЗначениеЗаполнено(Элементы.Затраты.ТекущиеДанные.АналитикаСтатьиЗатрат);
Элементы.ЗатратыАналитикаСтатьиЗатрат.ОтображениеПредупрежденияПриРедактировании = ?(
ТребуетсяПредупреждение,
ОтображениеПредупрежденияПриРедактировании.Отображать,
ОтображениеПредупрежденияПриРедактировании.НеОтображать);
КонецПроцедуры
&НаКлиенте
Процедура ЗатратыПриАктивизацииСтроки(Элемент)
УстановитьПредупреждениеПриРедактировании();
КонецПроцедуры
&НаКлиенте
Процедура ЗатратыСтатьяЗатратПриИзменении(Элемент)
УстановитьПредупреждениеПриРедактировании();
КонецПроцедуры
&НаКлиенте
Процедура ЗатратыАналитикаСтатьиЗатратПриИзменении(Элемент)
УстановитьПредупреждениеПриРедактировании();
КонецПроцедуры
Если по условиям меняется не только факт показа предупреждения,
но и текст предупреждения,
управляйте из кода не только свойством
ОтображениеПредупрежденияПриРедактировании,
но и свойством ПредупреждениеПриРедактировании.