mirror of
https://github.com/tishchenkovv/git-hook-1c.git
synced 2025-07-15 19:44:15 +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%