Регулирование доступности реквизитов после нажатия кнопки Отменить

8 1

Последнее время часто встречаются ситуации, когда доступность реквизитов (назовем Реквизит 1) на карточке зависит от значений других реквизитов (назовем Реквизит 2). В этом случае в вычислении Реквизита 2 мы регулируем доступность Реквизита 1. Но возникает проблема, что при нажатии кнопки Отменить значение Реквизита 2 изменяется, а вычисления на реквизите не отрабатывают, и как следствие, доступность Реквизита 1 никак не меняется.  Когда я столкнулась с такой проблемой, то решение мне подсказали мои коллеги, за что им огромное спасибо.

 Для решения этой проблемы предлагается следующее:

  1. В свойстве Доступность стандартной кнопки Отменить устанавливаем Недоступно (чтобы при проходе по Tab стандартная кнопка игнорировалась).
  2. Добавляем свою кнопку Отменить.
  3. На форме карточки располагаем свою кнопку поверх стандартной кнопки Отменить.
  4. В свойстве Доступность своей кнопки устанавливаем Доступно при редактировании.
  5. В вычислении своей кнопки вначале выполняем действие стандартной кнопки Отменить и затем регулируем доступность нужных нам реквизитов.

Пример:

 
  // Выполнить действие стандартной кнопки Отменить
  Form = Object.ActiveForm
  Action = Form.Actions.FindAction('CancelAction')
  Action.Enabled = TRUE
  Action.Execute
  Action.Enabled = FALSE
  // Регулировать доступность реквизитов
  …

Для обычного пользователя, работающего с карточкой справочника, такая подмена кнопок совсем незаметна.

Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий