cf-vendor-merge — скилл

Скилл обновляет доработанную типовую конфигурацию 1С на новый релиз поставщика через трехстороннее git-слияние

  • 44 ★ репозитория
  • Последний коммит
Скилл

Расширенный доступ

Почему такой уровень

  • Скрипты запускают `ibcmd` и платформу 1С, создают временные базы и меняют ветки git рабочего репозитория.
  • Слияние переписывает выгрузку конфигурации, поэтому перед запуском нужна отдельная ветка или копия.
Все причины и проверки
Российский стек

alonehobo/1c-cf-vendor-merge

Установка

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/cf-vendor-merge

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скрипты запускают `ibcmd` и платформу 1С, создают временные базы и меняют ветки git рабочего репозитория.
  • Слияние переписывает выгрузку конфигурации, поэтому перед запуском нужна отдельная ветка или копия.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Скилл ведет агента через обновление типовой конфигурации 1С:Предприятие 8.3 с доработками. Он выгружает файлы старого и нового релизов командой `ibcmd`, раскладывает выгрузки по веткам git и сливает три версии: старый типовой релиз, текущую конфигурацию и новый типовой релиз. Конфликты на удаление и изменение объектов, структурное слияние XML и макеты разбираются автоматически, а доработки BSL переносят параллельные агенты. После слияния скрипты проверяют результат: ссылки на отсутствующие объекты и реквизиты, права ролей, объекты, переименованные в `Удалить*`, импорт в пустую базу и синтаксический контроль модулей платформой через `/CheckModules`, в том числе вместе с расширениями. Информационную базу скилл не обновляет, это делают отдельно по прямой команде.

Для кого. 1С-разработчикам и интеграторам, которые поддерживают типовую конфигурацию с доработками и каждый релиз поставщика переносят вручную

Подходит, если

  • Вышел новый релиз типовой конфигурации, а текущая база на поддержке и содержит доработки.
  • Слияние в конфигураторе дает сотни конфликтов, и их разбор хочется отдать агенту.
  • После обновления надо убедиться, что роли, ссылки на объекты и расширения не сломались.
  • Доработки в модулях BSL надо перенести на новый релиз параллельными агентами.

Не подходит, если

  • Конфигурация без доработок: для нее есть штатное обновление поставки.
  • Есть только файлы обновления `.cfu`: скилл требует полные `.cf` старого и нового релизов.
  • Нужно обновить саму информационную базу, а не конфигурацию: скилл базу не трогает.

Пример запроса к агенту

Обнови нашу доработанную конфигурацию на новый релиз: старый.cf, новый.cf и текущая выгрузка лежат в каталоге рядом

Ограничения

Нужны Python 3 с библиотекой `lxml`, git и платформа 1С 8.3 с `ibcmd.exe` и `1cv8.exe`. Файлы обновления `.cfu` не работают. Для временных баз нужно около 25 ГБ свободного места и каталог вне облачной папки. Скилл написан под Windows-пути платформы, хотя скрипты на Python. Внешние MCP-серверы и другие скиллы не нужны, но грабли обновления лежат в `references/gotchas.md`, и перед работой их стоит прочитать.

Как отключить. Удалите каталог `cf-vendor-merge` из каталога скиллов агента. Временные базы и рабочий каталог слияния удаляют вручную.

Частые вопросы

Скилл обновит мою рабочую базу?

Скилл базу не обновляет. Результат проверяют на временной базе, а загрузку в рабочую делают отдельно и только по прямой команде.

Подойдет ли файл обновления .cfu?

Нет, нужны полные CF-файлы старого и нового релизов. Версию старого релиза берут из `Configuration.xml` текущей выгрузки.

Нужны ли MCP-серверы 1С?

Нет, скилл работает на собственных скриптах и не требует других скиллов или MCP-серверов.

Какие версии платформы подходят?

Нужна платформа 1С 8.3 с `ibcmd.exe` и `1cv8.exe`. Путь к `ibcmd` берется из `.v8-project.json`, поле `v8path`.

Сколько места нужно на диске?

Около 25 ГБ свободного места: на нем создаются временные базы. Каталог для них держат вне облачной папки.

Обсуждение

Вопросов и отзывов пока нет.

Российский стек

Скилл собирает маленький CF-файл с нужными объектами из выгрузки 1С, чтобы сравнение и объединение открывались за секунды

СкиллРасширенный доступ28Звезды репозитория
Российский стек

Скилл пакетных операций с платформой 1С: сборка и разборка обработок, загрузка и выгрузка конфигураций и расширений, запуск базы

СкиллШирокий доступ129Звезды репозитория
Российский стек

Скилл для быстрой разработки расширений 1С: цикл правка-загрузка-тест, работа с хранилищем и ИИ-функции через ТАБ:БИИ

СкиллРасширенный доступ4Звезды репозитория

Скиллы 1С для Claude Code

1C Skills for Claude Code

Выбор редакции

Набор скиллов для полного цикла разработки на 1С:Предприятие 8.3: от XML-исходников до публикации и тестов через веб-клиент

СкиллШирокий доступ781Звезды репозитория

1C Developer для Claude

1C Developer — Claude Skill

Российский стек

Скилл Claude для разработки на 1С:Предприятие 8.3: план, BSL-код и ревью с объяснениями на грузинском языке

СкиллРасширенный доступ2Звезды репозитория

Коротко о README

В README перечислено, что скилл выгружает, сливает и проверяет, и даны требования: Python, `lxml`, git, платформа 1С и место на диске. Установка сводится к копированию каталога в каталог скиллов.

Бейдж для README

Исходный SKILL.md

---
name: cf-vendor-merge
description: Обновление доработанной типовой конфигурации 1С на новый релиз через трехстороннее git-слияние XML-выгрузок (старый типовой / текущая / новый типовой) с автоматическим разбором конфликтов, переносом доработок BSL агентами и проверкой импортом, синтаксическим контролем модулей платформой и совместимостью расширений. Используй, когда нужно обновить конфигурацию на поддержке с доработками на новый релиз поставщика, «обновить базу на релиз», «перенести доработки на новую версию». НЕ для обновления без доработок (там db-update / vrunner cf_vendor_update) и не для обновления самой информационной базы — база обновляется отдельно, только по прямой команде.
argument-hint: "[старый.cf] [новый.cf] [текущая конфигурация]"
allowed-tools:
  - Bash
  - PowerShell
  - Read
  - Write
  - Edit
  - Glob
  - Grep
  - Agent
  - AskUserQuestion
---

# /cf-vendor-merge — обновление доработанной конфигурации на новый релиз

Скрипты: `scripts/` рядом с этим файлом (Python 3 + `lxml`, git, платформа 1С 8.3). Внешние MCP и другие skills не нужны. Грабли и решения — `references/gotchas.md`, прочитай до начала.
Все скрипты работают с рабочим каталогом слияния `<work>` и файлом состояния `<work>/vendor-merge.json`.

## Что нужно от пользователя

1. Полные `.cf`/`.dt` **старого** релиза (на котором стоит текущая конфигурация — версия в `Configuration.xml` текущей выгрузки) и **нового** релиза. `.cfu` не подходит.
2. Текущая конфигурация: XML-выгрузка (каталог) или ревизия в git, либо база, из которой выгрузить (`1cv8 DESIGNER /DumpConfigToFiles <каталог>`).
3. `ibcmd.exe` (из `.v8-project.json` → `v8path`), каталог для временных баз не в облачной папке, ~25+ ГБ свободно.
Рабочую базу не трогай: результат проверяется на временной/копии; загрузка в рабочую — только по прямой команде.

## Этап 1. Выгрузки и ветки

```
python vm_dump.py --ibcmd <ibcmd> --src <старый.cf> --out <tmp>\old_xml
python vm_dump.py --ibcmd <ibcmd> --src <новый.cf>  --out <tmp>\new_xml --keep-db
python vm_branches.py --repo <git-репозиторий> --work <work> --old-xml <tmp>\old_xml --new-xml <tmp>\new_xml (--custom-xml <каталог> | --custom-rev <ревизия>) [--root <коммит с .gitattributes>] [--gitattributes <файл>]
```
Сверь версии, которые печатают скрипты: старый релиз = версия поставщика в текущей конфигурации; формат выгрузки одинаковый. Ветки: `vendor-<старая>`, `vendor-<новая>`, `custom` (дерево текущей, родитель — старый релиз). Заданный `VM_COMMIT_TRAILER` (например, `\n\nCo-Authored-By: ...`) добавляется к сообщениям коммитов.

## Этап 2. Слияние и автоматический разбор

```
python vm_merge.py --work <work>                     # git merge -X no-renames, conflicts.json
python vm_resolve_md.py --work <work> [--apply]      # modify/delete: шум -> принять удаление поставщика
python vm_xmlmerge.py --work <work> [--apply]        # структурное слияние XML (без Template.xml)
python vm_templates.py --work <work> [--apply]       # макеты: целиком наш/поставщика по правилам
```

Сообщить о проблеме