При разработке интерфейсов в «1С:Предприятие» (особенно при работе с Библиотекой Стандартных Подсистем — БСП) часто возникает задача снабдить элементы меню понятными всплывающими подсказками. Хорошая подсказка помогает пользователю сориентироваться в назначении команды без необходимости открывать справку или документацию. Однако разработчики нередко сталкиваются с ситуацией, когда нужное свойство в Конфигураторе просто отсутствует на панели свойств.
В этой статье мы подробно разберем, почему в свойствах команды обработки может не отображаться поле «Подсказка», как решить эту проблему за один клик, а также рассмотрим особенности работы с обычными и расширенными подсказками в управляемых формах 1С.
Проанализируем ситуацию: вы добавляете собственную команду в обработку (например, для интеграции в стандартную панель администрирования БСП). Вы открываете свойства этой команды и видите только базовый набор полей: Имя, Синоним, Комментарий, Группа. Свойства Подсказка в списке нет.
Выясним причину такого поведения платформы. В Конфигураторе «1С:Предприятия» панель свойств по умолчанию работает в режиме фильтрации. На панели инструментов окна свойств есть специальная кнопка — «Показывать только важные» (в разных версиях платформы она выглядит как воронка или как значок футболки/майки).
Когда эта кнопка нажата (активна), платформа скрывает «второстепенные», по ее мнению, свойства объектов метаданных, чтобы не перегружать интерфейс разработчика. Свойство Подсказка для команд часто попадает под этот фильтр и скрывается.
Решение проблемы чрезвычайно простое:
После отключения этого фильтра вы сможете напрямую задать текст подсказки, который будет отображаться при наведении курсора мыши на пункт меню в пользовательском режиме.
Рассмотрим подробнее, как именно платформа и БСП работают с подсказками, и какие инструменты есть у разработчика для реализации более сложных интерфейсных решений.
Для создания качественного интерфейса важно понимать разницу между подсказкой самой команды (как объекта метаданных) и расширенной подсказкой элемента управления на управляемой форме.
1. Стандартная подсказка команды (свойство метаданных)
Это статическое текстовое свойство, которое задается непосредственно в свойствах команды общего назначения или команды объекта/обработки. Платформа использует этот текст по умолчанию везде, куда выводится данная команда (в командный интерфейс разделов, на панели навигации или панели действий). Этот текст представляет собой обычную строку без возможности форматирования (нельзя выделить жирным, изменить цвет или добавить картинку).
2. Расширенная подсказка (свойство элемента формы)
Если команда выводится на конкретную управляемую форму в виде кнопки или элемента командной панели, у самого элемента формы появляется возможность настройки расширенной подсказки. Разберем по шагам, как ее активировать:
ДекорацияФормы с видом РасширеннаяПодсказка).Расширенная подсказка поддерживает формат Форматированной строки. Это дает огромные преимущества:
Если ваша конфигурация рассчитана на работу в многоязычной среде (например, используется пользователями из разных стран), жесткое прописание текста подсказки на одном языке считается грубой ошибкой разработки. В свойствах подсказки (будь то команда или элемент формы) всегда обращайте внимание на возможность локализации.
При поиске системных подсказок в конфигурации вы можете наткнуться на пути вида Команда.Органайзер.Подсказка.ru. Суффикс .ru указывает на конкретную языковую локализацию. Чтобы правильно настроить локализацию:
В реальной практике часто возникает необходимость динамически изменять подсказки в зависимости от прав доступа пользователя, выбранных настроек системы или заполненных реквизитов на форме. Посмотрим на примеры программного управления подсказками.
Напрямую изменить свойство метаданных команды во время работы приложения нельзя — свойства метаданных доступны только для чтения. Но мы можем динамически управлять свойствами элементов формы на клиенте или на сервере при создании формы.
Изменение стандартной подсказки кнопки (простая строка) выполняется следующим образом:
&НаКлиенте
Процедура ИзменитьПодсказкуКнопки()
Элементы.ИмяКнопкиКоманды.Подсказка = "Новый динамический текст подсказки, актуальный на текущий момент.";
КонецПроцедуры
Если же мы используем расширенную подсказку, мы можем программно сконструировать красивую форматированную строку с выделением цветом:
&НаСервере
Процедура НастроитьРасширеннуюПодсказкуНаСервере()
// Создаем элементы форматированной строки
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("Внимание! ");
// Добавим выделенный красным цветом важный текст
ШрифтВыделения = Новый Шрифт(,,Истина); // Жирный
ЦветВыделения = WebЦвета.Красный;
МассивЭлементов.Добавить(Новый ФорматированнаяСтрока("Это действие необратимо.", ШрифтВыделения, ЦветВыделения));
// Объединяем в общую форматированную строку
НоваяПодсказка = Новый ФорматированнаяСтрока(МассивЭлементов);
// Устанавливаем заголовок декорации расширенной подсказки
Элементы.ИмяКнопкиКомандыРасширеннаяПодсказка.Заголовок = НоваяПодсказка;
КонецПроцедуры
Если вы решаете задачу добавления новой команды в стандартный раздел «Администрирование» конфигурации, построенной на БСП, крайне не рекомендуется напрямую редактировать типовую обработку ПанельАдминистрированияБСП. Прямое изменение затруднит последующие обновления конфигурации.
Разберем два безопасных и правильных способа интеграции:
ПанельАдминистрированияБСП, добавить туда свою команду (предварительно отключив фильтр важных свойств и заполнив подсказку) и вывести ее на заимствованную форму. Это сохранит основную конфигурацию на замке и упростит обновление.НастройкиПрограммыПереопределяемый. В его процедурах (например, при инициализации настроек или создании форм) можно программно управлять элементами стандартных форм администрирования. Вы можете динамически добавлять элементы на форму панели настроек, менять их заголовки, видимость, доступность и, конечно же, тексты подсказок.Применяя данные подходы, вы сможете создавать гибкие, понятные и дружелюбные интерфейсы для пользователей, не нарушая при этом стандарты разработки фирмы «1С».