Как отключить подсказки «Нажмите Показать все для выбора» и «Нажмите Создать для добавления» в управляемой форме 1С

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

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

В рамках этой статьи мы подробно разберем, как убрать эти подсказки раз и навсегда. Мы рассмотрим как интерактивные методы настройки в конфигураторе (через дерево метаданных и свойства элементов формы), так и программные способы управления поведением полей ввода.


Причина появления системных подсказок в интерфейсе «Такси»

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

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

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


Способ 1. Управление через свойства метаданных объекта

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

Выполним следующие шаги:

  1. Откроем конфигуратор и найдем нужный объект метаданных (например, справочник Контрагенты или Исполнители).
  2. Двойным кликом откроем окно редактирования свойств объекта.
  3. Перейдем на вкладку «Поля ввода».
  4. Найдем свойство «Создание при вводе». По умолчанию там установлено значение «Авто». Изменим его на «Выключить».

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


Способ 2. Использование свойства «Текст пустого поля»

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

Рассмотрим, как с ним работать:

  1. Откроем нужную управляемую форму в конфигураторе.
  2. Выделим элемент формы типа «Поле ввода», для которого нужно убрать подсказку.
  3. В палитре свойств найдем категорию «Оформление» и строку «Текст пустого поля».
  4. Если оставить это поле абсолютно пустым (по умолчанию), платформа подставит системный текст.
  5. Секретный прием: впишите в это поле один обычный символ пробела. Для платформы поле перестанет считаться незаполненным в плане настроек текста, и системная подсказка исчезнет, а визуально поле останется абсолютно чистым и пустым!

Способ 3. Отключение кнопок выбора и создания в форме

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

Разберем, как настроить свойства элемента управляемой формы:

  1. Откроем палитру свойств целевого поля ввода в форме.
  2. Перейдем в раздел «Использование».
  3. Найдем свойство «Кнопка выбора». Если установить его в значение «Нет», то кнопка выбора исчезнет вместе с подсказкой «Показать все». Обратите внимание: в этом случае пользователь не сможет открыть форму выбора кликом по кнопке, но по-прежнему сможет вводить текст для автоподбора (если автоподбор разрешен).
  4. Аналогично поступим со свойством «Кнопка создания». Установим его в значение «Нет», чтобы полностью подавить подсказку о создании нового элемента «на лету».

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Отключаем кнопки создания и выбора для конкретного элемента формы
    Элементы.Исполнитель.КнопкаСоздания = Ложь;
    Элементы.Исполнитель.КнопкаВыбора   = Ложь;

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

Способ 4. Перевод поля ввода в режим выбора из списка

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

Сделаем следующие шаги в палитре свойств элемента формы:

  1. Найдем свойство «Режим выбора из списка» и установим для него флаг «Истина».
  2. В таком режиме при активации поля ввода платформа не будет писать «Нажмите Показать все...», а вместо этого предложит лаконичный выпадающий список.
  3. Для заполнения списка выбора мы можем использовать свойства самого элемента или заполнить его программно в модуле формы.

Способ 5. Программное управление через событие «Автоподбор»

Для продвинутых разработчиков существует способ полностью перехватить управление вводом и отображением данных. Мы можем подавить стандартные механизмы платформы с помощью обработки события Автоподбор.

Рассмотрим пример реализации:

  1. Для нужного поля ввода в форме создадим клиентский обработчик события «Автоподбор».
  2. Внутри обработчика установим параметр СтандартнаяОбработка в значение Ложь. Это предотвратит вызов стандартного системного меню подбора и уберет связанные подсказки.

Посмотрим на пример кода:


&НаКлиенте
Процедура ИсполнительАвтоподбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

    // Подавляем стандартный автоподбор платформы
    СтандартнаяОбработка = Ложь;
    
    // Здесь мы можем реализовать собственный алгоритм подбора и заполнения ДанныеВыбора
    // Например, отфильтровать список и показать его пользователю без стандартных надписей

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

Способ 6. Настройка свойства «Обновление текста редактирования»

Иногда всплывающие подсказки и автоподстановка текста мешают пользователю вводить данные, так как платформа постоянно пытается предугадать ввод и обновляет текст прямо во время редактирования. Этим поведением управляет свойство «Обновление текста редактирования».

Разберем возможные значения этого свойства элемента формы:


Резюме и рекомендации

Мы рассмотрели целый арсенал средств для борьбы с навязчивым поведением интерфейса «Такси» в 1С:Предприятии 8.3. Подведем итоги и выработаем оптимальную стратегию работы:

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

← На главную