Работа с Git и 1С представляет собой сложную, но очень полезную задачу, позволяющую организовать контроль версий для конфигураций 1С и упростить процесс разработки, особенно при командной работе.
Основные подходы к работе с Git и 1С:
Хранение файлов конфигурации в Git (DT-файлы или CF-файлы):
Суть: Конфигурация 1С представляется в виде набора файлов (DT — для полных выгрузок, CF — для выгрузки только конфигурации) и хранится в Git-репозитории. Это позволяет отслеживать изменения, создавать ветки для разработки, выполнять слияние изменений и т. д.
Инструменты:
1С:Предприятие (режим “Конфигуратор”).
Git (клиент командной строки или графический клиент, например, GitHub Desktop, GitKraken, Sourcetree).
Процесс:
Выгрузка конфигурации в файлы: В режиме “Конфигуратор” выгрузите конфигурацию в DT-файл (или CF-файл).
Создание Git-репозитория: Создайте Git-репозиторий (локальный или удаленный, например, на GitHub, GitLab, Bitbucket).
Добавление файлов конфигурации в репозиторий: Добавьте DT-файл (или CF-файл) и другие необходимые файлы (например, файлы с документацией) в Git-репозиторий.
Выполнение коммитов: Выполняйте коммиты (сохраняйте изменения) в Git-репозиторий после каждого изменения конфигурации.
Создание веток: Создавайте ветки для разработки новых функциональностей или исправления ошибок.
Слияние изменений: Выполняйте слияние изменений из разных веток в основную ветку (например, main или master).
Загрузка конфигурации из файлов: В режиме “Конфигуратор” загрузите конфигурацию из DT-файла (или CF-файла) в базу данных 1С.
Преимущества:
Простой в освоении и использовании.
Подходит для небольших проектов и для индивидуальной разработки.
Недостатки:
DT-файлы (и даже CF-файлы) — это большие бинарные файлы, которые Git не может эффективно отслеживать изменения внутри. Это означает, что Git будет видеть только изменение всего файла, а не отдельных его частей.
Сложно выполнять слияние изменений, внесенных разными разработчиками в разные части конфигурации.
Невозможно отслеживать историю изменений отдельных объектов конфигурации (документов, справочников и т. д.).
Плохо подходит для командной разработки.
Использование EDT (Enterprise Development Tools) (рекомендуемый подход):
Суть: EDT — это бесплатная среда разработки для 1С, основанная на платформе Eclipse. EDT позволяет представлять конфигурацию 1С в виде набора текстовых файлов (XML), которые Git может эффективно отслеживать и сравнивать.
Инструменты:
EDT (Enterprise Development Tools).
1С:Предприятие (режим “Конфигуратор” не используется для разработки).
Git (клиент командной строки или графический клиент).
Процесс:
Установка EDT: Установите EDT.
Создание проекта EDT: Создайте проект EDT на основе существующей базы данных 1С.
Экспорт конфигурации в проект EDT: EDT экспортирует конфигурацию в виде набора XML-файлов.
Создание Git-репозитория: Создайте Git-репозиторий для проекта EDT.
Добавление файлов проекта в репозиторий: Добавьте все файлы проекта EDT в Git-репозиторий.
Разработка в EDT: Вносите изменения в конфигурацию в EDT.
Выполнение коммитов: Выполняйте коммиты в Git-репозиторий после каждого изменения.
Создание веток: Создавайте ветки для разработки новых функциональностей или исправления ошибок.
Слияние изменений: Выполняйте слияние изменений из разных веток в основную ветку.
Загрузка изменений в базу данных 1С: Из EDT загрузите изменения в базу данных 1С.
Преимущества:
Git может эффективно отслеживать изменения в XML-файлах, что позволяет видеть историю изменений отдельных объектов конфигурации.
Упрощается слияние изменений, внесенных разными разработчиками.
EDT предоставляет удобные инструменты для разработки, отладки и тестирования кода 1С.
Идеально подходит для командной разработки.
Улучшенная поддержка рефакторинга кода.
Недостатки:
Более сложный в освоении, чем способ с DT-файлами.
Требует установки и настройки EDT.
Использование OneScript и bsl ls (альтернативный подход):
Суть: OneScript — это кроссплатформенная реализация языка 1С, а bsl ls — это Language Server для языка 1С. Вместе они позволяют разрабатывать и тестировать код 1С вне платформы 1С, используя любые текстовые редакторы и IDE с поддержкой Language Server Protocol (LSP), такие как VS Code. Это открывает возможности для использования Git для контроля версий и совместной работы с кодом 1С как с обычным текстовым кодом.
Инструменты:
OneScript.
Bsl ls (Language Server для 1С).
Текстовый редактор или IDE с поддержкой LSP (например, VS Code).
Git.
Процесс:
Установка OneScript и bsl ls: Установите OneScript и настройте bsl ls.
Создание проекта OneScript: Создайте проект OneScript, содержащий файлы с кодом 1С.
Создание Git-репозитория: Создайте Git-репозиторий для проекта OneScript.
Разработка в текстовом редакторе/IDE: Разрабатывайте код 1С в вашем любимом текстовом редакторе или IDE, используя возможности, предоставляемые bsl ls (автодополнение, проверка синтаксиса и т. д.).
Выполнение коммитов: Выполняйте коммиты в Git-репозиторий после каждого изменения.
Слияние изменений: Используйте Git для слияния изменений, внесенных разными разработчиками.
Развертывание кода на платформе 1С: Используйте OneScript для развертывания кода на платформе 1С.
Преимущества:
Возможность использования привычных инструментов разработки (текстовые редакторы, IDE).
Кроссплатформенность (разработка на Linux, macOS).
Более гибкий контроль над кодом.
Недостатки:
Требует значительных усилий для настройки и освоения.
Не поддерживает все возможности платформы 1С.
Менее распространенный подход, чем EDT.
Рекомендации:
Начните с простого: Если вы только начинаете работать с Git и 1С, начните с хранения файлов конфигурации в Git (способ 1). Это поможет вам понять основные принципы работы с Git.
Переходите на EDT: Как только вы освоитесь с Git, переходите на использование EDT (способ 2). Это обеспечит вам более эффективную разработку и упростит командную работу.
Рассмотрите OneScript: Если вам важна кроссплатформенность или вы предпочитаете использовать другие инструменты разработки, попробуйте OneScript (способ 3).
Изучайте Git: Изучите основные команды Git (commit, push, pull, branch, merge, rebase) и принципы работы с Git-репозиториями.
Используйте Gitflow: Для организации командной разработки используйте Gitflow или другие модели ветвления.
Пишите комментарии: Пишите комментарии к своим коммитам, чтобы объяснить, какие изменения вы внесли.
Регулярно делайте коммиты: Не ждите, пока вы закончите работу над большой задачей. Делайте коммиты регулярно, чтобы сохранять промежуточные результаты и иметь возможность откатиться к предыдущим версиям.
Используйте. gitignore: Создайте файл .gitignore в корне Git-репозитория, чтобы исключить из-под контроля версий файлы, которые не нужно хранить в репозитории (например, временные файлы, файлы настроек).
Автоматизируйте процесс: По возможности автоматизируйте процесс выгрузки и загрузки конфигурации, чтобы упростить работу и избежать ошибок.
Пример. gitignore файла (для проекта EDT):
.settings/
.externalToolBuilders/
Temp/
*.snap
*.bak
Важно:
Выбор конкретного подхода зависит от ваших потребностей, навыков и используемой конфигурации 1С.
Работа с Git и 1С требует определенных усилий для настройки и освоения, но это оправдывается повышением эффективности разработки, упрощением командной работы и обеспечением надежного контроля версий.
Следуя этим рекомендациям, вы сможете эффективно использовать Git для контроля версий конфигураций 1С и организовать процесс разработки.