К статье
Практический материал

Разработка и Конфигурация · 11 мин

Табуляция в 1С: что это и как настроить обход полей клавишей Tab

Что такое табуляция в 1С: обход полей клавишей Tab, порядок перехода, настройка в конфигураторе, типичные проблемы и способы их решения.

Табуляция в 1С — это последовательный переход между полями ввода, кнопками и другими элементами управляемой формы при нажатии клавиши Tab (и обратный переход по Shift+Tab). Термин пришёл из общей практики интерфейсов, но в 1С у него есть свои особенности: порядок обхода задаётся не координатами элементов на экране, а структурой дерева элементов формы в конфигураторе.

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

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

Как устроен порядок обхода элементов в форме 1С

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

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

На обход также влияют свойства элементов. Недоступный элемент (Доступность = Ложь) пропускается. Элементы с отключённым свойством «Активизировать по умолчанию» не получают фокус первыми, но в обходе участвуют. У полей ввода есть свойство «ПропускатьПриВводе» — оно исключает поле из табуляции, оставляя его доступным для мыши.

Как проверить текущий порядок табуляции в пользовательском режиме

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

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

Отдельно проверьте табличные части. Внутри таблицы Tab перемещает фокус по колонкам строки, а на последней колонке — либо на следующую строку, либо завершает редактирование. Поведение зависит от настройки колонок и свойства «ПропускатьПриВводе» у полей колонок.

Как проверить порядок обхода
  1. 1
    Откройте форму в режиме 1С:Предприятие и снимите фокус кликом по заголовку
  2. 2
    Нажимайте Tab и записывайте последовательность элементов, получающих фокус
  3. 3
    Отметьте поля, которые оператор пропускает при реальном вводе
  4. 4
    Повторите обход после заполнения ключевых полей, меняющих доступность
  5. 5
    Проверьте обход внутри табличной части до конца строки и переход на новую

Настройка порядка обхода в конфигураторе

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

Чтобы исключить элемент из обхода без отключения доступности, установите у поля ввода свойство «ПропускатьПриВводе» в значение «Истина». Так поступают со служебными полями: автоматически заполняемыми номерами, датами, комментариями, которые редко редактируют вручную. Элемент останется доступен для мыши и для программного обращения.

Для управления начальным фокусом используйте свойство формы или элемента «Активизировать по умолчанию». Поле с этим свойством получит фокус при открытии формы — обычно это первый реквизит, который заполняет оператор, например «Контрагент» в заказе.

Табуляция в табличных частях документов

Табличные части — самое чувствительное место для скорости ввода. Оператор вводит строку за строкой, и обход колонок должен соответствовать реальной последовательности заполнения: номенклатура, количество, цена — а не проходить через служебные колонки вроде «Ставка НДС», если она подставляется автоматически.

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

Учитывайте поведение на последней редактируемой колонке: по умолчанию Tab на ней завершает редактирование строки и может перенести фокус на кнопки или следующий элемент формы, а не добавить новую строку. Если операторы вводят много строк подряд, проверьте этот сценарий отдельно — иногда удобнее, чтобы ввод новой строки начинался по Enter или автоматически после заполнения последней колонки.

Самый заметный выигрыш в скорости даёт не «идеальный» порядок всех элементов, а исключение из обхода 2–3 служебных полей, через которые операторы вынуждены проходить десятки раз в день. Начинайте оптимизацию именно с них.
ПЗ
Практическое замечание

Типичные проблемы с табуляцией и их причины

Фокус «прыгает» через поле — почти всегда причина в том, что поле недоступно в момент обхода (зависит от другого реквизита) или у него включено «ПропускатьПриВводе». Проверьте условную доступность в коде формы: обработчики ПриИзменении могут отключать элементы динамически.

Фокус уходит в командную панель или на кнопки «Записать», «Провести» раньше, чем заполнены поля. Это признак того, что в дереве элементов командная панель стоит выше редактируемых полей или поля разнесены по разным группам. Перестановка элементов в дереве решает проблему.

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

Типичные ошибки
01
Настройка порядка по скриншоту формы вместо дерева элементов — визуальный порядок не совпадает с порядком обхода
02
Отключение доступности поля вместо «ПропускатьПриВводе» — пользователь теряет возможность заполнить его мышью
03
Проверка обхода только на пустой форме — после заполнения ключевых полей доступность меняется и цепочка ломается
04
Перемещение элементов без учёта групп — форма визуально разъезжается, хотя табуляция становится правильной

Когда настройки формы недостаточно

Если порядок обхода должен зависеть от данных — например, для одного вида операции поле обязательно и участвует в обходе, для другого нет — одной структуры дерева мало. Такие сценарии реализуют программно: в обработчиках формы управляют свойствами Доступность и ПропускатьПриВводе у элементов в зависимости от значений реквизитов.

Для полного контроля можно программно установить текущий элемент формы через свойство «ТекущийЭлемент» формы — например, после обработки выбора значения сразу перевести фокус на нужное поле, минуя стандартный обход. Это рабочий приём, но злоупотреблять им не стоит: жёстко зашитая логика фокуса усложняет поддержку формы.

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

Маршрут решения

Как выбрать действие

Порядок обхода неудобен у всех пользователей одинаковоМеняйте порядок элементов в дереве формы в конфигураторе или через расширение
Поле заполняется автоматически и только мешает при вводеУстановите у поля свойство ПропускатьПриВводе в Истина
Порядок зависит от вида операции или других данныхУправляйте Доступностью и ПропускатьПриВводе программно в обработчиках формы
Правка нужна только одному пользователю на его рабочем местеИспользуйте Ещё — Изменить форму без доработки конфигурации

Как проверить результат после настройки

После изменений пройдите полный цикл ввода реального документа от создания до проведения, используя только клавиатуру. Фокус должен идти по заполняемым полям без лишних остановок, а на последнем поле — предсказуемо переходить к завершению ввода.

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

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

Контрольные точки

Как проверить результат

Обход формы клавишей Tab от начала до конца
Норма

Фокус идёт только по заполняемым полям в логичном порядке

Тревожный признак

Фокус попадает на служебные поля, кнопки или пропускает обязательные реквизиты

Обход после заполнения ключевых полей
Норма

Цепочка обхода корректно меняется вместе с доступностью

Тревожный признак

Фокус пропадает, зацикливается или уходит в неожиданный элемент

Ввод нескольких строк табличной части подряд
Норма

Переход между колонками и строками не требует мыши

Тревожный признак

После последней колонки фокус уходит на кнопки вместо новой строки

Частые вопросы о табуляции в 1С

Почему фокус при Tab перескакивает через нужное поле?

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

Можно ли изменить порядок обхода без доработки конфигурации?

Частично — через «Ещё — Изменить форму» в режиме предприятия: можно перемещать и скрывать элементы для конкретного пользователя. Полноценная настройка порядка и свойств полей делается в конфигураторе или через расширение.

Чем «ПропускатьПриВводе» отличается от отключения доступности?

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

Как сделать, чтобы при открытии формы курсор стоял в нужном поле?

Установите у нужного элемента свойство «Активизировать по умолчанию» в конфигураторе. Либо программно назначьте форме ТекущийЭлемент в обработчике ПриОткрытии.

Влияет ли расширение конфигурации на порядок табуляции?

Да. Расширение добавляет и изменяет элементы в дереве формы, поэтому после его применения порядок обхода может измениться. Проверяйте фактическое дерево формы с учётом расширения, а не только исходную форму.

Почему в табличной части Tab не добавляет новую строку?

Стандартно Tab на последней колонке завершает редактирование строки, а не создаёт новую. Новая строка добавляется по Enter в конце таблицы, клавишей Insert или кнопкой «Добавить». Автоматическое создание строки при обходе реализуется только программной доработкой.

Итог

Что важно запомнить

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