Иногда возникают ситуации, когда надо развернуть тестовую базу клиента / свою на серверах Windows или Linux. Тестовые базы могут понадобиться в разных ситуациях: у клиента ошибка, на нашей базе она не воспроизводится, реализуем новый функционал и хотелось бы протестировать на Linux и т.д. В чем проблема?
А теперь представим, что это все на потоке. Что тестовых баз 1С не одна, а 20-30. И получаем проблему, что не понятно занята она сейчас кем-то или нет.
И тут начинается:
- База есть, названа test34214, но не понятно используется она сейчас кем-то или нет.
- Вопрос в зал / в TG: ребята, а кто-то использует сейчас базу test34214?
- Тишина.
- Начинаем работать и через 2 дня получаем от коллеги: "Ой, а мне нужна была эта база. Кто ее затер?"
Имеем много разработчиков и необходимость их взаимодействия с тестовыми базами 1С. При этом: Описание проблемы
- Мы не должны перезатирать чьи-то тестовые базы 1С, которые используются в данный момент.
- Алгоритм разворачивания тестовой базы должен быть простым для программиста и не требовать много времени.
Наверное, сразу хочется сказать, что есть куча вариантов решения этой проблемы и мы ничего такого не придумали. Варианты решения
Можно завести файл Excel и в ней вести учет кто и какую базу использует в данный момент. Нужна база? Отлично регистрируй ее в файле, сроки, сколько ты с ней будешь работать и вперед. Баз будет куча и нужно, чтобы кто-то постоянно удалял старые базы, ну или поработал и удалил. Экселька
Пишем скрипт на OneScript / Power Shell и база развернулась, загрузилась, через время удалилась. Минус, разные базы могут быть нужны на разный срок. Какая-то на день, какая-то на месяц. Да и не все можно автоматизировать так, чтобы работало на все случаи жизни. Автоматизация
Наш алгоритм универсален и подходит даже если тестовых серверов у нас не один, а несколько. Как мы работаем с тестовыми базами 1С
На каждом тестовом сервере создаем базы по порядку: Подготовительный этап
- test1
- test2
- test3
- ...
Алгоритм следующий. Разработчику нужна тестовая база 1С
- Берем первую попавшуюся тестовую базу 1С. Например test1 и пытаемся ее открыть в режиме предприятия предварительно очистив дополнительные параметры запуска:
- Если база запустилась без предупреждений, то мы можем ее занять. Если появилось окно с сообщением, что база заблокирована, то берем следующую базу test2 и так пока не найдем свободную.
- Открываем консоль кластера 1С и блокируем базу для запуска другими указывая время на сколько мы занимаем базу. Время указывать обязательно. Если боитесь, что не успеете все протестировать поставьте время с запасом, скажем на 5 дней вперед. Так же указываем кто занял и на какое время.
В пояснении сообщения укажите до какого вы планируете работать, чтобы можно было другим оценить время (мало ли вдруг все базы будут заняты). Дату указывать обязательно. Не хватает времени или подходит к концу, увеличьте в свойствах базы. -
В стартере 1С указываем код блокировка для занятой базы, чтобы с ней можно было работать:
Параметр код лучше делать уникальным для каждого пользователя, чтобы он случайно не совпал с другими. - Загружаем dt-файл для тестовой базы (при необходимости) и работаем с ним в тестовой базе.
Если появится окно ввода логина и пароля, то пробуем пользователя Администратор и пустой пароль. Второй вариант - открываем консоль кластера серверов и смотрим в какой базе нет блокировки или она просрочена.
Алгоритм освобождения занятой базы
-
После окончания работ с тестовой базой необходимо пойти одним из путей на выбор:
- Снять пароль с пользователя Администратор (если он есть). При этом проверить, что мы можем войти в эту базу. Если пользователя Администратор в базе нет, то можно его создать с пустым паролем и полными правами. И убрать параметры блокировки, если срок блокировки базы не вышел.
- Очистить базу и сделать ее пустой. Тогда в базу вообще можно зайти без запроса логина и пароля.
- Снять блокировку доступа в консоли администрирования 1С (можно просто снять галочку что блокировка включена). После этого шага считается, что вы уже не работаете с этой базой и эта база вам не нужна. Следующий пользователь может эту базу занять.
- Если в освобождаемой базе остались нужные данные, то сделайте ее копию для клиента, во избежания перезаписи после снятия блокировки.
Заключение
Важно, чтобы каждый разработчик работал по схеме выше и не забывал делать все эти шаги. Иначе ничего не будет работать, ну я думаю это и так понятно.
Соберитесь с командой и обсудите алгоритм работы с тестовыми базами 1С. За основу возьмите наш алгоритм или доработайте его.
В любом случае, вся разработка состоит из вот таких процессов. Если их не обсуждать и не пытаться решить получаем бардак и кучу потраченного времени.