mirror of
https://github.com/tishchenkovv/git-hook-1c.git
synced 2025-11-29 22:38:22 +02:00
main
Установка и использование Git-хуков для 1С:Предприятие (Конфигуратор)
📦 Назначение проекта
Данный проект автоматизирует работу с конфигуратором 1С и Git. Он устанавливает хуки Git (pre-commit, post-checkout, post-merge), которые:
- выполняют синтаксическую проверку конфигурации 1С;
- проверяют
.bsl-файлы через внешний анализатор; - загружают конфигурацию при переключении веток или после слияния;
- помогают избежать ошибок при коммите и переключении веток.
⚙️ Состав
build-installer.ps1— собирает ZIP-архив с хук-установщиком для распространения.install.ps1— графический установщик хуков. Позволяет выбрать путь к репозиторию и автоматически скопировать необходимые файлы.run.bat— вспомогательный скрипт для запуска графического установщика..git/hooks/pre-commit.ps1,.git/hooks/post-checkoutи др. — реализованные хуки.config_hooks.json— конфигурационный файл с настройками хуков и параметрами запуска 1С.
🧩 Конфигурация (config_hooks.json)
Файл config_hooks.json содержит два ключевых раздела: settings и settings_1c.
🔧 settings
post_checkout
| Параметр | Описание |
|---|---|
use_checkout |
Включение post-checkout-хука |
service_branches |
Служебные ветки (например: develop,main,master) |
load_branch_auto |
Автоматически загружать конфигурацию при переключении ветки |
generate_file_configdumpinfo |
Генерация ConfigDumpInfo.xml |
pre_commit
| Параметр | Описание |
|---|---|
use_precommit |
Включение pre-commit-хука |
check_syntax |
Проверка синтаксиса конфигурации 1С |
check_syntax_auto |
Автоматическая проверка конфигурации |
check_bsl |
Проверка .bsl-файлов |
check_bsl_auto |
Автоматическая проверка .bsl |
path_bsl |
Путь к внешнему анализатору .bsl (BSL Server 1c в формате jar) Например (C:\\BSL_1c\\bsl-language-server-0.24.2-exec.jar) |
post_merge
| Параметр | Описание |
|---|---|
use_merge |
Включение post-merge-хука |
load_branch |
Загрузка конфигурации после слияния |
check_syntax |
Проверка синтаксиса после слияния |
⚙️ settings_1c
| Параметр | Описание |
|---|---|
base |
Строка подключения к информационной базе (например, localhost\\MyBase) |
src |
Путь к выгруженной конфигурации 1С (если не используется стандартная src/) |
root |
Корень Git-репозитория |
AuthOS |
Использовать аутентификацию ОС |
user |
Имя пользователя для подключения к базе |
password |
Пароль пользователя |
platform |
Путь к 1cv8.exe (платформа 1С) Например (C:\\Program Files\\1cv8\\8.3.26.1540\\bin\\1cv8.exe) |
🚀 Установка
- Скачайте и распакуйте архив
git-hook-installer.zip - Запустите
run.bat— откроется графический интерфейс установщика. - Укажите путь к корню Git-репозитория.
- Скрипт скопирует хуки и создаст/обновит файл
config_hooks.json.
🔍 Пример работы
- При коммите выполняется проверка
.bslфайлов и синтаксиса конфигурации. - При переключении ветки загружается конфигурация и обновляется база.
- При слиянии — аналогично.
🧪 Сборка установщика
Для создания дистрибутива:
.\build-installer.ps1
Будет сформирован архив с необходимыми файлами для переноса на другую машину.
📁 Структура проекта
1c_git/
├── .git/hooks/
│ ├── pre-commit.ps1
│ ├── post-checkout
│ └── ...
├── config_hooks.json
├── install.ps1
├── build-installer.ps1
└── run.bat
📌 Требования
- Windows 10/11
- Платформа 1С (8.3.x)
- PowerShell ≥ 5.1
- Git for Windows
- Внешний
.bslанализатор (если используется) - Для работы анализатора кода требуется установленная Java версии 17 и выше
- Анализатор и репозиторий должны быть размещены на одном физическом диске
- Репозиторий должен быть локальным (не сетевым)
⚠️ Внимание
-
При установке Git-хуков в проекте отключается режим fast-forward слияний с помощью команды:
git config merge.ff false -
Это сделано намеренно, чтобы гарантированно срабатывал хук
post-mergeпри каждом слиянии, даже если не возникает конфликта. -
Вы можете вручную включить режим fast-forward, если это необходимо. Однако в таком случае хук
post-mergeбудет срабатывать только при слияниях с конфликтами.
📌 Подробности
Description
Languages
PowerShell
91%
Shell
8.8%
Batchfile
0.2%