При работе с несколькими информационными базами или в условиях, когда пользователю необходимо быстро идентифицировать текущую сессию (например, понять, под каким пользователем или в какой организации он находится), стандартного заголовка 1С становится недостаточно. По умолчанию платформа отображает название конфигурации и режим работы, но мы можем гибко управлять этим текстом. В данной статье мы разберем, как программно изменять заголовок главного окна программы, рассмотрим основные методы и выясним, где лучше всего размещать соответствующий код.
Основным инструментом для решения нашей задачи в платформе 1С:Предприятие 8 является глобальный метод УстановитьЗаголовокСистемы. Этот метод позволяет заменить стандартную строку в верхней части окна на произвольный текст. Проанализируем синтаксис этого метода:
// Синтаксис:
// УстановитьЗаголовокСистемы(<ТекстЗаголовка>)
В качестве параметра ТекстЗаголовка выступает строка, которую вы хотите видеть в заголовке. Важно понимать, что этот метод влияет на клиентское приложение в целом. Если передать пустую строку, система вернет стандартный заголовок, предусмотренный разработчиками конфигурации или платформой.
Для того чтобы заголовок менялся сразу при запуске программы, нам необходимо найти подходящую точку входа. Рассмотрим структуру модулей в управляемом приложении. Наиболее подходящим местом является Модуль управляемого приложения. В нем существуют специализированные обработчики событий начала работы.
Разберем по шагам процесс внесения изменений:
ПриНачалеРаботыСистемы.Посмотрим на пример реализации, который выводит в заголовок название организации и текущего пользователя:
Процедура ПриНачалеРаботыСистемы()
// Получаем текущего пользователя системы
ТекущийПользовательФИО = ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя;
// Формируем строку заголовка
НовыйЗаголовок = "ООО 'Ромашка' | Пользователь: " + ТекущийПользовательФИО;
// Применяем изменения
УстановитьЗаголовокСистемы(НовыйЗаголовок);
КонецПроцедуры
Иногда требуется менять заголовок не только при старте, но и в зависимости от действий пользователя. Например, при выборе конкретной организации в учетной политике или при переходе между разделами. Поскольку УстановитьЗаголовокСистемы является методом глобального контекста, мы можем вызывать его из любого клиентского кода.
Проанализируем ситуацию: нам нужно добавить в заголовок информацию о текущей дате или названии открытого важного документа. В этом случае мы можем создать общую процедуру в глобальном модуле (с флагом "Клиент") и вызывать её при необходимости.
// Пример функции для динамического обновления
Процедура ОбновитьЗаголовокПрограммы(ДополнительныйТекст = "") Экспорт
БазовыйТекст = "Управление торговлей";
Если ЗначениеЗаполнено(ДополнительныйТекст) Тогда
Результат = БазовыйТекст + " [" + ДополнительныйТекст + "]";
Иначе
Результат = БазовыйТекст;
КонецЕсли;
УстановитьЗаголовокСистемы(Результат);
КонецПроцедуры
Для того чтобы сделать заголовок более информативным, посмотрим, какие системные данные мы можем использовать. Часто бывает полезно вывести имя сервера или имя базы данных, особенно если у вас есть "Рабочая" и "Тестовая" копии.
Рассмотрим подробнее код, который поможет отличить тестовую базу от рабочей, чтобы пользователи не совершали ошибок в данных:
Процедура ПриНачалеРаботыСистемы()
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
// Простейшая проверка на наличие слова 'TEST' в строке соединения
Если Найти(ВРег(СтрокаСоединения), "TEST") > 0 Тогда
Префикс = "!!! ТЕСТОВАЯ БАЗА !!! ";
Иначе
Префикс = "РАБОЧАЯ БАЗА | ";
КонецЕсли;
Заголовок = Префикс + КраткоеИмяОрганизации();
УстановитьЗаголовокСистемы(Заголовок);
КонецПроцедуры
Работая с заголовком системы, следует учитывать несколько технических аспектов:
УстановитьЗаголовокСистемы доступен только на клиенте (толстый клиент, тонкий клиент, веб-клиент). Попытка вызвать его на сервере приведет к ошибке компиляции.Важно не путать УстановитьЗаголовокСистемы с заголовком конкретной формы. Когда вы открываете справочник или документ, у формы есть свойство Заголовок. Платформа 1С обычно комбинирует заголовок системы и заголовок активной формы в формате "ЗаголовокФормы - ЗаголовокСистемы".
Выясним причину, почему иногда заголовок не меняется: если в коде конфигурации (например, в типовых решениях от 1С) используется механизм БСП (Библиотека стандартных подсистем), заголовок может переустанавливаться стандартными подсистемами. В таких случаях стоит искать настройки в разделе "Администрирование" - "Общие настройки", где часто присутствует поле "Заголовок программы". Однако программный метод, описанный выше, перекроет эти настройки, если будет вызван позже.
Мы рассмотрели эффективный способ кастомизации интерфейса 1С под нужды пользователя. Использование УстановитьЗаголовокСистемы в сочетании с анализом параметров сеанса и строкой соединения позволяет создать удобную рабочую среду, минимизировать ошибки пользователей при работе в разных базах и повысить общую информативность системы. Помните, что хороший заголовок должен быть лаконичным и содержать только действительно важную в данный момент информацию.