Как отличить тестовую базу от рабочей?

У Вас было такое, что пользователи по ошибке работают в тестовой базе, а потом все их труды теряются ? Тогда эта обработка для вас !

В очередной раз, после того как пользователь весь день проработал в тестовой базе, созрела идея об этой обработке и была воплощена за 5 минут. Представляю вам универсальное расширение для всех типовых конфигураций. Восстановили тестовую базу, добавили это расширение. Что оно дает ?

При входе в приложение пользователю выводится предупреждение

В зависимости от выбора пользователя форма либо закрывается либо закрывается приложение.

БОНУС:

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

Тестировалось на Бухгалтерии ПРОФ (3.0.64.54), ЗУП ПРОФ (3.1.7.87), ERP (2.4.X), должно подойти для всех современных типовых конфигураций.

Понравилось ? Скачиваем, ставим звездочку, критикуем :)))))

73 Comments

  1. YannikAlx

    А сам то как объяснил своей обработке что база тестовая?

    Тут порой и сам программист не знает ГДЕ ОН…. )))

    Reply
  2. khabibullin.tu

    (1) Когда базу рабочую накатываешь в тестовую — цепляешь это расширение за 30 секунд и дело в шляпе

    Reply
  3. khabibullin.tu

    (1) Ну мне по крайней мере удобно )))

    Reply
  4. FesenkoA

    (1) ну очевидно же, если поставить на автозапуск обработку — то это копия) Или в настройки булево добавить.

    Reply
  5. YannikAlx

    А после входа она при каждой попытке что-то сохранить напоминает что это ТЕСТОВАЯ?

    Иначе совершенно бесполезная штука — человек забывает в какой он базе ровно через 10 минут , а если их открыто штук 5 или 10?

    Уж если у вас есть необходимость вообще пользователям работать в тестовых базах то

    просто необходимо в заголовке базы указывать ТЕСТОВАЯ и будет вам счастя!

    А ваша обработка при запуске — игрулька на 10 секунд

    Reply
  6. RocKeR_13

    Так это, на «современных типовых» при первом запуске БСП и так проверяет, была ли перемещена база и в этом случае можно нажать волшебную кнопку «Это копия» и в заголовке клиентского окна будет выводиться надпись «[КОПИЯ]». Бонусом будет заблокирована работа со внешними ресурсами во избежании запуска, например, обменов

    Reply
  7. YannikAlx

    Неее.. так не пойдет. А если мне нужно полнофункциональная тестовая …

    Как минимум заполнение по ИНН

    Только вручную переименовывать. Потому как после разблокировки интернетресурсов слово «копия» уйдет

    Reply
  8. kosmo0

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

    У нас реализовано следующим образом.

    — Для тестовых баз создан свой стиль, при котром все формы синеватого цвета (сразу видно в какой базе сидишь). Где-то на этом ресурсе был вариант вывода цветной полосы (точно не помню) под панелью инструментов.

    — Список рабочих баз (строка соединения) прописан в процедуре при открытии базы данных. В этой процедуре выбирается стиль.

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

    Reply
  9. khabibullin.tu

    (5) При каждом входе напоминает о том, что тестовая, заголовок переименовывается автоматически, вы не читаете описание

    Reply
  10. khabibullin.tu

    (6) Бухгалтерия это современная типовая ? В ней не выводится [КОПИЯ], ошибка уже давным давно не исправляется. К тому же напоминание показывается всего один раз при первом входе

    Reply
  11. khabibullin.tu

    (8)

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

    У нас реализовано следующим образом.

    — Для тестовых баз создан свой стиль, при котром все формы синеватого цвета (сразу видно в какой базе сидишь). Где-то на этом ресурсе был вариант вывода цветной полосы (точно не помню) под панелью инструментов.

    — Список рабочих баз (строка соединения) прописан в процедуре при открытии базы данных. В этой процедуре выбирается стиль.

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

    Что-то я не понял, как вы это сделали ? Я тоже думал насчет этого и жду когда выйдет 8.3.13 чтобы осуществить, а как вы сделали ? Или сидите на тестовой платформе ?

    Reply
  12. 7OH

    (5) поддерживаю — зашел, согласился , что копия.

    Открыл 5 других баз, в том числе и рабочую. Переключился на ещё одну, потом назад клац — оооо база — и погнал работать в тестовой дальше как в рабочей.

    Reply
  13. 7OH

    (8) это сейчас наверное про обычные формы ).

    Для УФ — ждём 13-ю — тоже будем цвет менять.

    Reply
  14. khabibullin.tu

    (12) Расширение меняет заголовок, а для изменения стиля ждем когда выйдет новая платформа

    Reply
  15. Неопределено

    (14) Достаточно было одного заголовка штатными средствами конфигурации безо всяких обработок, как я всегда и делал.



    Хватает 10 секунд.

    Кто-то ещё и плюсует этот шлак…

    Reply
  16. khabibullin.tu

    (15) Видимо вы не работали в базах где охулиард пользователей и кто нибудь обязательно зайдет в тестовую и не будет обращать внимания на заголовок

    Reply
  17. herfis

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

    Хотя в продакшене я бы таких отстреливал из снайперской винтовки, без обид 🙂

    А по делу — толку мало. Алерты при входе абсолютно бесполезны. Если пользователь способен перепутать базы, то ничего не помешает ему перепутать базы уже после того как он отрыл базу и прощелкал алерты.

    Reply
  18. khabibullin.tu

    (17) Человеческий фактор )) Ждём https://wonderland.v8.1c.ru/blog/podderzhka-korporativnogo-stilya/, чтобы ориентироваться по цвету ))

    Reply
  19. Неопределено

    (16) За тестирование платят разработчику, а не пользователю.

    Reply
  20. baracuda

    Мне очень интересно почему простые юзеры заходят в тестовую базу.

    Что ни там потеряли??

    Reply
  21. nyam-nyam

    (18)Что предлагаете делать с дальтониками? Или со слабой памятью пользователей, которые будут забывать какой цвет для тестовых баз, а какой для рабочих?

    Reply
  22. khabibullin.tu

    (19) Однобокое утверждение, могу привести много обратных примеров

    Reply
  23. Неопределено

    (22) В которых пользователю платят за разработку?

    Reply
  24. khabibullin.tu

    (21) А что вы предлагаете ?

    Reply
  25. khabibullin.tu

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

    А ну и да, самое важное — пользователи сначала обучаются на тестовой, чтобы не косячить в рабочей

    Reply
  26. khabibullin.tu

    (23) Вы переобуваетесь на ходу, до этого вы говорили про тестирование, а не разработку, поднимите свои глаза чуть повыше

    Reply
  27. Darklight

    (20)Нормальным юзерам тестовые базы очень даже нужны — они там тоже могут что-то тестировать, прежде чем делать это в рабочей базе. Речь, конечно не о тупых обезьянках, которые просто вводят документы. А о тех, кому думать приходится! Хотя и тупым обезьянкам тоже тестовые базы дают — для сбора фидбэков о новых изменениях по юзабилити и для тестирования новых релизов.

    Ну и, Вы забыли про то, что и сами разработчики тоже не брезгают устраивать тесты на и демонстрации на «мышах» пользователях — для чего и подключают им тестовые базы.

    Reply
  28. Неопределено

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

    Reply
  29. khabibullin.tu

    (28) Хахах расмешили ! Даже отвечать не буду

    И прочитайте для чего еще нужны тестовые базы, ниже написал, можете до вас дойдет, а может вы устроетесь на работу где всё поймете

    Reply
  30. Неопределено

    (29) Нет, на такую работу я точно не устроюсь.

    Reply
  31. Неопределено

    (31) На моём текущем месте меня будут пинать если я переложу свою работу на сотрудника другого отдела. И я не выложу наработку в рабочую базу пока не буду уверен что она работает корректно, иначе пинать будут ещё сильнее потому что я не смогу сказать «Ну, это Вася из отдела продаж плохо протестировал. Это всё его косяк, но точно не мой».

    Reply
  32. khabibullin.tu

    (32) Работал я в таком месте и сбежал оттуда как можно быстрее. Это не правильно

    Reply
  33. Неопределено

    (33) Нет, это правильно. Именно для этого здесь и сидит отдел ИТ.

    Reply
  34. nyam-nyam

    (24)При активности окна с тестовой базой проигрывать в цикле тревожную музыку сопровождаемую тревожным текстом голосом Левитана и с субтитрами. Ещё надо тревожную мигалку прикрутить, чтоб уж наверняка. Тех кто и это сумеет проигнорировать отправлять на диспансеризацию.

    Reply
  35. Darklight

    (18)Всё равно ни цвет формы (фон и рамки панелей как формы так и вложенных элементов-групп; базовый), ни цвет кнопок (фон и рамки; базовый), ни цвет фона списков (базовый), ни цвета фона чередования строк (базовый), ни цвет заголовка формы, ни цвет заднего фона, ни цвет фона заголовка окна (и его рамки), ни цвета шрифтов (кроме заголовка группы), ни сами шрифты (а как раз шрифты бывают корпоративные), в релизе 8.3.13, задать нельзя 🙁 что очень расстраивает, ну, может к 8.4 эти цвета настройки тоже появятся… лет через 5….

    Reply
  36. khabibullin.tu

    (34) Вы просто так привыкли, но это не значит, что правильно. Тебе дали тех. задание — ты его сделал, потестил сам, отдал потестить заказчику, заказчик выносит вердикт — нас все устраивает, если есть тестировщики — то отдам им, потом отправляем в продакшн.

    Если после всего этого вылезла ошибка то она просто исправляется и никто никого не пинает и не оправдывается, Васи это косяк или не Васи

    Reply
  37. Darklight

    (21)Дальтоники различают контрастные цвета — надо выбирать такие. Забывчивые со временем тоже приноровятся видеть разницу — цвета как раз хорошо запоминаются

    Reply
  38. VZyryanov
    Функция ЭтоРабочаяБазаДанных() Экспорт
    бд=НРег(СтрокаСоединенияИнформационнойБазы());
    Если СтрЧислоВхождений(бд,»srvr=»»app1c1″»»)=0 ИЛИ СтрЧислоВхождений(бд,»ref=»»buch30″»»)=0 Тогда
    Возврат Ложь;
    КонецЕсли;
    Возврат Истина;
    КонецФункции
    
    Процедура УстановитьЗаголовокСистемы() Экспорт
    Если Не ЭтоРабочаяБазаДанных() Тогда
    бд=НРег(СтрокаСоединенияИнформационнойБазы());
    Если СтрЧислоВхождений(бд,»srvr=»»app1c1″»»)=0 Тогда
    Константы.ЗаголовокСистемы.Установить(«— ЛОКАЛЬНАЯ Бухгалтерия 3.0 КФ —«+» («+бд+»)»);
    Иначе
    Константы.ЗаголовокСистемы.Установить(«*** ТЕСТОВАЯ Бухгалтерия 3.0 КФ ***»+» («+бд+»)»);
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    

    Показать

    Reply
  39. Неопределено

    (37) Менеджер по продажам должен заниматься продажами, а менеджер по закупкам — закупками. Комплектовщики складывают товар, кладовщики занимаются своими делами. Аналитик строит отчёты, отдел интернет продаж обрабатывает заказы с сайта, а продавцы стоят за кассами. Они должны заниматься своими делами потому что деньги они получают только за это. На окладе только ИТ, бухгалтерия и кадры. Зарплата сотрудников остальных отделов зависит от объёма выполненной работы. И задача программиста заключается в предоставлении рабочего инструмента, упрощающего работу всех остальных отделов. Дорабатывать и тестировать этот инструмент никто кроме отдела ИТ не должен, потому что никто кроме отдела ИТ не получит за это денег. Если после всего этого вылезла ошибка, сразу понятно кто работает плохо.

    Reply
  40. khabibullin.tu

    (40) Интересная логика, если нет заказов на закупку то менеджер по закупкам не получит деньги ? Если аналитика не просят построить отчет то он не получит деньги ? Не верится, но даже если это так то должны быть те кто занимаются тестированием и одобрением, заказчик есть всегда

    Reply
  41. khabibullin.tu

    (39) Различают, под дальтоников обычно делаю отдельные цвета, а в пользователе помечаем, что это дальтоник ))

    Reply
  42. Darklight

    (35)Ещё можно, в тестовой базе, периодически всплывающие оповещения показывать — процедурой «ПоказатьОповещениеПользователя» — с текстом «Вы работаете в тестовой базе такой-то». Это можно делать как по таймауту (в подлкюченном глобальном обработчике ожидания), так и при открытии форм, записи данных… но доступно только в клиентском контексте — хотя этого,обычно, вполне достаточно.

    Reply
  43. Healer

    Из моего опыта для определения рабочая база или тестовая надо установить регламент наименования информационных баз на предприятии, в котором строго прописать, что в имени любой копии базы должна присутствовать подстрока «_copy». Ну и при начале работы системы смотрим, что:

    Если Найти(СтрокаСоединенияИнформационнойБазы(), «_copy») > 0 Тогда
    //Это копия — отключаем регламентные задания, корректируем заголовок системы, стиль оформления…
    Иначе
    //Это продуктивная база.
    КонецЕсли;
    Reply
  44. Healer

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

    Reply
  45. Healer

    Ещё адрес сервера 1С предприятия в строке подключения может быть айпишником (из приватного или лупбэк-диапазона), именем или вообще «localhost».

    Reply
  46. Healer

    А ещё кто-то может поменять параметры публикации базы на сервере предприятия (имя, порт и ли ещё чего…). В общем, «_copy» в наименовании копий — просто и надёжно.

    Reply
  47. Healer

    Соответственно, если какому-то продвинутому пользователю надо создавать свои копии, в которых он работает — обязать его соблюдать упомянутый регламент. Хотя у меня не было случая, чтобы копии делали не админы или программисты: всегда просят сделать копию.

    Reply
  48. Healer

    (43) За такое и побить могут! ;о) Это ж жесть… фокус сбиваться будет, например…

    Reply
  49. Неопределено

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

    Reply
  50. YanTsys

    (35) Угу, вы еще предложите металлическую мышку и подписку на событие при записи дающую удар током…

    Reply
  51. YanTsys

    (24) Можно еще сделать подписку при записи всех документов напоминающую о том что база тестовая, и можно сделать так что-бы где-то в константе хранилось основное размещение базы и сообщение выскакивало в том случае если база запущена не с основного места.

    Reply
  52. YanTsys

    (45) Мне кажется это будет перебор.

    Защита от одного дурака не должна загружать работой десять разумных сотрудников.

    Reply
  53. nyam-nyam

    (51)Этот вариант легко обходится резиновой перчаткой или понадобится делать обратную связь, чтоб изолированная мышка не работала. Хотя небольшой бодрящий разряд это идея…

    Reply
  54. YanTsys

    (54) :))))

    Reply
  55. KulSer

    (12) Именно так обычно и бывает. Не только пользователи, но и сам, бывает, путаюсь.

    Помогла бы альтернативная раскраска, но как ее сделать, не знаю.

    Reply
  56. khabibullin.tu

    (52)

    (24) Можно еще сделать подписку при записи всех документов напоминающую о том что база тестовая, и можно сделать так что-бы где-то в константе хранилось основное размещение базы и сообщение выскакивало в том случае если база запущена не с основного места.

    Только это обработка не универсальная уже будет ( Но можно для каждой конфигурации сделать свою, хорошая идея

    Reply
  57. kosmo0

    (46) Насколько помню. Если создать процедуру которая получает строку соединения в общем модуле который выполняется только на сервере, то будет получаться единообразная строка соединения.

    Работает на клиент-серверной базе.

    Reply
  58. kosmo0

    (47)Если заморочиться по полной, то можно создать либо параметр сеанса либо константу «ЭтоТестоваяБД». Ну и в зависимости от нее делать телодвижения.

    Reply
  59. Healer

    (58) Это не вариант: на сервере предприятия имя рабочей базы, порт или ещё чего могут поменяться в любой момент, и всё пойдёт не так, как хотелось бы ;-

    Reply
  60. Darklight

    (49)Я сделал публикациюна эту тему — можете посмотреть как оно работает (мне вполне удобно, фокус не сбивается)

    Reply
  61. Darklight

    (60) Это редкий случай. Но ради него можно и настройку в рабочей ИБ изменить.

    Reply
  62. Darklight

    (18)Вот, сделал публикацию там есть идеи по автоматической цветовой раскраске форм для управляемого приложения. Ну и, есть альтернативный способ информирования пользователей о работе не в рабочей базе.

    Reply
  63. Darklight

    (13)У меня есть идеи раскраски для управляемых форм

    Reply
  64. Darklight

    (8)Пытаюсь решить эту проблему в новой публикации

    Reply
  65. Darklight

    (5)Моё решение постоянно об этом может аккуратно напоминать!

    Reply
  66. Healer

    (62) Это если одна база. А если их много (50, например)? Да и программисты приходят и уходят, а базы, например, к Хранилищу подключены…

    Reply
  67. Healer

    (67) В общем, лучше автоматизировать всё через «_copy», как я предлагал ранее, и не дёргаться по этому вопросу 🙂

    Reply
  68. Darklight

    (67)

    1. Упаси боже держать такие настройки внутри метаданных конфигураций — это должно храниться в самой базе (как в моей публикации)

    2. Массовые изменения должны выполняться автоматизированными скриптами, которые и этим настройки обновят (в данных базы)

    Reply
  69. Darklight

    (68) Это тоже вполне нормальное решение и тоже предусмотрено в моей публикации — каждому на выбор свой вариант!

    Reply
  70. Darklight

    (59)В моём решении я храню настройки в общем хранилище, а для проверки использую кешированный на сеанс результат функции (из модуля повторного использования).

    Reply
  71. Healer

    (69) По первому пункту не соглашусь: тут главное чтобы регламент был введён и соблюдался и всё будет отлично 🙂

    Reply
  72. Darklight

    (72)Дело не в регламенте. Дело в самом подходе — встраивать настройки внутри метаданных. Не говоря уже о том, что многие конфигурации вообще на поддержке могут стоять.

    Reply
  73. Ramzay82

    ТАм можно указать в окне заголовка. просто многие пролистают по привычке)

    Reply

Leave a Comment

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