Как использовать ИИ-помощника Confaster с MCP-сервером в классическом Конфигураторе 1С?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

Разработка в классическом Конфигураторе 1С долгое время оставалась в стороне от современных трендов использования искусственного интеллекта, в то время как пользователи 1C:EDT уже вовсю использовали плагины и встроенных помощников (ускорить работу также поможет инструмент для быстрого написания и оптимизации кода в 1С). Ситуация изменилась с появлением Confaster — специализированного ИИ-агента, который интегрируется непосредственно в интерфейс Конфигуратора. Рассмотрим подробнее, как настроить этот инструмент, как работает технология MCP (Model Context Protocol) и как заставить ИИ видеть не только текущий модуль, но и всю структуру вашей метаданных.

Основные возможности и принцип работы

Проанализируем возможности инструмента. Confaster работает как фоновое приложение, которое с помощью механизмов WinAPI взаимодействует с окном редактора кода 1С. Это позволяет реализовать функции, которые ранее требовали постоянного копирования кода в браузер:

Настройка окружения и установка

Для начала работы нам необходимо подготовить программную среду. Разберем по шагам процесс установки:

  1. Убедимся, что на компьютере установлен .NET Desktop Runtime версии 8.0 или выше. Это необходимо для работы ядра приложения.
  2. Скачаем и запустим исполняемый файл Confaster. Обратите внимание, что для корректного взаимодействия с окнами Конфигуратора приложение и сама платформа 1С должны иметь одинаковые права доступа (желательно запускать оба процесса от имени администратора, если возникают проблемы с обнаружением редактора).
  3. Настроим API-ключ. Для этого щелкнем по значку шестеренки в трее. Рассмотрим варианты подключения моделей:
    • 1С:Напарник: Бесплатный вариант для пользователей ИТС. Токен можно получить на официальном портале разработчиков 1С.
    • OpenAI-совместимые сервисы: Можно использовать ChatGPT, Claude или DeepSeek через шлюзы типа OpenRouter.
    • Локальные модели: Если политика безопасности запрещает передачу кода в облако, используем Ollama или LM Studio.

Использование MCP-сервера для расширенного контекста

Одной из главных проблем ИИ в 1С всегда была «узкая специализация» — модель видела только тот текст, который вы ей передали. Выясним, как Confaster решает эту проблему с помощью встроенного MCP-сервера. Протокол Model Context Protocol позволяет ИИ-модели запрашивать информацию о других частях системы. Для этого есть готовый набор MCP-серверов для интеграции 1С с LLM.

Чтобы ИИ понимал структуру базы, необходимо выполнить выгрузку конфигурации в файлы — в этом поможет инструмент для архитектурного анализа конфигураций и построения графа связей 1С. Рассмотрим, как это происходит:

В контекстном меню редактора выберем пункт выгрузки. Система создаст XML-структуру метаданных в локальной папке (по умолчанию это %appdata%\Confaster\Bases). После этого MCP-сервер автоматически проиндексирует файлы. Теперь, если вы спросите ИИ: «Какие реквизиты есть у справочника Номенклатура?», он не будет гадать, а запросит данные у MCP-сервера, который прочитает их из выгруженных файлов.

Проанализируем ситуацию, когда ИИ встречает вызов метода из другого модуля, например:

Результат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Артикул");

В обычном чате ИИ не знал бы, что делает этот метод. С подключенным MCP-сервером агент найдет файл ОбщегоНазначения.мод, извлечет тело функции и предоставит его модели для анализа. Это позволяет проводить глубокое ревью кода с учетом всех зависимостей.

Подключение локальных моделей через Ollama

Разберем пример настройки локальной нейросети, чтобы обеспечить максимальную приватность кода. Допустим, у нас установлена Ollama с моделью deepseek-coder-v2.

В настройках Confaster выберем тип провайдера «OpenAI-совместимый» и укажем следующие параметры:

Посмотрим на пример кода, который может сгенерировать локальная модель для задачи выборки данных:


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Номенклатура.Ссылка КАК Ссылка,
    |	Номенклатура.Код КАК Код
    |ИЗ
    |	Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |	Номенклатура.ЭтоГруппа = ЛОЖЬ";

РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    // Обработка результата
КонецЦикла;

Работа с расширениями и внешними данными

Начиная с версии 1.1.1, в Confaster добавлена поддержка расширений. Поскольку автоматическая выгрузка расширений через стандартные механизмы 1С может быть затруднена, их необходимо выгрузить вручную в файлы .cfe или в формате XML и указать путь к папке в настройках базы внутри помощника.

Также важно отметить возможность подключения к базе через COM-соединение. Это позволяет ИИ получать не только структуру метаданных из файлов, но и реальные данные из таблиц (например, для отладки запросов). Для этого на вкладке «Базы 1С» необходимо указать строку подключения к базе и учетные данные. Если база работает в клиент-серверном варианте, убедитесь, что на компьютере зарегистрирована соответствующая версия comcntr.dll.

Решение типичных проблем

Рассмотрим ситуацию, когда приложение выдает ошибку «Редактор кода не найден». Это часто случается по нескольким причинам:

  1. Разные права доступа: Конфигуратор запущен от администратора, а Confaster — от обычного пользователя. Решение: перезапустить оба процесса с одинаковыми правами.
  2. Версия платформы: В очень старых или тестовых версиях платформы 8.3 структура окон может отличаться. Проверьте обновления Confaster, разработчики регулярно добавляют поддержку новых релизов (например, 8.3.25 и 8.3.27).
  3. Антивирусное ПО: Некоторые защитные системы блокируют попытки чтения текста из чужих окон. Добавим Confaster.exe в белый список.

В заключение отметим, что регулярная выгрузка конфигурации (хотя бы раз в день или после крупных изменений) является залогом качественной работы ИИ. Первая выгрузка может занять время, но последующие происходят значительно быстрее благодаря инкрементальному обновлению файлов.

← На главную