Поставка расширения конфигурации с помощью команд строки запуска "1С:Предприятие", GIT, KDiff3

29.07.25

Разработка - DevOps и автоматизация разработки

Дорогой дневник, мне не подобрать слов, чтобы описать боль и унижение, которые я испытал за последнее время, моя жизнь никогда не будет прежней... мне не удалось найти механизма поставки расширения конфигурации... но зато я научился это делать с помощью команд запуска "1С:Предприятие" и GIT...

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Поставка расширения конфигурации с помощью Команд строки запуска "1С:Предприятие", GIT, KDiff3
.cfe 150,42Kb
2 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Исходные условия

Команда: 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";

 
 Тестовые данные
Изменения которые сделаны другими разработчиками, и помещены в хранилище расширения конфигурации.
База: Srvr="localhost";Ref="base_1";
Ветка: master (main)
Изменения сделанные в локальном расширении конфигурации в рамках решения одной функциональной задачи.
База: Srvr="localhost";Ref="base_2";
Ветка: DEV
В финальном файле расширения конфигурации должен быть отражён результат слияния веток master (main) и DEV

 

Описание решения
В качестве решения было разработано расширение конфигурации «Сборщик проектов». Его основное назначение — выполнение набора команд по запросу пользователя.

 
 Справочник «Инструменты разрешения конфликтов»
 
 Справочник «Команды»
 
 Справочник «Сценарии сборки»
 
 Справочник «Конфигурации»
 
 Обработка «Выполнение сценариев»
Для выполнения сценария требуется задать: (1) путь к 1cv8.exe, (2) рабочую конфигурацию и (3) целевой сценарий. При выборе сценария происходит автоматическое заполнение таблицы командами.
Для выполнения сценария необходимо воспользоваться командой "Выполнить сценарий". После активации команды система автоматически запустит все шаги указанного сценария в заданной последовательности.
Система логирует результаты выполнения каждой команды сценария. Все логи выводятся в отдельной форме просмотра.
Если на форме логов становится доступной к использованию команда "Разрешить "Merge conflict"", то мы можем разрешить их прямо сейчас, воспользовавшись выбранным в описании "Конфигурации" инструментом разрешения конфликтов.
Команда "Разрешить "Merge conflict"" открывает специальную форму, содержащую список файлов с возникшими конфликтами слияния (merge-конфликтами).
Для разрешения конфликта, необходимо выбрать нужный файл и выполнить команду "Разрешить конфликт".

В результате выполнения команды Сборка CF и CFE из DEV (Демо) в каталоге репозитария сборки проекта build_cf_cfe будут созданы файлы "поставки" CF и CFE, которые можно с помощью "Сравнить объединить.." отнести в основное хранилища.

В результате, в списке отличий, система покажет только наши изменения.

 

Заключение
В результате решения задачи по автоматизации создания CFE-файла (склейка хранилища расширения конфигурации и расширения базы разработки), был разработан простой инструмент, который позволяет проектировать, исполнять и просматривать результат исполнения сценариев (скриптов), состоящие из Команд запуска "1С:Предприятие", команд GIT и CMD. Данное решение позволяет решать merge конфликты в одном окне - запуская KDiff3 непосредственно из 1С.

Инструмент должен позволить вести разработку автономно без сложностей ручного слияния, обеспечить целостность выгружаемых задач и стабильность DEV-среды, а также снизить трудозатраты на интеграцию изменений в условиях параллельной работы.

 

PS

Страничка проекта: project_builder_1C.git

Проверено на следующих конфигурациях и релизах:

  • 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.239

Вступайте в нашу телеграмм-группу Инфостарт

расширение конфигурации поставка показывать только дважды измененные свойства командная строка запуска "1С:Предприятие" GIT KDiff3

См. также

Тестирование QA DevOps и автоматизация разработки Программист Пользователь 1С v8.3 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Бухгалтерия предприятие 3.0 и версии КОРП: 3.0.178.26.

4800 руб.

20.01.2022    9862    36    1    

18

Тестирование QA DevOps и автоматизация разработки Программист 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.168.

2400 руб.

04.07.2022    10185    42    1    

33

DevOps и автоматизация разработки Тестирование QA Программист Пользователь 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.30.230.

3360 руб.

05.08.2024    3060    18    1    

12

EDT Групповая разработка (Git, хранилище) Программист 1С v8.3 Бесплатно (free)

Плагин, расширяющий функциональность EDT, предоставляя возможность работы с хранилищем конфигурации 1С без использования 1С:ГитКонвертер.

04.08.2025    1349    ZigRinat85    3    

26

Групповая разработка (Git, хранилище) Программист Бесплатно (free)

Разберем, как организовать работу с GIT, не покидая конфигуратор, и зачем может понадобиться автономный сервер. Вы узнаете о скриптах, которые автоматизируют взаимодействие с GIT прямо из 1С, а также о методах сборки / разборки обработок и расширений «на лету», которые значительно ускоряют процесс разработки и совместной работы.

22.07.2025    4310    ktb    17    

32

Групповая разработка (Git, хранилище) Системный администратор Программист Бесплатно (free)

Все больше команд начинают использовать при разработке 1С GIT. На самом деле производительность GIT так же ограничена и зависима от различных настроек и подходов, как и всеми нами любимая платформа 1С. Для комфортной работы с GIT в случае больших репозиториев необходимо выполнять оптимизацию алгоритмов взаимодействия. Опишу свой опыт. 

14.07.2025    1174    bborisko    0    

8

DevOps и автоматизация разработки EDT Программист Бесплатно (free)

Цель статьи – показать, что DevOps можно внедрять в проектах любого масштаба, даже с ограниченными ресурсами. Автор делится личным опытом: рассказывает, как начиналось внедрение, какие ресурсы потребовались, какие задачи удалось решить и как организован текущий рабочий процесс. Вы узнаете, как DevOps-практики помогают участникам разработки и чем DevOps-инженеры полезны для всех, кто участвует в создании решений. В статье подробно разбираются преимущества, которые дал переход на EDT, его влияние на процессы сборки, а также анализируется опыт внедрения Kubernetes – что это уже принесло и что принесет в будущем.

11.07.2025    1251    ptica    0    

6

DevOps и автоматизация разработки Программист Россия Бесплатно (free)

Проект демонстрирует, как можно использовать Git-хуки для повышения удобства работы с конфигуратором 1С.

02.07.2025    5056    lapinio    0    

25
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. van_za 301 29.07.25 13:37 Сейчас в теме
2. djalilovv_RSH 43 29.07.25 21:47 Сейчас в теме
Классно. Однозначно попробую!
3. alex_bob 259 30.07.25 13:58 Сейчас в теме
Что-то не всё понял.
1. Сколько по времени занимает выполнение сценариев с учетом улаживания конфликтов?
2. Как разрешаете конфликты в файлах ConfigDumpInfo.xml?
3. Как гарантируете, что за время подготовки расширения другой разработчик не положит в хранилище свои изменения?
4. Почему не используете EDT?
4. gorsheninsn 24 31.07.25 12:15 Сейчас в теме
(3)
1. Самая длительная операция — это выгрузка конфигураций в файлы. Если в команды запуска «1С:Предприятие» добавить «Инкрементальную выгрузку конфигурации в XML», то эта операция будет происходить быстрее.
2. ConfigDumpInfo.xml в *.gitignore. Нам не нужно его мержить. Он не важен для сборки файлов поставки.
3. Никак. Если очень активная разработка и нужна гарантия, то выход один — захватить рекурсивно корень конфигурации на время сборки своего файла поставки.
4. Адекватных причин нет. Нафантазируем сценарий, где куча подрядчиков и договорённостей с ними, что разработку ведём только в конфигураторе.
5. mikeA 1 31.07.25 13:25 Сейчас в теме
Для xml не пробовали что-то типа Oso использовать? Интересен был бы опыт. Потому что если не сортировать постоянно дерево метаданных, есть вероятность что xml разъедется при обычном text merge.
6. gorsheninsn 24 31.07.25 14:29 Сейчас в теме
(5) Видимо речь идет про Oso XML Merge. К сожалению, нет опыта использования этого инструмента.
Оставьте свое сообщение