gifts2017

Цветовая дифференциация одинаковых конфигураций

Опубликовал Michael Cher (mmch) в раздел Программирование - Работа с интерфейсом

Простой способ цветового различия двух разных БД с одинаковой конфигурацией

Когда у общества нет цветовой дифференциации штанов, то нет цели!

Может быть полезным если в организации есть две БД, например управленческая и бухгалтерская, с которыми одновременно работает один пользователь, и у него на рабочем столе запущено 2 копии 1с. Чтобы минимизировать человеческий фактор и снизить возможные ошибки ввода данных можно раскрасить эти приложения разными цветами. (Разных заголовков форм бывает не достаточно)

 

Настройка 

  1. Открываем конфигуратор: 
  2. в Конфигураторе открываем ветку Стили и копируем Основной стиль
  3. Открывает скопированный элемент стиля и в нем меняем ФОН ФОРМЫ И ФОН КНОПКИ на отличный от типового
  4. Открываем модуль обычного приложения
  5. В  конец процедуры 

    Процедура ПередНачаломРаботыСистемы(Отказ) добавляем код:


    	#Если Клиент Тогда
    	//- MMЧ - раскрасим базу бухгалтерии
    	ИмяБазы = нрег(СтрокаСоединенияИнформационнойБазы());  
    	Если ИмяБазы = "srvr=""server"";ref=""bd_2"";" Тогда  
    		ГлавныйСтиль = БиблиотекаСтилей.Получить(1); 
    	КонецЕсли;
    	#КонецЕсли
    

    Теперь при запуске второй базы она будет раскрашена в другие цвета и визуально отличаться.



См. также

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

Комментарии

1. Василий Борисов (EliasShy) 05.06.13 05:53
У меня где-то разработка на net есть - разукрашивает заголовок окна 1c в разные цвета. Если надо - поделюсь.
Но она не сильно прижилась - поэтому разработка дальнейшая заброшена.
2. Александр Крынецкий (echo77) 05.06.13 06:42
Ловко. Заставляет вспомнить про стили.

Прочитав заголовок, подумал что будет что-то про малиновые штаны :-)
3. Иванов Дмитрий (mdmdvd) 05.06.13 08:09
В качестве некоего аналога можно предложить следующий код. Чтобы ориентироваться по заголовку.
СтрокаСоединения = СтрокаСоединенияИнформационнойБазы();
НомерСимволаНазванияБД = Найти(СтрокаСоединения,"Ref");
Если НомерСимволаНазванияБД = Неопределено или НомерСимволаНазванияБД = 0 Тогда
Заголовок = Сред(СтрокаСоединения,7,СтрДлина(СтрокаСоединения)-8);
Иначе
Заголовок = Прав(СтрокаСоединения,СтрДлина(СтрокаСоединения)-НомерСимволаНазванияБД-4);
Заголовок = Лев(Заголовок,СтрДлина(Заголовок)-2);
КонецЕсли;
УстановитьЗаголовокПриложения(" " +Заголовок + " " + ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
4. Сергей Кудашкин (sikuda) 05.06.13 08:55
Про штаны и малиновая тема. Класс!!!
5. anry mc (AnryMc) 05.06.13 09:07
(2) echo77,

Про штаны была ещё популярная фраза:

"Награждается красными пролетарскими шароварами" (х/ф "Офицеры")

Ефрейтор Туркестанских линейных батальонов, Русской армии, в гимнастёрке и в красных шароварах.
http://commons.wikimedia.org/wiki/File:Туркестанский_солдат_в_зимней_форме.jpg?uselang=ru

Так что у Г. Н. Данелии - было откуда брать.
6. Сергѣй Батанов (baton_pk) 05.06.13 09:10
Раз уж менять конфигурацию, то делать по-хорошему, без этих ваших
Если ИмяБазы = "srvr=""server"";ref=""bd_2"";" Тогда  


У нас в распределённой базе в план обмена добавлен строковый реквизит "Стиль", можно добавлять константы. Привязываться к строке соединения - последнее дело, которое можно использовать разве что для того, чтобы отличить боевую базу от бэкапов.
SatanClaws; MRAK; +2 Ответить 1
7. Сергей Маслов (LexSeIch) 05.06.13 09:12
Мир этому дому!
Интересный прием. Взял на вооружение. Плюс.
8. Michael Cher (mmch) 05.06.13 09:56
Константу решил не делать, т.к. стиль добавлен всего один.
За программулину на NET спасибо, но откажусь... не люблю я все это =)
9. Migel M. Volos (Cartman) 05.06.13 10:07
Честно говоря, на скриншоте отличий не увидел.
10. Сергей Куликов (ksvd) 05.06.13 10:13
Хорошая идея. Для отличия рабочей базы и копии, иногда открыты одновременно
11. mikhailovaew (mikhailovaew) 05.06.13 10:29
Автор предложил оригинальную идею, но правка конфигурации ради визуальных отличий - зло, ИМХО.
У нас есть тестовая и рабочая базы ЗУП, даже бухгалтера приучились смотреть на заголовок программы))))
12. Евгений (Walker.pro) 05.06.13 10:39
(6) baton_pk,
И какие же еще есть способы реализации этой задачи? Чтобы сразу после восстановления бэкапа стиль изменялся автоматически?
13. Michael Cher (mmch) 05.06.13 10:45
Конфигурация все равно правится, для этого мы и работаем =)
Другое дело, какие затраты нужны на обновление, а это другая тема.
14. Алексей Новиков (Новиков) 05.06.13 10:49
Заголовок системы - это серебренная пуля в этом случае.

Если смотреть в заголовок ломает, то это уже клинический случай ;)
15. anry mc (AnryMc) 05.06.13 10:59
(14) Новиков,

Нет - клинический случай - когда в комп ставиться три видео карточки, подключается три монитора, на каждом свой участок рабочего стола, свой ярлык запуска своей базы, да ещё "шильдик" на мониторе с названием...
ekaterinaeon; +1 Ответить
16. Евгений Сосна (pumbaE) 05.06.13 11:01
А в 8.3 с общими стилями не поиграешься уже.
17. Сергѣй Батанов (baton_pk) 05.06.13 11:29
(12) Walker.pro,
Чтобы отличать бэкап от боевой в случае, когда у меня была одна база (без распределёнки), то у меня была константа "СтрокаСоединенияСРабочейБазой". Правда, использовалось это не для стилей, а чтобы регламентные задания понимали, с кем работают, но со стилями можно использовать точно так же.
На нынешнем месте работы нет потребности отличать бэкапы от боевых, есть потребность различать узлы распределёнки - в план обмена добавлен реквизит Стиль и через ЭтотУзел() определяется текущий стиль.
18. logdog (logdog) 05.06.13 11:38
Подскажите, а по аналогии, можно сделать выделение помеченных на удаление документов красным, не проведенных - синим?
19. VVV (V_V_V) 05.06.13 12:13
(16) pumbaE, офигеть. А ведь правда, я сразу и внимания не обратил.
Собственно до этой публикации и не заморачивался никогда со стилями, но за державу обидно...
20. Serg Sergeich (nync) 05.06.13 12:17
(14) Новиков, согласен. Буйства красок в бизнес-приложении - моветон.
21. Евгений Сосна (pumbaE) 05.06.13 12:39
(20) nync, отсутствие красок - то же моветон.
22. VVV (V_V_V) 05.06.13 12:46
(20) nync, Запустил одно окно - нет никакого буйства, при запуске второго - есть. Нет повторного запуска - нет моветона. И выбранный автором цвет не команда к обязательному "буйству". Как-то так...
Идея в целом у автора неплохая. Понятно, что на вкус и цвет фломастеры разные...
23. Tsaregorodtsev (TSSV) 06.06.13 10:27
(16) pumbaE, и в 8.2 тоже - в случае, когда основной режим запуска "Управляемое приложение" ветки "Стили" нет.
24. Валентина Иванова (VallyD) 06.06.13 11:00
Отличная идея. Ну прям вот она... под самим носом. А когда мне надо было как-то различить одинаковые конфы, об цветовой дифференциации, не догадалась. Как говорят, все гениальное просто. Обязательно возьму на заметук и реализиую у себя. А насчет буйства красок или минимализма, то здесь наверное важны предпочтения пользователей системы. Пусть сами решают, какй цвет им больше нравится.
25. Ak Uji (Akuji) 06.06.13 13:00
(23) Tsaregorodtsev, может от элементов стиля как то можно
тоже интресно
26. Яков Коган (Yashazz) 06.06.13 17:54
Ради такой ерунды менять конфу? Это не моветон, это бить ногами надо. Я-то понадеялся на действительно красивое решение, эхма.
Пущай юзеры учатся читать заголовки, если уж так.
27. Роман Ложкин (webester) 07.06.13 09:03
(26)Если так уж он просто забил полдня работы в другую базу. Вот тебе и проблема на ровном месте. Конечно, конечно он переделает это сам, конечно, конечно оштрафуем. Только вот у нас в прошлый раз, тупая ошибка пользователя парализовала работу магазина на три часа. Ну оштрафовали, ну и что? Раздражение покупателя этим не снимешь. Да и пользователя если штрафовать, он и уйти может. Если вы продаете мерседесы и делаете в базе 2 документа в месяц, то вам повезло. если работа интенсивная(розничные продажи к примеру) то ошибок избежать очень трудно, и тут стоит вопрос ребром: как сделать так, чтоб все происходило насколько можно быстро и главное без ошибок. Стараюсь работать с типовой только у пары клиентов, у остальных уже приличное количество изменений. На тему, что кому то моветон яркие цвета, так бывают случаи уже не до понтов. Главно что б привлекало внимание. Стили видел триста раз, заюзать не догадался.
28. Павел Егоров (SatanClaws) 07.06.13 16:31
Тогда разумнее добавить какую-нить константу/общую настройку/индивидуальную настройку, от которой устанавливать главный стиль.

Ибо, зачастую, конфигурации не просто одинаковые, а даже идентичные.
А поддержка действительно идентичных конфигураций в разы проще, чем поддержка идентичных_за_единственным_исключением конфигураций.
29. Sergio Bargio (sergiobargio1) 07.06.13 17:30
(3) mdmdvd, подскажите, пожалуйста, какой функцией можно заглавие окна с открытой базы изменить, а то что-то не получается, см ниже кусок кода у меня:
"...
#Если Клиент Тогда

ИмяБазы = нрег(СтрокаСоединенияИнформационнойБазы());

Если Найти(ИмяБазы,"buh") > 0 Тогда
ГлавныйСтиль = БиблиотекаСтилей.Получить(2);
Заголовок1 = "БУХГАЛТЕРСКИЙ УЧЕТ";
ИначеЕсли Найти(ИмяБазы,"upr") > 0 Тогда
ГлавныйСтиль = БиблиотекаСтилей.Получить(3);
Заголовок1 = "УПРАВЛЕНЧЕСКИЙ УЧЕТ";
КонецЕсли;

Если Найти(ИмяБазы,"night")> 0 Тогда
Заголовок2 = "НОЧНАЯ КОПИЯ";
ИначеЕсли Найти(ИмяБазы,"day") > 0 Тогда
Заголовок2 = "ДНЕВНАЯ КОПИЯ";
ИначеЕсли Найти(ИмяБазы,"server_1c") = 0 Тогда
Заголовок2 = "ЛОКАЛЬНАЯ КОПИЯ";
КонецЕсли;

УстановитьЗаголовокПриложения(" " +Заголовок1+" " +Заголовок2 + " " + ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
УстановитьЗаголовокСистемы(Заголовок1+" " +Заголовок2);
#КонецЕсли

..."
30. Michael Cher (mmch) 07.06.13 17:38
например так:

ДопЗаголовок = ИмяКомпьютера();
// находим пользователя ИБ
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(ПараметрыСеанса.ТекущийПользователь.Код));
Если не ПользовательИБ = Неопределено Тогда
ИмяПользователяОС = НРег(ПользовательИБ.ПользовательОС);
ИмяПользователяОС = СтрЗаменить(ИмяПользователяОС,"\\skl\","");
ДопЗаголовок = ДопЗаголовок + " / " + ИмяПользователяОС;
КонецЕсли;
ДопЗаголовок = ДопЗаголовок + " / " + Формат(ТекущаяДата(),"ДЛФ=DDT");

////-- End ---- 08.04.2013 20:31:58 ---- MMЧ ---- !СКЛ!
УстановитьЗаголовокСистемы(ДопЗаголовок);
31. Michael Cher (mmch) 07.06.13 17:41
УстановитьЗаголовокСистемы("ттттт"); - работает
32. Michael Cher (mmch) 07.06.13 17:42
еще как вариант попробуй :

УстановитьЗаголовокПриложения("тратата");
33. Sergio Bargio (sergiobargio1) 07.06.13 17:56
(32) mmch, УстановитьЗаголовокСистемы("ттттт"); и УстановитьЗаголовокПриложения("тратата"); увы не работает, а высвечивается та строка, которая в настройке программы в поле заголовок системы , ;-(
34. Яков Коган (Yashazz) 10.06.13 00:24
(27) Сделать 2 удалённых рабочих стола. 2 аккаунта. 2 профиля винды. И уже в них играть с оформлением. Это и админится проще, и жертв меньше. Всегда есть выходы )))
35. Michael Cher (mmch) 10.06.13 14:33
(33) sergiobargio1, значит перетирается, попробуй в конце процедуры ПриНачалеРаботыСистемы
ну или вообще обработкой.
36. Юрий Муллабакиев (mulla1979) 10.06.13 17:45
37. Андрей Овсянкин (Evil Beaver) 11.06.13 12:09
Баловство какое-то... Зачем? Если бы без изменения конфы, то было бы еще полезно. А так.....
38. Sergio Bargio (sergiobargio1) 11.06.13 23:07
(37) Evil Beaver, извините, возможно Вы и правы. моё мнение очень субъективное - у меня слишком не большой опыт в разработке, однако, для меня эта идея очень полезна и актуальна: в течение дня по нескольку раз приходиться накатывать доработки, предварительно отлаживая как на локальных так и на sql-ных копиях, запутаться в обилии открытых окон с управленческими и бухгалтерскими базами очень легко. а так идея прекрасная и цветовая раскраска с помощью палитры и заголовка окна. mmch и mdmdvd выдвинули очень полезные идеи. Спасибо.
39. Иван Грухин (bolshoi) 17.06.13 11:25
Как вариант, в доп. параметрах запуска базы прописать примерно так:
/execute"D:\обработка.epf"

При запуске выполнится указанная обработка, а уже в ней можно прописывать какие-то действия для внешнего отличия базы. При условии, что у пользователя есть права на запуск внешних обработок.
40. Екатерина Соколова (catena) 28.06.13 06:10
Платформа 8.1.15.14
При смене Главного стиля образуется стойкая аллергия на СКД - любые отчеты с простейшей схемой СКД при открытии выбивают базу с записью дампа.
На всякий случай, вдруг кто-то захочет поиграться.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа