Доработка заимствованной формы расширения
Repo script: ./scripts/python/run-python.sh metadata
Этот навык задаёт порядок и барьеры, а операции выполняет существующими навыками и репозиторными обёртками. Не создавать собственный преобразователь XML, загрузчик 1С или дополнительный сценарий.
Обязательные входы
До записи определить и сообщить:
- точные корни исходников основной конфигурации и расширения;
- имя расширения, объект метаданных, форму и целевые файлы;
- профиль и идентификатор расходуемой ИБ;
- версию платформы, происхождение и формат XML обеих выгрузок;
- запрошенную доработку.
Конфигурация и расширение должны относиться к одному целевому контуру и быть выгружены совместимой версией платформы. Дата файла не доказывает актуальность. При несовпадении формата, неизвестном происхождении или неоднозначной цели остановиться до заимствования.
Прочитать актуальные инструкции профильных навыков перед их вызовом. На POSIX исполняемые импортированные навыки запускать через ./scripts/skills/run-imported-skill.sh, готовность проверять через make imported-skills-readiness. На Windows использовать существующие эквиваленты .\scripts\skills\run-imported-skill.ps1 и .\make.ps1 imported-skills-readiness.
load-cfe запускать только штатным scripts/platform/load-cfe.sh в поддерживаемой проектом среде Bash. Если такой запуск недоступен, остановиться со статусом платформенного барьера not-run; не вызывать напрямую ibcmd, Конфигуратор или клиент 1С и не создавать новую обёртку в рамках работы с формой.
Проверить git status --short -- <точные целевые пути>. Если заимствование может перезаписать посторонние незавершённые изменения, остановиться. Не выполнять автоматический сброс или очистку Git.
Выполнение
- Через
metadata plan/apply с операцией form.borrow заимствовать только указанную оригинальную форму из подтверждённых исходников основной конфигурации в указанное расширение. Сохранить основной реквизит и идентификаторы базовой формы согласно контракту form.borrow.
Для изменения только модуля указать parameters.moduleOnly: true: разметка не копируется, существующий модуль сохраняется. Этот режим не является преобразованием полного XML формы между версиями; платформенный барьер ниже остаётся обязательным.
- До прикладной доработки выполнить
metadata verify --root ROOT --object LOGICAL --base-root BASE, затем cfe-validate для расширения. Любая ошибка или недоступная обязательная проверка останавливает процесс; текстовый разбор XML не является заменой. Если в проекте подключён просмотрщик форм (например, MCP one-c-form-viewer), после их успеха посмотреть чистое заимствование; просмотр не заменяет эти проверки и не является барьером при недоступном просмотрщике.
- Перед изменением расходуемой ИБ получить требуемое разрешение пользователя. Затем выполнить
scripts/platform/load-cfe.sh с точными --profile, --extension и новым временным --run-root. Контролировать штатное наблюдение длительной операции. Доработка разрешена только когда итоговый summary.json подтверждает успех import, check и apply выбранного расширения.
- Внести только запрошенную доработку. Для анализа использовать
metadata inspect, для точечных изменений — metadata plan/apply с операцией form.edit, для перехватчика метода — cfe-patch-method; выбирать только действительно нужные средства. Не подменять семантическую проверку формы или BSL регулярными выражениями и разбором текста.
- Повторить
metadata verify с тем же --base-root и cfe-validate, затем, если просмотрщик форм подключён, посмотреть доработанную форму. После успеха структурных проверок повторить load-cfe для того же расширения и той же расходуемой ИБ с новым --run-root.
- Для каждого изменённого BSL-модуля выполнить штатную проверку BSL проекта (
make analyze-bsl или проектный навык проверки BSL, если он есть) в точном контуре уже загруженной версии расширения. Если проверка недоступна, указать для BSL статус not-run. Успех соседней конфигурации или прежней версии расширения не засчитывать.
Не переходить через обязательный барьер со статусом «не проверено». При ошибке оставить исходники и расходуемую ИБ в фактическом состоянии, ничего автоматически не откатывать и сообщить последний успешный этап.
Итог
Вернуть таблицу со статусами passed, failed или not-run для:
- исходников и заимствования;
- структуры формы и расширения до доработки;
- первых
import, check, apply;
- структуры формы и расширения после доработки;
- визуальной самопроверки в просмотрщике форм (
not-run, если он не подключён);
- BSL и повторных
import, check, apply;
- ручной приёмки интерфейса.
Приложить пути к штатным summary.json и диагностике, не копируя в отчёт пароли, токены или другие учётные данные. Предварительную живую проверку чисто заимствованной формы и её контрольный снимок не выполнять. Даже после успешных автоматических проверок указывать ручная приёмка: not-run; не утверждать, что форма открывается, стандартные команды присутствуют или пользовательское поведение подтверждено.
Не выполнять commit, push, архивирование change или иные операции за границами пользовательского запроса.