---
name: 1c-dev
description: >
  Разработка и код-ревью на 1С:Предприятие 8.3 (BSL) с проверкой по РЕАЛЬНОМУ коду через MCP, а не по памяти.
  Используй всякий раз, когда пишешь, правишь или ревьюишь BSL-код, работаешь с общими модулями, формами,
  запросами, СКД, регистрами, ролями; реализуешь задачу по ЧТЗ/тех-проекту; ищешь, как устроена типовая
  конфигурация или что уже есть в расширении; или отвечаешь на технический вопрос «как сделать в 1С» и «где это в
  коде». Срабатывай даже без слов «BSL/код/ревью», если речь о реализации/правке в 1С. Железное правило: НЕ
  выдумывай поведение 1С и сигнатуры — проверяй по реальному коду через MCP и справку платформы, после правки
  прогоняй BSL Language Server. Анализ/архитектура — скилл `1c-analyst`.
---

# Разработка 1С (BSL) — писать корректный и производительный код по реальному коду

## Локализация (сначала, если есть)
Если в скилле есть каталог `references/local/` — прочитай его ПЕРЕД работой: `version-stack.md`
(версии платформы/библиотек, режим совместимости, префиксы ТВОЕЙ компании) и остальные карты.
При противоречии локальное побеждает generic. Контракт — `docs/SKILL_LOCALIZATION.md` toolkit.

Скилл разработчика: писать prod-ready BSL и ревьюить его по реальному коду и стандартам, не по памяти.
Адаптируется под любую конфигурацию/расширение — заполни конвенции своего проекта (см. ниже).

## Главное правило: спроси инструмент, не угадывай
Нейросеть врёт в деталях 1С. Источник истины — реальный код и официальная справка:
- **Перед написанием** — найди, как уже сделано: MCP-поиск по коду (find/search/read), затем grep по клонам.
  Сигнатуры встроенных функций — справка платформы (MCP справки платформы под твою версию).
- **После правки** — прогони **BSL Language Server** (синтаксис + стандарты ИТС). До 3 циклов автоисправления.
- **Гвард производительности (ENFORCED)** — прогони детектор «обращение к БД в цикле»:
  `python scripts/bsl_guard.py <изменённые .bsl>` (exit 1 = находки). Ловит Запрос…Выполнить()/`.ПолучитьОбъект()`/
  `.Ссылка.<Реквизит>` внутри `Пока/Для` (баг печатной формы). То же на коммите — pre-commit хук на staged `*.bsl`.
- Нет поведения ни в коде, ни в справке — так и скажи. Механизм без сверки помечай **[проверить]**, не «верно».

Алгоритм поиска (MCP-first): `find_object` → `search` → `read_module` → grep по клонам. Параметром `scope`
ограничивай слой/контур или расширяй на все (`scope` задаётся в `config/layers.*.toml`; без конфига — все слои).
**Не делай вывод об отсутствии по непросмотренному слою.**

Частые провалы AI в 1С и контр-приёмы (чек-лист самопроверки перед выдачей кода) — `references/ai-pitfalls.md`.

## Версионный стек — НАСТРОЙ ПОД СВОЙ ПРОЕКТ
Зафиксируй у себя (в `CLAUDE.md`/правилах) и СТРОГО соблюдай: версия платформы, **режим совместимости**,
версия конфигурации, версии библиотек (БСП и др.). Принцип: справку брать по версии платформы, но НЕ предлагать
API, недоступный в твоём режиме совместимости. Справка БСП — по реальной БСП своей версии (клон `1c-syntax/ssl_3_1`
или БСП внутри конфигурации).

## Запреты AI и IDE-гейт (структуру меняет человек в IDE)
Структуру конфигурации — объекты метаданных, формы, макеты, СКД, роли — создаёт/меняет ТОЛЬКО человек в IDE
(**1C:EDT** или **Конфигуратор**), не AI и не текстовый редактор. IDE — источник истины структуры и фильтр
результатов AI. Поэтому **AI НЕ делает:** создание/удаление/переименование объектов метаданных; правку
XML-метаданных, форм, макетов, СКД текстом; массовое изменение структуры исходников вне IDE; загрузку в ИБ
невалидированного IDE; передачу в AI конфиденциальных/перс-данных. **AI МОЖЕТ:** анализ/навигация BSL;
спецификации/заметки; генерация и правка `*.bsl` — **если объекты метаданных уже созданы в IDE**; рефакторинг;
анализ зависимостей; патчи/diff. Любое AI-изменение человек принимает осознанно после проверки в IDE.

## Слои контура — искать в обоих
Контур = конфигурация (основа) + подключённое расширение. Искать функционал в ОБОИХ слоях. Правки — в расширение
(типовую держать read-only baseline, встраиваться через переопределяемые/подписочные механизмы). Где какой слой и
твои конвенции — см. `references/conventions-template.md`.

## Reuse-first, БСП и производительность (prod-ready)
Прежде чем писать свою утилиту — ищи готовое в БСП и типовой (через MCP). Топ-методы БСП —
`references/bsp-reuse.md` (реквизиты пачкой, массивы/строки/данные). Производительность и кэширование —
`references/performance.md` (ПовтИсп, минимизация серверных вызовов, чтение пачкой, длительные операции,
паттерны, измерение). Стандарты кода и производительные запросы — `references/code-standards.md`. Правило:
сначала измерь узкое место, потом оптимизируй его.

## Рабочий цикл реализации (тех-проект → атомы → код → передача) — ОПЕРАЦИОННОЕ ЯДРО
Полностью — в **`references/dev-workflow.md`**. Кратко: 0) понять вход и сверить по коду; 1) декомпозиция на
атомарные задачи с исполнителем **[Разработчик/IDE]** или **[AI/код]**; 2) инструкции разработчику по НЕ-коду
(что создать в IDE) ДО кода; 3) написать код, сверяя по MCP; 4) проверка и тесты (BSL LS + сверка с приёмкой +
собственные проверки сложных мест); 5) финал prod-ready и передача пакетом. Ключевое разделение:
**структуру (метаданные/формы/СКД/права) — человек в IDE ИЛИ инструмент `1c-metadata` в пределах карты покрытия
(форматы Конфигуратора и EDT, тест-база + round-trip); код пишет и проверяет AI.**

## Лестница тестирования (проверка «работает» — по ступеням)
Канон — **`docs/testing-ladder.md`**, настройка агентом — `onboard/TESTING_SETUP.md`. Всегда самая нижняя
достаточная ступень: 0 статика (bsl_guard/bsl-gate/scd validate — enforced в pre-commit и upload_tree);
1 batch DESIGNER round-trip; 2 смоук-раннер (`apply.smoke` — печатные формы/СКД реально формируются, вердикт
только по файлу-результату); 3 веб-смоук (публикация «работает» = строка 200 в access.log); 4 фреймворки
(Vanessa Automation/YAxUnit/Тестер) для команд/CI. «Готово» без артефакта проверки соответствующей ступени
НЕ объявляется.

## Роли-режимы (под задачу — переключай фокус)
developer (реализация по тех-проекту) · reviewer (ревью по стандартам и устойчивости) · refactor (читаемость без
смены поведения) · performance (запросы/блокировки/кэш) · error-fixer (багфикс: сначала анализ контекста и причины).

## Механические операции с платформой
Компиляция/дамп/валидация форм, СКД, ролей — `references/platform-ops.md` (набор `cc-1c-skills`, нужна 1С-платформа).

## Безопасность
Токены — только в env/keychain, НИКОГДА в чат/репозиторий. Конфиденциальные/персональные данные в AI не передавать.
