Skip to content
Development
Skill

/unica-dev

Разработка на 1С через Unica: обнаружить исходники, найти и прочитать цель по логическому адресу, узнать доступные операции, подготовить изменение и получить результат. Используй как точку входа при начале работы с проектом 1С или когда неясно, какой инструмент либо предметный

BOOST
From plugin
unica
22749 skills1 MCP
Install
$ npx -y skills add IngvarConsulting/unica --skill unica-dev --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/unica-dev

Context preview

The summary Claude sees to decide when to auto-load this skill.

Разработка на 1С через Unica: обнаружить исходники, найти и прочитать цель по логическому адресу, узнать доступные операции, подготовить изменение и получить результат. Используй как точку входа при начале работы с проектом 1С или когда неясно, какой инструмент либо предметный

SKILL.md

unica-dev.SKILL.md
name: unica-dev
description: "Разработка на 1С через Unica: обнаружить исходники, найти и прочитать цель по логическому адресу, узнать доступные операции, подготовить изменение и получить результат. Используй как точку входа при начале работы с проектом 1С или когда неясно, какой инструмент либо предметный навык выбрать."

Работа с 1С через Unica

Начни с цели пользователя: что нужно узнать или изменить и как проверить результат. Для работы с проектом используй публичный 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, сохрани его идентификатор. Не запускай исходный инструмент заново ради ожидания. Способ наблюдения определяет доступный профиль клиента:

  • при native Tasks используй предоставленные хостом операции MCP Tasks;
  • при режиме совместимости используй обнаруженные `unica.task.get`

для состояния и `unica.task.result` для ограниченного ожидания резул

Read more
Ships withunica

Unica (Ю&#x301;ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии.

Get the whole plugin

Other skills on unica.

api-design
Skill

api-design

Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…

autonomous-server
Skill

autonomous-server

Автономный сервер отладки 1С. Используй когда нужно развернуть или проанализировать локальный автономный контур для отладки…

background-jobs
Skill

background-jobs

Фоновые и регламентные задания 1С. Используй когда нужно спроектировать, проверить или диагностировать background jobs,…

bsp-patterns
Skill

bsp-patterns

Поиск и применение паттернов БСП. Используй когда задача про длительные операции, профили групп доступа, безопасное хранение,…

cf-edit
Skill

cf-edit

Точечное редактирование конфигурации 1С. Используй когда нужно изменить свойства конфигурации, добавить или удалить объект из…

cf-init
Skill

cf-init

Создать пустую конфигурацию 1С (scaffold XML-исходников). Используй когда нужно начать новую конфигурацию с нуля