api-design
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Разработка на 1С через Unica: обнаружить исходники, найти и прочитать цель по логическому адресу, узнать доступные операции, подготовить изменение и получить результат. Используй как точку входа при начале работы с проектом 1С или когда неясно, какой инструмент либо предметный
$ npx -y skills add IngvarConsulting/unica --skill unica-dev --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/unica-devContext preview
The summary Claude sees to decide when to auto-load this skill.
Разработка на 1С через Unica: обнаружить исходники, найти и прочитать цель по логическому адресу, узнать доступные операции, подготовить изменение и получить результат. Используй как точку входа при начале работы с проектом 1С или когда неясно, какой инструмент либо предметный
name: unica-dev description: "Разработка на 1С через Unica: обнаружить исходники, найти и прочитать цель по логическому адресу, узнать доступные операции, подготовить изменение и получить результат. Используй как точку входа при начале работы с проектом 1С или когда неясно, какой инструмент либо предметный навык выбрать."
Начни с цели пользователя: что нужно узнать или изменить и как проверить результат. Для работы с проектом используй публичный MCP `unica`. Схемы доступных инструментов и возвращённые ими адреса относятся к подключённой сборке; проверяй их перед вызовом. Внутренние адаптеры и упакованные скрипты не являются дополнительными публичными инструментами.
1. Если набор исходников неизвестен, вызови `unica.view {}` в рабочем пространстве проекта. В ответе найди наборы, их состояние и дальнейшие проверки. Префикс набора бери из ответа: `main` не является умолчанием. 2. Найди объект по имени или синониму через `unica.search` со сводом `names`. Для фрагмента BSL используй текстовый поиск. Прочитай схему инструмента, чтобы выбрать поддерживаемые область и способ поиска. 3. Открой возвращённый `at` через `unica.view`. Спускайся по адресам `branches` и `items`; не собирай физический путь вместо логической цели. Проверь `limits` и полноту результата: пустая неполная выдача не доказывает отсутствие предмета. 4. `unica.check` проверяет выбранный предмет; содержание проверок зависит от адреса. Результат чтения не означает, что выполнены все проверки изменения или поставки.
Для перевода пути из внешнего лога или diff используй `unica.resolve`: либо `path`, либо `at`, без второго аргумента. В обычной навигации путь не нужен. Разрешение файла не восстанавливает каждый вложенный символ: элементы одной формы находятся в одном XML, а методы — в одном BSL.
Подробный порядок чтения, страницы и экранирование описаны в [source-access](../source-access/SKILL.md), поиск кода — в [code-search](../code-search/SKILL.md).
Адрес включает набор и логический предмет: `<набор>:<Вид>.<Имя>…`. Например, у объекта есть собственные реквизиты, формы и роли модулей; у формы — её элементы и события. Это разные узлы с разными операциями. Прикладное имя, похожее на название вида, не меняет смысл адреса. Адреса из ответа передавай без изменений, включая `\.` внутри имени. В JSON обратная косая черта удваивается.
У формы различаются три ресурса. Если `formAt` — полученный адрес формы, то сама форма читает её структуру, `formAt.Metadata` — локальную декларацию, а `formAt.Module.Form` — её BSL-модуль. Это пояснение формы адреса, а не три обязательных успешных вызова: бери доступные продолжения из ответа. У заимствованной формы расширения может быть локальная декларация без локального содержимого. Признак `content: "inherited"` не означает пустую форму и не разрешает подставлять элементы или модуль родителя.
Текстовый результат поиска с адресом `…Body#L<n>` открывай непосредственно. `#L<a>-L<b>` выбирает включительный диапазон абсолютных строк файла. Диапазон предназначен для чтения; перед изменением прочитай целый содержащий метод или другой узел, названный `next`, и узнай его операции. При невозможности доказать границы метода ответ может дать строку Body модуля с ограничением. Это не доказывает, что строка находится вне метода: в больших модулях границы метода могут быть недоступны текущей проекции.
Различай узел, страницу и исходный текст. У узла есть факты и ветви; страница содержит `items` и может иметь `cursor`; Body BSL возвращает конверт и сам текст отдельными текстовыми блоками. Не ожидай построчного JSON там, где пришёл исходный текст. При `result_too_large` используй предложенный читаемый диапазон или структурное продолжение из `next`.
Открой целевой узел и прочитай его `can`. Проверяй `implemented`: название операции само по себе не подтверждает готовность исполнения. Подробности выбранной операции запрашивай через `unica.view` по адресу `<узел>.Can.<op>`. Один и тот же `op` на форме и на объекте может принимать разные аргументы. Не переноси схему соседа.
`implemented: true` означает готовность операции к исполнению, но подробный дескриптор аргументов может быть ещё недоступен. Если запрос контракта отказал, прочитай причину и предложенный маршрут. Для операций BSL используй [code-patch](../code-patch/SKILL.md) и фактическую схему `apply`; не выдумывай недостающий контракт и не называй такую операцию нереализованной. Операцию с `implemented: false` не исполняй.
Сначала подготовь изменение вызовом `unica.apply` с адресом и операциями. Проверь план: какие входы прочитаны, какие файлы и эффекты изменятся. Предпросмотр не меняет исходники. Когда внесение именно этой правки входит в поручение пользователя, исполни полученный план отдельным `unica.apply` только с `executionToken` из успешного результата. Для другого изменения нужен другой план. При устаревании входов перечитай цель и подготовь новый план; не обходи отказ токена прямой записью.
После исполнения проверь фактический результат чтением и подходящей проверкой `unica.check`; предметный навык уточняет необходимую приёмку. Поддержку поставщика и унаследованное содержимое учитывай до правки.
Прочитай `summary`, `diagnostics` и ограничения ответа. `next` описывает дальнейший вызов, а не уже выполненное действие: проверь его смысл относительно задачи и передай возвращённые аргументы подходящему инструменту. Не превращай отказ или неполноту в успешное отсутствие объекта.
Если вместо предметного результата пришло задание Task, сохрани его идентификатор. Не запускай исходный инструмент заново ради ожидания. Способ наблюдения определяет доступный профиль клиента:
для состояния и `unica.task.result` для ограниченного ожидания резул
Unica (Ю́ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии.
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Автономный сервер отладки 1С. Используй когда нужно развернуть или проанализировать локальный автономный контур для отладки…
Фоновые и регламентные задания 1С. Используй когда нужно спроектировать, проверить или диагностировать background jobs,…
Поиск и применение паттернов БСП. Используй когда задача про длительные операции, профили групп доступа, безопасное хранение,…
Точечное редактирование конфигурации 1С. Используй когда нужно изменить свойства конфигурации, добавить или удалить объект из…
Создать пустую конфигурацию 1С (scaffold XML-исходников). Используй когда нужно начать новую конфигурацию с нуля