#std399

Запрет редактирования полей таблицы по условию

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

Рекомендуется:

  • для предупреждения использовать свойства поля ОтображениеПредупрежденияПриРедактировании и ПредупреждениеПриРедактировании;
  • текст предупреждения задавать в свойстве поля формы при разработке в конфигураторе;
  • управлять свойством ОтображениеПредупрежденияПриРедактировании из кода при активизации строки и при изменении значений, влияющих на условие редактирования;
  • сохранять пользователю возможность изменить или очистить уже введенное значение, даже если оно было введено «не по правилам».

Например, в таблице формы Затраты поля СтатьяЗатрат и АналитикаСтатьиЗатрат: поле АналитикаСтатьиЗатрат не имеет смысла без заполнения СтатьяЗатрат.

Пример

&НаКлиенте
Процедура УстановитьПредупреждениеПриРедактировании()

    ТребуетсяПредупреждение =
        Не ЗначениеЗаполнено(Элементы.Затраты.ТекущиеДанные.СтатьяЗатрат)
        И Не ЗначениеЗаполнено(Элементы.Затраты.ТекущиеДанные.АналитикаСтатьиЗатрат);

    Элементы.ЗатратыАналитикаСтатьиЗатрат.ОтображениеПредупрежденияПриРедактировании = ?(
        ТребуетсяПредупреждение,
        ОтображениеПредупрежденияПриРедактировании.Отображать,
        ОтображениеПредупрежденияПриРедактировании.НеОтображать);

КонецПроцедуры

&НаКлиенте
Процедура ЗатратыПриАктивизацииСтроки(Элемент)
    УстановитьПредупреждениеПриРедактировании();
КонецПроцедуры

&НаКлиенте
Процедура ЗатратыСтатьяЗатратПриИзменении(Элемент)
    УстановитьПредупреждениеПриРедактировании();
КонецПроцедуры

&НаКлиенте
Процедура ЗатратыАналитикаСтатьиЗатратПриИзменении(Элемент)
    УстановитьПредупреждениеПриРедактировании();
КонецПроцедуры

Если по условиям меняется не только факт показа предупреждения, но и текст предупреждения, управляйте из кода не только свойством ОтображениеПредупрежденияПриРедактировании, но и свойством ПредупреждениеПриРедактировании.

Источник

https://its.1c.ru/db/v8std#content:399