Нейросеть для 1С: как писать код на встроенном языке с ИИ

Модель не видит вашу конфигурацию и может выдумать методы и реквизиты. Показываем, как давать метаданные и примеры, проверять код и считать стоимость запросов.

5 мин · · разработка · модели

Нейросеть для написания кода 1С — запрос, который появляется у каждого программиста, когда в очереди десяток однотипных доработок. Модель может написать процедуру или запрос на встроенном языке, но есть риск: она способна придумать методы и реквизиты, которых в вашей конфигурации нет. Ниже разбираем, как работать с таким риском: что передавать модели, как проверять результат и сколько это стоит.

Что модели знают о 1С, а что нет

Язык 1С:Предприятия сравнительно узкий: в открытом доступе его меньше, чем Python или JavaScript. Отсюда риски, которые стоит проверять:

  • смешение синтаксиса разных версий платформы и обращение к методам, которых нет в вашей версии;
  • выдуманные имена реквизитов и регистров: модель не видит вашу конфигурацию;
  • путаница клиентского и серверного контекста (директивы &НаКлиенте и &НаСервере), вызов сервера из клиентского кода без передачи данных;
  • запросы в стиле SQL вместо языка запросов 1С.

Хорошая новость в том, что часть этих проблем снимается самим запросом. Модели нужен контекст, а не только задача.

Что передавать в запросе

Минимальный набор для задачи в типовой конфигурации:

  1. Конфигурация и версия. Например, «Управление торговлей 11, платформа 8.3». Укажите то, что действительно у вас стоит.
  2. Метаданные. Имена объектов, с которыми работает код: документ, регистр, справочник, их реквизиты и типы. Список можно выгрузить из конфигуратора или EDT в текстовом виде и вставить нужный кусок.
  3. Контекст исполнения. Где будет выполняться код: форма на клиенте, серверная процедура, обработчик проведения, фоновое задание.
  4. Пример соседнего кода. Модуль, в котором лежит процедура. Модель повторит ваш стиль и именование.
  5. Явный запрет. Фраза вроде «используй только те реквизиты, которые я перечислил; если чего-то не хватает, напиши вопрос, а не придумывай».

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

Шаблон запроса

bash
Платформа 1С 8.3, конфигурация: Управление торговлей 11.
Задача: серверная функция, возвращающая остатки товаров на складе.
Объекты (используй только их):
- РегистрНакопления.ТоварыНаСкладах, ресурс ВНаличии,
  измерения Номенклатура, Склад
Требования:
- запрос на языке запросов 1С с параметром &Склад;
- возвращай таблицу значений;
- без обращения к реквизитам, которых нет в списке.
Если данных не хватает, задай уточняющий вопрос.

Названия объектов здесь только пример: в вашей конфигурации они могут отличаться, поэтому всегда подставляйте свои.

Пример результата

Ответ на такой запрос может выглядеть примерно так:

bash
&НаСервере
Функция ПолучитьОстатки(Склад)

	Запрос = Новый Запрос;
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
		|	ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток
		|ИЗ
		|	РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки";
	Запрос.УстановитьПараметр("Склад", Склад);

	Возврат Запрос.Выполнить().Выгрузить();

КонецФункции

Код выглядит правдоподобно, но это ещё не проверка. Дальше нужны ваши действия.

Как проверять код

Относитесь к ответу модели как к коду от стажёра: быстро, но с обязательным ревью.

  1. Синтаксическая проверка. Вставьте код в тестовую копию конфигурации и запустите синтаксический контроль модуля в Конфигураторе или EDT. Это поймает опечатки и несуществующие методы.
  2. Проверка имён. Сверьте каждое имя реквизита, измерения и ресурса со структурой метаданных. Это самое уязвимое место, потому что модель не видит вашу конфигурацию.
  3. Запуск на тестовой базе. Прогоните код на копии с небольшим набором данных. Для запросов посмотрите результат в консоли запросов.
  4. Граничные случаи. Пустые значения, отсутствие записей, неправильные типы параметров. Попросите модель сами написать список таких случаев, а потом проверьте их вручную.
  5. Блокировки и производительность. Для проведения документов и больших выборок проверьте, нет ли запросов в цикле. Отдельно ищите обращения к базе внутри Для Каждого.

Если нужно дописать код во многих модулях сразу, можно выгрузить конфигурацию в файлы и подключить консольный агент вроде Claude Code, который читает проект. Как именно выгружать конфигурацию (формат Конфигуратора или EDT), смотрите в документации платформы 1С. Настройка агента описана в разделе про Claude Code. Правки в таком режиме всё равно проходят через те же проверки.

Какие модели пробовать

Заранее сказать, какая модель лучше знает 1С, нельзя: надёжных публичных замеров на 1С у нас нет. Практичный подход — собрать 10–15 своих типовых задач и прогнать их на нескольких моделях. Цены Zukko на 18 октября 2026 ($ за 1M токенов, вход / выход) и индекс силы:

МодельВход / выходИндекс силы
deepseek-v4.1-flash0.013 / 0.03839
gpt-6.1-sol0.27 / 1.3252
claude-sonnet-5-50.4 / 248
claude-opus-5-50.8 / 458

Индекс — общий показатель силы, он не отражает знание конкретно 1С. Решает ваш собственный тест.

Сколько стоит запрос

Допустим, вы отправили модуль и описание метаданных на 6 000 токенов и получили 1 500 токенов кода. Формула: вход × цена входа + выход × цена выхода.

  • deepseek-v4.1-flash: 6 000 × 0.013 / 1 000 000 + 1 500 × 0.038 / 1 000 000 = $0.000078 + $0.000057 = $0.000135
  • gpt-6.1-sol: 6 000 × 0.27 / 1 000 000 + 1 500 × 1.32 / 1 000 000 = $0.00162 + $0.00198 = $0.0036
  • claude-sonnet-5-5: $0.0024 + $0.003 = $0.0054
  • claude-opus-5-5: $0.0048 + $0.006 = $0.0108

Кириллица в идентификаторах обычно занимает больше токенов, чем латиница, поэтому на русскоязычном коде счёт может оказаться выше. Заранее измерить размер запроса можно через count_tokens.

Как отправить запрос из своего кода

Если вы готовите запросы скриптом, подойдёт обычный OpenAI SDK с адресом Zukko:

bash
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_ваш_ключ")

response = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[
        {"role": "system", "content": "Ты помогаешь писать код 1С:Предприятия 8.3. Не выдумывай реквизиты."},
        {"role": "user", "content": "Платформа 8.3 ... (метаданные и задача)"},
    ],
)
print(response.choices[0].message.content)

Формат описан в документации по chat completions. Если вы хотите вызывать нейросеть из самой 1С, смотрите статью интеграция нейросети в 1С:Предприятие.

Частые вопросы

Какая нейросеть лучше для программирования 1С?

Надёжного ответа нет: разные модели ошибаются в разных местах, а публичных замеров на 1С мало. Прогоните свои задачи на двух-трёх моделях и сравните по качеству и цене запроса.

Можно ли доверять коду без проверки?

Нет. Всегда проверяйте синтаксис в Конфигураторе или EDT и сверяйте имена объектов с метаданными. Запускайте код сначала на копии базы.

Нужно ли отправлять модели всю конфигурацию?

Не нужно. Достаточно описания объектов, которые затрагивает задача, и соседнего кода. Большой контекст стоит денег и не гарантирует лучшего результата.

Как оплатить доступ?

Доступ из России идёт через шлюз, оплата доступна через СБП (с комиссией платёжной страницы 8,5%), картой MasterCard или криптовалютой. Ключ создаётся в кабинете.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.