Подключает новую базу 1С к шлюзу odata1c-gate вместе с пользователем: выясняет, какую базу он хочет подключить, даёт ему одну готовую команду для терминала, а после неё сам строит индекс, проверяет, что база отвечает, и показывает, что в ней защищено. Применяй, когда пользователь просит «подключи базу 1С», «добавь базу», «настрой шлюз», «хочу работать с ещё одной базой», когда `odata1c_bases` отвечает пустым перечнем, и сразу после установки плагина, если баз ещё нет. Пароль 1С модель не спра...
Installs into .claude/skills of the current project.
Are you the author of Odata1c Setup?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/romandredan-odata1c-setup)
---
name: odata1c-setup
description: >-
Подключает новую базу 1С к шлюзу odata1c-gate вместе с пользователем: выясняет, какую базу он
хочет подключить, даёт ему одну готовую команду для терминала, а после неё сам строит индекс,
проверяет, что база отвечает, и показывает, что в ней защищено. Применяй, когда пользователь
просит «подключи базу 1С», «добавь базу», «настрой шлюз», «хочу работать с ещё одной базой»,
когда `odata1c_bases` отвечает пустым перечнем, и сразу после установки плагина, если баз ещё
нет. Пароль 1С модель не спрашивает, не видит и не передаёт — его вводит человек в своём
терминале.
---
# odata1c-setup
Базу к шлюзу подключает человек, одной командой в своём терминале: только так пароль 1С минует
модель. Всё остальное — выяснить, что подключаем, построить индекс, убедиться, что база отвечает,
объяснить, что защищено, — делаешь ты. Пользователь не должен читать инструкцию по установке:
веди его сам, по одному шагу.
## Правило
Пароль 1С не спрашивай и не принимай — ни в чате, ни в команде, которую запускаешь сам. Если
пользователь всё же прислал пароль в сообщении, не используй его, скажи, что пароль вводится
только в терминале, и посоветуй сменить его в 1С. Файлы домашнего каталога шлюза
(`~/.claude/odata1c/`, в первую очередь `bases.yaml`) не читай и не правь; команду
`odata1c base add` сам не запускай — она спрашивает пароль и без терминала человека не работает.
## Шаги
1. **Проверь, что уже есть.** Вызови `odata1c_bases`. Если нужная база уже в перечне — подключать
нечего, переходи к шагу 5. Если инструмента `odata1c_bases` нет вовсе, плагин не подключён:
попроси пользователя выполнить `/mcp` и переподключить `odata1c`.
2. **Выясни три вещи одним сообщением.**
- Короткое имя базы латиницей: строчные буквы, цифры, подчёркивание (`ut_prod`, `bp_test`).
Этим именем базу будешь называть ты в каждом вызове.
- Роль. Предложи сам по описанию базы и объясни одной фразой: `prod` — рабочая база: реквизиты,
названия организаций и ФИО ты видишь токенами, записи нет; `test` — копия или тестовая:
токенами только реквизиты, запись разрешена; `dev` — база разработки без защиты. Сомневаешься
— предлагай `prod`: защиту потом легко ослабить, а вернуть уже показанные данные нельзя.
Уровень защиты задаётся для каждой базы отдельно. Если пользователь сам просит уровень, не
совпадающий с ролью (например, тестовая база с записью, но названия и ФИО токенами), добавь
в команду `--gate identifiers+names` (уровни: `off`, `identifiers`, `identifiers+names`).
Ослаблять защиту по своей инициативе не предлагай.
- Конфигурация 1С, если это типовая: `ut` (Управление торговлей), `bp` (Бухгалтерия), `zup`
(Зарплата и управление персоналом). От неё зависит стартовый набор рецептов. Другая
конфигурация — ключ `--recipes` в команде не нужен.
Адрес публикации, пользователя 1С и пароль НЕ спрашивай: их запросит сама команда.
3. **Дай одну команду** — в блоке кода, готовую к копированию, и предупреди, о чём она спросит:
```text
odata1c base add <имя> --role <роль> --recipes <конфигурация>
```
Команда спросит: адрес публикации 1С — тот же, по которому открывается веб-клиент, например
`https://server/base` (окончание `/odata/standard.odata/` шлюз допишет сам), подпись базы
(её увидишь ты — пусть будет понятной: «УТ 11, рабочая»), пользователя 1С и пароль (на экране
не отображается). Посоветуй
отдельного пользователя 1С с правами только на нужные данные. Если команда `odata1c` не
найдена — сначала `uv tool install odata1c-gate`. Попроси написать «готово», когда команда
отработает, и больше ничего не делай, пока он не ответит.
4. **Построй индекс.** После «готово» вызови `odata1c_bases` — новая база появляется в перечне
без перезапуска шлюза. Затем `odata1c_reindex` с `base=<имя>`: шлюз скачает описание
метаданных и построит индекс. На типовой конфигурации это одна-две минуты — предупреди об этом
до вызова. Отказы на этом шаге: `auth_failed` — неверный пользователь или пароль;
`odata_error` с сетевым сбоем — неверный адрес или недоступен сервер (VPN); в обоих случаях
запись базы нужно поправить — попроси пользователя открыть `bases.yaml` в домашнем каталоге
шлюза своим редактором либо удалить запись и повторить шаг 3. Сам файл не открывай.
5. **Покажи, что получилось.** Коротко, без технических подробностей: сколько объектов в базе
(`entity_count` из ответа реиндекса), какой уровень защиты действует и что это значит для
пользователя («названия клиентов и ИНН я вижу токенами вида `[[org:16]]`; настоящее значение
покажет команда `odata1c reveal` в вашем терминале»), разрешена ли запись. Если реиндекс
вернул `new_sensitive_fields`, скажи, сколько полей шлюз закрыл сам, и что состав защиты
меняется командами `odata1c policy` (навык `odata1c-policy`).
6. **Предложи первый вопрос** по этой базе — из тех, что удобно проверить глазами: «показать пять
последних документов», «найти контрагента по ИНН», для `ut` — «остатки по складу» (рецепт).
Дальше работай по навыку `odata1c`.
## Если что-то пошло не так
- База в перечне есть, но `indexed: false` и реиндекс отвечает ошибкой — причина в соединении,
см. отказы шага 4. Для диагностики окружения у пользователя есть команда `odata1c doctor`; сам
её не запускай, попроси показать вывод.
- Пользователь хочет сменить роль, разрешить запись или поменять уровень защиты уже подключённой
базы — это поля `role`, `write`, `gate.mode` её записи в `bases.yaml`; правит их он сам,
изменения действуют без перезапуска.
- Пользователь просит удалить базу — это тоже правка `bases.yaml` его руками; инструмента для
этого у тебя нет намеренно.