Вайбкодинг — это когда ты не пишешь код руками, а описываешь задачу словами, а нейросеть выдаёт готовый модуль. На Python или JavaScript это выглядит почти как магия: «сделай мне REST-клиент» — и через минуту у тебя рабочий класс. На 1С магия ломается. Вайбкодинг в 1С даёт код, который выглядит правильным, компилируется, иногда даже проходит на тестовых данных — а потом молча портит файл, обращается к несуществующему реквизиту или падает на реальной базе.
Запрос «вайбкодинг 1с» за год вырос почти в десять раз (27 показов в июле 2025 → 415 в марте 2026 по Wordstat). Люди уже поняли, что нейросети пишут код, и теперь пытаются натравить их на 1С. И почти сразу упираются в стену. Ниже — почему это происходит, разбор одного реального провала с кодом «до/после» из боевого проекта, и рабочий цикл, который превращает вайбкодинг из рулетки в инструмент.
Что не так с 1С для нейросети
Модель, которая пишет код, обучалась в основном на GitHub. А там 1С почти нет: BSL-репозитории редки, код внутри них русскоязычный, а сама платформа закрытая. Для нейросети 1С — это язык на обочине обучающей выборки. Отсюда пять типовых причин, по которым вайбкодинг спотыкается именно здесь.
1. Русскоязычный синтаксис недопредставлен. Если … Тогда, Цикл, Процедура — этого в обучающих данных на порядки меньше, чем if/for/function. Модель компенсирует догадками: калькирует английские конструкции, выдумывает русские имена методов по аналогии, смешивает синтаксис 1С с псевдокодом.
2. Это платформа, а не язык. Главное в 1С — не BSL, а метаданные: справочники, документы, регистры и их реквизиты. Нейросеть не видит твою конфигурацию. Она не знает, что у тебя справочник называется Контрагенты, а реквизит — ИНН, а не Инн и не TaxNumber. Поэтому уверенно пишет обращение к полю, которого в твоей базе нет.
3. Типы платформы — не те, к которым модель привыкла. ДвоичныеДанные, ХранилищеЗначения, ТаблицаЗначений, ПотокВПамяти, объект Запрос. В «обычных» языках строка и байты почти взаимозаменяемы, список — это массив. Модель переносит эти привычки в 1С и ломается там, где платформа требует строгого разделения типов. Ровно этот случай разберём ниже на коде.
4. Код, который «работает случайно». Иногда нейросеть выдаёт решение, опирающееся на неверную концепцию, но платформа его прощает — до поры. Классика: работа с XDTO через глобальную ФабрикаXDTO, когда типы объявлены в фабрике, собранной вручную из внешней схемы. Компилируется, на одной схеме даже отрабатывает, а на другой падает или пишет мусор. Компиляция в 1С не равна корректности.
5. Галлюцинация несуществующего API. Модель придумывает методы, которых в платформе нет: СоединениеHTTP.ОтправитьPOST(), несуществующие параметры конструкторов, глобальные функции. Синтаксически гладко, семантически пусто. В синтакс-помощнике таких методов просто нет.
Разбор провала: 1С отправляет файл в Telegram
Возьмём конкретную задачу, которую часто отдают нейросети: «пусть 1С отправит картинку боту в Telegram по методу sendPhoto». Это multipart/form-data — тот самый формат, в котором браузер шлёт файлы через форму. Код ниже — из реального учебного SDK для Telegram (проект из контекста нашего курса), в двух версиях: как это обычно пишет нейросеть и как это работает в 1С.
Наивная версия собирает тело запроса как строку и читает файл текстовым документом — ровно так, как это делается в Python или PHP:
// Что чаще всего выдаёт нейросеть: тело multipart — строка, файл читается как текст.
ТекстЗапроса = "--" + Boundary + Символы.ВК + Символы.ПС;
ТекстЗапроса = ТекстЗапроса + "Content-Disposition: form-data; name=""document""; filename=""" + ИмяФайла + """" + Символы.ВК + Символы.ПС;
ТекстЗапроса = ТекстЗапроса + "Content-Type: application/x-zip-compressed" + Символы.ВК + Символы.ПС + Символы.ВК + Символы.ПС;
// Вот здесь ломается бинарник: файл читается как ANSI-текст.
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяФайлаПолное, КодировкаТекста.ANSI);
ТекстЗапроса = ТекстЗапроса + ТекстовыйДокумент.ПолучитьТекст() + Символы.ВК + Символы.ПС;
ТекстЗапроса = ТекстЗапроса + "--" + Boundary + "--" + Символы.ВК + Символы.ПС;
HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.ANSI);Код компилируется. Запрос уходит, Telegram отвечает 200. Но картинка на том конце битая: чтение файла через ТекстовыйДокумент в кодировке ANSI искажает любые небуквенные байты. Для текстового .txt прокатит, для .jpg, .mp3, .pdf — нет. Нейросеть не виновата: в её мире файл — это последовательность байтов, которую можно вклеить в строку. В 1С строка и двоичные данные — разные типы, и смешивать их нельзя.
Рабочая версия собирает тело в поток как двоичные данные, а файл читает объектом ДвоичныеДанные, а не текстом:
// Как надо в 1С: тело собирается в поток, файл читается как байты.
Тело = Новый ПотокВПамяти();
ЗаписьДанных = Новый ЗаписьДанных(Тело, КодировкаТекста.UTF8, ПорядокБайтов.LittleEndian,
Символы.ВК + Символы.ПС, Символы.ПС, Истина);
ЗаписьДанных.ЗаписатьСтроку("--" + Boundary);
ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=""%1""; filename=""%2""", Имя, ИмяФайла));
ЗаписьДанных.ЗаписатьСтроку("Content-Type:" + ТипКонтента);
ЗаписьДанных.ЗаписатьСтроку("");
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайлаПолное); // читаем как байты, а не как текст
ЗаписьДанных.Записать(ДвоичныеДанные);
ЗаписьДанных.ЗаписатьСтроку("");
ЗаписьДанных.ЗаписатьСтроку("--" + Boundary + "--");
ЗаписьДанных.Закрыть();
HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(Тело.ЗакрытьИПолучитьДвоичныеДанные());Разница не в «умности» кода, а в знании платформы: ПотокВПамяти, ЗаписьДанных, ДвоичныеДанные, УстановитьТелоИзДвоичныхДанных. Это не то, что модель выведет из общего представления о multipart. Это нужно либо знать, либо дать модели в контексте. Переключите виджет ниже, чтобы увидеть обе версии рядом и понять, где именно проходит граница.
Рабочий цикл вайбкодинга в 1С
Вайбкодинг в 1С работает — но не в формате «спросил ChatGPT, вставил ответ». Он работает как цикл, где ты компенсируешь слепые зоны модели.
- Дай контекст. Выгрузи модели фрагменты метаданных: имена и типы реквизитов, версию платформы, кусок похожего рабочего кода. Модель не видит твою базу — покажи ей ровно то, что ей нужно, чтобы не гадать.
- Задай правила. Опиши инварианты одним блоком: «BSL, платформа 8.3.27, файлы только через
ДвоичныеДанные, COM не использовать, контекст серверный, БСП есть». Хорошая модель держит эти правила весь диалог. - Проси мелкими кусками. Одна функция за раз, а не «напиши мне подсистему обмена». Чем крупнее запрос, тем больше галлюцинаций и тем труднее их выловить.
- Ревьюй с недоверием. Каждый вызов проверяй по синтакс-помощнику: существует ли метод, тот ли контекст (клиент или сервер), те ли типы на входе и выходе. Гладкий текст — не гарантия.
- Прогоняй в конфигураторе. Синтакс-контроль плюс реальный прогон на данных. В 1С «компилируется» и «работает» — разные состояния, и разрыв между ними как раз там, где живут ошибки нейросети.
Первый и второй шаги решают 80% проблем. Большинство провалов вайбкодинга в 1С — это не «модель тупая», а «модели не дали контекст». Чек-лист ниже собирает то, что стоит положить в промпт перед тем, как просить код. Отметьте пункты — виджет покажет, насколько ваш промпт готов.
От ручного цикла к системе: справочный MCP и оркестратор
Ручной цикл выше можно автоматизировать — и это то, на чём построен наш подход к вайбкодингу в 1С. Он состоит из двух слоёв, и каждый закрывает свою группу причин из начала статьи.
Слой справки — MCP-сервер по платформе 1С. Причины 1, 3 и 5 (выдуманный API, незнание типов, галлюцинации методов) лечатся не «умной» моделью, а доступом к справке. Мы индексируем встроенную справку платформы (shcntx_ru.hbk) в две базы: SQLite с полнотекстовым поиском (FTS5) для точных методов и Qdrant с эмбеддингами локальной Ollama для поиска по смыслу. Модель получает MCP-инструменты — search, searchSemantic, info, getMember, getConstructors — и вместо того чтобы придумать СоединениеHTTP.ОтправитьPOST(), спрашивает справку и берёт реальную сигнатуру. Гадание про API исчезает как класс.
Слой конвейера — оркестратор агентов. Причины 2 и 4 (незнание вашей базы, код «работает случайно») лечатся процессом с проверками. Задача живёт как issue в трекере — это источник истины, — под неё создаётся изолированный git-worktree, а агент проходит состояния с человеческими гейтами: план → ваше ревью плана → реализация и Merge Request → ваше ревью MR → мерж. На гейтах вы ловите и выдуманные реквизиты, и «случайно рабочий» код до того, как он попадёт в базу. Агенты при этом сменные: Claude Code, OpenCode и другие выбираются под задачу.
Вместе эти два слоя превращают вайбкодинг из «повезёт — не повезёт» в предсказуемый инструмент: модель не гадает про платформу, а человек остаётся на ключевых развилках.
Что стоит вайбкодить, а что нет
Не все задачи 1С одинаково дружелюбны к нейросети. Грубое деление такое.
Отдавать смело: парсинг и сборка JSON/XML, HTTP-клиент к известному API, запросы (с обязательной проверкой на реальных данных), рефакторинг и переименование, разбор чужого кода, генерация тестовых данных, регулярные выражения, типовой boilerplate форм и модулей.
С осторожностью: всё, где участвуют двоичные данные и потоки, работа с метаданными через рефлексию, СКД, механизмы планов обмена. Здесь модель нужна как черновик, а не как автор.
Не отдавать без эксперта: архитектуру подсистемы, транзакционную логику и блокировки, права и RLS — всё, что молча портит данные или ломает целостность. Цена ошибки тут выше, чем экономия времени.
Вайбкодинг не заменяет знание платформы — он его усиливает. Тот, кто знает, что файл в 1С читается через ДвоичныеДанные, получит от нейросети рабочий SDK за вечер. Тот, кто не знает, — получит битую картинку и 200 в ответе, и будет неделю искать, где баг.
Куда дальше
Мы разбираем именно этот процесс — не «спросить нейросеть», а выстроить ИИ-ассистированную разработку в 1С как систему: контекст, правила, MCP-инструменты и агент, который сам ходит в вашу конфигурацию — на курсе «Нейросети для 1С». Там же — как научить модель видеть метаданные вашей базы, чтобы она перестала гадать.
Если хотите разобраться в теме шире, начните с обзора ИИ для 1С в 2026 году — карта всех сценариев. А выбрать конкретную модель под кодинг поможет разбор какую нейросеть взять программисту 1С.
А если вы аналитик или консультант, а не разработчик, — вам не столько про генерацию кода, сколько про то, как аналитику 1С применять ИИ: ТЗ, запросы, отчёты на СКД и где нейросеть безопасна без навыка чтения кода.