Изменяем заголовок 1С. Для удобства (разработки) или защиты "от дурака" =)

Опубликовал Александр Гуляев (gavrikprog) в раздел Программирование - Практика программирования

На работе бывают ситуации, когда ты реально не знаешь, в какой базе работаешь.
Где то вроде одна рабочая открыта, возможно еще одна рабочая открыта и тестовые точно есть.
С опытом приходит и каждый раз чтоб не ошибиться заходишь в Справка- О программе.
Даже когда хочешь сразу тестовые данные забить, раздражает немного =)

Так вот - надоело.

Да и защита от дурака это неплохая, когда был помоложе - пару раз на базе живой неправильные обработки запускал =)
Плюсы такого подхода, нам не надо ничего контролировать и переименовывать, мы просто делаем копию и работаем.

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

У ярлыка запуска дополнительный параметр /ExecuteD:\zapusk.epf

Процедура ПриОткрытии()   

  //+Gavrikprog 24102011
   
Если Метаданные.НайтиПоПолномуИмени("Константа.ЗаголовокСистемы")<> Неопределено  Тогда
       
ЗаголовокСистемы = Константы.ЗаголовокСистемы.Получить();
        Если 
ЗаголовокСистемы="" Тогда
           
ЗаголовокСистемы=ПолучитьЗаголовокСистемы();
        КонецЕсли;
    Иначе
       
ЗаголовокСистемы=ПолучитьЗаголовокСистемы();
    КонецЕсли;
   
//-Gavrikprog 24102011
    СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
   
СтрокаСоединения = СтрЗаменить(СтрокаСоединения, ";", Символы.ПС);

    Если
абОпределитьЭтаИнформационнаяБазаФайловая()  Тогда
       
Стр2 = СтрПолучитьСтроку(СтрокаСоединения, 1);
    Иначе
       
Стр1 = СтрПолучитьСтроку(СтрокаСоединения, 1);
       
Стр2 = СтрПолучитьСтроку(СтрокаСоединения, 2);
    КонецЕсли;
   
ЗаголовокСистемы=Строка(ЗаголовокСистемы)+" (" +Строка(Стр2)+")";
   

   
Если НЕ Пустаястрока(ЗаголовокСистемы) Тогда
       
УстановитьЗаголовокСистемы(ЗаголовокСистемы);
    КонецЕсли;

   
Закрыть();

КонецПроцедуры


Функция
абОпределитьЭтаИнформационнаяБазаФайловая(СтрокаСоединенияСБД = "") Экспорт

   
СтрокаСоединенияСБД = ?(ПустаяСтрока(СтрокаСоединенияСБД), СтрокаСоединенияИнформационнойБазы(), СтрокаСоединенияСБД);

   
// в зависимости от того файловый это вариант БД или нет немного по-разному путь в БД формируется
   
ПозицияПоиска = Найти(Врег(СтрокаСоединенияСБД), "FILE=");

    Возврат
ПозицияПоиска = 1;

КонецФункции

//Дополнительная информация!!!

//Изменено: 24.10.2011 Поддерживаются управляемые формы

//Изменено: 26.10.2011 чтоб обработка отрабатывала при запуске отладки из конфигуратора надо ее прописать Дополнительные параметры
//запуска
при добавлении/изменении базы. так
/ExecuteD:\zapusk.epf
//Но мне не мешает. Приспособился уже.
//Если же добавить просто параметром дополнительным у ярлыка запуска, то будет работать, если запускаем просто 1С Предприятие, при
//отладке обработка отрабатывать не будет.

 


Иполнитель: 2012 г. www.rt-finance.ru

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

Наименование Файл Версия Размер
zapusk.epf
.epf 8,75Kb
17.02.12
82
.epf 8,75Kb 82 Скачать

См. также

Комментарии
1. Иван Булычев (flybread) 1 22.10.11 10:04 Сейчас в теме
А чем стандартная обработка "Настройка программы" не подходит?
Указал поле "Заголовок программы" 1 раз и постоянно будет отображаться. И в cfg ничего править не надо.
2. Александр Гуляев (gavrikprog) 104 22.10.11 11:26 Сейчас в теме
я очень часто делаю копии, разрабатываю всегда на актуальной копии.
А при таком режиме работы уже влом каждый раз делать лишние движения.
Как и у всех впрочем.
Чтоб что-то работало - оно должно быть автоматическим.

Для такого ответа в теле публикации ответ уже был дан.
Плюсы такого подхода, нам не надо ничего контролировать и переименовывать, мы просто делаем копию и работаем.

cfg необязательно править, есть параметр запуска- по-быстрому

а так всегда есть недовольные любым фишкам =).

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

Это может иногда не допустить необдуманных действий ... ИНОГДА
3. Александр Медведев (anig99) 2500 22.10.11 20:16 Сейчас в теме
Ни о чём... Тем более, что в типовых есть механизм заголовка, а в старых вообще заголовок периодически возвращается к стандартным.
4. Александр Гуляев (gavrikprog) 104 23.10.11 09:56 Сейчас в теме
МЕХАНИЗМ ЗАГОЛОВКА(где надо каждый раз менять руками) - НЕ БУДЕТ ИСПОЛЬЗОВАТЬ БОЛЬШИНСТВО ПРОГРАММИСТОВ, ПОТОМУ ЧТО ЭТО РУЧНОЙ ТРУД =)
Я уверен в этом.
5. Александр Гуляев (gavrikprog) 104 23.10.11 09:57 Сейчас в теме
Фишка как раз в том, что это все автоматически.

и название базы в SQL , и путь к файловой в заголовке.
6. Александр Гуляев (gavrikprog) 104 23.10.11 10:24 Сейчас в теме
воспринимается критика только от тех, кто успел поработать с этим механизмом.
7. Александр Медведев (anig99) 2500 23.10.11 10:28 Сейчас в теме
(5) Минус не за то, что я не понял - я всё понял. И не за то, что МНЕ это не надо. А за то, что нафига изобретать велосипед? практическая польза минимальна. пусть нас другие рассудят.
мой минус против 4 плюсов. Или Ваш минус против 60 плюсов.
8. Ярослав Радкевич (WKBAPKA) 200 23.10.11 12:38 Сейчас в теме
нормальная фича... мне понравилось... ничего сложного, но когда ты работаешь с несколькими базами разных клиентов, такая фича очень даже может быть полезна... больше всего времени и сил тратишь на мелочи, когда переключаешься между базами, и еще приходиться смотреть, что бы ничего не перепутать...
от меня плюс
9. Александр Медведев (anig99) 2500 23.10.11 12:59 Сейчас в теме
(8) и чем типовой механизм не угодил? Нормально нужно работу организовывать, чтобы не уходило время на мелочи.
(6) извини мил человек, но тут даже пользоваться не надо, чтобы понять, что это велосипед. Неубедительно. Даже если работаешь с 20 базами. Предлагаю другой вариант. Поинтереснее. К пути базы добавлять её псевдоним и имя пользователя. И вторую обработку, которая выводила бы имя компьютера и ip-адрес. Вот с такого побольше плюсов соберешь
10. Ярослав Радкевич (WKBAPKA) 200 23.10.11 13:28 Сейчас в теме
anig99 пишет:

(8) и чем типовой механизм не угодил? Нормально нужно работу организовывать, чтобы не уходило время на мелочи.

(6) извини мил человек, но тут даже пользоваться не надо, чтобы понять, что это велосипед. Неубедительно. Даже если работаешь с 20 базами. Предлагаю другой вариант. Поинтереснее. К пути базы добавлять её псевдоним и имя пользователя. И вторую обработку, которая выводила бы имя компьютера и ip-адрес. Вот с такого побольше плюсов соберешь


абсолютно не согласен... в смысле, типовый механизм? имеется ввиду возможность установить заголовок системы?
если я буду на клиентских базах устанавливать заголовки системы - это будет ололо
в любом случае, это более интеллектуальная публикация, чем эта: http://infostart.ru/public/92075/?PAGEN_1=1#comm480676
11. Ярослав Радкевич (WKBAPKA) 200 23.10.11 13:29 Сейчас в теме
тут еще есть публикация, как итоги отключить...
12. Александр Гуляев (gavrikprog) 104 23.10.11 15:54 Сейчас в теме
можно еще в конфигураторе синоним конфигурации менять (к сожалению тут как сделать автоматически
, я не знаю)...
Тогда и у конфигуратора видно, что неосновная база.
Ориентироваться всписке открытых баз Конфигуратором тоже чуть проще.
13. Александр Медведев (anig99) 2500 23.10.11 16:04 Сейчас в теме
(12) вот-вот. При разработке легче спутать конфигураторы, а поменяв синоним меняется и заголовок. Поэтому и считаю, что в таком виде бесполезно. Вот если бы выводить информацию, о которой говорил выше, то было бы на +
14. Александр Гуляев (gavrikprog) 104 23.10.11 16:51 Сейчас в теме
(13)заголовок при смене синонима не меняется. я проверил. (УПП 1.3)
Берется из константы, если задана константа.
Так что насчет бесполезности - не был и не буду согласен.

Очень часто забиваю тестовые данные для проверки, и у меня почти все всегда открыто в 2-х экземплярах.
Мне помогает быстрее ориентироваться, у тебя от зубов отскакивает, где лежит база с кот. ты работаешь.

А смена синонима - помощь только для конфигуратора.

Процедура ПриНачалеРаботыСистемы()
ЗаголовокСистемы = Константы.ЗаголовокСистемы.Получить();
Если НЕ Пустаястрока(ЗаголовокСистемы) Тогда
УстановитьЗаголовокСистемы(ЗаголовокСистемы);
КонецЕсли
15. tslk tslk (tslk) 21 24.10.11 05:03 Сейчас в теме
Подскажите что нужно прописать в 1CEStart.cfg чтобы запускалась обработка при начале работы системы.
16. Александр Гуляев (gavrikprog) 104 24.10.11 06:03 Сейчас в теме
у ярлык запуска 1С добавляем параметр /ExecuteD:\zapusk.epf
"C:\Program Files\1cv82\common\1cestart.exe" /ExecuteD:\zapusk.epf
17. Александр Гуляев (gavrikprog) 104 24.10.11 12:40 Сейчас в теме
anig99 пишет:
Предлагаю другой вариант. Поинтереснее. К пути базы добавлять её псевдоним и имя пользователя. И вторую обработку, которая выводила бы имя компьютера и ip-адрес. Вот с такого побольше плюсов соберешь

имя пользователя - это тоже интересно, из разряда улучшений. Взял на вооружение.
Тоже ориентироваться иногда поможет.

От остального не понял толку.
18. Inkeeper Inkeeper (Inkeeper) 24.10.11 15:35 Сейчас в теме
занятная обработка, действительно, когда работаешь с дофига базами одновременно - помогает.
19. Александр Гуляев (gavrikprog) 104 24.10.11 20:24 Сейчас в теме
заметил один косяк, если отладку запускаем из конфигуратора - обработка не отрабатывает, если мы ее параметром Дополнительные параметры запуска у базы прописывать не будем.
Но мне не мешает, могу и через файл - открыть когда надо подопнуть

При простом запуске 1С предприятие как в (16) все работает
20. Александр Медведев (anig99) 2500 24.10.11 21:50 Сейчас в теме
(17) остальное - это уже в процессе эксплуатации. Чтобы по радмину подключаться или отладчиком не диктуя пользователям, где искать ip и имя компьютера
21. Алексей Захаров (almas) 185 26.10.11 15:11 Сейчас в теме
Зер гут. Примерно такую-же фичу используем уже порядка 7 лет. Помогает неплохо.
Пользователь направляет "принскрин" ошибки в службу поддержки и сразу видно в какой базе работает, на каком сервере, под каким логином работает работник.(У нас порядка 10 баз 1с, при направлении письма об "ошибке" сильно не задумываются).

Еще на базе проверки "что за база" сделали доработку - отрубать обмены данными и проч... т.к. были случаи, когда копию разворачиваешь, а регл задания отключить забыл или отключать нельзя по некоторым причинам..
22. Александр Гуляев (gavrikprog) 104 27.10.11 11:17 Сейчас в теме
Обработка для управляемых форм, есть ошибка СтрокаСоединенияИнформационнойБазы() исполняется на сервере.
Следовательно при клиент-серверной архитектуре будет врать немного.
Пока изменять нет времени
23. denis leonov (curys) 27.10.11 11:39 Сейчас в теме
24. Владимир (ARL) 245 27.10.11 18:24 Сейчас в теме
Проверил обработку - мне понравилась. "Лишняя защита" - никогда лишней не бывает. Про "велосипед" - я бы не обращал внимание, типовые механизмы есть не во всех конфигурациях. Да и эти механизмы - несколько не то. Надо еще помнить, что надо поменять заголовок.
25. Fomix (fomix) 22 28.10.11 10:31 Сейчас в теме
Автору спасибо за обработку! Брюзгам, использующим "типа" встроенный механизм, могу сказать одно: 1. не все им пользуются и не везде он реализован, 2. для работы на отладочной базе весьма полезен!
26. Сергей NSerget (NSerget) 4 29.08.12 14:14 Сейчас в теме
По моему проще было бы делать так:
ЗаголовокСистемы(КаталогИБ());

Или сравнивать

Если Каталогиб() = "D:\Base" Тогда
ЗаголовокСистемы("Оригинал");
ИначеЕсли Каталогиб() = "D:\Base2" Тогда
ЗаголовокСистемы("Копия2");
КонецЕсли

*Пример образный и на 1с7, но смысл думаю Вы поняли
27. Евгений Сосна (pumbaE) 521 29.08.12 14:20 Сейчас в теме
Для конфигуратора дайте заголовок!
TashaMesh; AlexanderKai; +2 Ответить
28. Роман (Raminus) 29.08.12 14:48 Сейчас в теме
Во времена 77 и 80 тема была очень актуальна :) Сейчас все же не очень, но может кому и будет полезна.
29. НЕ ЗНАЮ (NE_ZNAIY) 06.09.12 15:48 Сейчас в теме
Отлично!!! Всё работает!
Как раз надо.
Если в бухгалтерии или зарплате можно стандартными средствами прописать (для пользователя), то в торговле, если несколько баз ведешь одновременно точно весь упутаешься без "Заголовка"
30. Александр Топольский (AlexanderKai) 06.02.13 15:00 Сейчас в теме
Для конфигуратора есть такая же штука?