Вайб-кодинг в 1С, часть 1

Вайб-кодинг в 1С, часть 1


Будем разбираться, что такое вайб-кодинг в реалиях 1С-разработки.

Не пойму, что за напиток у него?


Не будем пока залезать на территорию EDT+Напарник, это совершенно другая история.

Конфигуратор + TurboConf тоже отложим до следующих постов.


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

Возьмем базовый набор джентельмена - Cursor (или любую другую агентскую среду, например Claude Code или Antigravity) и обычный конфигуратор.


Сквозная задача - сделать обработку, которая выгружает остатки товаров на складах в файл csv и отправляет файл по FTP протоколу на указанный адрес.

Для простоты будем считать, что все значения, такие как склад, FTP адрес, логин и пароль захардкожены в обработке.


Проделаем следующие шаги, подготавливающие нас к вайб-кодингу:

Шаг 1. Создадим пустую обработку в конфигураторе, добавим в нее форму с кнопкой "Выполнить", к кнопке добавим обработчики нажатия - клиентский и серверный.

Шаг 2. Сделаем выгрузку обработки в формат XML

На диске, куда мы сделали выгрузку, образуется структура папок с модулями, что типа этого:


Дальше начинается, собственно, вайб-кодинг.

Шаг 3. Запустим Cursor, а в нем откроем папку, куда выгрузили обработку на предыдущем шаге.


Шаг 4. В окне чата с агентом зададим нехитрый промпт:

@ВыгрузкаFTP/Forms/Форма/Ext/Form/Module.bsl Сделай код, который при нажатии на кнопку выгрузки выгрузит остатки склада во временный файл CSV и затем отправит его на указанный адрес через FTPСоединение

Поработав некоторое время, агент заполняет модуль формы обработки, нам остается только принять эти изменения

Шаг 5. Вернемся в конфигуратор и загрузим обработку обратно - из того же XML файла, который мы указали на шаге 2.

Убеждаемся, что в модуле формы - тот же код, что сгенерировал нам Cursor.


Что получилось

Мы - молодцы! Только что мы создали полноценную обработку, не написав ни строчки кода.

НО, есть несколько но. Наша обработка не работает. Давайте посмотрим, почему.

  1. Галлюцинации объектной модели 1С. Например, в моем эксперименте, агент породил такую конструкцию:

Но у объекта FTPСоединение нет метода ЗаписатьФайл() и метода Закрыть()! Вместо этого надо было использовать метод Записать().

К сожалению, модели без дополнительных инструментов плохо понимают специфику объектной модели 1С - слишком мало 1С-ного кода им подается на претрейне.

2. Там, где идет работа с объектами конфигурации, модель гадает на кофейной гуще. В моем случае, запрос к остаткам получился таким:

Но у нас нет регистра ТоварыНаСкладах. Да и вообще, откуда агент получит информацию об объектах нашей конфигурации, если конфигурацию он не видит?


Так что-же, это все фигня какая-то?

Нет.

Во-первых, примерно 90% кода - абсолютно правильные. Правильная логика, правильнй синтаксис, правильные названия объектов глобального контекста 1С - Запрос, FTPСоединение, ЗаписьТекста и пр. По ощущениям, я сэкономил 50% времени, с учетом того, что код нужно править и отлаживать.

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

Продолжение: побеждаем галлюцинации






Report Page