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

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

Активизировать по умолчанию в 1С: что это такое и как настроить на форме

Что означает «активизировать по умолчанию» в 1С, как работает свойство КнопкаПоУмолчанию на форме и как настроить кнопку, срабатывающую по Enter.

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

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

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

Что означает «активизировать по умолчанию» на форме 1С

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

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

Как включить кнопку по умолчанию в конфигураторе

Настройка выполняется в конфигураторе и занимает меньше минуты. Порядок действий одинаков для большинства типовых и самописных конфигураций на управляемых формах.

Порядок действий
  1. 1
    Откройте конфигуратор и найдите нужный объект: документ, справочник или обработку.
  2. 2
    Откройте форму объекта и в дереве элементов выделите кнопку, которую нужно активизировать по умолчанию.
  3. 3
    Откройте палитру свойств (правый клик — «Свойства») и найдите свойство «КнопкаПоУмолчанию».
  4. 4
    Установите значение «Истина» и сохраните конфигурацию.
  5. 5
    Запустите 1С в режиме предприятия, откройте форму и нажмите Enter — должна выполниться команда кнопки.

Если кнопки «ОК» или «Записать и закрыть» нет на форме, сначала добавьте её: перетащите команду из панели команд формы в дерево элементов или создайте кнопку вручную и привяжите к ней команду. Только после этого появится смысл назначать её кнопкой по умолчанию.

Учтите: если на форме уже есть кнопка с этим свойством, платформа при установке «Истина» новой кнопке автоматически сбросит признак у старой. В редакторе формы это видно сразу — прежняя кнопка теряет жирное обрамление.

Как назначить кнопку по умолчанию программно

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

&НаКлиенте

Процедура ПриОткрытии(Отказ)

Если Объект.Ссылка.Пустая() Тогда

Элементы.ФормаЗаписатьИЗакрыть.КнопкаПоУмолчанию = Истина;

Иначе

Элементы.ФормаПровести.КнопкаПоУмолчанию = Истина;

КонецЕсли;

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

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

Особенности поведения в разных клиентах и элементах

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

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

Типичные ошибки и как их избежать

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

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

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

Проверка занимает пару минут и выполняется в режиме предприятия без каких-либо инструментов. Откройте форму, поставьте курсор в обычное однострочное поле и нажмите Enter: должна выполниться команда назначенной кнопки. Визуально кнопка по умолчанию в тонком клиенте выделяется более заметной рамкой.

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

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

Внешний вид кнопки на форме
Норма

Кнопка выделена жирной или акцентной рамкой

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

Кнопка выглядит как обычная — свойство не установлено

Нажатие Enter в однострочном поле
Норма

Выполняется команда кнопки по умолчанию

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

Ничего не происходит или срабатывает другая команда

Нажатие Enter в табличной части
Норма

Завершается редактирование ячейки — это норма

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

Ожидался вызов кнопки — так платформа не работает

Повторное открытие формы
Норма

Поведение сохраняется между сеансами

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

Настройка слетает — проверьте, не переопределяется ли свойство кодом

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

Частые вопросы

Можно ли сделать две кнопки по умолчанию на одной форме?

Нет. Платформа 1С допускает только одну кнопку с этим свойством на форме. При назначении второй кнопки признак у первой снимается автоматически, без предупреждения.

Почему Enter не вызывает кнопку, когда курсор в табличной части?

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

Как убрать кнопку по умолчанию с формы?

Откройте палитру свойств кнопки в конфигураторе и установите свойству «КнопкаПоУмолчанию» значение «Ложь». Если свойство задаётся программно, найдите и удалите или закомментируйте соответствующую строку кода в модуле формы.

Работает ли кнопка по умолчанию в веб-клиенте?

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

Можно ли назначить кнопкой по умолчанию кнопку командной панели?

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

Что безопаснее: изменить типовую форму или использовать расширение?

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

Итог

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

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