Вайб-кодинг в 1С, агентское программирование, агент создал справочник за меня

23.03.26

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

11 лет в 1С. Попробовал вайб-кодинг на Python — ускоряешься в разы. Решил попробовать с 1С. Написал MCP-инструмент, который читает XML-выгрузку конфигурации, научил агента генерировать новые объекты и загружать обратно через конфигуратор в пакетном режиме. Полный цикл: описание задачи U94; XML U94; загрузка U94; объект в Enterprise. Без моего участия.

Подводка

11 лет в 1С. За это время чего только не перепробовал для облегчения рутины — снипеты, шаблоны, генераторы. Всё помогало, но не радикально.

Потом довелось поработать с Python и C++. Попробовал вайб-кодинг — описываешь задачу словами, нейросеть пишет код. На Python это реально работает: современные модели выдают рабочий код с первого-второго промпта. Ускоряешься в разы.

И тут задумался: а можно ли так же с 1С?

Тема вайб-кодинга в 1С уже вовсю поднимается. Есть MCP-серверы для популярной IDE для AI-агентов, автодополняльщики, курсы. Посмотрел — интересно, но мне хотелось другого. Не подсказок в IDE и не автодополнения. Хотелось попробовать агентское программирование — когда программа за тебя делает полный цикл работы. Не подсказывает код, а сама создаёт объект метаданных, загружает в конфигурацию, и ты видишь результат в режиме предприятия. Ощутить себя архитектором из Матрицы — описал задачу, откинулся в кресле, а машина работает.

Решения с агентским подходом есть, но захотелось пройти этот путь самому. Очень нравится тема AI-агентов, поэтому решил сделать первые шаги самостоятельно. Долгое время автоматизировал лизинг, поэтому в качестве задачи выбрал написание простенькой конфигурации для лизинговой компании. Посмотрим, что получится.

 

Шаг 1: скормить XML модели

Взял свою рабочую конфигурацию БП КОРП и выгрузил в XML через стандартный ВыгрузитьКонфигурациюВФайлы (DumpConfigToFiles). Получил каталог на 80 000 файлов.

Дал пару файлов агенту на анализ. Модель сразу увидела структуру: каждый объект — отдельный каталог с XML-описанием и BSL-модулями. Есть какой-то корневой файл со списком всех объектов. В целом — достаточно понятная организация.

Раз модель понимает структуру — значит можно научить её с ней работать. Решил написать MCP-инструмент.

 

Шаг 2: MCP-инструмент для чтения метаданных

Для тех кто не в курсе: MCP (Model Context Protocol) — это способ дать AI-модели доступ к вашим данным и инструментам. Описываете функцию на Python, а модель вызывает её когда считает нужным. По сути — руки для мозга.

Мой первый инструмент — read_metadata. Делает простую вещь: читает XML-файл объекта и возвращает модели структурированную информацию о реквизитах, табличных частях, модулях.

import xml.etree.ElementTree as ET
import os

# Все XML-файлы конфигурации 1С используют этот namespace
NS = {'md': 'http://v8.1c.ru/8.3/MDClasses'}

def read_metadata(object_type: str, object_name: str, xml_dump_path: str) -> dict:
    """Читает метаданные объекта конфигурации 1С из XML-выгрузки.

    Параметры:
        object_type: тип ("Catalog", "Document", "InformationRegister" и т.д.)
        object_name: имя объекта (например, "Контрагенты")
        xml_dump_path: путь к каталогу XML-выгрузки

    Возвращает словарь с именем, реквизитами, табличными частями и модулями.
    """

    # В выгрузке 1С каждый тип объекта лежит в своём каталоге:
    # справочники в Catalogs, документы в Documents и т.д.
    type_dirs = {
        'Catalog': 'Catalogs', 'Document': 'Documents',
        'InformationRegister': 'InformationRegisters',
        'Enum': 'Enums', 'Report': 'Reports',
        'DataProcessor': 'DataProcessors',
    }

    # Собираем путь к XML-файлу объекта
    dir_name = type_dirs.get(object_type, object_type + 's')
    xml_path = os.path.join(xml_dump_path, dir_name, object_name,
                            f'{object_name}.xml')

    if not os.path.exists(xml_path):
        return {'error': f'Объект не найден: {xml_path}'}

    # Парсим XML — стандартный ElementTree, ничего экзотического
    tree = ET.parse(xml_path)
    root = tree.getroot()

    # Достаём реквизиты — ищем все теги <Attribute> и берём из них <Name>
    attributes = []
    for attr in root.findall('.//md:Attribute', NS):
        name_el = attr.find('.//md:Name', NS)
        if name_el is not None:
            attributes.append(name_el.text)

    # Табличные части — аналогично, тег <TabularSection>
    tabular_sections = []
    for ts in root.findall('.//md:TabularSection', NS):
        name_el = ts.find('.//md:Name', NS)
        if name_el is not None:
            tabular_sections.append(name_el.text)

    # BSL-модули лежат в подкаталоге Ext (ObjectModule.bsl, ManagerModule.bsl и т.д.)
    ext_path = os.path.join(xml_dump_path, dir_name, object_name, 'Ext')
    modules = os.listdir(ext_path) if os.path.exists(ext_path) else []

    return {
        'name': object_name,
        'type': object_type,
        'attributes': attributes,
        'tabular_sections': tabular_sections,
        'modules': modules,
    }

50 строк, стандартный парсинг XML. Но это даёт модели «зрение»: она видит конфигурацию не как кашу из тегов, а как объекты с реквизитами.

Для типового справочника Контрагенты модель получает:

{
  "name": "Контрагенты",
  "type": "Catalog",
  "attributes": ["ИНН", "КПП", "НаименованиеПолное", "ЮрФизЛицо"],
  "tabular_sections": ["КонтактнаяИнформация"],
  "modules": ["ManagerModule.bsl", "ObjectModule.bsl"]
}

Теперь «Добавь реквизит в справочник Контрагенты» — осмысленная задача, а не гадание вслепую.

 

Шаг 3: а что, если загрузить обратно?

Чтение — это read-path. Все так делают. Но раз модель понимает структуру XML — может она и создать такой XML?

Попробовал руками: взял XML типового перечисления, скопировал, поменял имя и UUID, положил в каталог выгрузки, прописал в Configuration.xml, запустил ЗагрузитьКонфигурациюИзФайлов. Работает! Платформа приняла новый объект.

Значит можно автоматизировать. Я работал в одной из популярных IDE для AI-агентского программирования — написал Python-скрипт, который:

  1. Генерирует UUID
  2. Формирует XML по шаблону (скопировал структуру типового объекта и параметризировал)
  3. Создаёт каталог и файл в выгрузке
  4. Добавляет запись в Configuration.xml

А для загрузки — BAT-файл, который вызывает конфигуратор в пакетном режиме:

@echo off
chcp 65001 >nul
"C:\Program Files\1cv8\8.3.27.1859\bin\1cv8.exe" DESIGNER ^
  /IBConnectionString "File='E:\bases\buh'" ^
  /LoadConfigFromFiles "E:\bases\xml_dump" ^
  /UpdateDBCfg ^
  /Out "E:\logs\load.log"
echo Готово. Код: %ERRORLEVEL%

Итого полный цикл:

Python: выгрузить XML → Python: создать справочник → BAT: загрузить обратно

IDE запускала и Python-скрипты, и BAT-файлы. Агент оркестрировал весь процесс.

 

Шаг 4: что получилось

Попросил агента создать справочник «ГрафикиПлатежей».

Агент:

  1. Сгенерировал XML справочника
  2. Положил в каталог выгрузки
  3. Добавил запись в Configuration.xml
  4. Запустил BAT-файл загрузки

Открываю конфигуратор — справочник на месте:

 

 

Открываю режим предприятия — тоже видно:

 

 

Кстати, обратите внимание на имя — длкГрафикиПлатежей. По стандартам 1С (ITS) имена добавленных объектов в типовой конфигурации должны начинаться с префикса в верхнем регистре и с подчёркиванием — например ДЛК_ГрафикиПлатежей. Мой агент создал без подчёркивания и в нижнем регистре. Работает, но не по стандарту. Придётся ещё учить его стандартам разработки 1С — пока он как стажёр, который код пишет, а правила оформления ещё не выучил.

 

Грабли

Было бы нечестно и скучно не рассказать.

Configuration.xml. Первая попытка: создал XML справочника, положил в каталог выгрузки, загрузил — «Операция завершена успешно». Открываю конфигуратор — объекта нет. Полдня искал причину. Оказалось, в корне выгрузки есть файл Configuration.xml — что-то вроде оглавления конфигурации. В нём перечислены все объекты с UUID. Если нового объекта нет в этом оглавлении — платформа его просто игнорирует, даже если файлы на месте. Добавил запись — заработало.

GeneratedTypes. Каждый объект в XML имеет секцию <Produced> — набор типов, которые платформа генерирует для него. У справочника их 8 (Object, Ref, Manager, Selection, List...), у регистра сведений — 7 (есть RecordManager). Мой генератор поставил 6 для регистра — платформа молча отвергла при загрузке. Никакой вменяемой ошибки — просто «не удалось». Два часа сравнивал с типовым объектом, пока не нашёл.

Поддержка. Для эксперимента взял стандартную БП КОРП. Она на поддержке от 1С — все объекты залочены. Пришлось руками в конфигураторе снять ограничение на редактирование, иначе загрузка не проходила. Агент тут пока бессилен — настройка поддержки только через GUI.

 

Повторяю без моего вмешательства в процессе: полный автомат!

Во всех предыдущих попытках я лез руками в конфигуратор — настраивал поддержку, проверял результат. Ощущение «за меня всё сделали» было неполным. Хочется, чтобы помощник всё полностью за меня сделал.

Поэтому решил повторить эксперимент чисто. И с усложнением в 5 раз! Разрешил редактирование корня конфигурации с сохранением поддержки (одноразовая ручная операция), откатил все предыдущие изменения и запустил задачу заново: добавить 3 справочника и 2 документа.

И пошёл гулять.

Система выгрузила файлы конфигурации, сгенерировала XML новых справочников, прописала их в Configuration.xml, загрузила обратно через конфигуратор в пакетном режиме и обновила конфигурацию базы данных. Всё полностью автоматически.

Вернулся через час. Открыл конфигуратор — справочники на месте, документы тоже. Открыл режим предприятия — работает.

 

 

 

 

Итог, экономия времени

Операция, которую руками делаешь за 2 минуты (Конфигуратор → Новый справочник → Имя → Ctrl+S), заняла у меня почти целый день. Написание MCP-инструментов, эксперименты с XML, поиск граблей, отладка BAT-файлов... Сама автоматическая загрузка — около часа. Но подготовка к ней — весь оставшийся день.

Оптимизация? Ну... скажем так, пока скорее наоборот. Зато можно пойти погулять (или поспать), пока машина загружает конфигурацию.

Но если серьёзно — это первый шаг, который показал главное: оно работает. Агент может не просто подсказать код в IDE, а сам создать объект метаданных, который платформа 1С принимает как родной. Полный цикл: описание задачи → генерация XML → загрузка → объект в Enterprise. Без моего участия. И при масштабировании и увеличении количества задач положительный эффект должен появиться.

Дальше — дело техники. В планах: научить агента добавлять реквизиты в существующие объекты, писать код модулей, может быть даже работать с формами. Фундамент есть — write-path работает. Буду продолжать развивать эту тему.

Продолжение следует.

Вопросы, критика, советы — в комментариях, буду признателен. Особенно интересные вызовы, задачи, которые должны быть точно не под силу ИИ 

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

вайб-кодинг AI MCP XML агентское программирование конфигуратор метаданные автоматизация нейросети

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

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

См. также

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

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

15250 руб.

25.08.2025    57510    116    32    

126

Нейросети Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

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

6100 руб.

03.04.2024    15725    8    0    

12

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

За десять дней после релиза OneBase получила полноценные управляемые формы, локализацию интерфейса на 14 языков, точную денежную арифметику на decimal, систему ролей и прав, новый REST API и набор CLI-инструментов для разработки совместно с ИИ. Разбираю ключевые изменения платформы, показываю новые возможности и делюсь результатами одной из самых насыщенных недель развития проекта.

05.06.2026    590    Ibrogim    22    

11

Нейросети Обновление 1С Бесплатно (free)

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

05.06.2026    1749    wonderboy    2    

14

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

ИИ сделал внешнюю обработку за 19 минут, собрал EPF без входа в Конфигуратор, и она заработала с первого раза! Да, звучит как кликбейт, но это был живой стрим, а не вылизанное демо. В статье показываю стенды, замеры, скиллы, MCP и честные ограничения — чтобы скептики спорили не лозунгами, а своими примерами.

04.06.2026    2606    top_1c    156    

47

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

Расскажем, как создать ИИ-помощника внутри 1С без Python и другого внешнего кода – только на базе 1С, HTTP-запросов и необходимой инфраструктуры. Разберем универсальный шаблон RAG-системы, который можно адаптировать под разные задачи: от поддержки пользователей и поиска по базе знаний до работы с регламентами и инструкциями. На живом примере соберем минимальный рабочий прототип помощника, который умеет работать с данными, искать релевантный контекст и формировать ответы. Отдельно объясним, почему самым сложным этапом оказывается не архитектура, а качество подготовки данных и чанкинг.

04.06.2026    609    Palk    3    

6

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

Набор локальных skills для ИИ-агентов под 1С: XML-исходники, EPF/ERF, формы, роли, веб-публикация и test bridge — HTTP-расширение для проверки тестовых баз без COM и UI.

02.06.2026    3628    Aleksandr    60    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. chuevsf 391 23.03.26 09:17 Сейчас в теме
Позабыты хлопоты,
Остановлен бег.
Вкалывают роботы,
А не человек.

P.S. А вообще хочу одну огромную кнопку под названием "Бабло". Нажимать на неё не хочу. Хочу, чтобы нажималась сама, а денежные знаки сразу "падали" на карту. )))
ubnkfl; Ivan_Denisenko_1C; _Dmitry_; +3 Ответить
5. Ivan_Denisenko_1C 8 24.03.26 12:10 Сейчас в теме
Ну это всё в ту сторону да. Мечта, чтобы за тебя кто-то работал)
6. Ivan_Denisenko_1C 8 24.03.26 12:11 Сейчас в теме
(2) Супер. Спасибо! Буду изучать!
3. zqzq 25 24.03.26 09:17 Сейчас в теме
Я так понимаю, это был не "MCP-инструмент", а скорее утилита (Python) командной строки. И можно ещё копнуть в сторону Skills, которые сейчас вытесняют громоздкие MCP для локальных задач.
4. rozer 315 24.03.26 09:49 Сейчас в теме
Skills это вообще не MCP. Это из другой оперы...
7. svetlitsky_sv 03.05.26 21:55 Сейчас в теме
у меня получилось уговорить агента сделать управляемую форму с 400 элементами по html исходнику :) Без mcp - указал каталог дампа, скинул html файл и за несколько итераций он въехал во все. Тоже терял элементы, в итоге сам нашел :) В текст модуля записал процедуры управления визуалом. Claude Code под управлением Deepseek. В тот день я сделал много всякого и потратил более 2.2 млн токенов на v4-Pro (что-то около 40-45 центов)
Для отправки сообщения требуется регистрация/авторизация