Skip to content

Releases

v1.1.2 — числовой ноль и поддержка получателя

Choose a tag to compare

@alonehobo alonehobo released this 25 Oct 11:09

Исправления по результатам issue #3.

  • Числовой код 0 больше не вызывает predefined_code_mismatch. Учитываются xsi:type="xs:decimal" и CodeType=Number без явного типа значения; строковый "0" и ненулевые числа сохраняют предупреждение.
  • В README, SKILL.md и JSON-подсказке уточнена зависимость возможного отказа /MergeCfg от поддержки объекта именно в базе-получателе. Частичная загрузка в заблокированный объект тоже запрещена. Для предварительной очистки при разрешённой правке нужны только описание объекта и Ext/Predefined.xml; через ibcmd — без форм.
  • В репозитории и приложениях — патч двух заголовков native MCP с тем же исправлением. Патч прошёл проектный экспорт и проверку применения; это исходники для пересборки, не готовый бинарный пакет MCP.

Собственная проверка: 23 Python-теста; целевой C++-набор без ошибок; 13 случаев паритета Python/C++ без расхождений; XML-фрагменты из приложения к issue проверены обоими построителями как целый объект и заглушка; native MCP собран; build assemble_partial на платформе 8.3.27.2214 во временных базах успешно собрал оба сценария (числовой ноль без предупреждения, строковый код с предупреждением и новой подсказкой).

Изменение поддержки и объединение на базах БК КЗ автора независимо не воспроизводились. Эти наблюдения в документации атрибутированы автору отчёта. Остальные причины «неразрешимых ссылок» из issue #3 этим выпуском не закрываются.

Архив 1c-partial-cf-v1.1.2.zip содержит каталог скилла 1c-partial-cf/ и README. Патч MCP приложен отдельно.

v1.1.1 — предупреждение о коде предопределённых элементов

Choose a tag to compare

@alonehobo alonehobo released this 23 Oct 21:00

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

Что нового

Предупреждение о коде предопределённых элементов (#3)

У справочника (ПВХ, плана) с CodeLength=0 предопределённый элемент может хранить код — так в типовой БК КЗ 3.0.75.1 у Справочник.ВидыПрочихВыплат. База, загруженная из CF поставщика, код держит, а загрузка XML (и сборка малой CF) его стирает, и /MergeCfg отказывает «Неразрешимые ссылки на объект …»; DoNotMerge не помогает.

  • Отчёт перечисляет такие объекты CF — выбранные и заглушки — в predefined_code_mismatch (object, in_cf: whole/stub, items) с подсказкой predefined_code_hint. Сборку это не останавливает.
  • Обход описан в README и SKILL.md: до объединения убрать код у этих предопределённых элементов в базе-получателе, например частичной загрузкой в неё XML этих объектов из её же выгрузки.

Проверено

Тесты на синтетической выгрузке; на реальной БК КЗ и /MergeCfg новая версия не прогонялась.

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

Choose a tag to compare

@alonehobo alonehobo released this 20 Oct 15:05

Скачайте 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 из выгрузки, совпадающей с базой.