Подмена заголовка 1С
// корректируем заголовок во всех запущенных 1С
// в начало заголовка добавляем имя базы данных
// если Компьютеры.Запрос возвращает ошибку, то вероятно на компьютере не запущена служба WMI
// данный скрипт лучше запускать в отдельном потоке, для этого добавьте код в скрипт'Старт'
// НС="Подмена заголовка 1С";
// Если(Окна.Есть(НС,"TFormMainDefy")=0)Тогда Скрипты.Запустить(, НС, 5);Конец;
Окна1С = Окна.Определить(, "V8TopLevelFrame");
Для Окно1С Из Окна1С Цикл
ЗаголовокБыл = Окно1С.'Заголовок окна';
ПервыйСимвол = Строки.Подстрока(ЗаголовокБыл, 1, 1);
Если (Строки.Есть(ПервыйСимвол, ".,:,·")) Тогда Продолжить; Конец;
ИдОкна = Окно1С.'Идентификатор окна';
Список = Компьютеры.Запрос("SELECT CommandLine FROM WIN32_Process WHERE ProcessId="+Окна.Процесс(ИдОкна));
Если (Список<=0) Тогда
Сообщить("Ошибка при вызове Компьютеры.Запрос", Ошибки.Строка(Список));
Этот.Отмечен = 0; // отключаем автовыполнение скрипт
Возврат;
Конец;
Для Объект Из Список Цикл
Стр = Объект.Текст;
Если (Строки.Подстрока(Стр, 1, 11)="CommandLine") Тогда
// Сообщить(Стр);
Если (Строки.Найти(Стр, "-Embedding")) Тогда // Com пропускаем
Продолжить;
Конец;
ИмяБД = "";
ПрефиксИмени = "";
ПараметрыКоманды = Строки.Разделить(Стр, " ", , """");
Для Параметр Из ПараметрыКоманды Цикл
Если (Строки.Подстрока(Параметр, 1, 2)="/F") Тогда // файловая база
ИмяБД = Параметр; ПрефиксИмени = ".";
Прервать;
Конец;
Если (Строки.Подстрока(Параметр, 1, 2)="/S") Тогда // серверная база
ИмяБД = Параметр; ПрефиксИмени = ":";
Прервать;
Конец;
Если (Строки.Подстрока(Параметр, 1, 7)="/IBName") Тогда // имя базы в списке баз стартера 1С
ИмяБД = Строки.Заменить(Параметр, "IBName", ""); ПрефиксИмени = "·";
Прервать;
Конец;
Конец;
Если (ИмяБД<>"") Тогда
Поз = Строки.Найти(ИмяБД, Символы.ОС, 1, 1);
Если (Поз=0) Тогда Поз = Строки.Найти(ИмяБД, "/", 1, 1); Конец;
ИмяБД = Строки.Подстрока(ИмяБД, Поз+1, Строки.Длина(Параметр)-Поз);
ИмяБД = Строки.Заменить(ИмяБД, """", "");
ЗаголовокНовый = ПрефиксИмени + ИмяБД + " - "+ ЗаголовокБыл;
// Сообщить(ЗаголовокНовый);
Окна.Заголовок(ИдОкна, ЗаголовокНовый);
Иначе
Сообщить("ИмяБД не определено", Стр);
Конец;
Конец;
Конец;
Конец;