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