Почему в окне смены пароля 1С нарушен порядок обхода по клавише Tab и как это исправить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Многие пользователи и администраторы систем на базе «1С:Предприятие 8.3» сталкиваются с раздражающей особенностью: при смене пароля привычный ритм ввода (ввел пароль — нажал Tab — ввел подтверждение) прерывается. Вместо перехода в следующее текстовое поле фокус ввода «застревает» на вспомогательных элементах, таких как кнопка отображения пароля («глазок») или кнопка генерации. Рассмотрим, почему это происходит с технической точки зрения и как разработчику исправить этот недочет в своих решениях.

Разберем механику управляемых форм и порядок обхода

Для начала проанализируем ситуацию, как платформа 1С обрабатывает нажатие клавиши Tab. В «1С:Предприятии 8.3» при использовании управляемых форм порядок перехода между элементами (так называемый порядок обхода) жестко детерминирован. По умолчанию он соответствует последовательности расположения элементов в дереве формы в Конфигураторе.

Выясним причину возникновения проблемы в современных типовых конфигурациях. При проектировании формы смены пароля разработчики стремятся сделать интерфейс компактным и современным. Для этого поле ввода нового пароля и кнопка управления его видимостью («глазок») объединяются в одну горизонтальную группу. В дереве элементов это выглядит следующим образом:

  1. ГруппаПароль (Горизонтальная)
    1. НовыйПароль (Поле ввода)
    2. ПоказатьПароль (Кнопка)
  2. ГруппаПодтверждение (Горизонтальная)
    1. ПодтверждениеПароля (Поле ввода)
    2. ПоказатьПодтверждение (Кнопка)

Поскольку платформа обходит дерево сверху вниз, после завершения ввода в поле НовыйПароль и нажатия клавиши Tab, фокус закономерно перемещается на следующий элемент в иерархии — кнопку ПоказатьПароль. Для пользователя, который привык работать «вслепую», это становится ловушкой: следующее нажатие клавиш воспринимается системой как попытка активировать кнопку, а не ввод текста в поле подтверждения.

Проанализируем влияние стандартов интерфейса «1С»

Согласно официальным гайдлайнам по юзабилити, которые публикует компания «1С», порядок обхода должен быть логичным и предсказуемым. Основной сценарий работы с формой — заполнение значимых данных. Вспомогательные элементы управления, не являющиеся обязательными для основного процесса (такие как кнопки очистки, выбора или визуализации), не должны мешать быстрому вводу данных с клавиатуры.

Посмотрим на ситуацию со стороны опытного пользователя. В большинстве веб-интерфейсов и операционных систем реализован стандарт: Поле 1 -> Tab -> Поле 2 -> Enter (ОК). В 1С из-за автоматического построения интерфейса этот стандарт часто нарушается, если разработчик не уделил внимания тонкой настройке свойств элементов. Особенно критично это проявляется в конфигурациях на базе «Библиотеки стандартных подсистем» (БСП), где формы смены пароля являются унифицированными.

Как исправить «кривой» порядок обхода: пошаговое руководство

Рассмотрим способы решения этой проблемы. Основная задача разработчика — исключить вспомогательные кнопки из очереди получения фокуса при нажатии клавиши Tab.

Способ 1. Настройка свойства «Пропускать при вводе»

Это самый простой и правильный метод с точки зрения архитектуры платформы. Разберем его по шагам:

  1. Откроем форму в Конфигураторе.
  2. Найдем в дереве элементов ту самую кнопку (например, ПоказатьПароль), которая перехватывает фокус.
  3. Перейдем в палитру свойств этого элемента.
  4. Найдем свойство ПропускатьПриВводе (в англоязычной версии TabStop).
  5. Установим значение в Да (True).

После этой манипуляции кнопка останется доступной для нажатия мышкой, но при использовании клавиатуры (Tab) платформа будет ее игнорировать, перескакивая сразу к следующему полю ввода. Это восстанавливает привычный UX-дизайн.

Способ 2. Программное управление порядком обхода

В некоторых сложных случаях, когда состав элементов на форме меняется динамически, нам может потребоваться программное вмешательство. Рассмотрим пример кода, который можно разместить в процедуре ПриСозданииНаСервере или ПриОткрытии, чтобы гарантированно настроить поведение формы:


// Пример исключения кнопок из порядка обхода
Элементы.ГруппаПарольПоказатьПароль.ПропускатьПриВводе = Истина;
Элементы.ГруппаПодтверждениеПоказатьПодтверждение.ПропускатьПриВводе = Истина;

// Установка явного порядка перехода, если дерево элементов слишком сложное
ЭтаФорма.ТекущийЭлемент = Элементы.НовыйПароль;

Проблема клавиши Enter и кнопок по умолчанию

Проанализируем еще один важный аспект — поведение клавиши Enter. В грамотно спроектированной форме кнопка «ОК» или «Изменить пароль» должна иметь свойство КнопкаПоУмолчанию. Это позволяет пользователю завершить процесс, просто нажав Enter после ввода подтверждения.

Однако, если фокус «застрял» на вспомогательной кнопке (например, «Сгенерировать пароль»), нажатие Enter приведет к выполнению действия именно этой кнопки, а не к сохранению данных. Это может привести к тому, что введенный пользователем пароль будет перезаписан случайно сгенерированным значением, что крайне раздражает при работе.

Рекомендация: Всегда проверяйте, чтобы у вспомогательных кнопок свойство КнопкаПоУмолчанию было выключено, а у основной кнопки действия — включено. В сочетании с правильно настроенным TabStop это обеспечит идеальный поток работы (flow) для пользователя.

Использование расширений для исправления типовых форм

Если вы столкнулись с этой проблемой в типовой конфигурации (например, «1С:Бухгалтерия» или «1С:ERP»), которую нежелательно снимать с поддержки, мы рекомендуем использовать механизм расширений.

Создадим небольшое расширение и добавим в него форму смены пароля. В обработчике ПриСозданииНаСервере (после выполнения основного кода БСП) добавим код, корректирующий свойства элементов. Это позволит сохранить чистоту конфигурации и при этом значительно повысить удобство работы пользователей.

Выясним, почему это важно для бизнеса. Кажется, что «лишний клик» или «лишнее нажатие Tab» — это мелочь. Но в масштабах компании с тысячами сотрудников и строгими политиками безопасности, требующими частой смены паролей, такие микро-задержки аккумулируются в значительные потери времени и рост недовольства ИТ-системой. Как гласит известная фраза, «театр начинается с вешалки», а работа в корпоративной системе — с окна авторизации и смены пароля. Качество реализации этих простых форм определяет общее отношение пользователя к эргономике всей программы.

Резюме по исправлению эргономики

Подводя итог нашему анализу, закрепим основные правила настройки форм ввода данных в 1С:

  1. Соблюдайте иерархию: Элементы в дереве формы должны располагаться в том порядке, в котором пользователь будет их заполнять.
  2. Используйте группы с осторожностью: Помните, что горизонтальное выравнивание через группы меняет порядок обхода, вставляя кнопки между полями ввода.
  3. Настраивайте TabStop: Всегда отключайте переход по Tab для чисто визуальных кнопок («глазки», «очистка», «информация»).
  4. Тестируйте клавиатурой: Лучший способ проверить форму — попробовать заполнить её без использования мыши. Если вы споткнулись — значит, пользователь тоже споткнется.

Соблюдение этих простых принципов превращает «кривое» окно в удобный инструмент, который не мешает продуктивной работе.

← На главную