При разработке интерфейсов в режиме обычных форм (толстый клиент) разработчики часто сталкиваются с неожиданным поведением: если снять флаг Доступность в палитре свойств элемента управления, по нему становится невозможно кликнуть мышью непосредственно на макете формы для повторного редактирования или перемещения. Разберем причины такого поведения платформы 1С:Предприятие, выясним, как выделить заблокированный элемент, и рассмотрим лучшие практики управления доступностью полей.
Проанализируем техническую сторону вопроса. Визуальный редактор обычных форм платформы 1С:Предприятие 8 построен по принципу прямого отображения элементов операционной системы (интерфейс Win32 / WYSIWYG):
Доступность в значение Ложь визуальному окну элемента присваивается статус WS_DISABLED. В результате операционная система перестает передавать события щелчков мыши данному окну, из-за чего среда разработки Конфигуратора не может перехватить прямой клик по элементу.Если элемент уже заблокирован и по нему не удается нажать мышью, воспользуемся одним из следующих способов навигации в Конфигураторе:
Tab (для перемещения вперед) или сочетание Shift + Tab (для перемещения назад). Фокус последовательно перейдет на заблокированный элемент.Ctrl.Рассмотрим, как избежать неудобств при визуальной разработке и сделать интерфейс более комфортным для пользователя.
Вариант 1. Использование свойства «ТолькоПросмотр»
Если необходимо запретить редактирование значения пользователем, но сохранить возможность копирования текста или перехода по ссылке (кнопка открытия в поле ввода), установим свойство ТолькоПросмотр (флаг Истина), оставив свойство Доступность включенным. В этом случае элемент останется интерактивным в редакторе Конфигуратора.
Вариант 2. Программное отключение доступности в модуле формы
В дизайнере формы оставим свойство Доступность включенным (значение по умолчанию), а фактическую блокировку элемента выполним программно при инициализации формы. Посмотрим на пример кода в модуле формы:
Процедура ПриОткрытии()
// Блокируем элемент управления программно при открытии формы
ЭлементыФормы.Наименование.Доступность = Ложь;
КонецПроцедуры
Такой подход позволяет свободно настраивать макет, перемещать элементы и менять их размеры в Конфигураторе без блокировки кликов мыши.