При кастомизации интерфейса конфигураций или брендировании рабочего пространства часто возникает задача изменить стандартный заголовок окна программы. Однако многие разработчики сталкиваются с тем, что стандартные процедуры платформы меняют только пользовательскую часть названия, оставляя в конце неизменный суффикс (1С:Предприятие). Разберем, как работает механизм управления заголовком, почему существует данное ограничение и какие варианты решения задачи существуют на практике.
Для задания пользовательского текста в заголовке главного окна конфигурации во встроенном языке предусмотрены специальные методы. В управляемом приложении вызов обычно размещается в модуле управляемого приложения в процедуре ПриНачалеРаботыСистемы.
Посмотрим на пример установки заголовка с использованием штатных методов:
Процедура ПриНачалеРаботыСистемы()
// Устанавливаем заголовок клиентского приложения
УстановитьЗаголовокПриложения("Учетная система предприятия");
// В актуальных версиях платформы также доступен метод
КлиентскоеПриложение.УстановитьЗаголовок("Учетная система предприятия");
КонецПроцедуры
Проанализируем результат выполнения данного кода: в заголовке окна операционной системы отобразится строка Учетная система предприятия (1С:Предприятие). Встроенный язык платформы формирует заголовок строго по внутреннему шаблону: [ПользовательскийЗаголовок] (1С:Предприятие). Изменить или удалить часть строки в круглых скобках средствами языка 1С невозможно, так как это поведение жестко заложено в ядро клиентского приложения.
Выясним причину такого поведения. Текст суффикса хранится не в метаданных конфигурации, а в ресурсных библиотеках платформы (например, в языковом модуле 1crcrus.dll). При отрисовке окна платформа динамически объединяет текст, переданный разработчиком через КлиентскоеПриложение.УстановитьЗаголовок(), с системным названием продукта.
Важное юридическое предупреждение: попытки модификации бинарных файлов и библиотек платформы (например, через редакторы ресурсов) нарушают лицензионное соглашение с правообладателем и считаются несанкционированным изменением программного продукта. Рассмотрим исключительно технически корректные и безопасные способы решения задачи.
Если для рабочих мест под управлением Windows критически важно убрать суффикс без изменения исполняемых файлов платформы, задачу можно решить на уровне операционной системы. Заголовок любого окна в ОС Windows можно перезаписать через функцию SetWindowTextW Windows API.
Разберем по шагам, как реализуется данный подход:
HWND) основного окна текущего процесса 1С.Если пользователи работают с информационной базой через веб-браузер, формирование заголовка подчиняется стандартным правилам веб-страниц (тег <title> в DOM-дереве документа).
В этом случае изменить или полностью очистить заголовок окна браузера можно следующими путями:
document.title после загрузки страницы.Когда требуется убрать элементы брендинга платформы для терминальных мест, специализированных рабочих зон или POS-терминалов, эффективным штатным решением является скрытие всей системной рамки окна.
Рассмотрим применение специализированных режимов окна:
Процедура ПриНачалеРаботыСистемы()
// Перевод интерфейса в режим киоска для скрытия системных рамок и заголовка
КлиентскоеПриложение.УстановитьРежимОтображенияОсновногоОкна(РежимОтображенияОсновногоОкна.Киоск);
КонецПроцедуры
Использование режима киоска (РежимОтображенияОсновногоОкна.Киоск) или полноэкранного интерфейса полностью убирает заголовок окна операционной системы и системные панели, позволяя создать полностью кастомизированный экранный интерфейс средствами самой конфигурации.
Для тиражируемых решений, поставляемых вендорами и партнерами по модели White Label, существует официальный механизм кастомизации. В рамках партнерских соглашений с разработчиком платформы создается брендированный спецвыпуск платформы (OEM-сборка). В таких поставках системные заголовки, иконки, заставки и копирайты настраиваются легально и поддерживаются производителем решения.
Штатный встроенный язык 1С намеренно не позволяет удалить системный суффикс в скобках, ограничивая разработчика установкой префикса через КлиентскоеПриложение.УстановитьЗаголовок(). Для полного скрытия системной строки на тонком клиенте применяют перехват WinAPI или режим киоска, для веб-клиента — внедрение скриптов модификации DOM-модели, а для тиражных коммерческих решений — официальные OEM-сборки.