0. ВІДЕОінструкція
Про причини і контексті створення цього додатка, ви можете дізнатися з наведеного нижче 20-ти хвилинного відео. У ньому також докладно розбирається процес установки, настройки і експлуатації Перезаліватора.
1. Опис
Під словом «перезаліть» розуміється процедура відновлення однієї бази даних (База призначення) з резервних копій іншої бази даних (База джерело). Наприклад, якщо необхідно завантажити дані з бази продуктивний в тестову або разработочной.
Перезаліватор дозволяє максимально автоматизувати процес «перезаливання» баз даних 1С: Підприємства.
Реалізовано на OneScript (). Для роботи необхідний OneScript версії 1.0.20 або вище.
Код відкритий, сторінка проекту на GitHub: https://github.com/Tavalik/Perezalivator
Є GUI-інтерфейс для вибору бази-приймача і бази-призначення, а також вікно з висновком результату.
2. Встановлення
- встановити OneScript (Детально про установку і настройку можна дізнатися, наприклад, тут).
- Завантажити файл «Distr \ Perezalivator-<версія>.ospx » (посилання)
- Запустити установку за допомогою пакетного менеджера opm
opm install <Шлях до файлу Perezalivator-<версія>.ospx>
Можна також скористатися командним файлом «Install.bat» з директорії «Distr»
Залежить від:
(Всі залежні бібліотеки встановлюються автоматично за умови використання пакетного менеджера opm)
3. Робота з додатком
Запуск програми здійснюється запуском файлу Perezalivator_Run.bat. При першому запуску в поточному каталозі буде створено порожній файл настройок Perezalivator_Params.json.
Необхідно заповнити всі параметри, описавши можливі бази-джерела, бази-призначення і параметри для відправки електронних листів.
Перевірити коректність введених налаштувань можна запустивши файл Perezalivator_Run_Test.bat. Перезаліватор буде запущений в режимі тестування налаштувань.
“Джерела”
“Ім’я” “Бухгалтерія (робоча)”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “Acc_Work”
“Ім’я” “ЗУП (робоча)”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “HRM_Work”
“Приймачі”
“Ім’я” “Загальна тестова №1”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “Test1”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща”
“ІмяПользователяХраніліща”
“ПарольПользователяХраніліща”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “Test1”
“Ім’я” “Загальна тестова №2”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “Test2”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща”
“ІмяПользователяХраніліща”
“ПарольПользователяХраніліща”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “Test2”
“Ім’я” “ЗУП – Тестова №1”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “HRM_Test1”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща” “C: 1C_BASErepositoryHRM_Dev”
“ІмяПользователяХраніліща” “test1”
“ПарольПользователяХраніліща” “Pass123_Repo”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “HRM_Test1”
“Ім’я” “ЗУП – озроблювальна №1”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “HRM_Dev1”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща” “C: 1C_BASErepositoryHRM_Dev”
“ІмяПользователяХраніліща” “dev1”
“ПарольПользователяХраніліща” “Pass123_Repo”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “HRM_Dev1”
“Ім’я” “ЗУП – озроблювальна №2”
“ПутьКПлатформе1С” “C: Program Files (x86) 1cv88.3.10.2580bin1cv8.exe”
“ТіпБази”
“ВерсіяCOMConnector”
“ІмяБази” “HRM_Dev2”
“АдресКластера” “localhost”
“ПортКластера” “2541”
“ПортАгента” “2540”
“Ім’я користувача” “Admin_1C”
“ПарольПользователя” “Pass123_1C”
“АдресХраніліща” “C: 1C_BASErepositoryHRM_Dev”
“ІмяПользователяХраніліща” “dev2”
“ПарольПользователяХраніліща” “Pass123_Repo”
“АдресСервераSQL” “localhost”
“ІмяПользователяSQL” “User_1C”
“ПарольПользователяSQL” “Pass123_SQL”
“ІмяБазиДаннихSQL” “HRM_Dev2”
“Електронна пошта”
“НастройкіSMTP”
“АдресSMTP” “smtp.ya.ru”
“ПортSMTP”
“ПользовательSMTP” “postname_from@yandex.ru”
“ПарольSMTP” “Pass123_Mail”
“ІспользоватьSSL”
“ПолучателіСообщеній”
“АдресЕлектроннойПочтиПолучателя” “postname_to1@yandex.ru; postname_to2@yandex.ru;”
При наступному запуску файлу Perezalivator_Run.bat відкриється вікно, в якому необхідно вибрати базу-джерело
і базу-призначення.
Якщо необхідно, можна вказати дату, на яку необхідно отримати дані (завжди використовується кінець дня).
Після вказівки всіх вихідних параметрів, перезаліватор почне роботу за наступним алгоритмом:
- Установка блокування регламентних завдань і початку сеансів в базі-приймачі
- Завершення активних сеансів (через кілька хвилин) в базі-приймачі
- Розрахунок послідовності файлів резервних копій для бази-джерела для відновлення на зазначену дату
- Відновлення бази-приймача по знайденої послідовності файлів
- Переклад бази-приймача в просту модель відновлення
- Стиснення файлів журналу транзакцій бази-приймача
- Відключення бази-приймача від сховища
- Підключення бази-приймача до сховища
- Оновлення конфігурації бази даних бази-приймача
- Розблокування початку сеансів бази-приймача
- Повідомлення про результат по електронній пошті
Якщо в базі-приймачі присутні активні сполуки, буде показана таблиця з усіма сполуками, а також буде надана можливість завершити всі активні сеанси.
Відпрацювавши, Перезаліватор видасть відповідне повідомлення (або повідомлення про помилку), а також відправить повідомлення про результат роботи на електронну пошту.
4. Висновок
Працюємо з Перезаліватором вже більше року. Той функціонал, який був нам необхідний, ми реалізували. Якщо буде інтерес спільноти, можливо і подальший розвиток програми.
До речі, є ще як мінімум 2 подібні проекти:
Дякуємо за увагу.