Данный механизм позволяет при переключении ветки в Git, автоматически загружать данные в базу 1С из файлов, а перед коммитом, наоборот выгружать данные базы в файлы. Используется Post-Checkout и Pre-Commit.
Для работы требуется:
- Установить oscript (версия должна быть не менее 1.6) и библиотеки к нему vrunner, JSON, 1commands, gui, gitrunner.
- Иметь необходимый локальный репозиторий Git.
- Инсталлировать механизм. Положить файл post_checkout_pre_commit.os на диск и прописать в командной строке (каталог с репозиторием указать свой):
oscript post_checkout_pre_commit.os install "C:\КаталогСРепозиторием"
- Изменить файл env.json в каталоге .git репозитория, настроить версию 1С, базу, пользователя и блок настройки (каталог исходников в репозитории и расширение это или нет). Сам файл имеет такую структуру:
{
"$schema": "https://raw.githubusercontent.com/vanessa-opensource/vanessa-runner/develop/vanessa-runner-schema.json",
"default": {
"--ibconnection": "/Server\\Base",
"--db-user": "User",
"--db-pwd": "Password",
"--root": ".",
"--workspace": ".",
"--v8version": "8.3.18",
"--locale": "ru",
"--language": "ru",
"--additional": "/WA+ /DisplayAllFunctions /Lru /iTaxi",
"--ordinaryapp": "-1",
"--uccode": "pas"
},
"Настройки": {
"ЭтоРасширение": true,
"ИмяРасширения": "ИмяРасширения",
"КаталогИсходников": "src"
}
}
Когда создается новая ветка или идет переключение ветки, будет появляться вопрос о необходимости загрузить данные в базу из файлов. При утвердительном ответе, данные загружаются в базу.
# Переключение на ветку
git checkout new
# Создание ветки и переключение на нее
git checkout -b new
После этого мы работаем в базе 1С как обычно. После того, как все изменения сделаны, делаем коммит в этой ветке. При этом будет задан вопрос, нужно ли выгрузить базу в файлы перед коммитом. При утвердительном ответе данные выгружаются в файлы и делается коммит.
# Сделать коммит
git commit -m 'Мой коммит'
Для удаления из репозитория данного механизма необходимо прописать в командной строке (каталог репозитория указать свой):
oscript post_checkout_pre_commit.os uninstall "C:\КаталогСРепозиторием"