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



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

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

Может быть полезным если в организации есть две БД, например управленческая и бухгалтерская, с которыми одновременно работает один пользователь, и у него на рабочем столе запущено 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 не будет опубликован. Обязательные поля помечены *