desko77/cursor-1c-skills/1c-cfe-patch-method

Claude Code and agent skill by desko77/cursor-1c-skills

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Перехватчики методов в расширении 1С (CFE). Используй когда нужно перехватить метод заимствованного объекта - код до, после или вместо оригинального - либо свериться с оригиналом после обновления основной конфигурации

Install

npx vskill@latest install desko77/cursor-1c-skills/1c-cfe-patch-method

SKILL.md

/cfe-patch-method - Генерация перехватчика метода

Генерирует .bsl файл с декоратором перехвата для заимствованного объекта расширения. Создает файл, дописывает в существующий регион или, если перехватчик &ИзменениеИКонтроль уже стоит, сверяет его с оригиналом и переносит правки в новую редакцию метода.

Предусловие

Объект должен быть заимствован в расширение (/cfe-borrow). Скрипт читает NamePrefix из Configuration.xml расширения для формирования имени процедуры.

Параметры

ПараметрОписаниеПо умолчанию
ExtensionPathПуть к расширению (обязат.)-
ModulePathПуть к модулю (обязат.)-
MethodNameИмя перехватываемого метода (обязат.)-
InterceptorTypeBefore / After / Instead / ModificationAndControlобязателен вне -Check и -Actualize
ConfigPathИсходники основной конфигурации: оттуда берутся сигнатура, тело и директива компиляции-
ContextДиректива контекста модуля формыиз оригинала, иначе НаКлиенте
IsFunctionМетод - функция (когда ConfigPath не задан)false
CheckСверить перехватчики &ИзменениеИКонтроль со всеми оригиналами, ничего не записываяfalse
ActualizeТо же плюс перенос правок в новую редакцию оригиналовfalse

ModulePath принимается и как имя объекта (CommonModule.X), и как путь к файлу модуля (CommonModules/X/Ext/Module.bsl).

Формат ModulePath

ModulePathФайл
Catalog.X.ObjectModuleCatalogs/X/Ext/ObjectModule.bsl
Catalog.X.ManagerModuleCatalogs/X/Ext/ManagerModule.bsl
Catalog.X.Form.YCatalogs/X/Forms/Y/Ext/Form/Module.bsl
CommonModule.XCommonModules/X/Ext/Module.bsl
CommonForm.XCommonForms/X/Ext/Form/Module.bsl
Document.X.ObjectModuleDocuments/X/Ext/ObjectModule.bsl
Document.X.Form.YDocuments/X/Forms/Y/Ext/Form/Module.bsl

Аналогично для Report, DataProcessor, InformationRegister и других типов.

Типы перехвата

InterceptorTypeДекораторНазначение
Before&ПередКод до вызова оригинального метода
After&ПослеКод после вызова оригинального метода
Instead&ВместоЗамена метода с явным ПродолжитьВызов
ModificationAndControl&ИзменениеИКонтрольКопия тела метода с маркерами #Вставка/#Удаление

Before и After к функции неприменимы: перехватчик обязан вернуть значение. Скрипт определяет вид метода по оригиналу и отказывает.

Сигнатура, тело и директива компиляции берутся из ConfigPath: платформа связывает перехватчик с оригиналом по имени и списку параметров. Охватывающее условие препроцессора (#Если Сервер Тогда) переносится в модуль расширения.

Сверка с оригиналом

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

ИсходЧто произошло
[АКТУАЛЕН]Оригинал не менялся, файл не тронут
[АКТУАЛИЗИРОВАН]Копия пересобрана, правки размещены по якорям
[ПЕРЕНЕСЕНО В ОСНОВНУЮ]Правки попали в основную конфигурацию, из расширения убраны
[АКТУАЛИЗИРОВАН-ЧАСТИЧНО]Якорь исчез: блок вынесен в конец тела с маркером [РЕСИНК-КОНФЛИКТ]

Комментарий разработчика рядом с поглощенным кодом в основную конфигурацию не переносится - об этом сообщается отдельной строкой.

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

Команда

powershell
powershell.exe -NoProfile -File skills/1c-cfe-patch-method/scripts/cfe-patch-method.ps1 -ExtensionPath src -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before

Примеры

powershell
# Перехват &Перед на сервере
... -ExtensionPath src -ModulePath "Catalog.Контрагенты.ObjectModule" -MethodName "ПриЗаписи" -InterceptorType Before
# Перехват &После на клиенте
... -ExtensionPath src -ModulePath "Document.Заказ.Form.ФормаДокумента" -MethodName "ПослеЗаписиНаСервере" -InterceptorType After -Context "НаКлиенте"
# ИзменениеИКонтроль для функции
... -ExtensionPath src -ModulePath "CommonModule.ОбщийМодуль" -MethodName "ПолучитьДанные" -InterceptorType ModificationAndControl -ConfigPath C:\cfsrc\erp
# Сверка всех контролируемых методов после обновления конфигурации
... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Check
# Сверка с переносом правок в новую редакцию
... -ExtensionPath src -ConfigPath C:\cfsrc\erp -Actualize

Генерируемый код (Before)

bsl
&НаСервере
&Перед("ПриЗаписи")
Процедура Расш1_ПриЗаписи
// TODO: код перед вызовом оригинального метода
КонецПроцедуры

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/desko77/cursor-1c-skills/1c-cfe-patch-method/badge)](https://verified-skill.com/skills/desko77/cursor-1c-skills/1c-cfe-patch-method)

Something wrong with this skill or its page? Tell us.