1
0
mirror of https://github.com/tishchenkovv/git-hook-1c.git synced 2025-07-15 19:44:15 +02:00

Установка и использование 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)

🚀 Установка

  1. Скачайте и распакуйте архив git-hook-installer.zip
  2. Запустите run.bat — откроется графический интерфейс установщика.
  3. Укажите путь к корню Git-репозитория.
  4. Скрипт скопирует хуки и создаст/обновит файл 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 будет срабатывать только при слияниях с конфликтами.

📌 Подробности

Infostart 🔗 https://infostart.ru/1c/articles/2422799/

Description
No description provided
Readme 58 KiB
Languages
PowerShell 91%
Shell 8.8%
Batchfile 0.2%