gifts2017

Изменение заголовков окон 1С8 в режиме конфигуратора и предприятия

Опубликовал Сергей Муравьёв (murenysh) в раздел Программирование - Инструментарий

Программа для изменения заголовков окон 1С8 в режиме конфигуратора и предприятия. Заголовки берутся из параметров запуска программы.

Создано на основе публикации http://infostart.ru/public/394205/   Сделано через скрипт на AutoIt

Отличия - меняет заголовки не только у 1С8 в режиме Конфигуратора, но и в режиме Предприятие. Работает с учебной версией 1С8. Ну и не дописывает длинного Тестовая копия и т.д. Заголовок должен быть коротким, чтобы его целиком можно было прочитать в панели задач. Если он длинный, то полностью вы его уже не увидите, что не решает задачу. Нужно поместить в папку Автозагрузка, висит резидентом в памяти. Полезна не только программисту, но и пользователям, работающим с несколькими базами одновременно.

Есть два варианта программы: только для конфигуратора и для обоих режимов 1С8. 

Режим только для конфигуратора необходим, в случае если для режима Предприятие вы хотите настроить особый заголовок, в зависимости от гибких условий. Делается это например так:

Процедура ПриНачалеРаботыСистемы()
	
     //<…> допишите в конец модуля
	ТекстОкна = "Бюджет";  //Впишите свой заголовок
	Если ВРег(ПутьКИнформационнойБазе()) <> "BUDGET"  Тогда  //имя вашей базы на сервере
		ТекстОкна = ТекстОкна + " КОПИЯ";
	КонецЕсли;
	УстановитьЗаголовокКлиентскогоПриложения(ТекстОкна);
	
КонецПроцедуры



Функция ПутьКИнформационнойБазе(ПризнакФайловогоРежима = Неопределено, Знач ПортКластераСерверов = 0) Экспорт
   СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
   ПозицияПоиска = Найти(Врег(СтрокаСоединения), "FILE=");
   Если ПозицияПоиска = 1 Тогда// файловая ИБ

     ПутьКИБ = Сред(СтрокаСоединения, 6, СтрДлина(СтрокаСоединения) - 6);
     ПризнакФайловогоРежима = Истина;
   Иначе
     ПризнакФайловогоРежима = Ложь;
     ПозицияПоиска = Найти(Врег(СтрокаСоединения), "SRVR=");
     Если НЕ (ПозицияПоиска = 1) Тогда
       Возврат Неопределено;
     КонецЕсли;
     ПозицияТочкиСЗапятой = Найти(СтрокаСоединения, ";");
     НачальнаяПозицияКопирования = 6 + 1;
     КонечнаяПозицияКопирования = ПозицияТочкиСЗапятой - 2; 
     ИмяСервера = Сред(СтрокаСоединения, НачальнаяПозицияКопирования, КонечнаяПозицияКопирования - НачальнаяПозицияКопирования + 1);
     СтрокаСоединения = Сред(СтрокаСоединения, ПозицияТочкиСЗапятой + 1);
    // позиция имени сервера

     ПозицияПоиска = Найти(Врег(СтрокаСоединения), "REF=");
     Если НЕ (ПозицияПоиска = 1) Тогда
       Возврат Неопределено;
     КонецЕсли;
     НачальнаяПозицияКопирования = 6;
     ПозицияТочкиСЗапятой = Найти(СтрокаСоединения, ";");
     КонечнаяПозицияКопирования = ПозицияТочкиСЗапятой - 2;
     ИмяИБНаСервере = Сред(СтрокаСоединения, НачальнаяПозицияКопирования, КонечнаяПозицияКопирования - НачальнаяПозицияКопирования + 1);
     ПутьКИБ = """" + ИмяСервера + "\" + ИмяИБНаСервере + """";
   КонецЕсли;
   //Возврат ПутьКИБ;
   Возврат ИмяИБНаСервере;
 КонецФункции

В режиме управляемого приложения заголовок меняется только в панели задач, в шапке окна при этом остается стандартный заголовок. Хотя по моему мнению, панели задач достаточно для идентификации открытой базы, тем не менее, вы можете пользуясь кодом выше, изменить и такой заголовок.

Данная утилита не противоречит лицензионному соглашению с 1С, т.к. не вносит какие-либо изменения в код программного продукта, содержимое баз данных и других наборов данных, в которых система хранит информацию.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
1С8 Заголовки v.2.1.exe
.exe 943,50Kb
12.10.16
5
.exe 2.1 943,50Kb 5 Скачать
1С8 Конфигуратор Заголовки v.2.1.exe
.exe 943,50Kb
12.10.16
2
.exe 2.1 943,50Kb 2 Скачать
1С8 Заголовки v.2.1
.au3 2,79Kb
12.10.16
2
.au3 2.1 2,79Kb 2 Скачать
1С8 Заголовки только конфигуратора v.2.1
.au3 2,19Kb
12.10.16
0
.au3 2.1 2,19Kb 0 Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Александр Полтава (Патриот) 10.10.16 13:41
Я не к чему не призываю, цена - это личное дело автора. Но всё же. Для меня 10 см за исходник такого скрипта - это тяжёлая ноша. Вот хотя бы за 5 качну обязательно, ибо штука мне необходимая.
2. Сергей Муравьёв (murenysh) 10.10.16 13:58
Согласен насчет цены, была установлена в порядке эксперимента. У оригинальной статьи тоже не смог скачать исходник, половину выдернул из комментариев, половину сам полдня допиливал со всякими RTFM.
3. Сергей Муравьёв (murenysh) 10.10.16 14:33
(1) Патриот, уменьшил цену, но поделитесь идеями, что еще полезного можно изменить в данной утилите?
4. Александр Полтава (Патриот) 10.10.16 15:47
(3) murenysh, качнул пока экзешник, чтобы проверить. Работает только для обычных форм. Конфигуратор всегда на обычных открывается. А вот предприятие у большинства уже давно на управляемых формах работает. Доработаете?
Я похожим делом занимался на языке AHK. Там, чтобы брать окна 1С я смотрел на имя класса. Возможно вам этот шаблон кода пригодится:
OpenFileCtrl(x)
{

;Сочетание клавиш будет работать только в окнах 1С, для этого получим ИД класса окна

WinGet, active_id, ID, A
WinGetClass, this_class, ahk_id %active_id%

;ОБЫЧНЫЕ ФОРМЫ

if (this_class = "V8TopLevelFrame")
{
;действия для обычных форм
}

;УПРАВЛЯЕМЫЕ ФОРМЫ

if (this_class = "V8TopLevelFrameSDI")
{
;действия для управляемых форм
}


}
...Показать Скрыть
5. Сергей Муравьёв (murenysh) 10.10.16 16:14
(4) Патриот, на скриншоте публикации половина форм на управляемых формах, половина на обычных. То есть, у меня работает. Там действительно разные имена классов. Давайте я вам пришлю повторно exe, вдруг я с версиями что-то напутал. Если не сработает, то пришлите, пожалуйста, скриншот.
6. Сергей Муравьёв (murenysh) 10.10.16 16:49
Все, понял, в чем дело - вы скачали файл, который меняет заголовки только конфигуратора.
7. Александр Полтава (Патриот) 10.10.16 16:52
(5) murenysh, смысла в скрине не много - просто заголовок окна остаётся прежним. А вот ОС скажу - винда 7 проф.
(6)murenysh, я качал 1С8 Заголовки.exe. Почему счётчик не учёл моё скачивание - я хз. И я ж говорю - для ОФ всё норм, в том числе и для предприятия.
8. Александр Полтава (Патриот) 10.10.16 17:05
По поводу идей по улучшению.
Заголовок должен быть коротким, чтобы его целиком можно было прочитать в панели задач.

Согласен отчасти. На панель задач должна вмещаться самая важная часть заголовка - т.е. имя базы. Но развернув окно, я бы очень хотел видеть и весь заголовок, что особо важно для конфигуратора. В заголовке окна конфигуратора пишется имя открытого окна объекта, что бесспорно удобно и к чему все привыкли. Поэтому я бы не затирал всё предыдущее имя, а просто к имеющемуся в начало добавлял бы название базы. Например так: "ИмяБазы *** ПредыдущийЗаголовок". А вы сейчас трёте заголовок и вместо него пишете имя базы.
9. Сергей Муравьёв (murenysh) 10.10.16 23:02
Согласен, внес предложение Александра Полтавы по добавлению имени открытой формы в конфигураторе. Баг с заголовком в режиме предприятия на УФ был при открытии в режиме отладки, исправил.
Изменение только пока в файле 1С8 Заголовки.exe (для обоих режимов Предприятие и Конфигуратор)
В 1С8 Заголовки конфигуратор.exe (только для режима Конфигуратор) заголовок пока состоит только из имени базы, исправлю позже.
10. Александр Полтава (Патриот) 11.10.16 12:00
(9) murenysh,
внес предложение Александра Полтавы по добавлению имени открытой формы в конфигураторе
спасибо, проверил - работает
11. Сергей Муравьёв (murenysh) 12.10.16 23:37
Оптимизировал код обеих утилит. Теперь они не отбирают ресурсы процессора, код стал короче и понятнее.
Внес изменение по добавлению заголовка полностью развернутой формы объекта в конфигураторе также и во второй файл.
Патриот; +1 Ответить
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа