# 📦 Как собрать новый `.cfe` из исправленного `Module_FIXED.bsl` **Подготовлено:** 18.04.2026 **Исходные файлы:** - Старый cfe: `docs/1c-mcp/INFATON_MCP_OLD.cfe` (копия текущего `INFATON_MCP.cfe`) - Исправленный модуль: `docs/1c-mcp/Module_FIXED.bsl` --- ## ❓ Почему `.bsl` нельзя превратить в `.cfe` напрямую - **`.bsl`** — это **текстовый модуль** (исходный код на языке 1С). - **`.cfe`** — это **бинарный контейнер расширения** (внутри: HTTP-сервисы, константы, роли, модули, метаданные, зависимости и т.д.). **Собрать `.cfe` можно только из Конфигуратора 1С.** Внешние утилиты для этого нет — только родной инструмент `1cv8.exe` (Designer). --- ## ✨ Рекомендуемый путь — А (быстрый) **Если вам нужен только работающий endpoint в базе `clear`** — собирать `.cfe` вообще не нужно. Достаточно править модуль в конфигураторе и обновить БД: 1. Конфигуратор базы `clear` → **Конфигурация → Расширения конфигурации** → выделить `INFATON_MCP` 2. Кнопка «**Открыть конфигурацию расширения**» (или двойной клик) 3. В дереве конфигурации: **HTTP-сервисы → mcp → Модуль** 4. Открыть модуль, найти строку (в начале файла): ```bsl ДанныеЗапроса = ПрочитатьJSON(ЧтениеJSON); ``` 5. Заменить на: ```bsl ДанныеЗапроса = ПрочитатьJSON(ЧтениеJSON, Истина); ``` 6. **Ctrl+S** (сохранить) 7. **F7** — обновить конфигурацию базы данных → «Принять» 8. Если спросит завершить сеансы → Правый клик по умолчанию — «Завершить» **Готово.** Это уже будет работать — результат проверяется кнопкой «Тест MCP» в infaton.ru. > ⚠️ **Важно:** Не нажимайте «Публикация на веб-сервере» — вы можете снова затреть IIS handlers. Для обновления модуля публикация не нужна, достаточно F7. Если всё-таки нужно перепубликовать — выполнить чеклист из `docs/SETUP_1C_CONNECTION.md` (раздел 3.3). --- ## 📦 Путь Б — собрать новый `.cfe` (для распространения) **Когда имеет смысл:** если хотите передать обновлённое расширение на другую базу (например, `ERP_Prod`) или сохранить в git новую версию. ### Шаг 1. Та же правка, что выше Выполнить пункты 1–6 из «Пути А» (открыть конфигурацию расширения, поправить модуль, сохранить). ### Шаг 2. Выгрузить `.cfe` 1. В конфигурации расширения открыть **Конфигурация → Сохранить конфигурацию в файл…** (в интерфейсе пункт может называться **«Сохранить конфигурацию расширения в файл…»** — зависит от платформы 8.3.27) 2. В диалоге файлов указать расширение `.cfe` и имя, например: `INFATON_MCP_1.0.1.cfe` 3. Нажать «Сохранить» > Альтернативно: меню **Конфигурация → Поставить на поддержку… / Сохранить как…** — выбор формата `*.cfe`. ### Шаг 3. Проверка (по желанию) Если хотите убедиться, что в новом `.cfe` исправленный модуль — выполнить «извлечение» (для диагностики): #### Вариант 3а. Через **Выгрузку в XML** 1. Меню **Конфигурация → Выгрузить конфигурацию в файлы…** 2. Выбрать пустую папку, например `D:\temp\mcp_xml\` 3. В полученной структуре посмотреть файл: `HTTPServices/mcp/Ext/Module.bsl` — в нём должно быть `ПрочитатьJSON(ЧтениеJSON, Истина)`. #### Вариант 3б. Без Конфигуратора Файл `.cfe` — это ZIP-контейнер 1С. Можно открыть 7-Zip → увидеть внутренние файлы, но они в бинарном виде. **Не пытайтесь редактировать файлы внутри архива** — сбивает структуру и бинарные оффсеты. ### Шаг 4. Установить в другую базу (если нужно) 1. Открыть Конфигуратор целевой базы 2. **Конфигурация → Расширения конфигурации → Добавить** 3. Указать файл `INFATON_MCP_1.0.1.cfe` 4. Обновить конфигурацию БД (F7) --- ## 🔁 Для повторной установки `.cfe` в базу `clear` с нуля (если хотите сменить версию) **Шаг 1 — удалить старое расширение:** 1. Конфигуратор базы `clear` → **Расширения конфигурации** → ПКМ по `INFATON_MCP` → **Удалить** 2. F7 — принять **Шаг 2 — добавить новое:** 1. **Расширения конфигурации** → **Добавить** → выбрать новый `.cfe` 2. F7 **Шаг 3 — проверить IIS handlers (если была перепубликация):** см. `docs/SETUP_1C_CONNECTION.md` п. 3.3. --- ## ❌ Почему **я не могу собрать `.cfe` за вас** в VM - Сборка `.cfe` требует `1cv8.exe` (Designer) — это проприетарный Windows-инструмент 1С, который не работает в Linux VM DeepAgent. - Теоретически можно было бы из VM через Tailscale SSH на Legion вызвать `1cv8.exe` в batch-режиме — но это требует пароля администратора 1С, лицензии и прав на сеанс Designer, и сломается при открытой локальной сессии Конфигуратора (как у вас сейчас). - Поэтому **правильный путь** — вы вручную правите модуль в Designer (30 секунд работы), и я верифицирую через кнопку «Тест MCP» в облачной платформе. --- ## 🧪 Быстрая проверка после любого из путей ```bash # С любого компьютера (Mac, Windows PowerShell, Linux): curl -u 'ИМЯ_ПОЛЬЗОВАТЕЛЯ:ПАРОЛЬ' -X POST \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","method":"initialize","id":1}' \ https://infaton-gpu.taild8a47f.ts.net/clear/hs/mcp/ ``` Ожидаемый ответ (после фикса): ```json {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2024-11-05","capabilities":{"tools":{}},"serverInfo":{"name":"infaton-1c-mcp","version":"1.0.0"}}} ``` Если получился такой ответ — фикс применился, `.cfe` пересобирать не нужно.