MCP-сервер для проверки ИИ-кода 1С на соответствие API платформы

26.05.26

Интеграция - Нейросети

bsl-context — MCP-сервер, который ловит галлюцинации ИИ в коде 1С (несуществующие перечисления, методы, аргументы), сверяя его с реальным API платформы из синтакс-помощника.

Проблема

LLM при генерации BSL уверенно выдумывает обращения к платформе: несуществующие значения перечислений (классика — ТипРазмещенияТекстаТабличногоДокумента.Перенос), методы, которых у типа нет, неверное число аргументов функций. BSL Language Server это не ловит — он про синтаксис, а не про реальный состав API платформы. Ошибка вылезает только при запуске в базе.

 

Решение

bsl-context — MCP-сервер, который сверяет код с фактическим API конкретной версии платформы. Данные берёт из синтакс-помощника shcntx_ru.hbk (парсит сам, запускать 1С не нужно). Подключается к Claude Code, Cursor и любому MCP-клиенту по HTTP.

Ключевой инструмент — validate_expression: разбирает фрагмент BSL и возвращает находки с уровнем уверенности. Две из них — high-confidence (false-positive ≈ 0), на них можно жёстко блокировать ИИ-выдачу:

  • unknown_enum_value — значения перечисления не существует;
  • wrong_argument_count — число аргументов вне перегрузок функции.

Плюс справочные инструменты (поиск типов, методов, конструкторов, значений перечислений) — всего 9.

 

Происхождение

Идея — превратить синтакс-помощник платформы в контекст для ИИ-ассистента — впервые реализована в mcp-bsl-platform-context от alkoleft. bsl-context — самостоятельная реализация этого подхода на Rust: собственный ридер shcntx_ru.hbk, индекс платформы и валидатор BSL-выражений.

 

Чем дополняет BSL LS

Это разные слои, работают вместе: BSL LS — синтаксис и антипаттерны БСП; bsl-context — ссылочная корректность к платформе. В пайплайне ИИ-генерации прогоняются оба.

 

Установка

Бинарники под Windows/Linux/macOS — в GitHub Releases (v0.4.0). Нужен shcntx_ru.hbk из вашей платформы (C:\Program Files\1cv8\<версия>\bin\) — в репозиторий не входит, путь к своей версии указываете в конфиге. Запуск — HTTP MCP на 127.0.0.1:8007.

В связке с code-index: code-index находит и навигирует по коду, bsl-context проверяет сгенерированный код против платформы.

Исходники: https://github.com/Regsorm/bsl-context (MIT).

Вступайте в нашу телеграмм-группу Инфостарт

MCP ИИ AI нейросеть LLM Claude Code Cursor BSL 1С:Предприятие валидация кода генерация кода синтакс-помощник контекст платформы статический анализ AI-ассистент вайб-кодинг MCP-сервер разработка 1С

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

SALE! %

Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.

17500 руб.

20.12.2024    19458    99    32    

83

Нейросети Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)

Задавайте вопросы базе 1С обычными словами: получайте данные, находите ошибки и связанные документы, проверяйте права, работайте с вложениями и контролируемо вносите изменения. Всё это работает в самой программе, а Codex и Claude подключаются по желанию.

16990 руб.

30.07.2026    12824    27    4    

27

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    70939    141    41    

149

Распознавание документов и образов Нейросети 1С:Предприятие 8 1С 8.3 1С 8.5 1C:Бухгалтерия 1С:Зарплата и Управление Персоналом 3.x Беларусь Россия Казахстан Армения Платные (руб)

ИИ-сканер документов с REST API для интеграции с 1С и корпоративными системами. Извлекайте данные из счетов, паспортов, дипломов, патентов и трудовых книжек за секунды. Точность человека - скорость машины. Приложение поддерживает восемь типов документов, четырех провайдеров ИИ (имеется возможность использования локальных ИИ), локальный REST API и экспорт в JSON. Важно! модель должна поддерживать функцию Vision (распознавание файлов и картинок). Запускайте используя локальные ИИ, без подписок и ограничений

6100 руб.

24.08.2026    503    2    0    

1

Нейросети 1С:Управление торговлей 11 Бесплатно (free)

Я не считаю покупку специализированных платных инструментов обязательной для разработки с ИИ: нужную обвязку тоже можно создать с агентом. Показываю этот подход на расширении УТ 11 с динамическим списком остатков. Одно задание Codex, 37 минут до проверки, работающая форма. Рассказываю, как устроено окружение, почему первую попытку пришлось переснять и что получилось в повторном прогоне.

17.09.2026    5397    79    Ibrogim    55    

18

Нейросети Разработчик Руководитель проекта 1C:ERP Бесплатно (free)

Служба на Rust, через которую Claude Code, Cursor или другой MCP-клиент вызывает узких ИИ-агентов. Агент — папка с prompt.md и config.toml, модель — строка в конфиге: DeepSeek, Claude Code по подписке, Codex или локальная модель. Агент получает MCP-инструменты, работает в фоне, каждый ход записывается. Внутри — цифры за три месяца: 10 351 вызов, 78 агентов.

17.09.2026    1628    0    Sorm    8    

10

Нейросети Бесплатно (free)

Отладка кода 1С традиционно выглядит примерно одинаково: поставить точку останова, запустить клиент, воспроизвести сценарий, дождаться остановки, посмотреть локальные переменные, пройти несколько строк, раскрыть очередную структуру или коллекцию, вычислить выражение — и повторить все это еще несколько раз. А что, если значительную часть этой рутины поручить AI-агенту?

15.09.2026    3522    andrew.ab    5    

15

Нейросети Разработчик Аналитик Руководитель проекта Бесплатно (free)

Я принёс команде приём, с которым нейронка наконец начала понимать нашу конфигурацию: у меня он работал, у коллег — нет. Дело было не в постановке задач и не в настройках: причина в том, что на их машинах индекс конфигурации считался бы несколько дней. Замер на одном и том же своде из 26 035 записей: три часа на процессоре против трёх с половиной минут на видеокарте. Разбираю, что такое индексация конфигурации и почему она дорогая ровно один раз, почему наша основная серверная машина — 64 ядра, 768 гигабайт памяти — на этой задаче проигрывает домашнему компьютеру, и почему приём одного человека упирается в вопрос, который никто не любит задавать.

09.09.2026    4671    solbol    9    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Sorm 138 11.07.26 00:00 Сейчас в теме
Доработал.

Что изменилось (v0.7.0).

Знание имён самой конфигурации. Раньше сервер видел только один модуль и вызов процедуры из соседнего файла принимал за опечатку. Теперь он может узнать, какие методы реально объявлены в конфигурации. На УТ это снизило ложные срабатывания с 1420 до 44 (из них 1 настоящее).
Белый список инструментов — в настройках можно оставить только нужные инструменты, лишние спрятать.
Инструмент rebuild_symbol_index — пересобирает собственный индекс имён.
Как теперь взаимодействует с code-index. Тремя способами на выбор (результат одинаковый), задаётся в настройке [symbol_source]:

code_index_mcp — по сети, к работающему code-index (адрес+порт+имя репозитория);
code_index_db — читает файл базы code-index напрямую (та же машина);
lite — свой индекс, code-index вообще не нужен.
Может ли работать автономно и сам индексировать выгрузку. Да. С настройкой kind = "lite" он строит собственный лёгкий индекс прямо из папки с выгрузкой конфигурации:

указываете путь к выгрузке и путь к файлу базы;
вызываете инструмент rebuild_symbol_index (или из командной строки bsl-lite-index build --root <выгрузка> --db <файл>) — после первого запуска и после каждого изменения конфигурации.
То есть code-index — необязательная зависимость: без него сервер полностью рабочий, просто индекс имён строит сам.
Kuznecov_a; +1 Ответить
2. Sorm 138 14.07.26 14:31 Сейчас в теме
Что нового в 0.9.0
1. Находка shadowed_context_name (уверенность high) в validate_module.

Ловит имя переменной, занятое свойством контекста «только чтение»: Параметры = Новый Структура; в модуле управляемой формы не создаёт переменную, а падает при исполнении — «Поле объекта недоступно для записи». Ни компилятор, ни BSL LS этого не видят. Проверяются присваивание (Имя = …) и объявление (Перем Имя;); чтение и вызов метода находкой не считаются.

Два правила: свойства глобального контекста (Справочники, Документы, Метаданные) — в любом модуле; свойства ФормаКлиентскогоПриложения (Параметры, Элементы, Команды, ЭтотОбъект) — в модуле управляемой формы, для чего нужен параметр module_path.

Не ругается там, где имя занимать законно (всё проверено на живом коде УТ): параметр процедуры, процедура «БезКонтекста», обычная неуправляемая форма, реквизит формы, свойство доступное для записи.

2. Новый инструмент reserved_names (без параметров) — отдаёт 150 занятых имён из справки той версии платформы, что настроена на сервере: 98 глобальных + 13 свойств формы (присваивание падает), 2 + 37 доступных для записи (переменная не создаётся, молча меняется сеанс или форма). Хардкода нет — поменяете версию платформы, список изменится сам.

3. Новый параметр form_attributes у validate_module — имена реквизитов формы. Реквизит перекрывает имя контекста, поэтому такие имена исключаются; передав их, вы включаете проверку глобальных имён и внутри модуля формы.

Ломающих изменений нет. Инструментов на сервере стало 11.
3. Sorm 138 20.07.26 15:05 Сейчас в теме
bsl-context 0.11.0: валидатор научился читать запросы
Вышло обновление bsl-context — MCP-сервера, который сверяет код 1С с реальным API платформы и составом конфигурации. Раньше текст запроса из анализа выпадал вместе со строковыми литералами. Теперь разбирается.

Зачем. Неоптимальный запрос синтаксически безупречен: работает, отдаёт правильный результат, просто кладёт сервер на боевой базе. Особенно актуально с генерацией кода моделями — тесты зелёные, ревьюер кивает, в проде таймаут.

Как. Готовой грамматики SDBL для Rust нет (у 1c-syntax она под ANTLR), поэтому написан свой разборщик — рекурсивный спуск, ноль зависимостей. На УТ разбирается 97,3% из 23260 запросов. Что не разобралось — не проверяется вовсе: находки по неполному разбору хуже, чем их отсутствие.

Шесть находок:

Находка Уверенность
temp_table_without_index — временная таблица в соединении без индекса high
or_in_join_condition — ИЛИ в условии соединения high
join_with_subquery — соединение с подзапросом low
physical_register_table — таблица движений вместо виртуальной low
virtual_table_without_filter — виртуальная таблица без отбора low
join_on_unindexed_field — соединение по неиндексированному полю low
Уверенность здесь — про цену исправления, а не про достоверность. Блокируют сборку только те две, что чинятся одной строкой.

Половина правил требует метаданных конфигурации, а не только текста запроса: чтобы сказать «поле не индексировано», надо знать свойство «Индексировать»; чтобы сказать «читаете физическую таблицу» — что регистр остатковый. Одного разбора SDBL для этого мало.

Прогон по УТ: 3160 находок в 948 модулях, из них 2155 — неиндексированные временные таблицы.

Что вскрыл корпус. Три правила пришлось переписать после реальной конфигурации при зелёных модульных тестах. Самое показательное: 16360 → 380 находок, когда выяснилось, что соединение ищет по индексу присоединяемой таблицы, и в ПО А.Номенклатура = С.Ссылка левое поле индексировать незачем. Пятнадцать тысяч ложных срабатываний из одного неверного допущения.
Для отправки сообщения требуется регистрация/авторизация