gifts2017

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

*Пример образный и на 1с7, но смысл думаю Вы поняли
27. Евгений Сосна (pumbaE) 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
Для конфигуратора есть такая же штука?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа