Skip to content

v1.1.0 — перенос только своих изменений модулей

Choose a tag to compare

@alonehobo alonehobo released this 20 Oct 15:05
· 2 commits to main since this release

Скачайте 1c-partial-cf-v1.1.0.zip и распакуйте каталог 1c-partial-cf в каталог skills агента (.claude/skills/, .agents/skills/) с заменой.

Что нового

Перенос только своих изменений модулей (#2)

  • --patch — объект, у которого изменены только модули (объекта, менеджера, набора записей, общего модуля, формы, команды), переносится не целиком, а патчами изменённых модулей. Всё остальное в объекте — от базы: свойства, реквизиты, элементы форм, неизменённые модули.
  • --until — конец изменений задачи: переносится --since..--until, без него — до рабочего дерева.
  • --target <выгрузка базы> — изменения задачи накладываются на модули базы-получателя, её правки сохраняются. Если они пересекаются с изменениями задачи, CF не собирается, а модули с маркерами <<<<<<< база / >>>>>>> задача кладутся в <имя>.conflicts/ для ручного разбора.
  • --methods — только изменения выбранных методов: CommonModule.Модуль.Метод, Document.Д.ObjectModule.Метод, Document.Д.Form.Форма.Метод и т. п.
  • Патч платформа применяет строго: если база изменилась в этих строках или рядом, /MergeCfg откажет и не изменит ничего.

Заглушки больше не меняют базу

При объединении с приоритетом базы заглушка всё же меняла её: переставляла состав функциональных опций, дописывала перевод строки в конец модуля и — если модуль сохранённой команды заглушки отличался от базы — добавляла в базу его методы. Теперь модулей у заглушки, её команд и форм в CF нет, а такие свойства получают DoNotMerge. Проверено на полной типовой конфигурации: выгрузка заглушек и выбранных объектов до и после /MergeCfg совпадает побайтно.

Проверено

1С 8.3.27, Windows: пакетный /MergeCfg на малой базе (все изменения, выбор методов, коммиты одной задачи, конфликт, без --target) и на полной типовой конфигурации (три модуля по 1,7–11 тыс. строк, выбор метода, сотни заглушек).

Ограничения

  • Перенос патчами проверен только пакетным /MergeCfg.
  • DoNotMerge платформа принимает только для свойства, которое в базе и CF различается: если модуль, непустой в выгрузке, в базе пуст, /MergeCfg откажет («Неизмененные свойства») — пересоберите CF из выгрузки, совпадающей с базой.