Home
Softono
i

infaton

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
1

Software by infaton

MCP35
Open Source

MCP35

# INFATON MCP Server для 1С:Предприятие [![MCP35 MCP server](https://glama.ai/mcp/servers/infaton/MCP35/badges/card.svg)](https://glama.ai/mcp/servers/infaton/MCP35) **Model Context Protocol (MCP)** — сервер на стороне 1С:Предприятие, предоставляющий **51 инструмент** для взаимодействия AI-ассистентов с базой данных 1С. Протокол: **JSON-RPC 2.0** (спецификация [MCP](https://modelcontextprotocol.io/)) --- ## 📋 Состав репозитория | Файл | Описание | |------|----------| | `Module.bsl` | Модуль HTTP-сервиса MCP — основной код, 51 инструмент (4 263 строки) | | `index.mjs` | Node.js stdio-обёртка для MCP-клиентов (Claude Desktop, Cursor и др.) | | `glama.json` | Манифест для каталога [Glama.ai](https://glama.ai/) | | `INFATON_MCP.cfe` | Расширение конфигурации 1С v2.0.0 (бинарный пакет) | | `HOW_TO_BUILD_CFE.md` | Инструкция по сборке и установке `.cfe` | --- ## 🆕 Что нового в v2.1.0 ### Исправления (9 патчей) | # | Инструмент | Баг | Исправление | |---|-----------|-----|-------------| | P1 | `get_list` | Отсутствие `ПЕРВЫЕ N` — возвращал ВСЕ записи | Добавлен `ПЕРВЫЕ` с параметром `limit` (по умолчанию 100) | | P2 | `get_document_list` | Фильтр по дате — `Дата >=` без параметра | Добавлен `Запрос.УстановитьПараметр` для дат | | P3 | `get_object_by_ref` | Пустая ссылка → невнятная ошибка платформы | Добавлена проверка `Если НЕ ЗначениеЗаполнено(Ссылка)` | | P4 | `get_active_users` / `get_locks` | Прямой обход коллекции сеансов → ошибка на сервере | Переход на `МассивСеансов = ПолучитьСеансыИнформационнойБазы()` | | P5 | `get_event_log` | Дата передавалась строкой + поле «Метаданные» вместо представления | `ПреобразоватьДату()` + `.МетаданныеПредставление` | | P6 | `ПреобразоватьДату` | Не обрабатывал `2026-05-14`, `14.05.2026`, `20260514` | Полная перезапись: ISO 8601 + 3 формата | | P7 | `fill_on_basis` | `Объект.Заполнить()` → верный метод `ЗаполнитьНаОсновании()` | Исправлен вызов метода | | P8 | `execute_batch` | Вложенный `execute_batch` → бесконечная рекурсия | Добавлен guard-флаг `_batch_depth` | | P9 | — | Версия оставалась 2.0.0 | Обновлена до 2.1.0 | ### Новые инструменты (10 штук, группа З) | # | Инструмент | Назначение | |---|-----------|------------| | 42 | `get_balance` | Остатки и обороты регистра бухгалтерии (любой план счетов) | | 43 | `get_register_totals` | Итоги регистров накопления (остатки/обороты) | | 44 | `get_accounting_entries` | Бухгалтерские проводки документа (Дт, Кт, сумма) | | 45 | `get_related_documents` | Цепочка связанных документов (ввод на основании) | | 46 | `validate_document` | Проверка заполнения документа без проведения | | 47 | `get_form_structure` | Структура управляемой формы (реквизиты, команды) | | 48 | `get_rights` | Права доступа текущего пользователя к объекту | | 49 | `find_duplicates` | Поиск дублей в справочниках по реквизитам | | 50 | `get_print_form` | Печатные формы через подсистему УправлениеПечатью | | 51 | `get_configuration_extensions` | Список расширений конфигурации (CFE) | --- ## 🛠 Полный каталог: 51 инструмент ### Группа А — Метаданные (8) | # | Инструмент | Описание | |---|-----------|----------| | 1 | `get_metadata_tree` | Дерево объектов метаданных конфигурации | | 2 | `get_object_metadata` | Полная структура объекта (реквизиты, ТЧ, модули) | | 3 | `get_object_attributes` | Список реквизитов объекта | | 4 | `get_object_tabular_sections` | Табличные части объекта | | 5 | `get_enum_values` | Значения перечисления | | 6 | `get_register_dimensions` | Измерения, ресурсы и реквизиты регистра | | 7 | `get_document_movements` | Движения документа по регистрам | | 8 | `search_metadata` | Поиск по метаданным (по имени/синониму) | ### Группа Б — Чтение данных (7) | # | Инструмент | Описание | |---|-----------|----------| | 9 | `execute_query` | Выполнение произвольного запроса 1С | | 10 | `get_object_by_ref` | Получение объекта по ссылке/GUID | | 11 | `get_list` | Список элементов справочника/документа с фильтрами | | 12 | `find_by_code` | Поиск элемента по коду | | 13 | `find_by_name` | Поиск элемента по наименованию | | 14 | `get_register_records` | Записи регистра с фильтрами | | 15 | `get_document_list` | Список документов с фильтрами по дате/номеру | ### Группа В — CRUD (7) | # | Инструмент | Описание | |---|-----------|----------| | 16 | `create_object` | Создание нового объекта (справочник/документ) | | 17 | `update_object` | Изменение реквизитов объекта | | 18 | `delete_object` | Пометка на удаление | | 19 | `post_document` | Проведение документа | | 20 | `unpost_document` | Отмена проведения | | 21 | `copy_object` | Копирование объекта | | 22 | `set_attribute` | Изменение отдельного реквизита | ### Группа Г — Код и отчёты (4) | # | Инструмент | Описание | |---|-----------|----------| | 23 | `execute_code` | Выполнение произвольного кода на встроенном языке | | 24 | `evaluate_expression` | Вычисление выражения и возврат результата | | 25 | `get_module_text` | Получение текста модуля объекта | | 26 | `generate_report` | Формирование отчёта (СКД) | ### Группа Д — Администрирование (6) | # | Инструмент | Описание | |---|-----------|----------| | 27 | `get_active_users` | Список активных пользователей и сеансов | | 28 | `get_event_log` | Журнал регистрации с фильтрами | | 29 | `get_locks` | Текущие блокировки данных | | 30 | `get_server_info` | Информация о платформе, конфигурации, сервере | | 31 | `check_references` | Проверка ссылочной целостности | | 32 | `run_scheduled_job` | Запуск регламентного задания | ### Группа Е — Интеграция (3) | # | Инструмент | Описание | |---|-----------|----------| | 33 | `exchange_execute` | Выполнение обмена данными | | 34 | `get_exchange_log` | Журнал обмена | | 35 | `import_data` | Импорт данных из JSON | ### Группа Ж — Расширенные операции v2.0 (6) | # | Инструмент | Описание | |---|-----------|----------| | 36 | `fill_on_basis` | Заполнение документа на основании другого | | 37 | `write_register_records` | Запись набора записей регистра | | 38 | `update_tabular_section` | Обновление табличной части объекта | | 39 | `subscribe_events` | Подписка на события журнала | | 40 | `execute_batch` | Пакетное выполнение инструментов | | 41 | `get_changes_since` | Получение изменений с метки времени (CDC) | ### Группа З — Бухгалтерия, аудит, формы v2.1 (10) 🆕 | # | Инструмент | Описание | |---|-----------|----------| | 42 | `get_balance` | Остатки/обороты регистра бухгалтерии | | 43 | `get_register_totals` | Итоги регистров накопления | | 44 | `get_accounting_entries` | Проводки документа (Дт/Кт/Сумма) | | 45 | `get_related_documents` | Связанные документы (цепочка оснований) | | 46 | `validate_document` | Проверка заполнения без проведения | | 47 | `get_form_structure` | Структура управляемой формы | | 48 | `get_rights` | Права доступа текущего пользователя | | 49 | `find_duplicates` | Поиск дублей по реквизитам | | 50 | `get_print_form` | Печатные формы через УправлениеПечатью | | 51 | `get_configuration_extensions` | Список расширений конфигурации (CFE) | --- ## 🚀 Быстрый старт ### Вариант 1: Через Claude Desktop / Cursor (stdio) Добавьте в `claude_desktop_config.json`: ```json { "mcpServers": { "1c-erp": { "command": "node", "args": ["/path/to/MCP35/index.mjs"], "env": { "ONEC_URL": "https://your-server/base/hs/mcp/", "ONEC_USER": "Username", "ONEC_PASSWORD": "Password" } } } } ``` ### Вариант 2: Прямой HTTP-вызов #### 1. Установите расширение 1. Откройте **Конфигуратор** базы 1С 2. **Конфигурация → Расширения конфигурации → Добавить** 3. Выберите файл `INFATON_MCP.cfe` (или соберите по [инструкции](HOW_TO_BUILD_CFE.md) из `Module.bsl`) 4. Обновите конфигурацию БД (**F7**) #### 2. Проверьте подключение ```bash curl -u 'Логин:Пароль' -X POST \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","method":"initialize","id":1}' \ https://ваш-сервер/база/hs/mcp/ ``` Ожидаемый ответ: ```json { "jsonrpc": "2.0", "id": 1, "result": { "protocolVersion": "2024-11-05", "capabilities": { "tools": {} }, "serverInfo": { "name": "infaton-1c-mcp", "version": "2.1.0" } } } ``` #### 3. Вызовите инструмент ```bash curl -u 'Логин:Пароль' -X POST \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"get_balance","arguments":{"account_code":"41.01","period_from":"2026-01-01T00:00:00","period_to":"2026-03-31T23:59:59"}}}' \ https://ваш-сервер/база/hs/mcp/ ``` --- ## 📐 Архитектура ``` ┌─────────────────────────┐ │ AI Assistant │ Claude / GPT / Qwen / Gemini / ... │ (MCP Client) │ └────────┬────────────────┘ │ stdio (JSON-RPC 2.0) ▼ ┌─────────────────────────┐ │ index.mjs │ Node.js stdio → HTTP proxy │ (MCP Transport) │ └────────┬────────────────┘ │ HTTP POST (Basic Auth) ▼ ┌─────────────────────────┐ │ HTTP-сервис /hs/mcp/ │ Расширение INFATON_MCP.cfe │ Module.bsl │ 51 инструмент (4 263 строки) │ (MCP Server) │ └────────┬────────────────┘ │ Встроенный язык 1С ▼ ┌─────────────────────────┐ │ База 1С:Предприятие │ ERP / УПП / Бухгалтерия / УТ / КА │ Данные, метаданные │ └─────────────────────────┘ ``` --- ## 📝 Совместимость | Параметр | Значение | |----------|----------| | Платформа 1С | 8.3.20+ (тестировалось на 8.3.27.1989) | | Конфигурации | ERP 2.5, УПП 1.3, Бухгалтерия 3.0, УТ 11, КА 2 | | MCP Протокол | 2024-11-05 | | Транспорт | HTTP (Basic Auth), stdio (через index.mjs) | | Node.js | 18+ (для stdio-обёртки) | --- ## 📊 История версий | Версия | Дата | Инструментов | Изменения | |--------|------|:---:|-----------| | **v2.1.0** | 2026-05-14 | **51** | +10 инструментов (бухгалтерия, аудит, формы), 9 багфиксов | | v2.0.0 | 2026-05-08 | 41 | +6 инструментов (batch, CDC, fill_on_basis и др.) | | v1.0.0 | 2026-04-28 | 35 | Первый публичный релиз | --- ## 📄 Лицензия MIT © 2024-2026 [INFATON](https://infaton.ru) — Привалов С.Ю. --- *Подробная инструкция по сборке `.cfe` — см. [HOW_TO_BUILD_CFE.md](HOW_TO_BUILD_CFE.md)*

AI Agents ERP
16 Github Stars