Вопрос кастомизации интерфейса 1С под корпоративный стиль компании возникает довольно часто. Одной из самых обсуждаемых задач является удаление или замена стандартного значка 1С, расположенного в верхнем левом углу клиентского приложения. Рассмотрим детально, почему этот логотип так сложно убрать штатными средствами, какие существуют технические лазейки для веб-клиента и тонкого клиента, а также разберем юридические риски подобных манипуляций.
Для начала проанализируем ситуацию: логотип 1С не является обычным файлом изображения (например, png или jpg), который лежит в открытом виде в папке с установленной программой. В современных версиях платформы 1С:Предприятие 8.3 интерфейс формируется динамически. Разберем по шагам, как это происходит в различных режимах работы.
В веб-клиенте логотип передается браузеру либо в виде встроенного SVG-кода, либо через специализированные запросы к библиотеке wsisapi.dll (для IIS) или модулю Apache. Если мы попытаемся найти файл через инспектор кода в браузере, мы увидим ссылку вида e1csys/logo. Это не прямой путь к файлу на сервере, а внутренний ресурс платформы. Проанализируем содержимое файла mngsrv_root.res, который находится в каталоге bin платформы — именно там в скомпилированном виде хранятся многие графические элементы управления. Прямая правка этих ресурсов технически возможна, но крайне затруднена из-за контроля целостности исполняемых файлов.
Если ваша база опубликована на веб-сервере (Apache или Nginx), мы можем применить метод перехвата и модификации трафика «на лету». Это наиболее элегантный технический способ, так как он не требует вмешательства в программные файлы самой 1С. Рассмотрим настройку на примере популярного сервера Nginx.
Мы можем настроить sub_filter, который будет искать в исходящем HTML-коде блок, отвечающий за отрисовку логотипа, и внедрять в него свой CSS-стиль. Выясним причину эффективности этого метода: браузер получает уже модифицированный код страницы, где логотип скрыт или заменен. Пример конфигурации может выглядеть следующим образом:
server {
listen 80;
server_name my1c.company.com;
location / {
proxy_pass http://127.0.0.1:8080/base/;
sub_filter '</head>' '<style>.v8-logo { display: none !important; }</style></head>';
sub_filter_once on;
}
}
В данном примере мы находим закрывающий тег head и перед ним вставляем стиль, который принудительно скрывает элемент с классом v8-logo. Это позволяет полностью убрать значок для всех пользователей, работающих через данный прокси-сервер.
Разберем ситуацию, когда нам нужно скрыть логотип для ограниченного круга лиц без настройки серверного оборудования. В этом случае помогут расширения типа Tampermonkey или Stylus. Мы можем написать небольшой скрипт, который будет отслеживать появление элемента логотипа в DOM-дереве страницы и удалять его.
Проанализируем пример JavaScript-кода для такого расширения:
(function() {
'use strict';
let timerId = setInterval(() => {
let logo = document.querySelector('.p-logo') || document.querySelector('.v8-logo');
if (logo) {
logo.style.visibility = 'hidden';
// Можно также заменить на свое изображение
// logo.style.backgroundImage = 'url("https://mysite.com/my-logo.png")';
clearInterval(timerId);
}
}, 500);
})();
Этот метод работает «на стороне клиента», что удобно для индивидуальной настройки рабочего места, но требует установки расширения каждому пользователю.
Хотя сам графический значок убрать программно из встроенного языка 1С невозможно (кроме мобильных платформ), мы можем управлять текстом, который отображается рядом с ним. Это позволяет хотя бы частично брендировать интерфейс. Для этого используются методы УстановитьЗаголовокКлиентскогоПриложения.
Посмотрим на пример кода, который обычно размещается в модуле управляемого приложения в процедуре ПриНачалеРаботыСистемы:
Процедура ПриНачалеРаботыСистемы()
// Устанавливаем произвольный текст в заголовке окна
УстановитьЗаголовокКлиентскогоПриложения("Корпоративная информационная система ООО ""Ромашка""");
// В современных версиях платформы можно также использовать:
КлиентскоеПриложение.УстановитьЗаголовок("Моя конфигурация v2.0");
КонецПроцедуры
Важно помнить, что этот метод меняет только текстовую часть, хотя существует и способ запуска 1С без заголовка окна. Иконка платформы 1С все равно останется слева от этого текста.
Рассмотрим ситуацию с точки зрения закона и правообладателя. В типовом лицензионном соглашении 1С прямо указано, что модификация исполняемых файлов и ресурсов платформы запрещена. Единственный легальный способ полностью избавиться от бренда 1С в интерфейсе — это использование OEM-лицензии или программы White Label.
Такой вариант обычно доступен крупным тиражным разработчикам, которые выпускают свои решения на базе платформы 1С под собственным брендом. В этом случае фирма 1С предоставляет специальную сборку платформы, где логотип заменен или отсутствует. Примером может служить платформа Business Automation Framework (BAF), используемая на зарубежных рынках, где вместо логотипа 1С отображается символ бесконечности.
Проанализируем последствия несанкционированного изменения интерфейса. Согласно Гражданскому кодексу РФ, правообладатель имеет право на защиту целостности своего произведения. Удаление товарного знака из интерфейса может быть расценено как нарушение исключительных прав.
Основные риски при попытке «взлома» ресурсов платформы (файлов .res и .exe):
bin-файлах будут затерты, и процедуру придется повторять заново.Таким образом, если перед вами стоит задача брендирования, наиболее безопасным путем будет использование возможностей свойств конфигурации (установка логотипа в окне «О программе» и заставки при запуске), а также использование метода УстановитьЗаголовокКлиентскогоПриложения. Если же полное скрытие логотипа критично для веб-доступа, рекомендуем остановиться на методе с Reverse Proxy, так как он не нарушает целостность файлов установленной платформы на сервере.