На сцену выходит MCP — штука, которая делает так, чтобы твой тимлид наконец-то понял, какой ты умный разработчик.
Акт первый.
В комнате темно, синицы в руках манят журавлей в небах. Светлый ум ищет выход или вход, но вокруг темно, и мертвые с косами...
ИИ:
MCP Server — это, если говорить простым языком, прослойка между твоим AI-ассистентом и базой знаний о синтаксисе 1С. Представьте себе, что вы взяли документацию по 1С, скормили её какому-то алгоритму, и теперь этот алгоритм может ответить на вопросы типа "а что делает эта функция?" или "какие параметры у СтрДлина?".
Я:
Продолжай...
ИИ:
Но подождите, скажете вы, ведь в интернете полно документации! Да, но есть нюанс.
Этот MCP-сервер работает с реальным синтаксисом 1С — тем, который находится внутри установленной платформы, в файлике shcntx_ru.hbk. Это не какая-то абстрактная документация с сайта 1С, которая может быть неактуальной или содержать ошибки копирования из старых версий. Нет, здесь ты получаешь именно то, что платформа 1С знает о сама о себе.
Я:
Ухожу, шаркая ботинками...
Акт второй.
Ставлю омнироутер с целью обрести бесплатный клауд. ИИ нудит над ухом. Свеча догорела, мальчик достругал палочку, Быков дочитал старые газеты в своем выдуманном конце двадцатого века...
ИИ:
2.1. Что умеет этот зверь?
А умеет он немало:
Поиск функций и методов — вводишь "СтрДлина", получаешь все совпадения. Причём работает как на русском, так и на английском (потому что да, есть люди, которые пишут StrLen, и их надо понять и простить).
Получение информации о функции — спрашиваешь "что такое СтрДлина?", получаешь подробный ответ: какие параметры принимает, что возвращает, и даже в каком контексте работает.
Автодополнение — начинаешь писать "Стр", а тебе подсказывают: "СтрДлина, СтрНайти, СтрЗаменить, СтрЧислоСтрок...". Полезно, когда забыл, как называется нужная функция.
Валидация синтаксиса — пишешь СтрДлина("текст"), а сервер тебе говорит: "Всё ок, вызов корректен". Или наоборот: "Бро, у тебя скобка лишняя" (да, я тоже так умею).
Я:
Чорд, ну не можешь ты без этих 1, 2, 3, 5, 100500... Прям глаз режет. И каким местом МСР скажет тебе про лишнюю скобку? Сходи проспись...
ИИ, не обращая на меня ни малейшего внимания, продолжает нудеть:
3. Как это работает?
Теперь самое интересное — как эту штуку запустить и заставить работать. Сразу предупреждаю: здесь придётся немного поработать руками. Никакой тебе магии "нажал кнопку — получи результат". Но, может, это и к лучшему — ценишь то, что получил.
Я смирившись с пунктами меню:
И нафига ты мне нужен-то, чтобы пальчиками и без магии. Давай, бро, сам начал - сам расхлебывай.
ИИ, заставляя меня зевать, выдает базу:
3.1. Установка
Шаг 1: Python
Да, вам понадобится Python. Не пугайтесь, это не так страшно, как кажется. Скачайте, установите, желательно версию 3.10 или выше. На всякий случай.
Шаг 2: Виртуальное окружение
Создаём виртуальное окружение, чтобы не засрать систему всякими зависимостями:
cd 1c-syntax-mcp python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
Я, офигевая:
"Засрать"? Серьезно?
Пипл, честно, я тут ни при чем.
ИИ:
Шаг 3: Зависимости
Устанавливаем библиотеку MCP:
pip install mcpШаг 4: 7-zip
О, а вот это важно! Серверу нужен 7-zip для распаковки файла документации. Без него — никуда.
Я:
Это когда-нить кончится?
Акт третий.
В концах туннелей забрезжил свет, полная Луна клонится к закату вместе с ракетой, в которой сломался унитаз. Я вообще не понимаю, как можно пиариться без сломанных унитазов. Вы понимаете? Вот и ИИ тоже не понимает. А то "все засрешь".
ИИ:
3.2. Настройка OpenCode
Теперь самое интересное — подключаем это всё к OpenCode. Открываем конфиг (%APPDATA%\opencode\opencode.jsonc на Windows или ~/.config/opencode/opencode.jsonc на Linux) и добавляем:
#WIN { "mcp": { "1c-syntax": { "type": "local", "command": ["C:\\Users\\<username>\\1c-syntax-mcp\\venv\\Scripts\\python.exe", "C:\\Users\\<username>\\1c-syntax-mcp\\server.py"], "enabled": true } } } #LIN { "mcp": { "1c-syntax": { "type": "local", "command": ["~/1c-syntax-mcp/venv/bin/python", "~/1c-syntax-mcp/server.py"], "enabled": true } } }
Я:
Ну вот, и у ИИ сломался унитаз. Конфиг опенкода лежит в папке юзера, а не аппдаты. Для линуха конфиг верный, для венды - кривой.
ИИ:
3.3. Первый запуск — магия автоматической инициализации
Вот здесь я должен сказать спасибо разработчику. При первом запуске сервер сам:
Находит установленную версию 1С (8.3.x или 8.5.x)
Извлекает файл shcntx_ru.hbk с документацией
Распаковывает его (это около 52 000 файлов, не пугайтесь)
Парсит HTMLки и строит JSON-индекс
Запускается с готовым индексом
Всё это занимает 1-2 минуты при первом запуске. При последующих — 1-2 секунды, потому что индекс уже есть.
Я:
А еще он сам находит 7z. Но это так - мелочи.
ИИ:
4. Использование
Теперь, когда всё настроено, можно использовать. Вот несколько примеров:
Поиск функций:
use 1c-syntax to search for СтрДлинаИнформация о функции:
use 1c-syntax to get info about СтрДлина
Я:
Ну ни один дурак так это юзать не будет. Хотя я в этом не уверен на 100%...
ИИ:
5. Навык 1С (1cskills)
Отдельное внимание заслуживает навык 1cskills — набор правил и рекомендаций для AI-ассистентов при работе с кодом на 1С. Это что-то вроде "правил хорошего тона" для AI.
Навык включает:
Обязательный алгоритм проверки синтаксиса через MCP
Контекст выполнения и директивы (&НаКлиенте, &НаСервере и т.д.)
Структуру областей для модулей объектов, менеджеров, форм
Структуру файлов проекта (XML-дамп)
БСП и типовые паттерны
Именование переменных, документирование кода
Язык запросов 1С
И даже регулярные выражения!
Я:
Как же любит он эти свои циферки - прям ваще...
И, что важно, сервер доступен на гите: 1c-syntax-mcp, лицуха MIT.
Если сможете воспользоваться - флаг вам в руки!
Занавес...
На сцену выходит сам автор, честно признается, что сделал это все халявный клауд, и что автор теперь прям вот эксерд по всем этим МСР.
***
КАК ОНО НА САМОМ ДЕЛЕ...
Если серьезно, то код стал сильно лучше. Но давайте сравним:
Вот пример без MCP:

Видим, что система полезла в интернеты и нашла там какую-то дичь.
С МСР, но без скилла:

Суть в том, что он просто не нашел функции, хотя честно попытался искать по "Регулярное", "RegEx" и даже "Стр".
С МСР и скиллом:

А вот если ты написал скилл так, чтобы ИИ шел в МСР и внимательнейшим образом относился к синтаксису, проверяя каждый чих, можешь получить рабочий код даже на бесплатной модели.
В заключении...
Мир меняется. Он меняется уже давно, но вайбкодинг сейчас вошел в некий раж. Разобраться с этим архиважно и архинужно. Самое важное - это понять, что для хорошего кода нужен хороший промпт, а он складывается из хорошо описанного скилла и имеющегося в наличии МСР и понятного запроса, который не нужно додумывать. Все проблемы ИИ в том, что пользователь заставляет его додумывать, а не руководствоваться четкой и понятной программой действий. Так что: хороший скилл -> МСР -> хороший запрос = правильный код.
Я попросил ИИ переписать это все на серверные рельсы, будем в конторе раскатывать.
ЗЫ: Я честно пытался написать эту статью с помощью ИИ, но он это делает так себе.
ЗЫЗЫ: Выше ссылка на ГИТ. Все, что вы там увидите, сделано разными моделями в опенкоде. Включая создание репы и MR туда.
Новый светлый мир. И с этим придется разобраться.
Каналы, лайки, звездочки в гитах, чтотамеще - приветствуется!
Вступайте в нашу телеграмм-группу Инфостарт