1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | // корректируем заголовок во всех запущенных 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, Строки.Длина(Параметр)-Поз); ИмяБД = Строки.Заменить(ИмяБД, "" "" , "" ); ЗаголовокНовый = ПрефиксИмени + ИмяБД + " - " + ЗаголовокБыл; // Сообщить(ЗаголовокНовый); Окна.Заголовок(ИдОкна, ЗаголовокНовый); Иначе Сообщить( "ИмяБД не определено" , Стр); Конец; Конец; Конец; Конец; |