Подмена заголовка 1С

08.12.18

Разработка - Работа с интерфейсом

Подстановка имени базы данных в начало заголовка окон с программой 1С (конфигуратор и предприятие). Удобно при одновременной работе с большим количеством баз данных. Скрипт интересен будет как для программистов, так и для администраторов баз данных. Заголовок можно менять для любой программы, не только для 1С, для этого требуется немного исправить скрипт. Программисту 1С не составит труда переделать скрипт.

Когда ведется разработка с несколькими базами, устаешь кликать на значок "Показать информацию о программе". Предлагаю небольшой скрипт для удобства. Скрипт уже включен в поставку программы Faster, его надо только активировать.

Программу можно скачать здесь: Многофункциональный ускоритель Faster

Для тех кто не пользуется автоподстановкой в программе - отключите "Перехват клавиш и мыши" (см. рис. 2).

Вот сам скрипт (его можно переписать под себя, как вам удобно, язык похож на 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") Тогда
            // Сообщить(Стр);
            ИмяБД            = "";
            ПрефиксИмени     = "";
            ПараметрыКоманды = Строки.Разделить(Стр, " ", , """");
            Для Параметр Из ПараметрыКоманды Цикл
                Если (Строки.Подстрока(Параметр, 1, 2)="/F") Тогда // файловая база
                    ИмяБД = Параметр; ПрефиксИмени = ".";
                    Прервать;
                Конец;
                Если (Строки.Подстрока(Параметр, 1, 2)="/S") Тогда // серверная база
                    ИмяБД = Параметр; ПрефиксИмени = ":";
                    Прервать;
                Конец;
                Если (Строки.Подстрока(Параметр, 1, 7)="/IBName") Тогда // имя базы в списке баз стартера 1С
                    ИмяБД = Строки.Заменить(Параметр, "IBName", ""); ПрефиксИмени = "·";
                    Прервать;
                Конец;
            Конец;
            Если (ИмяБД<>"") Тогда
                Поз = Строки.Найти(ИмяБД, Символы.ОС, 1, 1);
                Если (Поз=0) Тогда Поз = Строки.Найти(ИмяБД, "/", 1, 1); Конец;
                ИмяБД          = Строки.Подстрока(ИмяБД, Поз+1, Строки.Длина(Параметр)-Поз);
                ИмяБД          = Строки.Заменить(ИмяБД,  """",  "");
                ЗаголовокНовый = ПрефиксИмени            +      ИмяБД + " - "+ ЗаголовокБыл;
                // Сообщить(ЗаголовокНовый);
                Окна.Заголовок(ИдОкна, ЗаголовокНовый);
            Иначе
                Сообщить("ИмяБД не определено", Стр);
            Конец;
        Конец;
    Конец;
Конец;

 

Windows Администрирование Программирование Утилиты Настройки Удобные доработки.

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62998    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18869    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10239    7    7    

10

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14774    YA_418728146    7    

166

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3593    57    progmaster    8    

4

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    5792    kalyaka    6    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 2712 10.12.18 00:17 Сейчас в теме
А просто скрипт, который будет работать в виндах без дополнительных "окружений" - не...?
2. moolex 915 10.12.18 07:26 Сейчас в теме
(1) Без дополнительных окружений - надо писать на английском...
А я программист 1С - я привык думать и программировать на русском.
Надо любить свой язык, спасибо 1С за это...
Да и не было бы 1С и этого сайта, если бы компания 1С выбрала основной язык программирования на английском...
Я знаю много языков программирования и занимаюсь кодом 20 лет, но писать код и думать на родном языке оказалось проще...
Это факт.
dmitrydemenew; GetNight; DarkUser; K_Ilia; +4 1 Ответить
3. kuzyara 2091 04.01.19 09:03 Сейчас в теме
4. moolex 915 04.01.19 10:22 Сейчас в теме
(3) только конфигуратор?
5. slawa 26 23.01.19 16:21 Сейчас в теме
Пишет ошибку: "Ошибка при вызове Компьютеры.Запрос - Доступ запрещен"

WMI запущен и отвечает
PS C:\Users\Slawa> get-wmiobject Win32_OperatingSystem
SystemDirectory : C:\Windows\system32
Organization :
BuildNumber : 14393
RegisteredUser :
SerialNumber : 00378-20000-00003-AA087
Version : 10.0.14393

Пробовал запустить faster через "Запуск от имени администратора" - не помогло

Windows 10 х64
6. moolex 915 24.01.19 22:51 Сейчас в теме
Вероятно исправил, обновите программу, и проверьте...
7. slawa 26 25.01.19 01:04 Сейчас в теме
Ошибка ушла
Но выявилась новая:
Пишет:
ИмяБД не определено - CommandLine="C:\Program Files (x86)\1cv8\8.3.13.1644\bin\1cv8.exe" DESIGNER /IBName"ХФ ДВИ ОПТ SQL" /ConfigurationRepositoryF "D:\DataBase\ХранилищеКонфигураций\ХФБухОпт30" /ConfigurationRepositoryN "SlawaWork" ...

Поставил вывод Параметра в цикле "Для Параметр Из ПараметрыКоманды Цикл"
Получил:
Параметр - CommandLine="C:\Program Files (x86)\1cv8\8.3.13.1644\bin\1cv8.exe" DESIGNER /IBName"ХФ ДВИ ОПТ SQL"
Параметр - /ConfigurationRepositoryF
Параметр - "D:\DataBase\ХранилищеКонфигураций\ХФБухОпт30" /ConfigurationRepositoryN
Параметр - "SlawaWork" /ConfigurationRepositoryP
...

Похоже ПараметрыКоманды = Строки.Разделить(Стр, " ", , """"); работает неверно
8. moolex 915 26.01.19 14:06 Сейчас в теме
(7) Я выполнил простой скрипт в Faster на основе ваших данных, все работает корректно, разделяет на строки правильно:
CommandLine="""C:\Program Files (x86)\1cv8\8.3.13.1644\bin\1cv8.exe"" DESIGNER /IBName""ХФ ДВИ ОПТ SQL"" /ConfigurationRepositoryF ""D:\DataBase\ХранилищеКонфигураций\ХФБухОпт30"" /ConfigurationRepositoryN ""SlawaWork""";
Сообщить(CommandLine);
СписокСтрок = Строки.Разделить(CommandLine," ",,"""");
Для Строка Из СписокСтрок Цикл
	Сообщить(Строка); 
Конец;
9. slawa 26 26.01.19 16:59 Сейчас в теме
CommandLine="CommandLine=""C:\Program Files (x86)\1cv8\8.3.13.1644\bin\1cv8.exe"" DESIGNER /IBName""ХФ ДВИ Розн SQL"" /ConfigurationRepositoryF ""D:\DataBase\ХранилищеКонфигураций\ХФБухРозн30"" /ConfigurationRepositoryN ""SlawaWork"" /ConfigurationRepositoryP ""1111"" /AppAutoCheckMode /AppAutoCheckVersion /AppAutoInstallLastVersion+";

такая не работает
10. slawa 26 26.01.19 17:06 Сейчас в теме
вот
Прикрепленные файлы:
12. moolex 915 26.01.19 22:47 Сейчас в теме
(10) На скриншоте видно что перед и после слова DESIGNER не пробел...
скопируйте в буфер данную строку и в Faster (два раза правый Ctrl) можно посмотреть что за символы там (закладка Строки).
А когда вы копируете сюда (в сообщения то они превращаются в пробелы) и все работает...
11. slawa 26 26.01.19 17:16 Сейчас в теме
еще
Прикрепленные файлы:
13. slawa 26 27.01.19 07:37 Сейчас в теме
Там по два пробела до и после
14. moolex 915 27.01.19 09:31 Сейчас в теме
(13) сделайте пока замену двух пробеллов на один:
ПараметрыКоманды = Строки.Разделить(Строки.Заменить(Стр,"   "," "), " ", , """");

я посмотрю проблему разделения строки при двух пробелах...
15. slawa 26 27.01.19 12:02 Сейчас в теме
Это заработало

А эта строка не работает:
"C:\Program Files (x86)\1cv8\8.3.13.1644\bin\1cv8.exe" DESIGNER /IBConnectionString "File=""D:\ПроектыВрем\_ХФ Розн 3.0.57.10 CFG"";" /AppAutoCheckMode

Добавил в скрипт:
Если (Строки.Подстрока(Параметр, 2, 5)="File=") Тогда // файловая база
ИмяБД = Параметр; ПрефиксИмени = ".";
Прервать;
Конец;
Не помогло

Перед добавленным фрагментом вывел:
Сообщить(Строки.Подстрока(Параметр, 2, 5));
Сообщить((Строки.Подстрока(Параметр, 2, 5)="File="));
Получил:
File=
0

Не пойму в чем проблема
16. moolex 915 27.01.19 12:16 Сейчас в теме
(15)
"File=""D:\ПроектыВрем\_ХФ Розн 3.0.57.10 CFG""

Здесь два раза в двойные кавычки обернута строка, зачем?
17. slawa 26 27.01.19 12:40 Сейчас в теме
Я не знаю
Пользуюсь для запуска стартером https://infostart.ru/public/274485/
18. moolex 915 28.01.19 00:51 Сейчас в теме
(17)
Исправлено, обновите программу, и проверьте...
19. slawa 26 28.01.19 03:49 Сейчас в теме
20. vkozak 28.01.19 11:20 Сейчас в теме
Зачем так сложно?
В модуле управляемого приложения, в процедуре "При начале работы системы".
Читаем имя рабочей базы и меняем заголовок.
ТекЗаголовок=ПолучитьЗаголовокКлиентскогоПриложения();
СтрокаДобавления=ВРег(СтрокаСоединенияИнформационнойБазы());
УстановитьЗаголовокКлиентскогоПриложения(СтрокаДобавления+ТекЗаголовок);

Собственно и всех проблем!
21. moolex 915 28.01.19 14:45 Сейчас в теме
(20) А если конфигураций разных много и все на поставке...? А как вашим способом поменять в конфигураторе заголовок?
22. vkozak 28.01.19 14:59 Сейчас в теме
Зачем менять заголовок в конфигураторе не понятно.
"На поставке", это что значит? Не снято с сопровождения?
Так используйте расширение конфигурации.
23. moolex 915 28.01.19 15:24 Сейчас в теме
(22) Если открыто 10 конфигураторов, то это просто удобно...
24. slawa 26 06.02.19 14:33 Сейчас в теме
Не меняется заголовок самого окна в режиме Предприятие, хотя в скриншотах панели задач заголовок изменён.
Наверное сама 1С-ка мешает
Нельзя ли это исправить?
Видеть что за база запущена не лишне было-бы.
Прикрепленные файлы:
25. v.l. 435 25.04.19 10:26 Сейчас в теме
Как быть линуксовым клиентам?
решение не универсальное.
26. slawa 26 25.04.19 14:41 Сейчас в теме
да уж :)
каждый делает под себя и делится тем, что сделал
и за это ему огромное спасибо

ну нету у автора линукса :)
Оставьте свое сообщение