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