При переходе на современный интерфейс «Такси» в платформе «1С:Предприятие 8.3» многие разработчики и пользователи столкнулись с избыточной «заботой» интерфейса. Платформа стремится во всем помогать пользователю, выводя в полях ввода назойливые всплывающие подсказки: «Нажмите показать все для выбора», «Нажмите Создать для добавления» или «Введите текст для поиска». В некоторых случаях эти подсказки только загромождают экран, мешают быстрому вводу данных и вызывают раздражение у опытных операторов системы.
В рамках этой статьи мы подробно разберем, как убрать эти подсказки раз и навсегда. Мы рассмотрим как интерактивные методы настройки в конфигураторе (через дерево метаданных и свойства элементов формы), так и программные способы управления поведением полей ввода.
Давайте выясним причину такого поведения платформы. Начиная с версии платформы 8.3.10 и выше, механизмы юзабилити были существенно переработаны. Платформа автоматически анализирует тип данных поля ввода и доступные пользователю действия. Если поле связано со справочником или документом, система автоматически генерирует контекстные подсказки, чтобы подсказать пользователю возможные сценарии работы:
К сожалению, глобальной настройки «Выключить все подсказки в системе» в платформе 1С не существует. Однако мы можем гибко управлять этим поведением точечно — для конкретных объектов метаданных или отдельных элементов управляемой формы. Рассмотрим все доступные способы по шагам.
Если нам необходимо отключить появление подсказок для конкретного типа данных во всех формах конфигурации (например, для определенного справочника), лучше всего сделать это непосредственно в дереве метаданных. Это наиболее правильный и системный подход, так как настройки применятся автоматически ко всем создаваемым полям ввода этого типа.
Выполним следующие шаги:
Контрагенты или Исполнители).После выполнения этой настройки платформа перестанет предлагать пользователю создать новый элемент прямо из поля ввода, и раздражающий текст «Нажмите Создать для добавления» полностью исчезнет.
Проанализируем ситуацию, когда нам нужно скрыть стандартный текст «Нажмите для выбора...» или «Показать все», который отображается серым цветом в пустом поле ввода, когда в нем нет фокуса. Для этого в платформе предусмотрено замечательное свойство элемента управляемой формы — «Текст пустого поля» (в коде оно доступно как свойство EmptyText).
Рассмотрим, как с ним работать:
Подсказки типа «Нажмите Показать все» напрямую привязаны к отображению кнопки выбора (кнопка с троеточием или стрелкой вниз) в правой части поля. Если мы отключим отображение этих кнопок, платформа поймет, что интерактивный выбор не предполагается, и уберет текстовое сопровождение. Для интерактивной проверки и изменения свойств элементов прямо в пользовательском сеансе подойдёт обработка для редактирования свойств открытых форм в режиме предприятия.
Разберем, как настроить свойства элемента управляемой формы:
Мы также можем управлять этими свойствами динамически из встроенного языка 1С. Посмотрим на пример кода в обработчике события формы:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Отключаем кнопки создания и выбора для конкретного элемента формы
Элементы.Исполнитель.КнопкаСоздания = Ложь;
Элементы.Исполнитель.КнопкаВыбора = Ложь;
КонецПроцедуры
В некоторых случаях поле ввода ссылочного типа должно предлагать пользователю строго ограниченный выбор (например, только предопределенные значения или небольшой фиксированный список). Если мы переведем поле в этот режим, то платформа перестанет обращаться к стандартным механизмам поиска по справочнику, тем самым убирая лишние подсказки.
Сделаем следующие шаги в палитре свойств элемента формы:
Для продвинутых разработчиков существует способ полностью перехватить управление вводом и отображением данных. Мы можем подавить стандартные механизмы платформы с помощью обработки события Автоподбор.
Рассмотрим пример реализации:
СтандартнаяОбработка в значение Ложь. Это предотвратит вызов стандартного системного меню подбора и уберет связанные подсказки.Посмотрим на пример кода:
&НаКлиенте
Процедура ИсполнительАвтоподбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
// Подавляем стандартный автоподбор платформы
СтандартнаяОбработка = Ложь;
// Здесь мы можем реализовать собственный алгоритм подбора и заполнения ДанныеВыбора
// Например, отфильтровать список и показать его пользователю без стандартных надписей
КонецПроцедуры
Иногда всплывающие подсказки и автоподстановка текста мешают пользователю вводить данные, так как платформа постоянно пытается предугадать ввод и обновляет текст прямо во время редактирования. Этим поведением управляет свойство «Обновление текста редактирования».
Разберем возможные значения этого свойства элемента формы:
Мы рассмотрели целый арсенал средств для борьбы с навязчивым поведением интерфейса «Такси» в 1С:Предприятии 8.3. Подведем итоги и выработаем оптимальную стратегию работы:
Используя данные методы, вы сможете сделать интерфейс ваших прикладных решений более строгим, эргономичным и удобным для конечных пользователей, избавив их от лишнего визуального шума.