api-design
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Поиск и исследование BSL-кода и точек входа 1С. Используй когда нужно найти реализацию, вызовы, обработчики, модули, поток выполнения или быстро разобраться в механизме конфигурации.
$ npx -y skills add IngvarConsulting/unica --skill code-search --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/code-searchContext preview
The summary Claude sees to decide when to auto-load this skill.
Поиск и исследование BSL-кода и точек входа 1С. Используй когда нужно найти реализацию, вызовы, обработчики, модули, поток выполнения или быстро разобраться в механизме конфигурации.
name: code-search description: "Поиск и исследование BSL-кода и точек входа 1С. Используй когда нужно найти реализацию, вызовы, обработчики, модули, поток выполнения или быстро разобраться в механизме конфигурации."
`unica.check`.
за MCP `unica`.
`"main"` в примерах ниже иллюстрация, а не умолчание. В адресе имя стоит до двоеточия: `main:Document.Заказ`.
оболочке. К поиску по файлам переходи, только когда вызовы выше не закрыли пробел, и сообщай what was tried, если это важно для ответа.
ищет по тексту BSL. Локальное совпадение сохраняет `scope`, `line`, `column` и `snippet`; его `at` открывай напрямую в `unica.view`: это `…Method.<Имя>.Body#L<n>` внутри установленного метода либо `…Body#L<n>` вне метода. Номер строки абсолютный, от начала файла. Провайдерный результат тоже получает такой `at`, когда текущий исходник подтверждает его строки и фрагмент. Символьное имя от поставщика само по себе не доказывает границы метода. Если их установить нельзя, `limits` называет предел; адрес строки Body модуля не доказывает, что строка находится вне метода. Если текущий текст не подтверждает фрагмент поставщика, сохраняется исходное свидетельство с `limits`, без выдуманного адреса чтения. Совпадение без доказанного модуля (файл вне раскладки, незарегистрированный владелец) приходит без `at`, с причиной `unaddressed` и `fileId`. С `corpus: "names"` поиск по именам и синонимам отвечает `at`, `kind`, `title` объекта. Физического пути нет ни у одного свода.
буквально, `symbol` идёт по индексу символов, `semantic` — по смыслу. Без `role` Unica ищет литерал сама и провайдеров не поднимает.
поставщик не нашёл символ. Это успешный пустой результат. Ожидание индекса с `dependencyPending` требует повторить тот же запрос; оно не доказывает отсутствия символа. `indexFreshness: "unknown"` сохраняет предел актуальности.
по тексту и именам `limit` задаёт размер страницы (по умолчанию 20, максимум 50). Пока есть `cursor`, продолжай с теми же аргументами поиска. `page.stoppedBy: "complete"` означает конец полученного потока. Если прочитанный ответ изменился, курсор отвечает `stale_cursor`; начни поиск заново. Роли провайдеров дают страницы только внутри полученного окна: если секция сообщает `limitReached`, последняя страница не доказывает полноту поиска. При 200 полученных совпадениях попроси пользователя уточнить искомое, прежде чем искать снова; `scope` предлагай только для `lexical`, поскольку `symbol` и `semantic` пока не поддерживают ограничение логическим поддеревом. Меньшие пределы `bsl-analyzer` и RLM сохраняй как неполный результат, не называя запрос слишком широким только по этому признаку.
а не точное. Проверяй `sourceCoverage`: при `complete: false` часть дескрипторов не прочитана, `omitted` и `details` называют число и причину пропусков. Даже пустая выдача тогда не доказывает отсутствия объекта.
модуля — `Method`, у метода — подпись, контекст компиляции, собственные строки и ветвь `Body` с исходным текстом метода. Это дешевле, чем читать модуль целиком, и точнее, чем догадываться по совпадению.
в `branches` без счёта. Читай их адресом ветви: `unica.view {at: "<метод>.Caller"}`. Секции `callGraph` у `view` нет. Ответ ветви называет состояние графа в `props.callGraph`: страница соседей приходит только при `ready`, а `indexing` просит повторить позже. Если анализатора нет, а установка может заказать его поставку, ветвь заказывает её этим же вызовом; при `delivery_in_progress` повтори тот же вызов. Иначе ответ — отказ `provider_absent` с полями движка в `data`: `tool`, `stage` и следующий шаг в сообщении. Передай пользователю этот шаг, не повторяя вызов.
подписки и функциональные опции лежат в его `props` и ветвях.
или трассы. Тогда его переводит в адрес аварийный `unica.resolve`. В обычном ходе работы он не нужен.
1. Разметь пространство: `unica.view {}` называет наборы исходников и их формат, когда набор или формат неясен. 2. Найди предмет по имени: `unica.search {corpus: "names"}` с необязательным `kind`. Точное имя объекта закрывает вопрос быстрее любого текстового поиска. 3. Прочти узел: `unica.view {at}`. Ветвь `Module` ведёт к модулям владельца, ветвь `Method` — к его методам; узел метода даёт подпись и строки. 4. Ищи по тексту то, что именем не находится: фрагменты запросов, строковые литералы, заголовки, нестандартные токены. `role` выбирай под вопрос. 5. Расширяй только после неудачи точного поиска: синонимы, деловые термины, префиксы общих модулей, заголовки команд форм. 6. К локальному `rg` спускайся только за файлами вне индекса Unica или когда попытки выше не закрыли пробел — и скажи, что было испробовано. 7. Разделяй объявление, вызов, обработчик и мёртвое совпадение. Поток по одному попаданию не выводится. 8. Отчитывайся логическими адресами и строками внутри узла, а не путями к файлам; приводи запрос, которым получ
Unica (Ю́ника) — плагин для Codex, Claude Code и ZCode для разработки на 1С:Предприятии.
Проектирование и ревью API 1С: публичный программный интерфейс, служебный интерфейс, переопределяемые модули, совместимость,…
Автономный сервер отладки 1С. Используй когда нужно развернуть или проанализировать локальный автономный контур для отладки…
Фоновые и регламентные задания 1С. Используй когда нужно спроектировать, проверить или диагностировать background jobs,…
Поиск и применение паттернов БСП. Используй когда задача про длительные операции, профили групп доступа, безопасное хранение,…
Точечное редактирование конфигурации 1С. Используй когда нужно изменить свойства конфигурации, добавить или удалить объект из…
Создать пустую конфигурацию 1С (scaffold XML-исходников). Используй когда нужно начать новую конфигурацию с нуля