Skip to main content

Система управления версиями

Общие сведения

Для управления версиями исходного кода конфигураций 1С можно использовать:

  • Хранилище 1С — встроенный механизм платформы 1С:Предприятие
  • Git — распределённая система управления версиями

Сравнение подходов

КритерийХранилище 1СGit
Интеграция с платформойВстроеннаяТребует дополнительных инструментов
Работа с конфигурациейНативнаяЧерез выгрузку в файлы
CI/CD интеграцияОграниченнаяПолная
ВетвлениеНе поддерживаетсяПолная поддержка
Распределённая работаТребуется соединениеПолная автономность

Соглашение о коммитах

Все помещения изменений должны быть осмысленно описаны. Главным ориентиром является популярное соглашение Conventional Commits.

Важно

Это соглашение применяется как для хранилища 1С, так и для Git.

Формат сообщения коммита

[Тип](необязательный контекст): [Короткое описание] (номер задачи)

[необязательное тело]

[необязательная(ые) сноска(и)]
Примечание

При использовании методологии gitflow в тексте коммита не указывается номер задачи. Достаточно указать его один раз — в заголовке или теле запроса на слияние (Merge Request / Pull Request).

Типы коммитов

Чтобы изменения автоматически включались в список изменений (CHANGELOG.md), необходимо выбирать правильный тип:

ТипEmojiОписание
feat🚀 FeaturesНовая функция (новый документ, обработка, отчёт, изменение команды и т.д.)
fix🐛 Bug FixesИсправление багов/ошибок (ошибка в ЖР, баг от заказчика, замечание от QA)
docs📚 DocumentationИзменяется только документация (справка в конфигураторе или каталог doc)
perf⚡ PerformanceИзменение кода, повышающее производительность (оптимизация запросов, блокировки)
refactor🚜 RefactorРефакторинг кода (изменение без исправления ошибки или добавления функций)
style🎨 StylingИзменения, не влияющие на смысл кода (форматирование, пробелы)
test🧪 TestingДобавление или исправление тестов
chore⚙️ MiscellaneousДругие изменения, не влияющие на исходный код или тесты
ci⚙️ MiscellaneousНастройка CI/CD (Pipeline)
revert◀️ RevertОтмена прошлых изменений

Служебные коммиты (не включаются в CHANGELOG)

ТипОписание
chore(release): prepare for x.x.x.xПодготовка к релизу
chore(deps.*)Обновление зависимостей
chore(pr)Служебные изменения PR
chore(pull)Служебные изменения при слиянии

Специальные коммиты

ТипEmojiОписание
chore(release): version x.x.x.x📌Выпуск релиза
Коммит с security в теле🛡️ SecurityИсправление безопасности
Примечание

Таблица приведена в качестве справки. Актуальную конфигурацию смотрите в файле cliff.toml каждого проекта (сайт проекта git-cliff).


Рекомендации

  1. Описывайте изменения при каждом коммите — не откладывайте описание на потом
  2. Делайте атомарные коммиты — не накапливайте несвязанные изменения. Каждый коммит должен решать одну задачу (одна логическая единица работы)
  3. Пишите понятные описания — с точки зрения пользователя, не разработчика
  4. Не смешивайте типы изменений — например, изменение в отчете по остаткам и документа платежное поручение
  5. Используйте scope — для указания области (Бюджетирование, Администрирование, Интеграция, Казначейство)
  6. Указывайте номер задачи — для связи с системой управления задачами (не для метадологии gitflow)
  7. Описание на русском языке — краткое и понятное

Подробная документация

Работа с хранилищем 1С

Работа с Git