Правила разработки на 1С:Предприятии для ИИ-агентов и людей, с MCP-сервером.
Отличие от других наборов правил простое: каждое правило называет свой источник и свою проверку. Источник — ошибка, измерение или эксперимент на живом проекте, с датой. Проверка — то, что упадёт, если правило нарушить. Ни одного правила «вообще полезно знать»: такие не проверяются и не соблюдаются.
Правила разложены по направлениям: ядро платформы и отдельно каждая конфигурация — со своими правилами, глоссарием и картой объектов.
| Направление | Что покрывает | Правил | Терминов |
|---|---|---|---|
core |
язык, формы, метаданные, макеты, процесс — не зависит от конфигурации | 71 | 12 |
greenfield |
конфигурация с нуля: именование, языки, стиль, контур проверок, версии | 5 | — |
unf |
1С:УНФ — правила, термины, карта объектов | 2 | 10 |
bp |
1С:Бухгалтерия предприятия | открыто | — |
zup |
1С:Зарплата и управление персоналом | открыто | — |
erp |
1С:ERP Управление предприятием (типовая конфигурация «1С») | открыто | — |
Направление erp — это типовая конфигурация фирмы «1С». Проект maERP, на
который ссылаются источники правил, — собственная конфигурация на платформе 1С
и к 1С:ERP отношения не имеет.
«Открыто» значит, что направление заведено, а правил пока нет: своего проекта на этой конфигурации у нас не было, а выдуманное правило хуже отсутствующего.
Сервер работает по stdio: агент запускает его как обычный процесс у себя на машине. Хостинг, порты и сеть не нужны — нужен только Python 3.8+, никаких зависимостей.
claude plugin marketplace add bigsofter/tiny1C
claude plugin install 1c@tinycioКлонировать вручную не нужно: набор приезжает вместе с плагином, обновляется
через claude plugin update 1c.
git clone https://github.com/bigsofter/tiny1C{
"mcpServers": {
"tiny1c": {
"command": "python3",
"args": ["${TINY1C_HOME:-../tiny1C}/mcp/server.py"]
}
}
}Для Claude Code это .mcp.json в корне проекта, для остальных агентов — их
собственный файл конфигурации MCP. Переменная TINY1C_HOME позволяет не
писать в общий репозиторий путь конкретной машины. Обновление — git pull.
Codex CLI, DeepSeek Harness, Cursor, VS Code и прочие MCP-клиенты — готовые куски конфигурации в INSTALL.md. Там же способ для систем без MCP: выгрузка правил одним файлом в системную подсказку или в проектные инструкции.
scripts/export.py --направление core,greenfield --выход dist/rules.md| Инструмент | Зачем |
|---|---|
list_tracks |
какие направления есть и что в них лежит |
lookup_rule |
поиск по симптому: тексту ошибки, ключевому слову, id |
get_rule |
полный текст правила |
rules_by_category |
все правила категории (запросы, формы-xml, метаданные…) |
rules_for_object |
что известно про объект метаданных: правила и термины |
checklist |
что проверить перед правкой файла .bsl, .form, .mdo, .mxlx |
glossary_lookup |
термин предметной области → определение и объекты |
Плюс ресурс tiny1c://manifest — весь набор одним JSON.
Кроме правил, сервер умеет разбирать XML-выгрузку конфигурации — локально, без
базы и без платформы. Эти инструменты включаются явно: флагом
--tools offline или переменной окружения TINY1C_TOOLS=offline (удобно,
когда аргументы запуска задаёт плагин). Без них сервер отдаёт прежние семь.
| Инструмент | Зачем |
|---|---|
where_is |
где объект в интерфейсе: раздел → подсистема → команда (в том числе собственная), группа панели, кому скрыт, функциональные опции, права, ссылка e1cib/…; по названию раздела — его состав |
{"mcpServers": {"tiny1c": {"command": "python3",
"args": ["${TINY1C_HOME:-../tiny1C}/mcp/server.py", "--tools", "offline"]}}}Аргумент dump — каталог выгрузки конфигуратора «Выгрузить конфигурацию в
файлы», формат «Иерархический» (в нём лежит Configuration.xml); за его пределы инструмент не читает, подменённый XML (DTD, сущности) отвергает.
Каждый инструмент описан карточкой в tools/<группа>/<имя>.md: откуда идея,
где исполняется, чем опасен, чем проверен и что пока не умеет. Инструмент без
проверки на фикстуре в сервер не попадает.
tracks/<направление>/
track.md паспорт: конфигурации, платформы, статус
rules/*.md правила, одно правило — один файл
glossary.md термины: термин | синонимы | объекты | пояснение
objects.md карта объектов конфигурации (необязательно)
tools/<группа>/<имя>.md карточки исполняемых инструментов
manifest.json машинный индекс, собирается из всего перечисленного
mcp/server.py MCP-сервер (stdio, без зависимостей)
mcp/tools/ реализации инструментов (только stdlib)
fixtures/ синтетические выгрузки для проверки инструментов
tests/ проверки инструментов: golden-ответы на фикстурах
scripts/ сборка манифеста, проверка гигиены, прогон инструментов
Сборка и проверки:
scripts/manifest.py # пересобрать manifest.json
scripts/manifest.py --проверить # проверить формат и актуальность (для CI)
scripts/hygiene.py # что не должно уехать в публичный репозиторий
scripts/tools-check.py # инструменты на фикстурах (golden-ответы)---
id: bsl-006
направление: core
категория: модули
серьёзность: критично
платформы: [8.3, 8.5]
заголовок: "ЕстьNULL — функция языка запросов, во встроенном языке её нет"
ключи: [ЕстьNULL, NULL, компиляция]
источник: "ошибка:maERP 2026-09-02, панель сведений в 19 формах списков"
check: ["checkconfig-ext:разбор модулей форм", "smoke-forms:форма не открывается"]
---check пишется как «вид:описание». Виды: lint, checkconfig,
checkconfig-ext, smoke-forms, smoke-samples, smoke-print, fixtures,
refcheck, xml-audit, manual. Вид manual — честное признание, что правило
ловится только человеком; таких сейчас 28 из 78, и это видно в манифесте.
scripts/new-rule.py core forms-011 "Короткий заголовок" # заготовка из шаблона
# заполнить: категория, источник, check, текст
scripts/manifest.py && scripts/hygiene.py # пересобрать и проверитьПодробнее — в CONTRIBUTING.md. Откуда что взялось и что сознательно не заимствовано — в PROVENANCE.md.
Тексты правил, глоссарии и карты объектов — CC BY 4.0. Код (сервер, скрипты) — MIT. Берите с указанием авторства.