В процессе организации работы команды разработчиков часто возникает вопрос: нужно ли разделять проект на несколько хранилищ (например, разработка, предрелиз и релиз) или достаточно одного? Давайте проанализируем текущие подходы к управлению конфигурациями в 1С и определим наиболее оптимальную стратегию.
Распространенное мнение о том, что для разных стадий жизненного цикла проекта (разработка, тестирование, релиз) нужны отдельные хранилища, часто является следствием отсутствия налаженных процессов автоматизации. Разберем, почему это создает больше проблем, чем решает:
Хранилище конфигурации требует дополнительных временных ресурсов на синхронизацию.Рассмотрим два основных современных пути, которые позволяют эффективно управлять кодом без избыточных структур:
Если команда работает в рамках стандартного Конфигуратора, достаточно одного общего хранилища. Логика здесь проста:
Хранилище конфигурации при условии своевременного помещения объектов.Файл поставки или обновление через Сравнение конфигураций после того, как изменения прошли цикл тестирования.Этот подход позволяет сохранить целостность конфигурации и минимизировать риск конфликтов при слиянии.
Если проект перерос возможности штатного инструментария, многие команды выбирают использование Git. Это позволяет применить лучшие практики CI/CD:
Gitsync, для автоматического переноса изменений из 1С в репозиторий Git.
Для реализации данного подхода необходимо перевести конфигурацию в «исходники» (файловый вид), что позволяет использовать стандартные механизмы сравнения и слияния кода, недоступные в обычном Конфигураторе.
Чтобы работа в команде (от 10 и более разработчиков) была стабильной, придерживайтесь следующих принципов:
Во-первых, откажитесь от идеи создания «Хранилища релиза» и «Хранилища предрелиза». Хранилище должно быть инструментом разработчика, а не инструментом доставки версии. Доставка версий должна осуществляться через автоматизированные процессы.
Во-вторых, если вы используете штатное хранилище, строго соблюдайте правило регулярного помещения (commit) изменений. Не оставляйте захваченные объекты «зависшими» на длительный срок, иначе другие разработчики будут блокированы.
В-третьих, используйте Файлы поставки для обновления тестовых и рабочих сред. Это исключает вероятность того, что в релизную базу попадет «сырой» код, который еще не был протестирован.
Рассмотрим пример процесса переноса изменений:
// Пример логики обновления предрелизной базы:
// 1. Создается файл поставки из Хранилища разработчиков
// 2. Файл .cf или .cfu загружается в предрелизную базу
// 3. Запускаются автоматические тесты
// 4. При успешном прохождении, этот же файл идет в продуктив
Подводя итог, можно сказать, что эффективность работы команды зависит не от количества хранилищ, а от качества автоматизации процессов переноса кода. Если у вас 10 и более разработчиков, самое время задуматься о переходе на Git или внедрении DevOps-практик, чтобы снять с себя рутину ручного управления файлами конфигураций.