Поставка расширения конфигурации с помощью команд строки запуска «1С:Предприятие», GIT, KDiff3
Дорогой дневник, мне не подобрать слов, чтобы описать боль и унижение, которые я испытал за последнее время, моя жизнь никогда не будет прежней… мне не удалось найти механизма поставки расширения конфигурации… но зато я научился это делать с помощью команд запуска «1С:Предприятие» и GIT…
- Описание
- Подробнее
Описание
Исходные условия
Команда: 20 разработчиков.
Конфигурация: Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 3.1 (3.1.10.383).
Расширение конфигурации: «_ДемоРасширение» — для доработки типового и внедрения нового функционала.
Описание процесса
Основная конфигурация остаётся на поддержке от поставщика. Без возможности внесения в нее изменений — на замке. Команда разработки добавляет необходимый новый функционал через расширение конфигурации "_ДемоРасширения".
Возможные сценарии организации разработки и связанные с ними проблемы
Сценарий 1: разработка с постоянным подключением к хранилищу расширения конфигурации.
Проблема конкуренции за корень расширения конфигурации. Довольно часто возникает ситуация, когда для внесения изменений, нам необходимо захватить в хранилище корень расширения конфигурации. Негативные последствия:
- Простои. Ожидание освобождения корня другим разработчиком по завершении его задачи.
- Сложность контроля изменений. Если отпускать корень расширения конфигурации сразу после заимствования объектов основной конфигурации, то, велика вероятность, что изменения по одной функциональной задаче попадут в хранилище расширения разрозненными частями (по мере работы с объектами). Этот процесс затруднит ревью кода (отсутствие целостного представления о решении), и повысит риск нестабильности DEV-среды — частичные изменения, в рамках решения одной задачи, может нарушить работоспособность DEV среды.
Сценарий 2: разработка без подключения к хранилищу расширения конфигурации.
Проблема расхождения версий. За время работы над локальной задачей, активная параллельная работа других разработчиков приводит к значительным изменениям в хранилище расширения. Негативные последствия:
- Ручной труд и сложное слияние. Нужно точно помнить все объекты, которые были изменены в локальном расширении конфигурации. Чтобы внести свои изменения, приходится использовать «Сравнение и объединение с конфигурацией из файла…», без доступа к функциональности «Показывать только дважды измененные свойства».
- Риск конфликтов. Высокая вероятность затереть чужие изменения, сделанные за время своей автономной работы, или получить конфликт изменений. Это требует ручного и очень аккуратного разрешения.
Выбранный сценарий
Выбираем в качестве основной схемы разработки Сценарий 2, при котором разработчик решает задачу в отключённом от хранилища расширении конфигурации.
Потребность
Необходим инструмент, автоматизирующий создание CFE-файла расширения конфигурации, который содержал бы в себе изменения из хранилища расширения конфигурации и расширения конфигурации базы разработки. Этот инструмент должен эмулировать процесс Технологии разветвленной разработки конфигураций.
Идея решения
Проектируем и создаем средствами 1С инструмент, который бы мог выполнить и показать результат выполнения скрипта вида:
- Создаем локальный репозиторий Git;
- В локальном репозитории переключаемся на ветку master (или main) и выгружаем конфигурацию и расширение конфигурации в файлы XML;
- В своей базе (отключенной от хранилища расширения конфигурации) выполняем разработку задачи;
- В локальном репозитории переключаемся на ветку DEV и выгружаем конфигурацию и расширение конфигурации из нашей базы с выполненной задачей в файлы XML;
- В локальном репозитории переключаемся обратно на ветку master (main), получаем актуальные версии из хранилищ конфигурации и расширения, и выгружаем их в файлы XML;
- Выполняем слияние (merge) изменений из ветки master (main) в ветку DEV;
- При необходимости разрешаем возникшие конфликты слияния;
- Из ветки DEV собираем файлы CF и CFE для дальнейшего использования.
Дополнительные средства
БСП: версия от 3.0.3.229
Kdiff3: https://sourceforge.net/projects/kdiff3/files/kdiff3/0.9.98/
GIT: https://git-scm.com/downloads
Тестовая среда
Платформа: 1С:Предприятие 8.3 (8.3.26.1581)
Конфигурация: Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 3.1 (3.1.10.383)
Расширение конфигурации: _ДемоРасширение
Клиент-серверная база (пустая, подключенная к хранилищу расширения): Srvr="localhost";Ref="base_1";
Клиент-серверная база (с данными, для разработки): Srvr="localhost";Ref="base_2";
