Подмена заголовка 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 Платные (руб)

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

6000 руб.

16.01.2015    61796    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54402    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16697    21    4    

35

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

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

2 стартмани

22.08.2023    2071    21    progmaster    7    

3

Модель состояния для MVC

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

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

1 стартмани

05.07.2022    3665    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12080    1    5    

10

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

Работа с интерфейсом Платформа 1С v8.3 Платные (руб)

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

6000 руб.

18.01.2022    8810    1    2    

6
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3119 10.12.18 00:17 Сейчас в теме
А просто скрипт, который будет работать в виндах без дополнительных "окружений" - не...?
2. moolex 906 10.12.18 07:26 Сейчас в теме
(1) Без дополнительных окружений - надо писать на английском...
А я программист 1С - я привык думать и программировать на русском.
Надо любить свой язык, спасибо 1С за это...
Да и не было бы 1С и этого сайта, если бы компания 1С выбрала основной язык программирования на английском...
Я знаю много языков программирования и занимаюсь кодом 20 лет, но писать код и думать на родном языке оказалось проще...
Это факт.
dmitrydemenew; GetNight; DarkUser; K_Ilia; +4 1 Ответить
3. kuzyara 1900 04.01.19 09:03 Сейчас в теме
4. moolex 906 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 906 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 906 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 906 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 906 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 906 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 906 28.01.19 00:51 Сейчас в теме
(17)
Исправлено, обновите программу, и проверьте...
19. slawa 26 28.01.19 03:49 Сейчас в теме
20. vkozak 28.01.19 11:20 Сейчас в теме
Зачем так сложно?
В модуле управляемого приложения, в процедуре "При начале работы системы".
Читаем имя рабочей базы и меняем заголовок.
ТекЗаголовок=ПолучитьЗаголовокКлиентскогоПриложения();
СтрокаДобавления=ВРег(СтрокаСоединенияИнформационнойБазы());
УстановитьЗаголовокКлиентскогоПриложения(СтрокаДобавления+ТекЗаголовок);

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

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