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



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

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

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

 

Настройка 

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

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


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

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



40 Comments

  1. EliasShy

    У меня где-то разработка на net есть — разукрашивает заголовок окна 1c в разные цвета. Если надо — поделюсь.

    Но она не сильно прижилась — поэтому разработка дальнейшая заброшена.

    Reply
  2. echo77

    Ловко. Заставляет вспомнить про стили.

    Прочитав заголовок, подумал что будет что-то про малиновые штаны 🙂

    Reply
  3. mdmdvd

    В качестве некоего аналога можно предложить следующий код. Чтобы ориентироваться по заголовку.

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

    НомерСимволаНазванияБД = Найти(СтрокаСоединения,»Ref»);

    Если НомерСимволаНазванияБД = Неопределено или НомерСимволаНазванияБД = 0 Тогда

    Заголовок = Сред(СтрокаСоединения,7,СтрДлина(СтрокаСоединения)-8);

    Иначе

    Заголовок = Прав(СтрокаСоединения,СтрДлина(СтрокаСоединения)-НомерСимволаНазванияБД-4);

    Заголовок = Лев(Заголовок,СтрДлина(Заголовок)-2);

    КонецЕсли;

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

    Reply
  4. sikuda

    Про штаны и малиновая тема. Класс!!!

    Reply
  5. AnryMc

    (2) echo77,

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

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

    Ефрейтор Туркестанских линейных батальонов, Русской армии, в гимнастёрке и в красных шароварах.

    http://commons.wikimedia.org/wiki/File:Туркестанский_солдат_в_зимней_форме.jpg?uselang=ru

    Так что у Г. Н. Данелии — было откуда брать.

    Reply
  6. baton_pk

    Раз уж менять конфигурацию, то делать по-хорошему, без этих ваших

    Если ИмяБазы = «srvr=»»server»»;ref=»»bd_2″»;» Тогда
    

    У нас в распределённой базе в план обмена добавлен строковый реквизит «Стиль», можно добавлять константы. Привязываться к строке соединения — последнее дело, которое можно использовать разве что для того, чтобы отличить боевую базу от бэкапов.

    Reply
  7. LexSeIch

    Мир этому дому!

    Интересный прием. Взял на вооружение. Плюс.

    Reply
  8. mmch

    Константу решил не делать, т.к. стиль добавлен всего один.

    За программулину на NET спасибо, но откажусь… не люблю я все это =)

    Reply
  9. Cartman

    Честно говоря, на скриншоте отличий не увидел.

    Reply
  10. ksvd

    Хорошая идея. Для отличия рабочей базы и копии, иногда открыты одновременно

    Reply
  11. mikhailovaew

    Автор предложил оригинальную идею, но правка конфигурации ради визуальных отличий — зло, ИМХО.

    У нас есть тестовая и рабочая базы ЗУП, даже бухгалтера приучились смотреть на заголовок программы))))

    Reply
  12. Walker.pro

    (6) baton_pk,

    И какие же еще есть способы реализации этой задачи? Чтобы сразу после восстановления бэкапа стиль изменялся автоматически?

    Reply
  13. mmch

    Конфигурация все равно правится, для этого мы и работаем =)

    Другое дело, какие затраты нужны на обновление, а это другая тема.

    Reply
  14. Новиков

    Заголовок системы — это серебренная пуля в этом случае.

    Если смотреть в заголовок ломает, то это уже клинический случай 😉

    Reply
  15. AnryMc

    (14) Новиков,

    Нет — клинический случай — когда в комп ставиться три видео карточки, подключается три монитора, на каждом свой участок рабочего стола, свой ярлык запуска своей базы, да ещё «шильдик» на мониторе с названием…

    Reply
  16. pumbaE

    А в 8.3 с общими стилями не поиграешься уже.

    Reply
  17. baton_pk

    (12) Walker.pro,

    Чтобы отличать бэкап от боевой в случае, когда у меня была одна база (без распределёнки), то у меня была константа «СтрокаСоединенияСРабочейБазой». Правда, использовалось это не для стилей, а чтобы регламентные задания понимали, с кем работают, но со стилями можно использовать точно так же.

    На нынешнем месте работы нет потребности отличать бэкапы от боевых, есть потребность различать узлы распределёнки — в план обмена добавлен реквизит Стиль и через ЭтотУзел() определяется текущий стиль.

    Reply
  18. logdog

    Подскажите, а по аналогии, можно сделать выделение помеченных на удаление документов красным, не проведенных — синим?

    Reply
  19. V_V_V

    (16) pumbaE, офигеть. А ведь правда, я сразу и внимания не обратил.

    Собственно до этой публикации и не заморачивался никогда со стилями, но за державу обидно…

    Reply
  20. nync

    (14) Новиков, согласен. Буйства красок в бизнес-приложении — моветон.

    Reply
  21. pumbaE

    (20) nync, отсутствие красок — то же моветон.

    Reply
  22. V_V_V

    (20) nync, Запустил одно окно — нет никакого буйства, при запуске второго — есть. Нет повторного запуска — нет моветона. И выбранный автором цвет не команда к обязательному «буйству». Как-то так…

    Идея в целом у автора неплохая. Понятно, что на вкус и цвет фломастеры разные…

    Reply
  23. TSSV

    (16) pumbaE, и в 8.2 тоже — в случае, когда основной режим запуска «Управляемое приложение» ветки «Стили» нет.

    Reply
  24. VallyD

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

    Reply
  25. Akuji

    (23) Tsaregorodtsev, может от элементов стиля как то можно

    тоже интресно

    Reply
  26. Yashazz

    Ради такой ерунды менять конфу? Это не моветон, это бить ногами надо. Я-то понадеялся на действительно красивое решение, эхма.

    Пущай юзеры учатся читать заголовки, если уж так.

    Reply
  27. webester

    (26)Если так уж он просто забил полдня работы в другую базу. Вот тебе и проблема на ровном месте. Конечно, конечно он переделает это сам, конечно, конечно оштрафуем. Только вот у нас в прошлый раз, тупая ошибка пользователя парализовала работу магазина на три часа. Ну оштрафовали, ну и что? Раздражение покупателя этим не снимешь. Да и пользователя если штрафовать, он и уйти может. Если вы продаете мерседесы и делаете в базе 2 документа в месяц, то вам повезло. если работа интенсивная(розничные продажи к примеру) то ошибок избежать очень трудно, и тут стоит вопрос ребром: как сделать так, чтоб все происходило насколько можно быстро и главное без ошибок. Стараюсь работать с типовой только у пары клиентов, у остальных уже приличное количество изменений. На тему, что кому то моветон яркие цвета, так бывают случаи уже не до понтов. Главно что б привлекало внимание. Стили видел триста раз, заюзать не догадался.

    Reply
  28. SatanClaws

    Тогда разумнее добавить какую-нить константу/общую настройку/индивидуальную настройку, от которой устанавливать главный стиль.

    Ибо, зачастую, конфигурации не просто одинаковые, а даже идентичные.

    А поддержка действительно идентичных конфигураций в разы проще, чем поддержка идентичных_за_единственным_исключением конфигураций.

    Reply
  29. sergiobargio1

    (3) mdmdvd, подскажите, пожалуйста, какой функцией можно заглавие окна с открытой базы изменить, а то что-то не получается, см ниже кусок кода у меня:

    «…

    #Если Клиент Тогда

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

    Если Найти(ИмяБазы,»buh») > 0 Тогда

    ГлавныйСтиль = БиблиотекаСтилей.Получить(2);

    Заголовок1 = «БУХГАЛТЕРСКИЙ УЧЕТ»;

    ИначеЕсли Найти(ИмяБазы,»upr») > 0 Тогда

    ГлавныйСтиль = БиблиотекаСтилей.Получить(3);

    Заголовок1 = «УПРАВЛЕНЧЕСКИЙ УЧЕТ»;

    КонецЕсли;

    Если Найти(ИмяБазы,»night»)> 0 Тогда

    Заголовок2 = «НОЧНАЯ КОПИЯ»;

    ИначеЕсли Найти(ИмяБазы,»day») > 0 Тогда

    Заголовок2 = «ДНЕВНАЯ КОПИЯ»;

    ИначеЕсли Найти(ИмяБазы,»server_1c») = 0 Тогда

    Заголовок2 = «ЛОКАЛЬНАЯ КОПИЯ»;

    КонецЕсли;

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

    УстановитьЗаголовокСистемы(Заголовок1+» » +Заголовок2);

    #КонецЕсли

    …»

    Reply
  30. mmch

    например так:

    ДопЗаголовок = ИмяКомпьютера();

    // находим пользователя ИБ

    ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(СокрЛП(ПараметрыСеанса.ТекущийПользователь.Код));

    Если не ПользовательИБ = Неопределено Тогда

    ИмяПользователяОС = НРег(ПользовательИБ.ПользовательОС);

    ИмяПользователяОС = СтрЗаменить(ИмяПользователяОС,»\skl»,»»);

    ДопЗаголовок = ДопЗаголовок + » / » + ИмяПользователяОС;

    КонецЕсли;

    ДопЗаголовок = ДопЗаголовок + » / » + Формат(ТекущаяДата(),»ДЛФ=DDT»);

    ////— End —- 08.04.2013 20:31:58 —- MMЧ —- !СКЛ!

    УстановитьЗаголовокСистемы(ДопЗаголовок);

    Reply
  31. mmch

    УстановитьЗаголовокСистемы(«ттттт»); — работает

    Reply
  32. mmch

    еще как вариант попробуй :

    УстановитьЗаголовокПриложения(«тратата»);

    Reply
  33. sergiobargio1

    (32) УстановитьЗаголовокСистемы(«ттттт»); и УстановитьЗаголовокПриложения(«тратата»); увы не работает, а высвечивается та строка, которая в настройке программы в поле заголовок системы , ;-(

    Reply
  34. Yashazz

    (27) Сделать 2 удалённых рабочих стола. 2 аккаунта. 2 профиля винды. И уже в них играть с оформлением. Это и админится проще, и жертв меньше. Всегда есть выходы )))

    Reply
  35. mmch

    (33) sergiobargio1, значит перетирается, попробуй в конце процедуры ПриНачалеРаботыСистемы

    ну или вообще обработкой.

    Reply
  36. mulla1979

    Ставлю плюс за идею!

    Reply
  37. Evil Beaver

    Баловство какое-то… Зачем? Если бы без изменения конфы, то было бы еще полезно. А так…..

    Reply
  38. sergiobargio1

    (37) Evil Beaver, извините, возможно Вы и правы. моё мнение очень субъективное — у меня слишком не большой опыт в разработке, однако, для меня эта идея очень полезна и актуальна: в течение дня по нескольку раз приходиться накатывать доработки, предварительно отлаживая как на локальных так и на sql-ных копиях, запутаться в обилии открытых окон с управленческими и бухгалтерскими базами очень легко. а так идея прекрасная и цветовая раскраска с помощью палитры и заголовка окна. mmch и mdmdvd выдвинули очень полезные идеи. Спасибо.

    Reply
  39. bolshoi

    Как вариант, в доп. параметрах запуска базы прописать примерно так:

    /execute»D:обработка.epf»

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

    Reply
  40. catena

    Платформа 8.1.15.14

    При смене Главного стиля образуется стойкая аллергия на СКД — любые отчеты с простейшей схемой СКД при открытии выбивают базу с записью дампа.

    На всякий случай, вдруг кто-то захочет поиграться.

    Reply

Leave a Comment

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