Данное решение я постарался сделать максимально простым в настройки, по факту нужно два действия
- Прописать настройки в конфиге
- Запустить exe
versions
c содержимым :
tcp://192.168.0.1/acc: 33
в файле может быть несколько строк, одна строка - одно хранилище
- Скачать актуальный релиз
- Собрать в ручном режиме. Ставим Go,
git clone https://github.com/LazarenkoA/1C2GIT
, переходим в каталог, выполняемgo build -o "1C2GIT"
илиgo build -o "1C2GIT.exe"
. (при использовании данного варианта версия будет 100% актуальная)
Конфигурационных файлов два, оба располагаются в каталоге Confs
- Config.conf - основной в который вносятся настройки синхронизации
- MapUsers.conf - не обязательный, для того что бы задать соответствия пользователя хранилища и git.
{
"Mongo": {
"ConnectionString": "mongodb://127.0.0.1:27017"
},
"Bin1C": "C:\\Program Files\\1cv8\\8.3.13.1513\\bin\\1cv8.exe",
"RepositoryConf": [
{
"TimerMinute": 30,
"From": {
"Rep": "tcp://....../.....",
"Extension": true,
"Login": "",
"Pass": ""
},
"To": {
"RepDir": "",
"Branch": "Dev"
}
}
]
}
- Mongo - Содержит настройки подключения к Mongo DB. Не обязательный параметр, про плюсы использование mongo см. ниже.
- RepositoryConf - это массив, т.е. таких элементов может быть несколько
- TimerMinute - расписание в минутах через сколько будет производиться синхронизация
- From - тут настраивается подключение к хранилищу 1С.
- Rep - строка подключения к хранилищу, может быть как по tcp://, так и файловая шара.
- Extension - флаг того является конфигурация расширением или нет.
- Login - имя пользователя для подключения к хранилищу
- Pass - пароль для подключения к хранилищу
- To - тут настраивается выгрузка в git
- RepDir - Директория в которой создан репозиторий для хранилища
- Branch - Ветка в которую нужно коммитить
{
"Имя пользователя хранилища 1С": "Ivanov <[email protected]>",
"Имя пользователя хранилища 1С2": "Petrov <[email protected]>",
"Default": "Sidorov <[email protected]>"
}
Формат пользователя Git обязательно такой должен быть как в примере. Default - это тот пользователь, который будет взят, если не найдено явного соответствия. Если не найдено явное соответствие и нет указание Default, или вообще нет данного конфигурационного файла, коммиты в Git будут делаться без параметра --author, т.е. под тем пользователем под каким настроен Git.
Утилита поддерживает 4 уровня логирования
- ошибка (2)
- предупреждение (3)
- информация (4)
- дебаг (5)
Уровень debug самый подробный. По умолчанию используется уровень "предупреждение". Задать уровень логирования можно при запуске параметром -LogLevel=5. Логи складываются в каталог Logs расположенный в директории с программой.
Для запуска синхронизации в виде службы можно воспользоваться приложением nssm.
nssm install 1C2GIT - Добавление службы
nssm set 1C2GIT Description "Выгрузка хранилища 1С в Git" - Установить описание для службы
nssm remove 1C2GIT - Удаление службы
Подробности см. readme в каталоге nssm-2.24
Обновления лога в веб интервейсе происходи через веб сокет, т.о. перезагрузка страницы не требуется, что бы эта фишка работала нужно
в html\index.html в строке
conn = new WebSocket("ws://127.0.0.1:2020/notifications");
установите имя своего хоста вместо 127.0.0.1
В web интерфейс выводятся как ошибки, так и информация о том, что произошла очередная синхронизация
Для корректной работы web интерфейса необходимо в конфиге подключить Mongo DB. Без Mongo DB работать тоже будет, но в таком случае информация по коммитам накапливается в памяти приложения и следовательно после перезапуска все очистится, так же без Mongo DB не выводится диаграмма.